How to setup VSFTP

slackware | Τετ, 06/17/2009 - 15:03 | 7' | 4

Ειναι αρκετες φορες που εχουμε πει σε φιλους/γνωστους ,"αναιβασε καπου τα αρχεια συμπιεσμενα για να τα κατεβασω..." οποτε ψαχνωμαστε για το που μπορουμε να αναιβασουμε μερικα GB αρχεια. Εδω θα δουμε πως μπορουμε να στησουμε σε linux FTP Server ο οποιος θα δινει την δυνατοτητα μονο για download απο anonymous user και οχι upload. Για το στησιμο του χρησιμοποιηθηκε ο vsftpd σε λειτουργικο Slackware-Current

[email protected]:~$ /usr/sbin/vsftpd -v
vsftpd: version 2.1.2
[email protected]:~$

 

Σαν root ελεγχουμε αν υπαρχει ο vsftpd εγκατεστημενος , by default ειναι στο Slackware, διαφορετικα τον κανουμε install με τον packet manager της διανομης μας.

Επειτα ελεγχουμε αν υπαρχει ο user ftp και αν υπαρχει o folder /home/ftp οπως φαινονται παρακατω

[email protected]:~$ grep ftp /etc/passwd
ftp:x:14:50::/home/ftp:/bin/false
[email protected]:~$ ls -ld /home/ftp/
drwxr-xr-x 3 root root 4096 2009-06-06 23:37 /home/ftp//
[email protected]:~$

 

Αφου εχουμε παρει root access στο /etc/ θα βρουμε το αρχειο vsftpd.conf το οποιο ειτε θα βρισκεται χυμα στο /etc/ ειτε σε καποιον φακελο με το ιδιο ονομα.

Πριν πειραξουμε το vsftpd.conf δημιουργουμε ενα αντιγραφο ασφαλειας: cp /etc/vsftpd.conf /etc/vsftpd.conf.orig και στην συνεχεια ανοιγουμε το vsftpd.conf με τον editor που προτειμαμε και σβηνουμε ολο το περιεχομενο του, και γραφουμε τα παρακατω

Μεσα στον φακελο /home/ftp φτιαχνουμε ενα αλλο folder ασ τον πουμε... movies ο οποιος εχει τα εξεις δικαιωματα

[email protected]:~$ ls -ld /home/ftp/movies
dr-xr-xr-x 4 ftp ftp 4096 2009-06-03 14:24 /home/ftp/movies/
[email protected]:~$

Μεσα σε αυτον τον φακελο θα βαζουμε οτι θελουμε σε συμπιεσμενη μορφη, αφου δεν επιτρεπουμε το πολλαπλο download αρχειων :--p

#########################Begin vsftpd.conf###########################

cmds_allowed=USER,LIST,NLST,CWD,PWD,RETR,PORT,PASV,QUIT   #Ποιες εντολες θα μπορεσει να δωσει ο χρηστης
anonymous_enable=YES #Επιτρεπει να συνδεθει ο οποιοσδηποτε
anon_root=/home/ftp/movies #Ποιο θα ειναι το directory για τον anonymous user
local_enable=NO #Οι τοπικοι χρηστες ΔΕΝ μπορουν να συνδεθουν
write_enable=NO #ΔΕΝ υπαρχουν δικαιωματα εγγραφης
local_umask=022
anon_upload_enable=NO #Ο anonymous user ΔΕΝ μπορει να κανει upload
anon_mkdir_write_enable=NO #Ο anonymous user ΔΕΝ μπορει να φτοιαξει φακελους
anon_other_write_enable=NO #Ο anonymous user ΔΕΝ μπορει να γραψει
anon_world_readable_only=YES #Ειναι αναγνωσιμο απο ολη την υφηλιο
dirmessage_enable=YES #Εμφανιζει μυνημα
xferlog_enable=YES #Κραταει log
connect_from_port_20=YES #Το connection για τα data θα γινει στην 20 port
xferlog_file=/var/log/vsftpd.log #Που θα κραταει τα logs
xferlog_std_format=YES #To format που θα τα κραταει
idle_session_timeout=300 #Ποτε θα λιξει το session
data_connection_timeout=120 #Ποτε θα λιξει το session για τα data
ascii_upload_enable=NO #ΔΕΝ μπορει να κανει upload σε ascii
ascii_download_enable=NO #ΔΕΝ μπορει να κανει download σε ascii
ftpd_banner=Anonymous ftp server. Username: anonymous Password: any_email_address_you_want #Τι μυνημα θα εμφανιζει σε command ftp client πριν το authentication
deny_email_enable=YES #Αρνείται την προσβαση σε ορισμενα email address
# (default follows)
banned_email_file=/etc/vsftpd.banned_emails #που βρισκονται σε αυτο το αρχειο (vsftpd.banned_emails). Βολικο για οσους προσπαθουν να κανου DoS
ls_recurse_enable=YES #Ειναι ενεργοποιημενο για το ncftp & mirror ωστε να μπορει να δει καποιος τα περιεχομενα ενο φακελου
listen=YES #Τρεχει σε local mode ;-) #########################End vsftpd.conf###########################

