GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nakonfigurovat FTP s TLS v Ubuntu

FTP (File Transfer Protocol) se používá především k přenosu souborů mezi počítači. FTP funguje na architektuře klient-server, kde klient požaduje soubor od serveru a server požadovaný soubor klientovi vrátí. Na klientském počítači se ke komunikaci se serverem používá klientská aplikace FTP. K FTP serveru je také možné přistupovat přes prohlížeč. Ve výchozím nastavení FTP komunikuje přes nezabezpečený kanál, ale je možné nakonfigurovat FTP pro přenos dat přes zabezpečený kanál. V tomto tutoriálu se naučíte, jak nakonfigurovat FTP server s TLS a poté použít FileZilla jako klientskou aplikaci pro připojení k FTP serveru.

Nainstalovat VSFTPD

VSFTPD (Very Secure FTP Daemon) je softwarový program pro konfiguraci FTP na serveru. Tento kurz používá VSFTPD ke konfiguraci serveru FTP v počítači. Před instalací VSFTPD aktualizujte úložiště na vašem serveru spuštěním následujícího příkazu.

[e-mail chráněný]:~$ sudo apt-get-update -and

Dále nainstalujte VSFTPD pomocí následujícího příkazu.

[e-mail chráněný]:~$ sudo apt-get install vsftpd -and

Nakonec ověřte instalaci kontrolou verze vsftpd pomocí následujícího příkazu.

[email protected]:~$ vsftpd -v

Výše uvedený příkaz vytiskne verzi vsftpd, pokud byla instalace úspěšná.

FTP v aktivním režimu

V aktivním režimu zahájí FTP klient relaci vytvořením řídicího připojení TCP z libovolného portu na klientském počítači k portu 21 na serveru. Poté klient začne naslouchat datovému připojení na náhodném portu X a informuje server prostřednictvím řídicího připojení TCP, že klient naslouchá datovému připojení na portu X. Server poté naváže datové spojení ze svého portu 20 na port X na klientském počítači.

Problém může nastat, když je klient za firewallem a port X je blokován. V tomto případě server nemůže navázat datové připojení ke klientovi. Aby se předešlo tomuto problému, FTP server se většinou používá v pasivním režimu, o kterém budeme hovořit později v tomto článku. Ve výchozím nastavení VSFTPD používá pasivní režim, takže jej musíme změnit na aktivní režim.

Nejprve otevřete konfigurační soubor VSFTPD.

[email protected]:~$ sudo Nano /etc/vsftpd.conf

Přidejte následující řádek na konec souboru.

pasv_enable=NE

Také se ujistěte, že možnost 'connect_from_port_20' je nastavena na 'YES'. Tato možnost zajišťuje navázání datového připojení na portu 20 serveru.

Dále vytvořte adresář, který bude FTP server používat k ukládání souborů. Pro tento tutoriál nakonfigurujeme '/home/ubuntu/ftp/' jako kořenovou cestu pro FTP server.

[e-mail chráněný]:~$ sudo mkdir /home/ubuntu/ftp

Nyní určete tento adresář v konfiguračním souboru změnou volby 'local_root'. Následující parametr konfiguruje kořenovou cestu serveru.

local_root=/home/ubuntu/ftp

Aby uživatelé mohli zapisovat na FTP server, musí být povolena volba 'write_enable'.

Při změně konfiguračního souboru vždy restartujte server.

[email protected]:~$ sudo systemctl restart vsftpd

Nastavit heslo pro uživatele

FTP klient se připojí k serveru pomocí uživatelského jména a hesla. Pomocí následujícího příkazu nastavte heslo pro svého uživatele na zařízení.

[email protected]:~$ sudo passwd ubuntu

Výše uvedený příkaz vyžaduje heslo pro uživatele 'ubuntu'.

Nakonfigurujte bránu firewall pro aktivní režim

Když se FTP používá v aktivním režimu, FTP server používá ke komunikaci s klientem dva porty, port 21 a 22. Port 21 se používá k předávání příkazů klientovi a port 20 se používá k odesílání dat na libovolný port . převést zákazníka. Ke konfiguraci firewallu na serveru použijeme ufw. Nainstalujte ufw pomocí následujícího příkazu.

[e-mail chráněný]:~$ sudo apt-get install ufw

Nyní otevřeme porty 20, 21 a 22 (pro připojení SSH) na straně serveru.

[chráněno e-mailem]:~$ sudo ufw povolí protokol tcp od kohokoli na jakýkoli port

Povolte a zkontrolujte stav ufw pomocí následujících příkazů.

[e-mail chráněný]:~$ povolit sudo ufw

[e-mail chráněný]:~$ stav sudo ufw

POZNÁMKA: Pokud nakonfigurujete FTP server v cloudu, musíte také povolit porty 20, 21 a 22 ve skupině zabezpečení.

UPOZORNĚNÍ: Před povolením ufw na vzdáleném systému vždy povolte port 22 spolu s požadovanými porty. Ve výchozím nastavení, pokud povolíte ufw bez povolení provozu na portu 22, UFW zablokuje provoz na portu 22, takže nebudete mít přístup ke vzdálenému serveru přes SSH.

