ProFTPd konfiguracja serwera FTP z szyfrowaniem TLS

proftpd

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:

ftp_test

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 klucza
TLSVerifyClient            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ę.

 

 

2 Komentarzy

  1. igor

    nie wiem. zrobilem jak podaje autor i laczy sie dalej bes ssl

  2. Paweł (Post autora)

    Jakiego klienta używasz ? i co mówi /var/log/proftpd/tls.log ?

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *