Internet και Δίκτυα

FileZilla Server HOWTO

09/11/2010 05:21 μμ | parsifal από parsifal


FileZilla Server HOWTO

 

__TOC__

 

 

 

Εισαγωγή

Θα έχει τύχει σε όλους μας σε online συνομιλίες μας με φίλους ή γνωστούς να παρουσιαστεί ανάγκη για ανταλλαγή αρχείων. Όταν το προς μεταφορά αρχείο είναι μικρό, γίνεται εύκολα από την αντίστοιχη επιλογή των διαφόρων Instant Messaging clients. Αν όμως δεν έχουμε ανοίξει στον router μας τις κατάλληλες πόρτες για το αντίστοιχο IM πρωτόκολλο, όλες οι μεταφορές θα γίνονται μέσα από κεντρικούς servers εταιρειών, με σημαντικούς περιορισμούς στην ταχύτητα μεταφοράς. Αν πάλι θέλουμε να έχουμε τη δυνατότητα χρονοπρογραμματισμού των μεταφορών που θέλουμε να κάνουμε, χωρίς ο χρήστης του άλλου άκρου να βρίσκεται αναγκαστικά πάνω από το PC του; Αν τα προς μεταφορά αρχεία είναι πολύ μεγάλα και θέλουμε να διακόπτουμε και να συνεχίζουμε αργότερα κατά βούληση; Την απάντηση δίνει το πρωτόκολλο μεταφοράς αρχείων FTP.

 

 

 

Λίγη (ελάχιστη) θεωρία

Οι συναλλαγές FTP ακολουθούν το μοντέλο client/server. Ο ένας υπολογιστής εκτελεί λογισμικό FTP server, που του δίνει τη δυνατότητα να «ακούει» στη θύρα - συνήθως - 21 απομακρυσμένα αιτήματα για αποστολή/λήψη ενός αρχείου ή τμήματός του. Ο άλλος υπολογιστής εκτελεί λογισμικό FTP client για να απευθύνει τα αντίστοιχα αιτήματα και να λαμβάνει τα δεδομένα.

 

Αν ως client, ενδιαφέρστε μόνο για λήψη αρχείου, αυτό το ρόλο μπορούν κάλλιστα να παίξουν και αρκετοί Web Browsers, όπως π.χ. ο Mozilla Firefox. Αν θέλετε να χρησιμοποιήσετε και κάποιον download manager (π.χ. FlashGet), θα πρέπει να προσέξετε στα preferences του download να ορίσετε σωστά username και password του FTP account σας.

 

 

 

Απαιτήσεις σε λογισμικό

Θα χρειαστούμε:

  • FileZilla Server
  • Τον browser της επιλογής μας για να ρυθμίσουμε το port forwarding στη θύρα 21 από το web interface του router μας και να κάνουμε τις πρώτες δοκιμές του server μας
  • Αν έχουμε σύνδεση από ΟΤΕΝΕΤ, μία επίσκεψη εδώ ώστε να απενεργοποιήσουμε την επιλογή που κάνει εξ ορισμού η εταιρεία για μπλοκάρισμα των incoming connections σε ένα μεγάλο εύρος θυρών (TCP: 1-1023, 1433, 3389, 5000 / UDP: 161, 135-139, 1434)

 

[DIV=border-width: none; margin:0 auto; width:60%; text-align:center; background-color:gold]

ΠΡΟΣΟΧΗ: Για τους καταλόγους εγκατάστασης και εργασίας γενικά να αποφεύγετε κατά το δυνατόν την ύπαρξη Ελληνικών χαρακτήρων στο path, γιατί δημιουργούν προβλήματα στην εκτέλεση μερικών προγραμμάτων που συχνά είναι δύσκολο να διαγνωσθούν.

 

Ειδικά για τους καταλόγους εργασίας, σημειώστε ότι αν δουλεύετε σε Ελληνική έκδοση Windows, η δημιουργία καταλόγων στο «Τα Έγγραφά μου» και στην «Επιφάνεια εργασίας οδηγεί πάντα σε τέτοια κατάσταση. Το ίδιο συμβαίνει και για τις παραπάνω περίπτωσεις σε Αγγλική έκδοση Windows, όταν το όνομα χρήστη μας περιέχει Ελληνικούς χαρακτήρες!

 

[/DIV]

 

 

 