Instalace FTP klienta

Nyní je náš server nakonfigurován v aktivním režimu a můžeme k němu přistupovat ze strany klienta. Pro klientskou aplikaci používáme FileZilla, aplikaci FTP klienta. Nainstalujte FileZilla pomocí následujícího příkazu.

[e-mail chráněný]:~$ sudo apt-get install filezilla -and

Otevřete aplikaci FTP klienta a zadejte veřejnou IP adresu FTP serveru a další přihlašovací údaje.

Když kliknete na "Quickconnect", připojíte se k FTP serveru a budete automaticky přesměrováni do adresáře zadaného ve volbě "local_root" v konfiguračním souboru "/home/ubuntu/ftp".

Problémy s aktivním režimem

Používání FTP v aktivním režimu způsobuje problémy, když je klient za firewallem. Pokud po zadání počátečních řídicích příkazů server naváže datové spojení s klientem na náhodném portu, může být port blokován klientským firewallem a přenos dat selže. K vyřešení těchto problémů s firewallem lze použít FTP v pasivním režimu.

FTP v pasivním režimu

V pasivním režimu klient naváže řídící spojení se serverem na portu 21 serveru. Klient poté odešle speciální příkaz 'PASV', aby informoval server, že datové připojení vytváří klient namísto serveru. Jako odpověď klient získá IP serveru a náhodné číslo portu (toto číslo portu je nakonfigurováno na serveru). Klient používá tuto IP adresu a číslo portu k navázání datového spojení se serverem. V pasivním režimu jsou datová i řídicí spojení navázána klientem, takže firewall nenarušuje komunikaci mezi klientem a serverem.

Otevřete konfigurační soubor FTP ve svém oblíbeném editoru.

[email protected]:~$ sudo Nano /etc/vsftpd.conf

Nastavte volbu 'pasv_enable' v souboru na 'YES', aby server mohl komunikovat s klientem v pasivním režimu. Také nastavte volbu 'local_root' pro určení kořenového adresáře serveru a nastavte volbu 'write_enable' na 'YES', aby uživatelé mohli nahrávat soubory na server.

Jak již bylo zmíněno dříve, datové připojení vytváří klient a server odešle klientovi svou veřejnou IP a náhodný port, aby navázal datové spojení. Tento náhodný port na serveru lze zadat z řady portů v konfiguračním souboru.

Datové spojení mezi serverem a klientem je navázáno na portu mezi 1024 a 1048. Po změně konfiguračního souboru restartujte FTP server.

[email protected]:~$ sudo systemctl restart vsftpd

Nakonfigurujte bránu firewall v pasivním režimu

Pokud použijeme FTP v pasivním režimu, datové spojení bude navázáno přes libovolný port od 1024 do 1048, proto je nutné všechny tyto porty na FTP serveru povolit.

[chráněno e-mailem]:~$ sudo ufw povolí protokol tcp od kohokoli na jakýkoli port

Po povolení všech portů na bráně firewall povolte ufw spuštěním následujícího příkazu.

[e-mail chráněný]:~$ povolit sudo ufw

Před povolením brány firewall vždy povolte porty na serveru; Jinak nebudete moci přistupovat k vašemu serveru přes SSH jako ufw, které ve výchozím nastavení blokuje port 22.

Testování připojení

Nyní, když jsme nastavili FTP server v pasivním režimu, můžeme zkontrolovat FTP spojení s klientskou aplikací. Chcete-li to provést, otevřete ve svém systému FileZilla.

Po zadání hostitele, uživatelského jména, hesla a portu se nyní můžete připojit ke svému serveru. Nyní, když jste připojeni k FTP serveru běžícímu v pasivním režimu, můžete na server nahrávat soubory.

Nakonfigurujte certifikáty SSL pomocí serveru FTP

Ve výchozím nastavení FTP server naváže spojení mezi klientem a serverem prostřednictvím nezabezpečeného kanálu. Tento typ komunikace byste neměli používat, pokud si chcete vyměňovat citlivá data mezi klientem a serverem. Chcete-li komunikovat prostřednictvím zabezpečeného kanálu, musí být použity certifikáty SSL.

Generování certifikátů SSL

SSL certifikáty používáme k nastavení zabezpečené komunikace mezi klientem a serverem. Tyto certifikáty vygenerujeme pomocí openssl. Následující příkaz vygeneruje certifikáty SSL pro váš server.

[email protected]:~$ požadavek sudo openssl -x509 -node -tag 365 -nový klíč rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -aus /etc/ssl/private/vsftpd.pem

Když spustíte výše uvedený příkaz, budete dotázáni na několik otázek. Po zodpovězení těchto otázek budou vygenerovány certifikáty. Certifikáty můžete procházet v terminálu.

[e-mail chráněný]:~$ sudo ls /etc/SSL/private/

Použití certifikátů v konfiguračním souboru

Nyní jsou naše certifikáty připraveny k použití. Nakonfigurujeme soubor 'vsftpd.conf' pro použití SSL certifikátů pro komunikaci. Otevřete konfigurační soubor pomocí následujícího příkazu.

