Android

Πώς να ρυθμίσετε τον ftp server με vsftpd σε centos 7

Εγκατάσταση τοπικού server

Εγκατάσταση τοπικού server

Πίνακας περιεχομένων:

Anonim

Το FTP (Πρωτόκολλο μεταφοράς αρχείων) είναι ένα τυπικό πρωτόκολλο δικτύου πελάτη-εξυπηρετητή που επιτρέπει στους χρήστες να μεταφέρουν αρχεία από και προς απομακρυσμένο δίκτυο.

Υπάρχουν αρκετοί διακομιστές FTP ανοιχτού κώδικα διαθέσιμοι για το Linux. Τα πιο δημοφιλή και ευρέως χρησιμοποιούμενα είναι τα PureFTPd, ProFTPD και vsftpd.

Σε αυτό το σεμινάριο, θα εγκαταστήσουμε το vsftpd (Very Secure Ftp Daemon) στο CentOS 7. Είναι ένας σταθερός, ασφαλής και γρήγορος διακομιστής FTP. Θα σας δείξουμε επίσης πώς μπορείτε να διαμορφώσετε το vsftpd για να περιορίσετε τους χρήστες στον οικείο κατάλογό τους και να κρυπτογραφήσετε ολόκληρη τη μετάδοση με SSL / TLS.

Για πιο ασφαλή και ταχύτερη μεταφορά δεδομένων, χρησιμοποιήστε SCP ή SFTP.

Προϋποθέσεις

Πριν συνεχίσετε με αυτό το σεμινάριο, βεβαιωθείτε ότι έχετε συνδεθεί ως χρήστης με δικαιώματα sudo.

Εγκατάσταση του vsftpd στο CentOS 7

Το πακέτο vsftpd είναι διαθέσιμο στα προεπιλεγμένα αποθετήρια CentOS. Για να το εγκαταστήσετε, εκδώστε την ακόλουθη εντολή:

sudo yum install vsftpd

Μόλις εγκατασταθεί το πακέτο, ξεκινήστε το dafton vsftpd και αφήστε το να ξεκινήσει αυτόματα κατά την εκκίνηση:

sudo systemctl start vsftpd sudo systemctl enable vsftpd

Μπορείτε να επαληθεύσετε ότι η υπηρεσία vsftpd εκτελείται εκτυπώνοντας την κατάστασή της:

sudo systemctl status vsftpd

Η έξοδος θα φαίνεται κάπως παρακάτω, δείχνοντας ότι η υπηρεσία vsftpd είναι ενεργή και λειτουργεί:

● vsftpd.service - Vsftpd ftp daemon Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2018-11-22 09:42:37 UTC; 6s ago Main PID: 29612 (vsftpd) CGroup: /system.slice/vsftpd.service └─29612 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

Διαμόρφωση του vsftpd

Η διαμόρφωση της υπηρεσίας vsftpd περιλαμβάνει την επεξεργασία του /etc/vsftpd/vsftpd.conf ρυθμίσεων /etc/vsftpd/vsftpd.conf . Οι περισσότερες από τις ρυθμίσεις είναι καλά τεκμηριωμένες μέσα στο αρχείο διαμόρφωσης. Για όλες τις διαθέσιμες επιλογές επισκεφθείτε την επίσημη σελίδα vsftpd.

Στις επόμενες ενότητες θα αναφερθούμε σε κάποιες σημαντικές ρυθμίσεις που απαιτούνται για τη διαμόρφωση μιας ασφαλούς εγκατάστασης vsftpd.

Ξεκινήστε ανοίγοντας το αρχείο ρυθμίσεων vsftpd:

sudo nano /etc/vsftpd/vsftpd.conf

1. Πρόσβαση FTP

Θα επιτρέψουμε την πρόσβαση στον εξυπηρετητή FTP μόνο στους τοπικούς χρήστες, να βρούμε τις οδηγίες anonymous_enable και local_enable και να επαληθεύσουμε την αντιστοίχιση διαμόρφωσης με τις παρακάτω γραμμές:

/etc/vsftpd/vsftpd.conf

anonymous_enable=NO local_enable=YES

2. Ενεργοποίηση μεταφορτώσεων

write_enable ρύθμιση write_enable για να επιτρέψετε αλλαγές στο σύστημα αρχείων, όπως φόρτωση και διαγραφή αρχείων.

/etc/vsftpd/vsftpd.conf

write_enable=YES

3. Η φυλακή του Chroot

Αποτρέψτε τους χρήστες FTP να έχουν πρόσβαση σε οποιαδήποτε αρχεία εκτός των οικείων καταλόγων τους, αποσυνδέοντας την οδηγία chroot .

/etc/vsftpd/vsftpd.conf

chroot_local_user=YES

