Προς το περιεχόμενο

Tutorial: Στήσιμο FTP Server σε περιβάλλον Windows


parsifal

Προτεινόμενες αναρτήσεις

Δημοσ.

ΠΡΟΣΟΧΗ! Ο οδηγός που βρισκόταν εδώ έχει αντικατασταθεί από τα δύο ακόλουθα άρθρα στην ενότητα Wiki του Insomnia:

 

FileZilla Server HOWTO

FileZilla και δικτυακές ρυθμίσεις

 

Ευχαριστώ.

 

 

 

 

 

Mini Tutorial: Στήσιμο FTP Server με τον FileZilla Server

 

Συχνά έχει τύχει σε συνομιλίες μου στο MSN να παρουσιάζεται η ανάγκη για ανταλλαγή κάποιου/ων αρχείων. Όταν το προς μεταφορά αρχείο είναι μικρό, γίνεται εύκολα από την αντίστοιχη επιλογή του εκάστοτε Instant Messaging client. Τί γίνεται όμως σε περίπτωση που θέλουμε να μεταφέρουμε κάποιο μεγάλο αρχείο, όπου το μη αποκεντρωμένο μοντέλο των γνωστών IM δικτύων περιορίζει σημαντικά την ταχύτητα? Αν πάλι θέλουμε να έχουμε τη δυνατότητα χρονοπρογραμματισμού των μεταφορών που θέλουμε να κάνουμε, χωρίς ο χρήστης του άλλου άκρου να βρίσκεται αναγκαστικά πάνω από το PC του? Την απάντηση δίνει το πρωτόκολλο μεταφοράς αρχείων FTP.

 

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

Οι συναλλαγές FTP ακολουθούν το μοντέλο client/server. Ο ένας υπολογιστής εκτελεί λογισμικό FTP server, που του δίνει τη δυνατότητα να «ακούει» στη θύρα (συνήθως) 21 απομακρυσμένα αιτήματα για αποστολή/λήψη ενός αρχείου ή τμήματός του. Ο άλλος υπολογιστής συνήθως εκτελεί λογισμικό FTP client για να απευθύνει τα αντίστοιχα αιτήματα. Αν ως client, ενδιαφερόμαστε μόνο για λήψη αρχείου, αυτό το ρόλο μπορούν κάλλιστα να παίξουν και αρκετοί Web Browsers. Στις δοκιμές μου, ο Mozilla Firefox φάνηκε να μεσολαβεί για το authentication και να λαμβάνει αρχεία χωρίς προβλήματα! Αν θέλετε να χρησιμοποιήσετε και κάποιον 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)

Διαδικασία:

 

Τμήμα 1: Εγκατάσταση του FileZilla Server

 

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

 

fzs-01a.png

 

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

 

fzs-02.png

 

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

 

 

Τμήμα 2: Ρυθμίσεις

 

fzs-03a.png

 

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

 

fzs-04a.png

 

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

 

fzs-05a.png

 

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

 

fzs-06.png

 

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

 

fzs-07.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:

 

fzs-08a.png

 

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

 

fzs-09a.png

 

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

 

fzs-10a.png

 

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

 

 

Τμήμα Α: Παράρτημα (Port Forwarding)

 

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

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

 

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

 

 

Τμήμα Β: Παράρτημα (Dynamic IP -> Static Domain Name)

 

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

 

 

Παρατηρήσεις

 

Για περισσότερες λεπτομέρειες στη ρύθμιση του FileZilla Server, όπως τη δημιουργία aliases που θα λειτουργούν ως πολλαπλά home directories ή προβλήματα με το Software Firewall που χρησιμοποιούμε, το FAQ του προγράμματος βρίσκεται εδώ: http://sourceforge.n...&group_id=21558

Για τη δημιουργία του παρόντος tutorial χρησιμοποιήθηκαν οι εξής F.O.S.S. εφαρμογές:

Επίσης, το tutorial υπάρχει και σε μορφή pdf εδώ: pdf (δεξί κλικ -> Save Link As.../ Save Target As...)

 

 

Ευχαριστίες

 

Στον Eusebius, για τις υποδείξεις του και την πρόταση του OptiPNG για τη συμπίεση των εικόνων.

 

 

 

Αναμένω εναγωνίως τα σχόλιά σας για διορθώσεις/βελτιώσεις/προσθήκες!!!

duck.png

 

 

  • Απαντ. 77
  • Δημ.
  • Τελ. απάντηση
Δημοσ.

Ευχαριστούμε για τον οδηγό. Είναι εξυπηρετικά αυτά τα συστήματα, αλλά δύσκολα άμα δεν τα έχεις ξανακάνει...

 

Αφού προσκαλείς να κάνουμε παρατηρήσεις, πάρε μερικές:

 

1. Μην τσιγκουνεύεσαι τα λόγια ή τις εικόνες εκεί που λες για το στήσιμο. Είναι μπέρδεμα αυτά τα προγράμματα την πρώτη φορά. Όσο πιο αναλυτικά τόσο πιο καλά.

 

2. Ένα λινκ για τους φίλους μας που προτιμούν OTENET: http://www.otenet.gr/hd/HTML/abuse_ports.htm

 

