Ειναι αρκετες φορες που εχουμε πει σε φιλους/γνωστους ,"αναιβασε καπου τα αρχεια συμπιεσμενα για να τα κατεβασω..." οποτε ψαχνωμαστε για το που μπορουμε να αναιβασουμε μερικα GB αρχεια. Εδω θα δουμε πως μπορουμε να στησουμε σε linux FTP Server ο οποιος θα δινει την δυνατοτητα μονο για download απο anonymous user και οχι upload. Για το στησιμο του χρησιμοποιηθηκε ο vsftpd σε λειτουργικο Slackware-Current
panthro@thundercats:~$ /usr/sbin/vsftpd -v vsftpd: version 2.1.2 panthro@thundercats:~$
Σαν root ελεγχουμε αν υπαρχει ο vsftpd εγκατεστημενος , by default ειναι στο Slackware, διαφορετικα τον κανουμε install με τον packet manager της διανομης μας.
Επειτα ελεγχουμε αν υπαρχει ο user ftp και αν υπαρχει o folder /home/ftp οπως φαινονται παρακατω
panthro@thundercats:~$ grep ftp /etc/passwd ftp:x:14:50::/home/ftp:/bin/false panthro@thundercats:~$ ls -ld /home/ftp/ drwxr-xr-x 3 root root 4096 2009-06-06 23:37 /home/ftp// panthro@thundercats:~$
Αφου εχουμε παρει root access στο /etc/ θα βρουμε το αρχειο vsftpd.conf το οποιο ειτε θα βρισκεται χυμα στο /etc/ ειτε σε καποιον φακελο με το ιδιο ονομα.
Πριν πειραξουμε το vsftpd.conf δημιουργουμε ενα αντιγραφο ασφαλειας: cp /etc/vsftpd.conf /etc/vsftpd.conf.orig και στην συνεχεια ανοιγουμε το vsftpd.conf με τον editor που προτειμαμε και σβηνουμε ολο το περιεχομενο του, και γραφουμε τα παρακατω
Μεσα στον φακελο /home/ftp φτιαχνουμε ενα αλλο folder ασ τον πουμε... movies ο οποιος εχει τα εξεις δικαιωματα
panthro@thundercats:~$ ls -ld /home/ftp/movies dr-xr-xr-x 4 ftp ftp 4096 2009-06-03 14:24 /home/ftp/movies/ panthro@thundercats:~$
Μεσα σε αυτον τον φακελο θα βαζουμε οτι θελουμε σε συμπιεσμενη μορφη, αφου δεν επιτρεπουμε το πολλαπλο 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
- Συνδεθείτε ή εγγραφείτε για να σχολιάσετε
Σχόλια
μπράβο ρε slack
ξέρεις πόσες φορές χρειάστηκα κάτι τέτοιο ??
και εγω το χρειαστηκα... μια φορα :) αλλα θα σου λιγιση η συνδεση... σε προειδοποιω
[oprime@dexter]$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
[oprime@dexter]$uname -a | awk '{print $1, "on the ROCKS"}' | sed -e 's/on\ the\ ROCKS/ROCKS/'