Vyhledávání na webu

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

  1. Instalace serveru ProFTPD na RHEL/CentOS 7
  2. 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ényFQDN 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.