Το Πρωτόκολλο Μεταφοράς Αρχείων (FTP) είναι ένα πρωτόκολλο TCP για την αποστολή και τη λήψη αρχείων μεταξύ υπολογιστών. Το FTP λειτουργεί με ένα μοντέλο πελάτη/εξυπηρετητή. Το κομμάτι του εξυπηρετητή ονομάζεται υπηρεσία (daemon) FTP. Περιμένει συνεχώς για αιτήματα FTP από απομακρυσμένους πελάτες. Μόλις ληφθεί ένα αίτημα, πραγματοποιεί την είσοδο και δημιουργεί την σύνδεση. Για τη διάρκεια της συνεδρίας, εκτελεί οποιαδήποτε εντολή αποστέλλεται από τον πελάτη FTP.
Η πρόσβαση σε έναν εξυπηρετητή FTP μπορεί να επιτευχθεί με δύο τρόπους:
-
Ανώνυμη
-
Πιστοποιημένη
Στην ανώνυμη λειτουργία, οι απομακρυσμένοι πελάτες μπορούν να έχουν πρόσβαση στον εξυπηρετητή FTP χρησιμοποιώντας τον προεπιλεγμένο λογαριασμό χρήστη που ονομάζεται "anonymous" ή "ftp" και στέλνοντας μια διεύθυνση email για κωδικό πρόσβασης. Η πρόσβαση του χρήστη στους καταλόγους και τα αρχεία του εξυπηρετητή FTP εξαρτάται από τα δικαιώματα που έχουν οριστεί για τον λογαριασμό που χρησιμοποιείται κατά την είσοδο. Κατά γενικό κανόνα, η υπηρεσία FTP θα αποκρύψει τον κατάλογο root του εξυπηρετητή FTP και θα τον αλλάξει στον αρχικό κατάλογο FTP. Αυτό αποκρύπτει το υπόλοιπο σύστημα αρχείων από απομακρυσμένες συνεδρίες.
Το vsftpd είναι μια υπηρεσία FTP διαθέσιμη στο Ubuntu. Είναι εύκολο στην εγκατάσταση, στη ρύθμιση και στη συντήρηση. Για να εγκαταστήσετε το vsftpd μπορείτε να εκτελέσετε την ακόλουθη εντολή:
sudo apt-get install vsftpd
Από προεπιλογή, το vsftpd είναι ρυθμισμένο να επιτρέπει μόνο ανώνυμες λήψεις. Κατά την εγκατάσταση, δημιουργείται ένας χρήστης ftp με αρχικό κατάλογο τον /home/ftp. Αυτός είναι ο προεπιλεγμένος κατάλογος FTP.
Αν επιθυμείτε να αλλάξετε αυτή την τοποθεσία, σε /srv/ftp για παράδειγμα, απλά δημιουργήστε έναν κατάλογο σε μια διαφορετική τοποθεσία και αλλάξτε τον αρχικό κατάλογο του χρήστη ftp:
sudo mkdir /srv/ftp sudo usermod -d /srv/ftp ftp
Αφού κάνετε την αλλαγή, επανεκκινήστε το vsftpd:
sudo /etc/init.d/vsftpd restart
Τέλος, αντιγράψτε τα αρχεία και τους καταλόγους που θέλετε να κάνετε διαθέσιμους μέσω ανώνυμου FTP στο /srv/ftp.
Για να ρυθμίσετε το vsftpd ώστε να πιστοποιεί χρήστες συστήματος και να τους επιτρέπει να αποστέλλουν αρχεία, επεξεργαστείτε το /etc/vsftpd.conf:
local_enable=YES write_enable=YES
Τώρα επανεκκινήστε το vsftpd:
sudo /etc/init.d/vsftpd restart
Τώρα, όταν οι χρήστες του συστήματος συνδέονται στο FTP, θα ξεκινούν στους αρχικούς καταλόγους τους, όπου μπορούν να κάνουν λήψη, αποστολή, δημιουργία καταλόγων, κτλ.
Παρομοίως, από προεπιλογή, οι ανώνυμοι χρήστες δεν επιτρέπεται να κάνουν αποστολή αρχείων στον εξυπηρετητή FTP. Για να αλλάξετε αυτή τη ρύθμιση, θα πρέπει να αποσχολιάσετε την ακόλουθη γραμμή και να επανεκκινήσετε το vsftpd:
anon_upload_enable=YES
|
|
|
Η ενεργοποίηση της ανώνυμης αποστολής FTP μπορεί να είναι ακραίος κίνδυνος ασφαλείας. Είναι καλύτερα να μην ενεργοποιήσετε την ανώνυμη αποστολή σε εξυπηρετητές στους οποίους είναι δυνατή η πρόσβαση απευθείας από το διαδίκτυο. |
Το αρχείο ρυθμίσεων αποτελείται από πολλές παραμέτρους ρύθμισης. Οι πληροφορίες για κάθε παράμετρο είναι διαθέσιμες στο αρχείο ρυθμίσεων. Εναλλακτικά, μπορείτε να αναφερθείτε στη σελίδα man - man 5 vsftpd.conf - για λεπτομέρειες για κάθε παράμετρο.
Υπάρχουν επιλογές στο /etc/vsftpd.conf που βοηθάνε στο να κάνετε το vsftpd πιο ασφαλές. Για παράδειγμα οι χρήστες μπορούν να περιοριστούν στους αρχικούς τους καταλόγους αν αποσχολιάσετε το:
chroot_local_user=YES
Μπορείτε επίσης να περιορίσετε μόνο μια συγκεκριμένη λίστα χρηστών στους αρχικούς τους καταλόγους:
chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list
Αφού αποσχολιάσετε τις παραπάνω επιλογές, δημιουργήστε ένα αρχείο /etc/vsftpd.chroot_list που περιέχει μια λίστα χρηστών - έναν σε κάθε γραμμή. Μετά επανεκκινήστε το vsftpd:
sudo /etc/init.d/vsftpd restart
Επίσης το αρχείο /etc/ftpusers είναι μια λίστα χρηστών στους οποίους δεν επιτρέπεται η πρόσβαση FTP. Η προεπιλεγμένη λίστα περιέχει τους χρήστες root, daemon, nobody, κτλ. Για να απενεργοποιήσετε την πρόσβαση FTP σε επιπλέον χρήστες, απλά προσθέστε τους στη λίστα.
Το FTP μπορεί επίσης να κρυπτογραφηθεί με τη χρήση του FTPS. Διαφορετικό από το SFTP, το FTPS είναι FTP μέσω Secure Socket Layer (SSL). Το SFTP είναι μια συνεδρία παρόμοια με το FTP μέσω μιας κρυπτογραφημένης σύνδεσης SSH. Μία βασική διαφορά είναι πως οι χρήστες του SFTP πρέπει να έχουν έναν λογαριασμό shell στο σύστημα, αντί κάποιου κελύφους nologin. Η παροχή ενός κελύφους σε όλους τους χρήστες μπορεί να μην είναι ιδανική σε κάποια περιβάλλοντα, όπως σε έναν κοινόχρηστο υπολογιστή φιλοξενίας ιστοσελίδων.
Για να ρυθμίσετε το FTPS, επεξεργαστείτε το αρχείο /etc/vsftpd.conf και στο τέλος του προσθέστε:
ssl_enable=Yes
Επίσης, παρατηρήστε τις επιλογές σχετικά με το πιστοποιητικό και το κλειδί:
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
By default these options are set the certificate and key provided by the ssl-cert package. In a production environment these should be replaced with a certificate and key generated for the specific host. For more information on certificates see “Πιστοποιητικά”.
Τώρα επανεκκινήστε το vsftpd, και οι μη-ανώνυμοι χρήστες θα είναι αναγκασμένοι να χρησιμοποιούν το FTPS:
sudo /etc/init.d/vsftpd restart
To allow users with a shell of /usr/sbin/nologin access to FTP, but have no shell access,
edit /etc/shells adding the nologin shell:
# /etc/shells: έγκυρα κελύφη εισόδου /bin/csh /bin/sh /usr/bin/es /usr/bin/ksh /bin/ksh /usr/bin/rc /usr/bin/tcsh /bin/tcsh /usr/bin/esh /bin/dash /bin/bash /bin/rbash /usr/bin/screen /usr/sbin/nologin
Αυτό είναι απαραίτητο επειδή, από προεπιλογή το vsftpd χρησιμοποιεί το PAM για πιστοποίηση και το αρχείο ρυθμίσεων /etc/pam.d/vsftpd περιέχει το παρακάτω:
auth required pam_shells.so
Το άρθρωμα PAM shells περιορίζει την πρόσβαση στα κελύφη που υπάρχουν στο αρχείο /etc/shells.
Οι πιο διάσημοι πελάτες FTP μπορούν να ρυθμιστούν ώστε να συνδέονται μέσω FTPS. Ο πελάτης FTP γραμμής εντολών lftp έχει τη δυνατότητα να χρησιμοποιήσει FTPS επίσης.
-
Δείτε τον ιστότοπο του vsftpd για περισσότερες πληροφορίες.
-
For detailed
/etc/vsftpd.confoptions see the vsftpd.conf man page. -
Το άρθρο του CodeGurus FTPS vs. SFTP: What to Choose έχει χρήσιμες πληροφορίες σύγκρισης του FTPS με το SFTP.
-
Also, for more information see the Ubuntu Wiki vsftpd page.

