ProFTPd konfiguracja serwera FTP z szyfrowaniem TLS

FTP czyli File Transfer Protocol jest bardzo popularnym protokołem do przesyłania plików w sieci. Niestety nie jest to forma zbyt bezpieczna z uwagi chciażby na to, że nasz login i hasło jest przesyłane w formie plain text czyli tekstem nie szyfrowanym:
Co więcej, przy zwykłym protokole FTP nazwy plików również nie są szyfrowane – jeśli chcemy zachować prywatność warto zmienić tryb pracy naszego serwera FTP na SFTP czyli tryb z właczonym szyfrowaniem.
Założniem tego wpisu jest iż masz swój serwer VPS lub dedykowany i dostęp do powłoki oraz konta root. ProFTPd jest popularnym serwerem FTP, który można skonfigurować aby używał trybu szyfrowanego i o tym będzie dalej.
Jak już pisałem wcześniej konfiguracja będzie przeprowadzana dla aplikacji ProFTPd pracującej na platformie Linux Debian w wersjii 8 (w tym konkretnym przypadku konfiguracja powinna być identyczna również na innych dystrybucjach).
Do dzieła 🙂
1) Instalacja ProFTPd
Jako, że aplikacja znajduje się w standardowym repozytorium jedyne co musimy w tym wypadku zrobić to w konsoli (będąc oczywiście zalogowanym jako użytkownich „root”) wydać polecenie:
apt-get update && sudo apt-get install proftpd
Podczas instalacji wybieramy „standalone” i po zakończeniu instalacji nasz serwer powinien już działać.
Kolejnym krokiem będzie podstawowa edycja pliku konfiguracyjnego ProFTPd. W dalszym ciągu będąc zalogowanym jako użytkownik root edytujemy plik:
nano /etc/proftpd/proftpd.conf
Zmieniamy wartość pola „ServerName” na adres IP naszego serwera lub dowolną nazwę jaką sobie wymyślimy:
ServerName "twojaNazwa_Lub_AdresIP"
Szukamy linijki z parametrem „DefaultRoot” i usuwamy z niej hasz (#) aby linijka wygądała tak jak poniżej:
DefaultRoot ~
Zamkniemy tym sposobem użytkowników w ich katalogach domowych więc nikt nie będzie nam szperał po systemie lub po katalogach innych.
Następnie upewniamy się że w pliku występuje ( i nie jest zakomentowana poprzez # na początku) linijka:
Include /etc/proftpd/tls.conf
Jesli jej nie ma dodajemy ją w sekcji „Alternative authentication frameworks”
Po tej zmianie zapisujemy plik – jeśli użyłeś edytora „nano” tak jak w przykładzie powyżej możes zapisać plik wciskająć kombinację klawiszy CTRL+o.
Aby przejść do kolejnych kroków musisz mieć wygenerowane (lub kupione) odpowiednie klucze służace do szyfrowania ->> TUTAJ <<- jest opis jak w kilku szybkich krokach je wykonać.
Jeśli przebrnąłeś przez instrukcję i masz już swój certyfikat możesz przejść dalej 🙂
2) Konfiguracja szyfrowania TLS
Jeśli wszystko poszło dobrze, masz już prawie wszysto czego nam potrzeba do uruchomienia szyfrowanego połączenia na Twoim serwerze FTP. Pozostała tylko edycja jednego pliku. Zanim jednak zaczniemy zrobimy małe pożądki:
cp /etc/proftpd/tls.conf /etc/proftpd/tls.conf_orig cat /dev/null > /etc/proftpd/tls.conf
Tym sposobem zrobiliśmy kopię oryginalnego pliku (jakby coś nie poszło zawsze można go podmienić z tym edytowanym), oraz wyczyściliśmy aktualną konfigurację pliku „tls.conf”. Przechodzimy do edycjii:
nano /etc/proftpd/tls.conf
I wklejamy tam następującą konfigurację i zapisujemy plik:
<IfModule mod_tls.c> TLSEngine on TLSLog /var/log/proftpd/tls.log # tutaj zapisujemy logi TLSProtocol SSLv23 TLSOptions NoCertRequest TLSRSACertificateFile /etc/proftpd/ssl/proftpd.cert.pem # Ścieżka do certyfikatu TLSRSACertificateKeyFile /etc/proftpd/ssl/proftpd.key.pem # Ścieżka do pliku kluczaTLSVerifyClient off TLSRequired on</IfModule>
Jeżeli jest używany TLSRequired, wtedy dozwolone są tylko połączenia TLS (uniemożliwia to połączenia jakiemukolwiek użytkownikowi, który używa klienta FTP bez wspomagania TLS). Jeśli ta opcja będzie ostawiona na „off” wuwczas oba połączenia TLS i non-TLS są dozwolone i zależą od tego na co pozwala klient FTP.
Restartujemy serwer:
service proftpd restart
Voilà!
Teraz można próbować łączyć się poprzez korzystanie z klienta FTP (Ja jużyłem FileZill’i). Powinno się dodatkowo skonfigurować klienta FTP z użyciem TLS (to jest konieczne podczas używania TLSRequired). Jeżeli pojawią się problemy , najlepiej przejrzeć logi pliku TLS w /var/log/proftpd/tls.log.
Jak widać wszystko poszło dobrze – serwer zapytał o certyfikat i zaszyfrował komunikację.
nie wiem. zrobilem jak podaje autor i laczy sie dalej bes ssl
Jakiego klienta używasz ? i co mówi /var/log/proftpd/tls.log ?