Vyhledávání na webu

Nastavení zabezpečeného FTP serveru pomocí SSL/TLS na Ubuntu


V tomto tutoriálu popíšeme, jak zabezpečit FTP server (VSFTPD znamená „Very Secure FTP Daemon “) pomocí SSL /TLS v Ubuntu 16.04/16.10.

Pokud chcete nastavit bezpečný FTP server pro distribuce založené na CentOS, můžete si přečíst – Zabezpečení FTP serveru pomocí SSL/TLS na CentOS

Po provedení různých kroků v této příručce se naučíme základy povolení šifrovacích služeb na serveru FTP pro bezpečné přenosy dat.

Požadavky

  1. Musíte nainstalovat a nakonfigurovat FTP server v Ubuntu

Než se přesuneme dále, ujistěte se, že všechny příkazy v tomto článku budou spouštěny jako privilegovaný účet root nebo sudo.

Krok 1: Generování certifikátu SSL/TLS pro FTP na Ubuntu

1. Začneme vytvořením podadresáře pod: /etc/ssl/ pro uložení certifikátu SSL/TLS a souborů klíčů, pokud ano neexistuje:

sudo mkdir /etc/ssl/private

2. Nyní vygenerujeme certifikát a klíč v jediném souboru spuštěním příkazu níže.

sudo openssl req -x509 -nodes -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem -days 365 -newkey rsa:2048

Výše uvedený příkaz vás vyzve k zodpovězení následujících otázek, nezapomeňte zadat hodnoty, které platí pro váš scénář.