Εγκατάσταση του FileZilla Server

Τρέχουμε το εκτελέσιμο αρχείο της εγκατάστασης. Θα ερωτηθούμε σε κάποιο σημείο αν θέλουμε ο server να τρέχει ως service των Windows:

 

010.png

 

Η θύρα που φαίνεται σημειωμένη δεν έχει να κάνει με τον ίδιον τον server, αλλά είναι αυτή που θα χρησιμοποιεί το administration interface για να επικοινωνεί με τον server. Δε θα μας απασχολήσει κατά τη διαδικασία του port forwarding, αφού η επικοινωνία αυτή γίνεται τοπικά στο PC μας και η κίνηση δεν περνάει από τον router μας. Δίνουμε Next:

 

020.png

 

Εδώ αφήνουμε τα defaults και κλικ στο Install. Από εδώ και πέρα, όταν δεχόμαστε ερώτηση από το software firewall που έχουμε εγκατεστημένο σχετικά με τον FileZilla Server, θα πρέπει να επιτρέπουμε την κίνηση. Αμέσως θα φορτωθεί ο server και θα αντικρύσουμε την παρακάτω οθόνη:

 

 

 

Ρυθμίσεις

030.png

 

Εδώ γίνεται η σύνδεση του administration interface στον server. Ο server τρέχει τοπικά στο μηχάνημά μας, όποτε στο Server Address αφήνουμε τη διεύθυνση 127.0.0.1 (που είναι στα περισσότερα setups ισοδύναμη του localhost) και στη θύρα βάζουμε την ίδια τιμή με αυτήν που επιλέξαμε 2 οθόνες νωρίτερα. Συμπληρώνουμε με ένα password της αρεσκείας μας, βάζουμε τικ στην από κάτω επιλογή και κλικ στο OK. Θα γίνει η σύνδεση και θα ανοίξει για πρώτη φορά το administration interface:

 

040.png

 

Θα μας απασχολήσουν οι ρυθμίσεις που πρέπει να γίνουν στα 2 σημειωμένα μενού. Πηγαίνουμε λοιπόν Edit > Settings:

 

050.png

 

Αφήνουμε τη θύρα 21 ως επιλογή και παρακάτω εισάγουμε το μέγιστο αριθμό χρηστών που θα μπορεί να εξυπηρετεί συγχρόνως ο FTP server. Εδώ πρέπει να ληφθεί υπ' όψιν η ταχύτητα της σύνδεσης Internet που έχουμε και συγκεκριμένα, ο ρυθμός upload αυτής. Ίσως είναι καλύτερα να μην επιτρέψουμε παραπάνω από 2-3 χρήστες, εκτός αν έχουμε γραμμή με upload > 512Kbps ή μία ακριβή SDSL σύνδεση. Συνεχίζουμε τις ρυθμίσεις:

 

060.png

 

Το σωστό logging είναι το ήμισυ του παντός στο system administration/security, οι περισσότεροι χρήστες Unix-like λειτουργικών συστημάτων θα σας το επιβεβαιώσουν αυτό! Οπότε, κάνουμε τις ρυθμίσεις που φαίνονται παραπάνω. 3MB χώρος για να έχουμε τη δυνατότητα να ελέγξουμε τις συναλλαγές που έγιναν στον FTP server μας σε βάθος μηνός είναι μάλλον αμελητέα θυσία. Συνεχίζουμε:

 

070.png

 

Μερικά σχόλια:

