Ασφαλείς συνδέσεις ProFTPD με χρήση πρωτοκόλλου TLS/SSL στο RHEL/CentOS 7


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

Απαιτήσεις

  1. Εγκατάσταση διακομιστή ProFTPD σε RHEL/CentOS 7
  2. Ενεργοποίηση ανώνυμου λογαριασμού για διακομιστή Proftpd στο RHEL/CentOS 7

Αυτός ο οδηγός θα σας καθοδηγήσει για το πώς μπορείτε να ασφαλίσετε και να κρυπτογραφήσετε την επικοινωνία FTP στον διακομιστή ProFTPd στο CentOS/RHEL 7 , χρησιμοποιώντας TLS (Transport Layer Security) με Explicit FTPS επέκταση (σκεφτείτε στο FTPS τι είναι το HTTPS για το πρωτόκολλο HTTP).

Βήμα 1: Δημιουργήστε το αρχείο διαμόρφωσης μονάδας Proftpd TLS

1. Όπως συζητήθηκε σε προηγούμενο σεμινάριο Proftpd σχετικά με τον ανώνυμο λογαριασμό, αυτός ο οδηγός θα χρησιμοποιήσει επίσης την ίδια προσέγγιση για τη διαχείριση αρχείων μελλοντικών διαμορφώσεων Proftpd ως λειτουργικές μονάδες, με τη βοήθεια των enabled_mod και < καταλόγους b>disabled_mod, οι οποίοι θα φιλοξενούν όλες τις εκτεταμένες δυνατότητες του διακομιστή.

Επομένως, δημιουργήστε ένα νέο αρχείο με τον αγαπημένο σας επεξεργαστή κειμένου με το όνομα tls.conf στη διαδρομή disabled_mod Proftpd και προσθέστε τις ακόλουθες οδηγίες.

# nano /etc/proftpd/disabled_mod/tls.conf

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

<IfModule mod_tls.c>
TLSEngine                               on
TLSLog                                  /var/log/proftpd/tls.log
TLSProtocol                             SSLv23
 
TLSRSACertificateFile                   /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile                /etc/ssl/private/proftpd.key

#TLSCACertificateFile                                     /etc/ssl/certs/CA.pem
TLSOptions                      NoCertRequest EnableDiags NoSessionReuseRequired
TLSVerifyClient                         off
TLSRequired                             on
TLSRenegotiate                          required on
</IfModule>

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

Βήμα 2: Δημιουργήστε αρχεία πιστοποιητικού SSL για TLS

3. Αφού δημιουργήσετε το αρχείο διαμόρφωσης της μονάδας TLS. που θα ενεργοποιήσει το FTP μέσω TLS στο Proftpd, πρέπει να δημιουργήσετε πιστοποιητικό SSL και κλειδί για να χρησιμοποιήσετε ασφαλή επικοινωνία μέσω του διακομιστή ProFTPD με τη βοήθεια του πακέτου OpenSSL.

# yum install openssl

Μπορείτε να χρησιμοποιήσετε μια ενιαία μεγάλη εντολή για να δημιουργήσετε ζεύγη πιστοποιητικών και κλειδιών SSL, αλλά για να απλοποιήσετε τα πράγματα, μπορείτε να δημιουργήσετε ένα απλό σενάριο bash που θα δημιουργήσει ζεύγη SSL με το επιθυμητό όνομα και θα εκχωρήσει τα σωστά δικαιώματα για το αρχείο κλειδιού.

Δημιουργήστε ένα αρχείο bash με το όνομα proftpd_gen_ssl στο /usr/local/bin/ ή σε οποιαδήποτε άλλη εκτελέσιμη διαδρομή συστήματος (που ορίζεται από τη μεταβλητή PATH).

# nano /usr/local/bin/proftpd_gen_ssl

Προσθέστε το ακόλουθο περιεχόμενο σε αυτό.

#!/bin/bash
echo -e "\nPlease enter a name for your SSL Certificate and Key pairs:"
read name
 openssl req -x509 -newkey rsa:1024 \
          -keyout /etc/ssl/private/$name.key -out /etc/ssl/certs/$name.crt \
          -nodes -days 365\

 chmod 0600 /etc/ssl/private/$name.key

4. Αφού δημιουργήσετε το παραπάνω αρχείο, εκχωρήστε το με δικαιώματα εκτέλεσης, βεβαιωθείτε ότι υπάρχει κατάλογος /etc/ssl/private και εκτελέστε το σενάριο για να δημιουργήσετε Πιστοποιητικό SSL και Κλειδί ζεύγη.