Country Name (2 letter code) [XX]:IN
State or Province Name (full name) []:Lower Parel
Locality Name (eg, city) [Default City]:Mumbai
Organization Name (eg, company) [Default Company Ltd]:TecMint.com
Organizational Unit Name (eg, section) []:Linux and Open Source
Common Name (eg, your name or your server's hostname) []:tecmint
Email Address []:[email 

Krok 2: Konfigurace VSFTPD pro použití SSL/TLS na Ubuntu

3. Než provedeme jakékoli konfigurace VSFTPD, pro ty, kteří mají povolený firewall UFW, musíte otevřít porty 990 a 40000 -50000, aby bylo možné v konfiguračním souboru VSFTPD nastavit připojení TLS a rozsah portů pasivních portů:

sudo ufw allow 990/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw status

4. Nyní otevřete konfigurační soubor VSFTPD a definujte v něm podrobnosti SSL:

sudo vi /etc/vsftpd/vsftpd.conf
OR
sudo nano /etc/vsftpd/vsftpd.conf

Poté přidejte nebo najděte možnost ssl_enable a nastavte její hodnotu na YES, abyste aktivovali používání SSL. Protože TLS je bezpečnější než SSL, omezíme VSFTPD na místo toho použijte TLS povolením možnosti ssl_tlsv1:

ssl_enable=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

5. Dále zakomentujte řádky níže pomocí znaku # takto:

#rsa_cert_file=/etc/ssl/private/ssl-cert-snakeoil.pem
#rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

Poté přidejte řádky níže, abyste definovali umístění certifikátu SSL a souboru klíče:

rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem

6. Nyní musíme také zabránit anonymním uživatelům v používání SSL a poté vynutit všechna neanonymní přihlášení, aby pro přenos dat používali zabezpečené připojení SSL a aby během přihlašování odeslali heslo:

allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

7. Dále můžeme použít níže uvedené možnosti k přidání dalších funkcí zabezpečení na server FTP. S volbou require_ssl_reuse=YES musí všechna datová připojení SSL vykazovat opětovné použití relace SSL; prokázat, že znají stejné hlavní tajemství jako kontrolní kanál. Takže bychom to měli deaktivovat.

require_ssl_reuse=NO

Kromě toho můžeme pomocí volby ssl_ciphers nastavit, které SSL šifry VSFTPD povolí pro šifrovaná SSL spojení. To pomůže zmařit veškeré snahy útočníků, kteří se pokoušejí vynutit konkrétní šifru, v níž možná objevili zranitelnost:

ssl_ciphers=HIGH

8. Poté definujme rozsah portů (minimální a maximální port) pasivních portů.

pasv_min_port=40000
pasv_max_port=50000

9. Chcete-li povolit ladění SSL, což znamená, že diagnostika připojení openSSL se zaznamenává do souboru protokolu VSFTPD, můžeme použít možnost debug_ssl:

debug_ssl=YES

Nakonec soubor uložte a zavřete. Poté restartujte službu VSFTPD:

systemctl restart vsftpd

Krok 3: Ověřte FTP pomocí připojení SSL/TLS na Ubuntu

10. Po provedení všech výše uvedených konfigurací otestujte, zda VSFTPD nyní používá připojení SSL/TLS tím, že se pokusíte použít FTP z příkazového řádku, jak je uvedeno níže.

Z výstupu níže je chybová zpráva, která nám říká, že VSFTPD může povolit uživatelům (neanonymním) přihlášení pouze ze zabezpečených klientů, kteří podporují šifrovací služby.

ftp 192.168.56.10
Connected to 192.168.56.10  (192.168.56.10).
220 Welcome to TecMint.com FTP service.
Name (192.168.56.10:root) : ravi
530 Non-anonymous sessions must use encryption.
Login failed.
421 Service not available, remote server has closed connection
ftp>

Příkazový řádek nepodporuje šifrovací služby, což má za následek výše uvedenou chybu. K bezpečnému připojení k serveru FTP s povolenými šifrovacími službami proto potřebujeme FTP klienta, který standardně podporuje připojení SSL/TLS, jako je FileZilla.

Krok 4: Nainstalujte FileZilla na klienty pro bezpečné připojení FTP

FileZilla je výkonný, široce používaný multiplatformní FTP klient, který podporuje FTP přes SSL/TLS a další. Chcete-li nainstalovat FileZilla na klientský počítač Linux, použijte následující příkaz.

--------- On Debian/Ubuntu ---------
sudo apt-get install filezilla   

--------- On CentOS/RHEL/Fedora --------- 
yum install epel-release filezilla

--------- On Fedora 22+ --------- 
sudo dnf install filezilla

12. Po dokončení instalace ji otevřete a přejděte do File=>Sites Manager nebo (stiskněte Ctrl+S), abyste získali Site Manager níže.

13. Nyní definujte název hostitele/webu, přidejte IP adresu, definujte protokol, který se má použít, šifrování a typ přihlášení jako na snímku obrazovky níže (použijte hodnoty, které platí pro váš scénář):

Kliknutím na tlačítko Nový web nakonfigurujete připojení nového webu/hostitele.

Host:  192.168.56.10
Protocol:  FTP – File Transfer Protocol
Encryption:  Require explicit FTP over   #recommended 
Logon Type: Ask for password	        #recommended 
User: username

14. Poté klikněte na Připojit v rozhraní výše, zadejte heslo a poté ověřte certifikát používaný pro připojení SSL/TLS, a ještě jednou klikněte na OK pro připojení k serveru FTP:

15. Nyní byste se měli úspěšně přihlásit k serveru FTP prostřednictvím připojení TLS. Další informace z níže uvedeného rozhraní naleznete v části o stavu připojení.

16. Nakonec přenesme soubory z místního počítače na server FTP ve složce souborů. Podívejte se na spodní konec rozhraní FileZilla, kde najdete zprávy týkající se přenosů souborů.

To je vše! Vždy mějte na paměti, že instalace FTP serveru bez povolení šifrovacích služeb má určité bezpečnostní důsledky. Jak jsme vysvětlili v tomto tutoriálu, můžete nakonfigurovat FTP server tak, aby používal připojení SSL/TLS k implementaci zabezpečení v Ubuntu 16.04/16.10.

Pokud narazíte na nějaké problémy s nastavením SSL/TLS na FTP serveru, použijte níže uvedený formulář pro komentáře a podělte se o své problémy nebo myšlenky týkající se tohoto tutoriálu/tématu.