Tento článek vysvětluje, jak nastavit server vsftpd s povoleným TLS na serveru Debian 8 a jak přistupovat k serveru FTP pomocí FileZilla. FTP je ve výchozím nastavení velmi nezabezpečený protokol, protože všechna hesla a všechna data jsou přenášena jako prostý text. Pomocí TLS lze celou komunikaci šifrovat, čímž je FTP mnohem bezpečnější.
1 předběžná poznámka
V tomto tutoriálu budu používat název hostitele server1.example.com s IP adresou 192.168.1.100. Tato nastavení se pro vás mohou lišit, takže je musíte v případě potřeby nahradit. Jako základ pro tento tutoriál používám minimální nastavení serveru Debian 8.
2 Instalace vsftpd a OpenSSL
OpenSSL vyžaduje TLS; pro instalaci vsftpd a OpenSSL jednoduše spustíme:
apt-get -y install vsftpd openssl
3 Vytvoření certifikátu SSL pro TLS
Abychom mohli používat TLS, musíme vytvořit SSL certifikát. Vytvořím jej v /etc/ssl/private - pokud adresář neexistuje, vytvořte jej nyní::
mkdir -p /etc/ssl/private
chmod 700 /etc/ssl/private
Poté můžeme vygenerovat certifikát SSL následovně:
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
Název země (2 písmenný kód) [AU]:<-- Zadejte název země (např. „DE“).
Název státu nebo provincie (celý název) [Některý stát]:<-- Zadejte svůj stát nebo název provincie.
Název lokality (např. město) []:<-- Zadejte své město.
Název organizace (např. společnost) [Internet Widgits Pty Ltd]:<-- Zadejte název organizace (např. název vaší společnosti).
Název organizační jednotky (např. sekce) []:<-- Zadejte název organizační jednotky (např. „IT oddělení“).
Běžný název (např. VAŠE jméno) []:<-- Zadejte plně kvalifikovaný název domény systému (např. "server1.example.com").
E-mailová adresa []:<-- Zadejte svou e-mailovou adresu.
4 Povolení TLS ve vsftpd
Chcete-li povolit TLS ve vsftpd, otevřete /etc/vsftpd.conf...
nano /etc/vsftpd.conf
... a přidejte nebo změňte následující možnosti:
[...]
# Turn on SSL ssl_enable=YES # Allow anonymous users to use secured SSL connections allow_anon_ssl=YES # All non-anonymous logins are forced to use a secure SSL connection in order to # send and receive data on data connections. force_local_data_ssl=YES # All non-anonymous logins are forced to use a secure SSL connection in order to send the password. force_local_logins_ssl=YES # Permit TLS v1 protocol connections. TLS v1 connections are preferred ssl_tlsv1=YES # Permit SSL v2 protocol connections. TLS v1 connections are preferred ssl_sslv2=NO # permit SSL v3 protocol connections. TLS v1 connections are preferred ssl_sslv3=NO # Disable SSL session reuse (required by WinSCP) require_ssl_reuse=NO # Select which SSL ciphers vsftpd will allow for encrypted SSL connections (required by FileZilla) ssl_ciphers=HIGH # This option specifies the location of the RSA certificate to use for SSL # encrypted connections. rsa_cert_file=/etc/ssl/private/vsftpd.pem [...]
Pokud použijete force_local_logins_ssl=YES a force_local_data_ssl=YES, pak jsou povolena pouze připojení TLS (toto uzamkne všechny uživatele se starými klienty FTP, kteří nemají podporu TLS); pomocí force_local_logins_ssl=NO a force_local_data_ssl=NO jsou povolena připojení TLS i non-TLS v závislosti na tom, co FTP klient podporuje.
Kromě možností TLS se ujistěte, že máte ve svém vsftpd.conf také následující nastavení, abyste povolili neanonymní přihlášení:
[...] # Uncomment this to allow local users to log in. local_enable=YES # # Uncomment this to enable any form of FTP write command. write_enable=YES # # Default umask for local users is 077. You may wish to change this to 022, # if your users expect that (022 is used by most other ftpd's) local_umask=022 [...]
Poté restartujte vsftpd:
service vsftpd restart
A je to. Nyní se můžete pokusit připojit pomocí svého FTP klienta; měli byste však nakonfigurovat svého FTP klienta tak, aby používal TLS (to je nutnost, pokud používáte force_local_logins_ssl=YES a force_local_data_ssl=YES) – viz další kapitola, jak to provést s FileZilla.
5 vsftpd přidat uživatele
V tomto kroku přidáme místního uživatele Linuxu, ke kterému se můžeme připojit. Vytvořím uživatele "do" s heslem "howtoforge". Všichni uživatelé FTP by měli mít své domovské adresáře v mkdir /var/ftproot, takže nejprve vytvořím tento adresář.
mkdir /var/ftproot
Poté přidejte uživatele příkazem:
adduser --home /var/ftproot/till till
Příkaz adduser se zeptá na uživatelské heslo a některé další podrobnosti
[email protected]:/# adduser --home /var/ftproot/till till
Adding user `till' ...
Adding new group `till' (1001) ...
Adding new user `till' (1001) with group `till' ...
Creating home directory `/var/ftproot/till' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: <-- Enter the new password here
Retype new UNIX password: <-- Enter the new password here
passwd: password updated successfully
Changing the user information for till
Enter the new value, or press ENTER for the default
Full Name []: <-- Enter your name here or press enter to skip
Room Number []: <-- Enter room number here or press enter to skip
Work Phone []: <-- Enter work phone here or press enter to skip
Home Phone []: <-- Enter home phone here or press enter to skip
Other []: <-- Enter Other user details here or press enter to skip
Is the information correct? [Y/n] <-- Y
Úspěšně jsme přidali uživatele FTP.
6 Konfigurace FileZilla pro TLS
Abyste mohli používat FTP s TLS, potřebujete FTP klienta, který podporuje TLS, jako je FileZilla.
V FileZilla otevřete Správce serveru:
Do pole server zadejte IP adresu nebo název hostitele FTP serveru, vyberte protokol „FTP“ a „Vyžadovat explicitní FTP přes TLS“ a do pole uživatele zadejte uživatelské jméno.
Nyní se můžete připojit k serveru. Pokud to děláte poprvé, musíte přijmout nový certifikát SSL serveru:
Pokud vše půjde dobře, měli byste být nyní přihlášeni na serveru:
7 odkazů
- vsftpd:https://security.appspot.com/vsftpd.html
- FileZilla:http://filezilla-project.org/
- Debian:http://www.debian.org/