FTP je 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ší. Tento článek vysvětluje, jak nastavit ProFTPd s TLS na serveru Ubuntu 15.04, jak přidat uživatele FTP a jak používat FileZilla k bezpečnému připojení s TLS.
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 v případě potřeby musíte nahradit.
Protože musíme všechny kroky z tohoto tutoriálu spustit s právy root, můžeme buď před všechny příkazy v tomto tutoriálu přidat řetězec sudo, nebo se staneme rootem hned teď zadáním
sudo su
2 Instalace ProFTPd a OpenSSL
OpenSSL vyžaduje TLS; pro instalaci ProFTPd a OpenSSL jednoduše spustíme:
apt-get install proftpd openssl
Bude vám položena otázka:
Spusťte proftpd:<-- standalone
Z bezpečnostních důvodů byste měli do /etc/proftpd/proftpd.conf přidat následující řádky:
nano /etc/proftpd/proftpd.conf
[...]
DefaultRoot ~
ServerIdent on "FTP Server ready."
[...]
První možnost umožňuje chrootování uživatelů FTP do jejich domovského adresáře a druhá možnost umožňuje zprávu ServerIdent, která neobsahuje žádné informace o používaném softwaru FTP serveru, verzi nebo OS, aby se případný útočník nedostal k těmto údajům.
3 Vytvořte certifikát SSL pro TLS
Abychom mohli používat TLS, musíme vytvořit SSL certifikát. Vytvořím jej v /etc/proftpd/ssl, proto nejprve vytvořím tento adresář:
mkdir /etc/proftpd/ssl
Poté můžeme vygenerovat certifikát SSL následovně:
openssl req -new -x509 -days 365 -nodes -out /etc/proftpd/ssl/proftpd.cert.pem -keyout /etc/proftpd/ssl/proftpd.key.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.
a zabezpečte vygenerované soubory certifikátů.
chmod 600 /etc/proftpd/ssl/proftpd.*
4 Povolit TLS v ProFTPd
Chcete-li povolit TLS v ProFTPd, otevřete /etc/proftpd/proftpd.conf...
nano /etc/proftpd/proftpd.conf
... a odkomentujte řádek Include /etc/proftpd/tls.conf:
[...]
#
# This is used for FTPS connections
#
Include /etc/proftpd/tls.conf
[...]
Poté otevřete /etc/proftpd/tls.conf a nastavte jej následovně:
nano /etc/proftpd/tls.conf
<IfModule mod_tls.c>
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol TLSv1.2
TLSCipherSuite AES128+EECDH:AES128+EDH
TLSOptions NoCertRequest AllowClientRenegotiations
TLSRSACertificateFile /etc/proftpd/ssl/proftpd.cert.pem
TLSRSACertificateKeyFile /etc/proftpd/ssl/proftpd.key.pem
TLSVerifyClient off
TLSRequired on
RequireValidShell no
</IfModule>
Pokud používáte TLSRequired zapnuto, pak jsou povolena pouze připojení TLS (toto uzamkne všechny uživatele se starými FTP klienty, kteří nemají podporu TLS); zakomentováním tohoto řádku nebo použitím TLSRequired off jsou povolena připojení TLS i non-TLS v závislosti na tom, co FTP klient podporuje.
Poté restartujte ProFTPd:
systemctl restart proftpd.service
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 TLSRequired on) – viz další kapitola, jak to provést s FileZilla.
Pokud máte problémy s TLS, můžete se podívat do souboru protokolu TLS /var/log/proftpd/tls.log.
5 Přidat uživatele FTP
Konfigurace ProFTPD použitá v tomto tutoriálu ověřuje uživatele proti databázi uživatelů systému Linux (/etc/passwd a /etc/shadow). V tomto kroku přidám uživatele „tom“, který se bude používat pouze pro přihlášení k FTP.
useradd --shell /bin/false tom
Tím se přidá uživatel "tom" s shellem /bin/false. Tento shell zajišťuje, že se může přihlásit pomocí FTP, ale ne pomocí SSH. Domovský adresář uživatele je standardně /home/[USERNAME], v našem případě /home/tom. ProFTPD je nakonfigurován tak, aby uvěznil uživatele v jeho domovském adresáři, takže nemůže přistupovat k systémovým souborům mimo /home/tom. Pokud chcete nastavit jiný domovský adresář, použijte příkaz níže:
useradd --home /srv/tomftp --create-home --shell /bin/false tom
Tento příkaz nastavuje jiný domovský adresář, v případě tohoto příkladu adresář /srv/tomftp pro uživatele.
Dalším krokem je nastavení hesla pro uživatele tom, spusťte příkaz passwd:
passwd tom
A na požádání zadejte nové heslo dvakrát.
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 Site Manager:
Vyberte server, který používá ProFTPd s TLS; v rozevírací nabídce Typ serveru vyberte FTPES místo normálního FTP:
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ů
- ProFTPd:http://www.proftpd.org/
- FileZilla:http://filezilla-project.org/
- Ubuntu:http://www.ubuntu.com/