-
Bezpieczny FTP – ProFTPD z SSL/TLS
FTP choć nie należy do najbezpieczniejszych protokołów przesyłania plików, cały czas jest przez wielu używany. Bolączką wspomnianego sposobu przesyłania danych, jest brak szyfrowania, a przez to jawność loginu i hasła. Istnieje jednak sposób na poradzenie sobie z tym. Opiszę poniżej prosty sposób na włączenie szyfrowanie TLS, który zagwarantuje bezpieczeństwo transmisji. Wszystkie ustawienia będą dotyczyć Proftpd. Niezbędny jest moduł „mod_tls.c”, który normalnie nie jest integralną częścią serwera. Inaczej jest w przypadku systemów z rodziny CentOS / RHEL – tam bowiem mamy go domyślnie. Przyjmujemy, iż mamy już zainstalowany serwer ftp oraz wygenerowany certyfikat SSL. Edytujemy plik „/etc/proftpd.conf” i dopisujemy następujące linie
TLSEngine on
TLSLog /var/log/proftpd/tls.log # ścieżka do pliku z logami
TLSProtocol SSLv23
TLSOptions NoCertRequest
TLSRSACertificateFile /etc/pki/tls/certs/centos/poczta.crt # ścieżka do certyfikatu SSL
TLSRSACertificateKeyFile /etc/pki/tls/certs/centos/poczta.key # ścieżka do klucza
TLSVerifyClient off # autentykacja klientów łączących się po SSL/TLS
TLSRequired off # wymagane stosowanie bezpiecznego połączenia (SSL/TLS)Po zapisaniu pliku konfiguracyjnego, restartujemy serwer.
service proftpd restart
Jednym ze sposobów sprawdzenia poprawności działania jest wydania w konsoli na dowolnym serwerze polecenia:
openssl s_client -connect adres_naszego_serwera:21 -starttls ftp
Powinniśmy zobaczyć „fragment” podobny do tego poniżej:
No client certificate CA names sent
---
SSL handshake has read 1661 bytes and written 321 bytes
---
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: zlib compression
Expansion: zlib compression
SSL-Session:
Protocol : TLSv1
Cipher : DHE-RSA-AES256-SHA
Session-ID: B62A3448A8FCD28EA660CCD962B0A084FAFF8E729A3C10E8D5672E65D7D937CA
Session-ID-ctx:
Master-Key: 29F728027580480F2A64314638F68DB411469D5FE4293A7470B43ABC43FEBD953AB28A0A6DAD292231DF6A4F6545B1D2
Key-Arg : None
Krb5 Principal: None
PSK identity: None
PSK identity hint: None
Compression: 1 (zlib compression)
Start Time: 1358032947
Timeout : 300 (sec)
Verify return code: 18 (self signed certificate)
---
220 FTP Server ready
Pamiętajmy, iż najlepszym sposobem na sprawdzenie czy wszystko jest naprawdę dobrze, jest połączenie się klientem FTP, np. Filezillą lub Total Commanderem. W razie problemów, proszę pisać.
Dziękuję za artykuł, pewnie implementacja dla vsftp ssl&tls będzie inna. Pozdrawiam.
Witam,
Dla vsftpd będzie to wyglądało mniej-więcej tak:
http://konrad.bechler.pl/2010/02/bezpieczny-ftp/
K.
Dziękuję o to chodziło 🙂