Εδώ μπορούμε να ορίσουμε καθολικά speed limits. Παρακάτω θα δούμε όμως ότι μπορεί να γίνει ανά user account. Τα προβλήματα ταχύτητας των ADSL συνδέσεων στην Ελλάδα αυτήν τη στιγμή φαίνεται να έχουν να κάνουν κυρίως με το download rate μίας γραμμής και όχι με το upload. Π.χ. αν έχουμε σύνδεση 1024/256, άσχετα με τη μειωμένη ταχύτητα που μπορεί να κατεβάζουμε (ανάλογα και με τις ώρες της ημέρας), κατά πάσα πιθανότητα το upload rate της γραμμής (που καθορίζει την ταχύτητα με την οποία θα μπορούν να κατεβάζουν άλλοι από τον FTP server μας) θα είναι «καρφωμένο» στα 256 (Kbits/sec) / 8 = 32 (KBytes/sec) - 10% περίπου (για το overhead) = 28 Kbytes/sec. Μπορουμε λοιπόν να βάλουμε μία εύλογη τιμή που θα επιτρέπει και το άνετο browsing την ώρα που κάποιος κατεβάζει από τον FTP server, π.χ. 20-24 ή ακόμη και unlimited αν δεν έχει πολλή κίνηση ο server. Φυσικά, αν κάποιος θέλει να ανεβάσει αρχεία στον server (πρέπει να του έχουμε δώσει και τα κατάλληλα δικαιώματα όπως θα δούμε παρακάτω), ρόλο παίζει το εκάστοτε download rate της γραμμής μας. Για να μετρήσουμε τις καθαρές επιδόσεις της γραμμής μας (συνυπολογιζομένου και του overhead) μία συγκεκριμένη ώρα της ημέρας, ένα καλό τεστ είναι εδώ: http://speedtest.forthnet.gr

 

Τώρα κάνουμε κλικ στο ΟΚ και συνεχίζουμε από το μενού Edit > Users. Θα δημιουργήσουμε μερικούς λογαριασμούς για άτομα στα οποία θέλουμε να δώσουμε πρόσβαση στον FTP server:

 

080.png

 

Κάνουμε κλικ στο Add, δίνουμε username και ΟΚ. Φυσικά, ορίζουμε και ένα password στη συνέχεια:

 

090.png

 

Δε μπορεί να τονιστεί αρκετά η αναγκαιότητα χρήσης μεγάλων και πολύπλοκων passwords για όσα accounts δημιουργούμε. Παρεμπιπτόντως, στο screenshot έχουμε κλασσικό παράδειγμα προς αποφυγή...

 

100.png

 

Εδώ από το Add ορίζουμε το home directory το οποίο θα βλέπουν οι χρήστες όταν συνδέονται στον server. Επίσης, μπορούμε να δώσουμε και δικαιώματα (ΠΡΟΣΟΧΗ!) εγγραφής/διαγραφής για αρχεία και δημιουργίας/διαγραφής directories. Για την επόμενη κατηγορία Speed Limits έγινε εκτενής ανάλυση πιο πάνω, οπότε κάνουμε τις ρυθμίσεις που θεωρούμε σωστές, ανάλογα με την ταχύτητα της γραμμής μας και πατάμε OK.

 

 

 

Παραρτήματα

Port Forwarding και επίλυση προβλημάτων

Αν συνδεόμαστε με USB ADSL modem, δε θα μας απασχολήσουν τα παρακάτω. Αν όμως έχουμε ADSL router που συνδέεται με Ethernet με το PC μας και ενσωματώνει λειτουργίες NAT, θα πρέπει να προβούμε στο λεγόμενο Port Forwarding:

Όταν έρχεται από τον «έξω κόσμο» ένα αίτημα (incoming connection) για συναλλαγή σε οποιαδήποτε θύρα, το παραλαμβάνει ο router μας και στη συνέχεια ανατρέχει στις ρυθμίσεις του ώστε να αποφασίσει τί να κάνει με αυτό. Εξ ορισμού, οι θύρες στους περισσότερους routers είναι κλειστές για λόγους ασφαλείας. Εμείς θα πρέπει να δημιουργήσουμε από το web interface του router μας έναν κανόνα που θα επιβάλλει την προώθηση (forwarding) της όποιας εισερχόμενης κίνησης στη θύρα 21 προς το PC του τοπικού μας δικτύου στο οποίο τρέχει ο FTP server. Για βοήθεια πάνω στο θέμα με αρκετά screenshots και κάλυψη για μοντέλα πάρα πολλών κατασκευαστών, δείτε εδώ: http://portforward.com/routers.htm

 

Αν θέλετε να επιβεβαιώσετε ότι έχει γίνει σωστά το port forwarding, υπάρχουν διάφορα online tests όπως π.χ. AuditMyPC και CanYouSeeMe.org. Έχουν το πλεονέκτημα ότι μπορεί να καθορισθεί μία συγκεκριμένη θύρα για έλεγχο, ενώ άλλα online port scanners ψάχνουν πάρα πολλές θύρες και καθυστερούν σημαντικά.

 