[email protected]:~$ sudo Nano /etc/vsftpd.conf

Přidejte následující řádky na konec souborů. Tyto změny zajišťují, že server FTP používá nově vygenerované certifikáty SSL pro bezpečnou komunikaci s klientem.

ssl_enable=ANO
force_local_data_ssl=NE
force_local_logins_ssl=NE
ssl_tlsv1=ANO
ssl_sslv2=NE
ssl_sslv3=NE
rsa=SL/crt_ vlastnost /vsftpd.pem
rsa_private_key_file=/etc/SSL/Private/vsftpd.pem

Aby se tyto změny projevily, restartujte server FTP.

[email protected]:~$ sudo systemctl restart vsftpd

Po restartování serveru se zkuste připojit k serveru pomocí klientské aplikace FileZilla. Tentokrát se vás klientská aplikace zeptá, zda máte těmto certifikátům důvěřovat.

Pokud máte certifikáty od důvěryhodné CA, toto varování by se nemělo zobrazovat. Naše certifikáty jsme vygenerovali pomocí openssl, což není důvěryhodná CA, a proto v našem případě požadovala ověření certifikátem. Nyní můžeme komunikovat mezi klientem a serverem přes zabezpečený kanál.

Anonymní konfigurace

Můžete také povolit anonymní přihlášení na vašem FTP serveru. Když je tato konfigurace povolena, každý uživatel se může přihlásit k serveru FTP pomocí libovolného uživatelského jména a hesla. Následující parametry v konfiguračním souboru zpřístupňují FTP server anonymně.

Výše uvedená konfigurace nastavuje kořenovou cestu pro anonymní uživatele na '/home/ubuntu/ftp/anon' a nevyžaduje zadání hesla, když se anonymní uživatel přihlásí.

POZNÁMKA: Ujistěte se, že na serveru FTP existuje cesta '/home/ubuntu/ftp/anon'.

Nyní restartujte FTP server.

[email protected]:~$ sudo systemctl restart vsftpd

Po restartu serveru se pokusíme připojit k serveru přes prohlížeč Google Chrome. Přejděte na následující adresu URL.

ftp://3.8.12.52

Výše uvedená adresa URL vás zavede do kořenového adresáře FTP serveru, jak je uvedeno v konfiguračním souboru. Pokud je anonymní přihlášení zakázáno, pokus o připojení k FTP serveru z prohlížeče vás nejprve vyzve k ověření a poté vás přesměruje do kořenového adresáře serveru.

Konfigurace místního přístupu

Můžeme také povolit nebo zablokovat lokální přístup k FTP serveru úpravou konfiguračního souboru. V současné době můžeme přistupovat k našemu FTP serveru lokálně bez použití aplikace FTP klienta, ale můžeme tento přístup zablokovat. K tomu musíme změnit parametr 'local_enable'.

Nejprve restartujte server FTP.

[email protected]:~$ sudo systemctl restart vsftpd

Po restartování serveru se pokuste přistupovat k serveru FTP lokálně pomocí rozhraní příkazového řádku. Přihlaste se ke vzdálenému serveru pomocí SSH.

[e-mail chráněný]:~$ ssh [email protected] -i

Nyní zadejte následující příkaz a přihlaste se k serveru FTP lokálně pomocí rozhraní příkazového řádku.

[email protected]:~$ ftp localhost

Spuštění výše uvedeného příkazu vyvolá chybu 500.

Dokončení

File Transfer Protocol se používá již mnoho let k přenosu souborů a dokumentů přes internet. VSFTPD je jedním z balíčků používaných jako FTP server na vašem počítači. VSFTPD přichází s různými konfiguracemi, které můžete použít k přizpůsobení vašeho FTP serveru. Tento tutoriál ukázal, jak nakonfigurovat FTP server s TLS pro zvýšení bezpečnosti. Chcete-li se dozvědět více o konfiguraci FTP, navštivte následující odkaz.

https://vsftpd.beasts.org/vsftpd_conf.html


Ubuntu

Uchovávejte hesla bezpečně pomocí Hashicorp Vault na Ubuntu 20.04

  1. Odhlásit odběr Ubuntu One Folder nefunguje?

  2. Bude možné v nejnovějších verzích Ubuntu použít jádro bez pae?

  3. Vůbec první vydání distribuce Ubuntu Cinnamon je konečně tady!

Elasticsearch a Kibana:instalace a základní použití na Ubuntu 16.04

  1. 3 způsoby instalace .NET Core (dotnet) na Ubuntu 20.04 LTS Focal fossa

  2. Zdá se, že v historii příkazů chybí prvních 75 řádků?

  3. Xubuntu 20.04 Focal Fossa - Tickboxer

Jak nastavit a nainstalovat Squid Proxy Server na Ubuntu 18.04

  1. Jak nainstalovat Icecast 2 Media Streaming Server na Ubuntu 18.04 LTS

  2. Jak nainstalovat RainLoop Webmail na Ubuntu 20.04 s Apache/Nginx

  3. Xbindkeys_show:Exec:Wish Not Found?