FTP je široce používaný protokol používaný pro přenos souborů mezi serverem a klientem. Dnes je dnes k dispozici mnoho open-source FTP serverů, včetně FTPD, VSFTPD, PROFTPD a pureftpd. Mezi nimi je VSFTPD bezpečný, rychlý a nejrozšířenější protokol po celém světě. Říká se mu také „Démon velmi zabezpečeného přenosu souborů“. Podporuje také SSL, IPv6, explicitní a implicitní FTPS.
V tomto tutoriálu vám ukážeme, jak nainstalovat VSFTPD na server CentOS 8 a zabezpečit jej pomocí SSL/TLS.
Předpoklady
- Server se systémem CentOS 8.
- Na vašem serveru je nakonfigurováno heslo uživatele root.
Instalovat VSFTPD
Ve výchozím nastavení je VSFTPD k dispozici ve výchozím úložišti CentOS 8. Můžete jej nainstalovat spuštěním následujícího příkazu:
dnf install vsftpd -y
Po dokončení instalace spusťte službu VSFTPD a povolte její spuštění po restartu systému pomocí následujícího příkazu:
systemctl start vsftpd
systemctl enable vsftpd
V tomto okamžiku je váš server VSFTPD nainstalován a spuštěn. Nyní můžete přejít k dalšímu kroku.
Vytvořit uživatele pro VSFTPD
Dále budete muset vytvořit nového uživatele pro VSFTPD. Takže můžete přistupovat k vašemu FTP serveru pomocí tohoto uživatele.
Spuštěním následujícího příkazu vytvořte nového uživatele s názvem vyom, jak je znázorněno níže:
Adduser vyom
Dále nastavte heslo pro uživatele vyom pomocí následujícího příkazu:
passwd vyom
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
Konfigurace VSFTPD
Dále otevřete výchozí konfigurační soubor VSFTPD umístěný v adresáři /etc/vsftpd, jak je znázorněno níže:
nano /etc/vsftpd/vsftpd.conf
Změňte následující řádky:
anonymous_enable=NOlocal_enable=YESwrite_enable=AnoPo dokončení uložte a zavřete soubor. Potom restartujte službu VSFTPD a ověřte stav služby pomocí následujícího příkazu:
systemctl restart vsftpd
systemctl status vsftpdMěli byste vidět následující výstup:
? vsftpd.service – Vsftpd ftp démon Načteno:načteno (/usr/lib/systemd/system/vsftpd.service; zakázáno; přednastaveno dodavatelem:zakázáno) Aktivní:aktivní (běží) od pá 2020-02-21 00:43:57 EST; Před 6s Proces:2698 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (kód=ukončeno, stav=0/ÚSPĚCH) Hlavní PID:2699 (vsftpd) Úkoly:1 (limit:6102) Paměť:K CGroup:/system.slice/vsftpd.service ??2699 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.confFeb 21 00:43:57 centos8 systemd[1]:Zastaven Vsftpd ftp démon 00:43 21 :57 centos8 systemd[1]:Spouštění ftp démona Vsftpd...21. února 00:43:57 centos8 systemd[1]:Spuštěn ftp démon Vsftpd.V tomto okamžiku je váš server VSFTPD nakonfigurován. Nyní můžete přejít ke všem VSFTPD přes SELinux a firewall.
Konfigurace brány firewall a SELInux
Ve výchozím nastavení je SELinux povolen v CentOS 8. Budete tedy muset nakonfigurovat SELinux pro VSFTPD.
SELinux můžete nakonfigurovat tak, aby umožňoval FTP přístup pomocí následujícího příkazu:
setsebool -P allow_ftpd_full_access=1Dále budete muset povolit službu FTP přes firewall. Můžete to povolit pomocí následujícího příkazu:
firewall-cmd --zone=public --permanent --add-service=ftpDále znovu načtěte službu firewalld, abyste použili změny konfigurace brány firewall:
firewall-cmd --reloadV tomto okamžiku je váš firewall a SELinux nakonfigurován tak, aby umožňoval příchozí FTP připojení ze vzdáleného systému. Nyní můžete přistoupit k testování připojení FTP.
Připojit k serveru VSFTPD
Váš server VSFTPD je nyní nainstalován a nakonfigurován. Nyní je čas připojit FTP server z klientského systému.
Chcete-li tak učinit, přejděte do klientského systému a spusťte následující příkaz pro připojení k serveru FTP:
ftp 172.20.10.3Budete požádáni o zadání svého FTP uživatele a hesla, jak je uvedeno níže:
Připojeno k 172.20.10.3.220 (vsFTPd 3.0.3)Jméno (172.20.10.3:root):vyom331 Zadejte prosím heslo.Password:230 Přihlášení bylo úspěšné.Po úspěšném navázání připojení byste měli vidět následující výstup:
Typ vzdáleného systému je UNIX. K přenosu souborů se používá binární režim.ftp>Nyní zadejte exit a stiskněte tlačítko Enter pro ukončení relací FTP.
Konfigurace VSFTPD s podporou TLS
Z bezpečnostních důvodů je dobré přenosy FTP šifrovat pomocí SSL/TLS. Chcete-li tak učinit, budete muset vygenerovat certifikát SSL a nakonfigurovat server VSFTPD, aby jej používal.
Nejprve budete muset nainstalovat balíček OpenSSL do vašeho systému. Můžete jej nainstalovat pomocí následujícího příkazu:
dnf install openssl -yPo instalaci vytvořte nový adresář pro uložení certifikátu SSL:
mkdir /etc/ssl/privateDále vygenerujte certifikát s vlastním podpisem pomocí následujícího příkazu:
openssl req -newkey rsa:2048 -nodes -keyout /etc/ssl/private/vsftpd.key -x509 -days 365 -out /etc/ssl/private/vsftpd.crtZadejte všechny požadované informace, jak je uvedeno níže:
Generování soukromého klíče RSA...++++++...........+++++zápis nového soukromého klíče do '/etc/ssl/private/vsftpd.key'- ----Jste požádáni o zadání informací, které budou začleněny do vaší žádosti o certifikát. To, co se chystáte zadat, se nazývá rozlišovací jméno nebo DN. Existuje poměrně málo polí, ale některá můžete nechat prázdná. některá pole budou mít výchozí hodnotu. Pokud zadáte '.', pole zůstane prázdné.-----Název země (2 písmenný kód) [XX]:INState nebo název provincie (celé jméno) []:GUJLocality Name (např. město) [Výchozí město]:JUN Název organizace (např. společnost) [Výchozí společnost Ltd]:Název organizační jednotky IT (např. sekce) []:ITCommon Name (např. vaše jméno nebo název hostitele vašeho serveru) [] :ftpserverE-mailová adresa []:[e-mail chráněný]Po vygenerování certifikátu SSL budete muset nakonfigurovat VSFTPD pro použití tohoto certifikátu.
Otevřete výchozí konfigurační soubor VSFTPD, jak je znázorněno níže:
nano /etc/vsftpd/vsftpd.confNa konec souboru přidejte následující řádky:
#Cesta k certifikátu SSLrsa_cert_file=/etc/ssl/private/vsftpd.crtrsa_private_key_file=/etc/ssl/private/vsftpd.key#Enable the SSLssl_enable=YESallow_anon_sloscal_NOforce is thansllow_anon_sloscal_NOforce in takže povolte ssl_tlsv1_2.ssl_tlsv1=YESssl_sslv2=NOssl_sslv3=NOrequire_ssl_reuse=NOssl_ciphers=HIGH#Povolte ladění SSL pro uložení všech log VSFTPD.debug_ssl=ANO
Po dokončení uložte a zavřete soubor. Potom restartujte službu VSFTPD, aby se změny projevily:
restart systemctl vsftpd
V tomto okamžiku je váš server VSFTPD nakonfigurován pro použití certifikátu SSL. Nyní můžete přejít k dalšímu kroku.
Ověřit připojení VSFTPD TLS
Váš server VSFTPD je nyní zabezpečen podporou SSL/TLS. Dále se pokuste připojit váš FTP server z příkazového řádku, jak je uvedeno níže:
ftp 172.20.10.3
Chybu byste měli vidět v následujícím výstupu:
Připojeno k 172.20.10.3.220 (vsFTPd 3.0.2)Name (172.20.10.3:root):vyom530 Neanonymní relace musí používat šifrování.Přihlášení se nezdařilo.421 Služba není dostupná, vzdálený server ukončil připojeníftp>Z klienta příkazového řádku se nemůžete připojit k serveru VSFTP. Protože nepodporuje SSL/TLS.
Budete si tedy muset stáhnout a otestovat připojení VSFTPD pomocí FTP klienta, který podporuje připojení TLS.
Chcete-li tak učinit, přejděte do klientského systému a nainstalujte klientský balíček FileZilla.
Po instalaci FileZilla otevřete software FileZilla, jak je znázorněno níže:
Dále otevřete Site Manager, jak je ukázáno níže:
Klikněte na Nový web tlačítko pro přidání nového FTP připojení, jak je znázorněno níže:
Zadejte IP adresu svého FTP serveru, vyberte protokol FTP, vyberte „Použít explicitní FTP přes TLS“, vyberte dotaz na heslo, zadejte uživatelské jméno svého FTP serveru a klikněte na Připojit knoflík. Budete požádáni o zadání hesla uživatele FTP, jak je uvedeno níže:
Zadejte své heslo FTP a klikněte na OK knoflík. Budete požádáni o ověření certifikátu používaného pro připojení SSL/TLS, jak je uvedeno níže:
Klikněte na OK tlačítko pro ověření certifikátu. Po úspěšném navázání připojení byste měli vidět následující obrazovku:
Závěr
Ve výše uvedené příručce jsme nainstalovali server VSFTPD na CentOS 8. Server VSFTPD jsme také nakonfigurovali tak, aby používal certifikát SSL/TLS. Váš FTP server je nyní zabezpečen. Pokud máte nějaké dotazy, neváhejte se mě zeptat.
Jak nainstalovat DokuWiki s Nginx a šifrovat SSL na CentOS 8 Nainstalujte LibModsecurity Web Application Firewall s Nginx na CentOS 8Cent OS