Μία ακόμη σημαντική πηγή για την κατανόηση των ιδιομορφιών που έχει η πρόσβαση σε μηχανήματα που βρίσκονται πίσω από NAT και για τη σωστή ρύθμιση του router μας είναι ο επίσημος οδηγός από το Wiki του FileZilla project. Στο Insomnia Wiki υπάρχει μία μετάφρασή του στα Ελληνικά με τίτλο [[FileZilla και Δικτυακές Ρυθμίσεις]]. Προτείνεται να τον διαβάσετε πολύ προσεκτικά. Επίσης, μερικά πιο προχωρημένα θέματα όπως η δημιουργία aliases που θα λειτουργούν ως πολλαπλά home directories ή προβλήματα με το Software Firewall που χρησιμοποιούμε καλύπτονται από το FAQ του FileZilla project που βρίσκεται εδώ.

 

 

Ψευδοστατικό Domain Name σε γραμμή με Dynamic IP

Ωραία, ο server στήθηκε και είναι έτοιμος να υποδεχτεί χρήστες. Προκύπτει όμως το εξής πρόβλημα: Η πλειοψηφία των ADSL συνδέσεων είναι τύπου Dynamic IP (εκτός αν είμαστε διατεθειμένοι να πληρώσουμε αρκετά παραπάνω για συνδρομή Static). Αυτό σημαίνει ότι ανά τακτά χρονικά διαστήματα, ο ISP μας αναγκάζει τον router μας σε αποσύνδεση και επανασύνδεση με απόδοση νέας διεύθυνσης IP. Οι χρήστες που εξυπηρετούνται από τον FTP server δε μπορούν με εύκολο τρόπο να ξέρουν κάθε φορά την εκάστοτε IP μας στην οποία πρέπει να συνδεθούν. Τη λύση δίνουν οι διάφορες υπηρεσίες Dynamic DNS με πιο γνωστές τις DynDNS και NoIP. Σε αυτές, μπορούμε να δημιουργήσουμε δωρεάν ένα λογαριασμό που θα μας δίνει τη δυνατότητα να έχουμε δικό μας subdomain name της μορφής π.χ. my-subdomain.no-ip.com, άσχετα από την IP που έχουμε κάθε φορά! Εκτός από την εγγραφή στην υπηρεσία, θα πρέπει να κατεβάσουμε και ένα client προγραμματάκι από την εταιρεία, το οποίο θα τρέχει μονίμως στο υπόβαθρο και θα επικοινωνεί με την υπηρεσία για να ενημερώνει για τυχόν αλλαγή της IP μας. Επίσης, αρκετά μοντέλα ADSL routers έρχονται πλέον με δυνατότητα να ορίστει στα μενού τους ένας τέτοιος λογαριασμός Dynamic DNS, ώστε η ενημέρωση να γίνεται από τον router, χωρίς την ανάγκη εγκατάστασης έξτρα προγράμματος. Οπότε, αν το subdomain που κατοχυρώσαμε είναι όπως του παραδείγματος πιο πάνω, η διεύθυνση του FTP server μας θα είναι: ftp://my-subdomain.no-ip.com και αυτήν μπορούμε να κοινοποιήσουμε στους χρήστες που θέλουμε να δώσουμε πρόσβαση.

 

 

Ιστορικό αλλαγών

  • 20091009 - Αλλαγή URL για το FileZilla FAQ (parsifal)
  • 20081025 - Αλλαγή ύφους ώστε να καταστεί το άρθρο περισσότερο Wiki-neutral, hosting εικόνων στον Insomnia server, προσθήκη «Ιστορικού αλλαγών» (parsifal)
  • 20080918 - Αλλαγές στον Πίνακα Περιεχομένων, μικροδιορθώσεις, προσθήκη παραπομπής στο άρθρο [[FileZilla και Δικτυακές Ρυθμίσεις]], αλλαγή του standard Wiki notice στο τέλος του άρθρου σε νέα τυποποιημένη μορφή (parsifal)
  • 20080619 - Αλλαγή τίτλου (parsifal)
  • 20080523 - Προσθήκη COLOR tag στα links (parsifal)
  • 20080413 - Προσθήκη standard Wiki notice στο τέλος του άρθρου (parsifal)
  • 20071016 - Αλλαγή τίτλου, προσθήκη Πίνακα Περιεχομένων (parsifal)
  • 20070209 - Αρχική έκδοση (parsifal)