
Przesyłanie plików przez FTP (File Transfer Protocol) jest prawdopodobnie najpopularniejszą metodą przesyłania plików na serwer. ProFTPD to popularny i wszechstronny serwer FTP, który jest dostępny jako oprogramowanie OpenSource i obsługuje TLS (SSL) dla bezpiecznych połączeń. Domyślnie FTP jest niezabezpieczonym protokołem, ponieważ hasła i dane są przesyłane zwykłym tekstem. Dzięki TLS cała komunikacja może być szyfrowana, dzięki czemu FTP jest bezpieczniejszy.
W tym artykule opisano jak skonfigurować proftpd z TLS na Ubuntu server 16.04 LTS.
Wymagania wstępne Ubuntu Server 16.04 64bit uprawnienia sudo / root Skonfiguruj ProFTPD. Dodaj użytkownika FTP. Zainstaluj Proftpd i OpenSSL Proftpd i OpenSSL są dostępne w repozytorium Ubuntu, więc możemy je zainstalować za pomocą polecenia apt
sudo apt-get install -y proftpd openssl
Po rozpoczęciu instalacji zostaniesz poproszony o uruchomienie ProFTPD jako inetd lub standalone serwer. Wybierz opcję samodzielny tutaj i kliknij Ok .
Konfiguruj ProFTPD
Po zainstalowaniu ProFTPD będziesz musiał dostosować konfigurację, aby był w pełni funkcjonalnym i bezpiecznym serwerem. Plik konfiguracyjny ProFTPD znajduje się w katalogu:
/etc/proftpd/
edytuj plik proftpd.conf.
cd /etc/proftpd/ vim proftpd.conf
W wierszu nazwa serwera zamień wartość na nazwę hosta lub domenę:
ServerName "My FTP-Server"
Odkomentuj wiersz DefaultRoot , aby wyłączyć dostęp dla wszystkich użytkowników:
DefaultRoot ~
i uruchom ponownie ProFTPD za pomocą komendy systemctl w następujący sposób:
systemctl restart proftpd
Dodaj użytkownika FTP
Dostępne są dwa typy użytkowników FTP, anonimowy użytkownik FTP i „normalni” użytkownicy FTP:
1. Anonimowy FTP: serwer FTP zapewnia dostęp każdemu bez konieczności posiadania konta użytkownika i hasła. Nie należy tego używać na publicznie dostępnym serwerze, ale może to być opcja dla serwera domowego lub firmowej sieci LAN.
2. Użytkownik FTP: tylko osoby posiadające konto użytkownika i hasło mogą uzyskać dostęp do serwera FTP. Przed utworzeniem użytkownika dla serwera FTP należy dodać /bin/false do pliku /etc/shells .
echo “/bin/false” >> /etc/shells
A teraz utwórz użytkownika z określonym katalogiem domowym, wyłącz dostęp do powłoki, a następnie udziel go serwerowi FTP.
useradd -m -s /bin/false user
passwd user
Powyższe polecenie utworzy nowego użytkownika o nazwie user z katalogiem domowym /home/user/ i bez dostępu do powłoki /bin/false. Teraz skonfiguruj ProFTPD, aby umożliwić użytkownikowi user dostęp do serwera FTP.
cd /etc/proftpd/conf.d/ nano user.conf
Dodaj ten plik konfiguracyjny, aby umożliwić użytkownikowi user logowanie i przesyłanie / pobieranie pliku do / z serwera:
<Directory /home/user> Umask 022 022 AllowOverwrite off <Limit LOGIN> AllowUser user DenyALL </Limit> <Limit ALL> Order Allow,Deny AllowUser user Deny ALL </Limit> <Limit MDK STOR DELE XMKD RNRF RNTO RMD XRMD> AllowUser user Deny ALL </Limit> </Directory>
Zapisz plik i zamknij vim. Następnie uruchom ponownie ProFTPD.
systemctl restart proftpd
Na tym etapie możesz już używać FTP, ale my zrobimy to bezpieczniej, używając TLS w następnym kroku. Aby korzystać z TLS, musisz utworzyć certyfikat SSL. Wygeneruj certyfikat SSL za pomocą polecenia openssl :
openssl req -x509 -newkey rsa:1024 -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt -nodes -days 365
Powyższe polecenie wygeneruje plik certyfikatu proftpd.crt w katalogu / etc / ssl / certs / i certyfikat plik klucza proftpd.key w katalogu / etc / ssl / private / .
Następnie zmień uprawnienia do pliku certyfikatu na 600 :
chmod 600 /etc/ssl/certs/proftpd.crt chmod 600 /etc/ssl/private/proftpd.key
Teraz wróć do katalogu / etc / proftpd i skonfiguruj ProFTPD, aby używał wygenerowanego certyfikatu SSL.
cd /etc/proftpd/ vim proftpd.conf
Odkomentuj wiersz TLS:
Include /etc/proftpd/tls.conf
Zapisz plik tls.conf i wyjdź.
Następnie edytuj plik konfiguracyjny TLS, aby włączyć bezpieczne uwierzytelnianie:
vim tls.conf
Odkomentuj wszystkie te linie:
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol SSLv23
TLSRSACertificateFile /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key
TLSOptions NoCertRequest EnableDiags
TLSVerifyClient off
TLSRequired on
Zapisz i wyjdź. Ostatnim krokiem jest zrestartowanie serwera ProFTPD:
systemctl restart proftpd