Από προεπιλογή, όταν είναι ενεργοποιημένο το chroot, το vsftpd θα αρνηθεί να μεταφορτώσει αρχεία εάν ο κατάλογος στον οποίο είναι κλειδωμένοι οι χρήστες είναι εγγράψιμος. Αυτό είναι για να αποφευχθεί μια ευπάθεια ασφαλείας.

Χρησιμοποιήστε μία από τις παρακάτω μεθόδους για να επιτρέψετε μεταφορτώσεις όταν ενεργοποιείται το chroot.

  • Μέθοδος 1. - Η συνιστώμενη μέθοδος για να επιτρέψετε τη μεταφόρτωση είναι να διατηρήσετε το chroot ενεργοποιημένο και να διαμορφώσετε τους καταλόγους FTP. Σε αυτό το σεμινάριο, θα δημιουργήσουμε έναν κατάλογο ftp μέσα στο σπίτι του χρήστη που θα χρησιμεύσει ως chroot και ένας εγγράψιμος κατάλογος μεταφορτώσεων για την αποστολή αρχείων.

    /etc/vsftpd/vsftpd.conf

    user_sub_token=$USER local_root=/home/$USER/ftp

    Μέθοδος 2. - Μια άλλη επιλογή είναι να προσθέσετε την ακόλουθη οδηγία στο αρχείο ρυθμίσεων vsftpd. Χρησιμοποιήστε αυτήν την επιλογή εάν πρέπει να παραχωρήσετε εγγράψιμη πρόσβαση στο χρήστη στον οικείο κατάλογό του.

    /etc/vsftpd/vsftpd.conf

    allow_writeable_chroot=YES

4. Παθητικές συνδέσεις FTP

Το vsftpd μπορεί να χρησιμοποιήσει οποιαδήποτε θύρα για παθητικές συνδέσεις FTP. Θα καθορίσουμε το ελάχιστο και το μέγιστο εύρος θυρών και αργότερα θα ανοίξουμε το φάσμα στο τείχος προστασίας μας.

Προσθέστε τις ακόλουθες γραμμές στο αρχείο διαμόρφωσης:

/etc/vsftpd/vsftpd.conf

pasv_min_port=30000 pasv_max_port=31000

5. Περιορισμός της σύνδεσης χρήστη

Για να επιτρέπεται μόνο σε ορισμένους χρήστες να συνδεθούν στο διακομιστή FTP, προσθέστε τις ακόλουθες γραμμές μετά τη userlist_enable=YES :

/etc/vsftpd/vsftpd.conf

userlist_file=/etc/vsftpd/user_list userlist_deny=NO

Όταν αυτή η επιλογή είναι ενεργοποιημένη, πρέπει να καθορίσετε ρητά ποιοι χρήστες μπορούν να συνδεθούν προσθέτοντας τα ονόματα χρηστών στο αρχείο /etc/vsftpd/user_list (ένας χρήστης ανά γραμμή).

6. Διασφάλιση μεταδόσεων με SSL / TLS

Για να κρυπτογραφήσετε τις μεταδόσεις FTP με SSL / TLS, θα χρειαστεί να έχετε ένα πιστοποιητικό SSL και να διαμορφώσετε το διακομιστή FTP για να το χρησιμοποιήσετε.

Μπορείτε να χρησιμοποιήσετε ένα υπάρχον πιστοποιητικό SSL που έχει υπογραφεί από μια αξιόπιστη αρχή έκδοσης πιστοποιητικών ή να δημιουργήσετε ένα πιστοποιητικό που έχετε υπογράψει αυτόματα.

Σε αυτό το σεμινάριο, θα δημιουργήσουμε ένα πιστοποιητικό SSL που θα υπογράψει αυτόματα χρησιμοποιώντας την εντολή openssl .

Η ακόλουθη εντολή θα δημιουργήσει ένα ιδιωτικό κλειδί 2048-bit και αυτό-υπογεγραμμένο πιστοποιητικό που θα ισχύει για 10 χρόνια. Τόσο το ιδιωτικό κλειδί όσο και το πιστοποιητικό θα αποθηκευτούν σε ένα ίδιο αρχείο:

sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem

Μόλις δημιουργηθεί το πιστοποιητικό SSL, ανοίξτε το αρχείο ρυθμίσεων vsftpd:

sudo nano /etc/vsftpd/vsftpd.conf

Βρείτε τις rsa_cert_file και rsa_private_key_file , αλλάξτε τις τιμές τους στη διαδρομή του αρχείου pam και ρυθμίστε την οδηγία ssl_enable σε YES :

/etc/vsftpd/vsftpd.conf

rsa_cert_file=/etc/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/vsftpd.pem ssl_enable=YES

