Zabezpečená připojení ProFTPD pomocí protokolu TLS/SSL na RHEL/CentOS 7
Protokol FTP byl ze své podstaty navržen jako nezabezpečený protokol a všechna data a hesla jsou přenášena ve formátu prostého textu, což třetí straně velmi usnadňuje zachycení všech transakcí FTP klient-server, zejména uživatelských jmen a hesla použitá v procesu ověřování.
Požadavky
- Instalace serveru ProFTPD na RHEL/CentOS 7
- Povolte anonymní účet pro server Proftpd v RHEL/CentOS 7
Tento tutoriál vás provede zabezpečením a šifrováním FTP komunikace na ProFTPd serveru v CentOS/RHEL 7 , pomocí TLS (Transport Layer Security) s Explicitním rozšířením FTPS (přemýšlejte o FTPS jako o HTTPS pro protokol HTTP).
Krok 1: Vytvořte konfigurační soubor modulu Proftpd TLS
1. Jak bylo uvedeno v předchozím tutoriálu Proftpd týkajícím se anonymního účtu, tato příručka také použije stejný přístup ke správě budoucích konfiguračních souborů Proftpd jako modulů, s pomocí enabled_mod a < b>disabled_mod adresáře, které budou hostit všechny rozšířené možnosti serveru.
Vytvořte tedy nový soubor pomocí svého oblíbeného textového editoru s názvem tls.conf v cestě disabled_mod Proftpd a přidejte následující direktivy.
nano /etc/proftpd/disabled_mod/tls.conf
Přidejte následující výňatek z konfigurace souboru TLS.
<IfModule mod_tls.c>
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol SSLv23
TLSRSACertificateFile /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key
#TLSCACertificateFile /etc/ssl/certs/CA.pem
TLSOptions NoCertRequest EnableDiags NoSessionReuseRequired
TLSVerifyClient off
TLSRequired on
TLSRenegotiate required on
</IfModule>
2. Pokud používáte prohlížeče nebo FTP klienty, které nepodporují připojení TLS, zakomentujte řádek TLSRequired on, aby bylo možné současně povolit připojení TLS a non-TLS. vyhněte se chybové zprávě jako na obrázku níže.
Krok 2: Vytvořte soubory certifikátu SSL pro TLS
3. Po vytvoření konfiguračního souboru modulu TLS. který umožní FTP přes TLS na Proftpd, musíte vygenerovat SSL certifikát a klíč, abyste mohli používat zabezpečenou komunikaci přes ProFTPD Server s pomocí balíčku OpenSSL.
yum install openssl
Ke generování párů certifikátu a klíčů SSL můžete použít jeden dlouhý příkaz, ale pro zjednodušení můžete vytvořit jednoduchý skript bash, který vygeneruje páry SSL s požadovaným názvem a přiřadí správná oprávnění pro soubor klíčů.
Vytvořte bash soubor s názvem proftpd_gen_ssl na /usr/local/bin/ nebo na jakékoli jiné spustitelné systémové cestě (definované proměnnou ` PATH ).
nano /usr/local/bin/proftpd_gen_ssl
Přidejte k tomu následující obsah.
#!/bin/bash
echo -e "\nPlease enter a name for your SSL Certificate and Key pairs:"
read name
openssl req -x509 -newkey rsa:1024 \
-keyout /etc/ssl/private/$name.key -out /etc/ssl/certs/$name.crt \
-nodes -days 365\
chmod 0600 /etc/ssl/private/$name.key
4. Po vytvoření výše uvedeného souboru mu přidělte oprávnění k provádění, ujistěte se, že existuje adresář /etc/ssl/private, a spusťte skript pro vytvoření certifikátu a klíče SSL páry.
chmod +x /usr/local/bin/proftpd_gen_ssl
mkdir -p /etc/ssl/private
proftpd_gen_ssl
Dodejte certifikátu SSL požadované požadované informace, které jsou samozřejmé, ale věnujte pozornost Obvyklému názvu, aby odpovídal vašemu hostiteli Plně kvalifikovaný název domény – FQDN b>.
Krok 3: Povolte TLS na serveru ProFTPD
5. Protože konfigurační soubor TLS vytvořený dříve již odkazuje na správný soubor certifikátu SSL a klíče, zbývá pouze aktivovat modul TLS vytvořením symbolického odkazu tls.conf do adresáře enabled-mod a restartujte démona ProFTPD pro použití změn.
ln -s /etc/proftpd/disabled_mod/tls.conf /etc/proftpd/enabled_mod/
systemctl restart proftpd
6. Chcete-li modul TLS zakázat, jednoduše odstraňte symbolický odkaz tls.conf z adresáře enabled_mod a restartujte server ProFTPD, aby se změny projevily.
rm /etc/proftpd/enabled_mod/tls.conf
systemctl restart proftpd
Krok 4: Otevřete bránu firewall a povolte komunikaci FTP přes TLS
7. Aby klienti měli přístup k ProFTPD a soubory zabezpečeného přenosu v Pasivním režimu, musíte otevřít celý rozsah portů mezi 1024 a 65534 na RHEL/CentOS Firewall pomocí následujících příkazů.
firewall-cmd --add-port=1024-65534/tcp
firewall-cmd --add-port=1024-65534/tcp --permanent
firewall-cmd --list-ports
firewall-cmd --list-services
firewall-cmd --reload
A je to. Nyní je váš systém připraven přijímat FTP komunikaci přes TLS ze strany klienta.
Krok 5: Přístup k ProFTPD přes TLS od klientů
8. Webové prohlížeče obvykle nemají vestavěnou podporu protokolu FTP přes protokol TLS, takže všechny transakce jsou doručovány přes nešifrovaný protokol FTP. Jedním z nejlepších FTP klientů je FileZilla, který je zcela open source a může běžet na téměř všech hlavních operačních systémech.
Pro přístup k FTP přes TLS z FileZilla otevřete Site Manager, vyberte FTP v Protokol a Vyžadovat explicitní FTP přes TLS na Rozbalovací nabídka Šifrování, vyberte Typ přihlášení jako Normální, zadejte přihlašovací údaje k FTP a stiskněte Připojit pro komunikaci se serverem.
9. Pokud se k serveru ProFTPD připojujete poprvé, mělo by se objevit vyskakovací okno s novým certifikátem, zaškrtněte políčko, které říká Vždy důvěřovat certifikátu pro budoucnost sessions a kliknutím na OK přijměte certifikát a ověřte se na serveru ProFTPD.
Pokud plánujete pro bezpečný přístup k FTP zdrojům používat jiné klienty než FileZilla, ujistěte se, že podporují protokol FTP přes TLS. Některé dobré příklady pro FTP klienty, kteří umí FTPS, jsou WinSCP pro platformy Windows a gFTP nebo LFTP (příkazový řádek) pro NIX.