# chmod +x /usr/local/bin/proftpd_gen_ssl
# mkdir -p /etc/ssl/private
# proftpd_gen_ssl

Παρέχετε το Πιστοποιητικό SSL με τις απαιτούμενες πληροφορίες που σας ζητούνται, οι οποίες είναι αυτονόητες, αλλά δώστε προσοχή στο Κοινό όνομα για να ταιριάζει με τον κεντρικό υπολογιστή σας Πλήρως πιστοποιημένο όνομα τομέαFQDN.

Βήμα 3: Ενεργοποιήστε το TLS στον διακομιστή ProFTPD

5. Καθώς το αρχείο διαμόρφωσης TLS που δημιουργήθηκε νωρίτερα δείχνει ήδη στο σωστό αρχείο πιστοποιητικού και κλειδιού SSL, το μόνο που απομένει είναι να ενεργοποιήσετε τη μονάδα TLS δημιουργώντας έναν συμβολικό σύνδεσμο του tls.conf στον κατάλογο enabled-mod και επανεκκινήστε τον δαίμονα ProFTPD για να εφαρμόσετε αλλαγές.

# ln -s /etc/proftpd/disabled_mod/tls.conf  /etc/proftpd/enabled_mod/
# systemctl restart proftpd

6. Για να απενεργοποιήσετε τη λειτουργική μονάδα TLS, απλώς αφαιρέστε το σύμβολο συμβολισμού tls.conf από τον κατάλογο enabled_mod και επανεκκινήστε τον διακομιστή ProFTPD για να εφαρμόσετε αλλαγές.

# rm /etc/proftpd/enabled_mod/tls.conf
# systemctl restart proftpd

Βήμα 4: Ανοίξτε το Τείχος προστασίας για να επιτρέψετε την επικοινωνία FTP μέσω TLS

7. Προκειμένου οι πελάτες να έχουν πρόσβαση στο ProFTPD και σε ασφαλή αρχεία μεταφοράς σε Passive Mode, πρέπει να ανοίξετε ολόκληρο το εύρος θυρών μεταξύ 1024 και 65534 στο τείχος προστασίας RHEL/CentOS, χρησιμοποιώντας τις ακόλουθες εντολές.

# firewall-cmd --add-port=1024-65534/tcp  
# firewall-cmd --add-port=1024-65534/tcp --permanent
# firewall-cmd --list-ports
# firewall-cmd --list-services
# firewall-cmd --reload

Αυτό είναι. Τώρα το σύστημά σας είναι έτοιμο να δεχτεί επικοινωνία FTP μέσω TLS από την πλευρά του πελάτη.

Βήμα 5: Πρόσβαση στο ProFTPD μέσω TLS από Πελάτες

8. Τα προγράμματα περιήγησης Ιστού συνήθως δεν έχουν ενσωματωμένη υποστήριξη για FTP μέσω πρωτοκόλλου TLS, επομένως όλες οι συναλλαγές παραδίδονται μέσω μη κρυπτογραφημένου FTP. Ένας από τους πιο εξαιρετικούς πελάτες FTP είναι το FileZilla, το οποίο είναι εξ ολοκλήρου ανοιχτού κώδικα και μπορεί να εκτελεστεί σε όλα σχεδόν τα μεγάλα λειτουργικά συστήματα.

Για να αποκτήσετε πρόσβαση στο FTP μέσω TLS από το FileZilla, ανοίξτε τη Διαχείριση ιστότοπου, επιλέξτε FTP στο Πρωτόκολλο και Απαίτηση ρητού FTP μέσω TLS στο Αναπτυσσόμενο μενού Κρυπτογράφηση, επιλέξτε Τύπος σύνδεσης ως Κανονικό, εισαγάγετε τα διαπιστευτήριά σας FTP και πατήστε Σύνδεση για επικοινωνία με τον διακομιστή.

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

Εάν σκοπεύετε να χρησιμοποιήσετε άλλους πελάτες εκτός του FileZilla για ασφαλή πρόσβαση σε πόρους FTP, βεβαιωθείτε ότι υποστηρίζουν FTP μέσω πρωτοκόλλου TLS. Μερικά καλά παραδείγματα για πελάτες FTP που μπορούν να μιλούν FTPS είναι το gFTP ή το LFTP (γραμμή εντολών) για το NIX.