Εάν δεν ορίζεται διαφορετικά, ο διακομιστής FTP θα χρησιμοποιεί μόνο TLS για να κάνει ασφαλείς συνδέσεις.

Κάντε επανεκκίνηση της υπηρεσίας vsftpd

Μόλις τελειώσετε την επεξεργασία, το αρχείο ρυθμίσεων vsftpd (εξαιρουμένων των σχολίων) θα πρέπει να φαίνεται κάπως έτσι:

/etc/vsftpd/vsftpd.conf

anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES chroot_local_user=YES listen=NO listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES userlist_file=/etc/vsftpd/user_list userlist_deny=NO tcp_wrappers=YES user_sub_token=$USER local_root=/home/$USER/ftp pasv_min_port=30000 pasv_max_port=31000 rsa_cert_file=/etc/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/vsftpd.pem ssl_enable=YES

Αποθηκεύστε το αρχείο και κάντε επανεκκίνηση της υπηρεσίας vsftpd για να εφαρμοστούν οι αλλαγές:

sudo systemctl restart vsftpd

Άνοιγμα του τείχους προστασίας

Για να ανοίξετε τη θύρα 21 (θύρα εντολών FTP), θύρα 20 (θύρα δεδομένων FTP) και 30000-31000 (περιοχή παθητικών θυρών), 30000-31000 τις ακόλουθες εντολές:

sudo firewall-cmd --permanent --add-port=20-21/tcp sudo firewall-cmd --permanent --add-port=30000-31000/tcp

Επαναφόρτωση των κανόνων του τείχους προστασίας πληκτρολογώντας:

firewall-cmd --reload

Δημιουργία χρήστη FTP

Για να ελέγξουμε τον διακομιστή FTP, θα δημιουργήσουμε έναν νέο χρήστη.

  • Αν έχετε ήδη έναν χρήστη που θέλετε να παραχωρήσετε πρόσβαση FTP, παραλείψτε το πρώτο βήμα. Εάν ορίσετε το allow_writeable_chroot=YES στο αρχείο ρυθμίσεων, παραλείψτε το 3ο βήμα.
  1. Δημιουργήστε ένα νέο χρήστη με όνομα newftpuser :

    sudo adduser newftpuser

    Στη συνέχεια, θα πρέπει να ορίσετε τον κωδικό πρόσβασης χρήστη:

    sudo passwd newftpuser

    Προσθέστε τον χρήστη στην επιτρεπόμενη λίστα χρηστών FTP:

    echo "newftpuser" | sudo tee -a /etc/vsftpd/user_list

    Δημιουργήστε την δέντρο καταλόγου FTP και ορίστε τα σωστά δικαιώματα:

    sudo mkdir -p /home/newftpuser/ftp/upload sudo chmod 550 /home/newftpuser/ftp sudo chmod 750 /home/newftpuser/ftp/upload sudo chown -R newftpuser: /home/newftpuser/ftp

    Όπως αναφέρθηκε στην προηγούμενη ενότητα, ο χρήστης θα μπορεί να ανεβάσει τα αρχεία του στον κατάλογο ftp/upload .

Σε αυτό το σημείο ο διακομιστής FTP είναι πλήρως λειτουργικός και θα πρέπει να είστε σε θέση να συνδεθείτε στο διακομιστή σας με οποιοδήποτε πρόγραμμα-πελάτη FTP που μπορεί να ρυθμιστεί ώστε να χρησιμοποιεί κρυπτογράφηση TLS όπως το FileZilla.

Απενεργοποίηση πρόσβασης Shell

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

Για να απενεργοποιήσετε την πρόσβαση στο κέλυφος, θα δημιουργήσουμε ένα νέο κέλυφος που θα τυπώνει απλά ένα μήνυμα που θα λέει στο χρήστη ότι ο λογαριασμός του περιορίζεται μόνο στην πρόσβαση FTP.

Εκτελέστε τις ακόλουθες εντολές για να δημιουργήσετε το κέλυφος /bin/ftponly και κάντε το εκτελέσιμο:

echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly sudo chmod a+x /bin/ftponly

Προσθέστε το νέο κέλυφος στη λίστα έγκυρων κελυφών στο αρχείο /etc/shells :

echo "/bin/ftponly" | sudo tee -a /etc/shells

Αλλάξτε το κέλυφος χρήστη στο /bin/ftponly :

sudo usermod newftpuser -s /bin/ftponly

Χρησιμοποιήστε την ίδια εντολή για να αλλάξετε το κέλυφος για άλλους χρήστες που θέλετε να δώσετε μόνο πρόσβαση FTP.

συμπέρασμα

Σε αυτό το σεμινάριο μάθατε πώς να εγκαταστήσετε και να διαμορφώσετε έναν ασφαλή και γρήγορο διακομιστή FTP στο σύστημα CentOS 7.

ftp centos