Ας δουμε λιγο αυτες τις εντολες...

cmds_allowed=USER,LIST,NLST,CWD,PWD,RETR,PORT,PASV,QUIT

USER = Χρειαζεται για να γινει το authentication

LIST = Η γνωστη σε ολους ls

NLST = κανει οτι και η παραπανω

CWD = Η γνωστη σε ολους cd

PWD = Η γνωστη σε ολους pwd (χρειαζεται για τους γραφικους ftp clients)

RETR = Για να μπορεσει να κανει download τα αρχει που θελει

PORT = Ποια πορτα θα δηλωσει για να κανει το connection. Πχ. ftp <ip_address> 2121

PASV = Για να μπορεσει να κανει download τα αρχει που θελει σε pasv mode (by default την χρησιμοποιυν ολοι οι ftp clients)

QUIT = Disconnect

 

περισσοτερα θα βρειτε στο site http://www.nsftools.com/tips/RawFTP.htm

 

Μολις γινει το connection τοτε θα μπει στον /home/ftp/movies και απο εκει θα κανει download αυτα που θελει... ποσο γρηγορα, αυτο εξαρταται απο την γραμμη σας.

Φυσικα μεχρι να τελειωσει, η συνδεση σας θα ειναι εκνευριστικα αργη.

 

Αυτα. Αν εχω γραψει κατι λαθος (περαν της ορθογραφιας) ή θελετε να συμπλησωσετε κατι στειλτε pm.

PORT FORWARDING

Θα πρεπει να κανετε port forward τις πορτες 20/tcp, 21/tcp εκτος και αν εχετε το UPnP ενεργοποιημενο οπου τοτε ενδεχομενος να μην χρειαζεται.

Το παρακατω link εξηγει τι ειναι το port forward

http://www.portforward.com/guides.htm

Thanks gnu_labis για το link

Slackware

Δώσε αστέρια!
Σχόλια

 και εγω το χρειαστηκα... μια φορα :) αλλα θα σου λιγιση η συνδεση... σε προειδοποιω

 

[[email protected]]$uname -a | awk '{print $1, "on the ROCKS"}' | sed -e 's/on\ the\ ROCKS/ROCKS/'

 

Άλλο ένα μπράβο κ από μένα.

Απο εμπειρία πιστεύω ότι οι μισοί κολλάνε στο πώς να στήσουν τον εξυπηρετητή FTP, κ οι άλλοι μισοί στο port forwarding αφού συνήθως βρίσκονται πίσω από κάποιο router. Οπότε για να είναι πλήρεις οι οδηγίες, νομίζω ότι πρέπει να προσθέσεις μερικά σχετικά με τη θύρα του FTP κ την πιθανή ανάγκη του να πρέπει να γίνει forward από το router.

Εναλλακτικά, αν βαριέσαι να γράφεις μπορείς να βάλεις ένα link στο:

http://www.portforward.com/guides.htm

-- gnu_labis

Το Linux ΔΕΝ είναι Windows!!!

 μα εννοειτε οτι πρεπει να κανεις port forwrding... αλλα επειδει βαριεμαι να γραφω θα βαλω το link

 

[[email protected]]$uname -a | awk '{print $1, "on the ROCKS"}' | sed -e 's/on\ the\ ROCKS/ROCKS/'