3. Θα έβαζα κανονικά τις εικόνες -- όχι σε μικρογραφία. Δεν είναι πολλές. (Και, αν βάλεις κι άλλες, μήπως βγουν μικρότερες σε .png; Συνήθως αυτά τα κάνω .png και μετά τα περνάω μία με το OptiPNG: http://optipng.sourceforge.net/)

 

4. Για πληρότητα, θα έβαζα και μερικά λινκ. Π.χ., αν υπάρχει κανένας σούπερ οδηγός σε καμιά άλλη γλώσσα (ιδέα δεν έχω -- δεν έχω κοιτάξει) ή άλλα παρόμοια προγράμματα ή εναλλακτικές λύσεις. Π.χ., μια εναλλακτική που χρησιμοποιώ για τέτοιες δουλειές είναι ο HTTP File Server: http://insomnia.gr/vb3/showthread.php?t=147543

 

5. Στην οθόνη είναι καλύτερα να χωρίζονται με κενή αράδα οι παράγραφοι. Και επίσης σιχαίνομαι τα υπογραμμισμένα. Αλλʼ αυτό το τελευταίο είναι θέμα γούστου. :-P

 

Αυτά τα ολίγα. :-)

Δημοσ.

Eusebius, ευχαριστώ για το feedback. Ειδικά για μεγαλύτερη λεπτομέρεια κατά την περιγραφή του setup μάλλον έχεις κάποιο δίκιο, γιατί 2-3 άτομα που το είχαν διαβάσει παλιότερα είχαν ακόμη σημαντικές απορίες. Αλλά και οι άλλες παρατηρήσεις είναι εύλογες. Μόλις βρω τον απαραίτητο χρόνο, θα επιδοθώ σίγουρα σε προσπάθεια να το βελτιώσω, γιατί όχι και να ανεβάσω κάπου μία έκδοση σε pdf.

Δημοσ.

Λοιπόν εμένα μου άρεσε γενικά ο οδηγός.

Ήρθε μάλιστα και την κατάλληλη στιγμή που σκέφτομαι να στήσω ένα μηχανηματάκι σε δίκτυο 10Mbit up/down και έψαχνα έναν σχετικά εύκολο τρόπο να παίρνω τα αρχεία που θα έχει (κατεβάζει) στο σπίτι μου.. Πάρα πολύ καλό και μου φαίνεται σχετικά εύκολο...

  • 1 μήνα μετά...
Δημοσ.

Φίλε μου, αυτήν τη στιγμή ξαναδουλεύω τα screenshots που χάθηκαν από το imagehosting.us. Σε λίγο θα διορθωθεί και θα φαίνονται κανονικά.

 

Γι'αυτό που ρωτάς, στο λογαριασμό που έχεις φτιάξει για τον χρήστη που θα συνδέεται στο server, πρέπει εκεί που ορίζεις shared folders να προσθέσεις ένα τικ στις επιλογές για "Write" και "Delete" αρχείων/φακέλων, εξ ορισμού σου δίνει δικαίωμα ανάγνωσης μόνο...

Δημοσ.

Έγινε ριζική αναδιάρθρωση του οδηγού, διορθώθηκε το πρόβλημα με τις εικόνες που είχαν γίνει host στο imagehosting.us και προστέθηκε και δυνατότητα download σε μορφή pdf...

  • 2 εβδομάδες αργότερα...
Δημοσ.

ρε συ parsifal πολύ ωραίος οδηγός και έψαχνα καιρό να στήσω ftp αλλα έχω πρόβλημα το έκανα όλα ωραία καλά και όταν πάω να μπω από έξω δίνω όνομα χρηστη και κωδικό και μου επιστρέφει "error 503 Permission Denied" τι παίζει έχουμε καμια ιδέα ?

Δημοσ.

Σίγουρα σίγουρα; Γιατί, για να φτάσει σε σημείο να σου ζητάει username/password, σημαίνει ότι η συναλλαγή έχει ξεκινήσει και θα έπρεπε να καταγράψει τουλάχιστον κάτι σαν τα παρακάτω:

 

>(000001) 3/20/2007 23:10:06 μμ - (not logged in) (83.212.xxx.xxx)> USER xxx
(000001) 3/20/2007 23:10:06 μμ - (not logged in) (83.212.xxx.xxx)> 331 Password required for xxx
(000001) 3/20/2007 23:10:07 μμ - (not logged in) (83.212.xxx.xxx)> PASS ***

 

Για ξανακοίτα λίγο το screenshot στον οδηγό όπου φαίνονται οι ρυθμίσεις για το logging και σύγκρινέ τες. Τα logs γράφονται στον κατάλογο που είναι εγκατεστημένος ο FileZilla server, σε έναν υποκατάλογο με όνομα "Logs"...

Δημοσ.

λοιπόν τελικά με τη βοήθεια του parsifal και τα μεγάλα του @@ έτσι όπως του τα έκανα :D το κατάφερα και τω έστησα τελικά η όλη ιστορία ήταν τω speedtouch μου γιατί τω καθορισμένο rule για Ftp server δεν έκανε καλά την δουλειά του οποτε φτιάξαμε ένα δικό μας με τις τιμές

 

Protocol : Any

Port Range : 21 To 21

Translate To ... : 21

Trigger Protocol : Τίποτα

Trigger Port : Τίποτα

 

και το security τις otenet στο off όπως είπε ο Eusebius

 

Ενα μεγάλο ευχάριστο στον parsifal για την υπομονή που διέθεσε και τω πρήξιμο που έκατσε και έφαγε :D

Δημοσ.

Παιδια αν πχ θελω να κανω φτπ σερβερ για ολο το κοσμο και δεν θελω να βαλω κοδικους προσβασης για τον καθε user που μπορει να με επισκεφτει,πως το κανω?

Δημοσ.

Θα δημιουργήσεις ένα account με username: anonymous και θα αφήσεις κενό το πεδίο του password.

Προσοχή στα δικαιώματα write/delete και τον υποκατάλογο που θα ορίσεις ως home dir. Δε θα ήθελες φαντάζομαι να βάλεις κατά λάθος το C:\ με full access για read/write!!! :mrgreen:

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

Επισκέπτης
Αυτό το θέμα είναι πλέον κλειστό για περαιτέρω απαντήσεις.
  • Δημιουργία νέου...