FTP

Jak konfigurovat FTP pomocí TLS v Ubuntu

Jak konfigurovat FTP pomocí TLS v Ubuntu
FTP (File Transfer Protocol) se primárně používá k přenosu souborů mezi počítači. FTP pracuje v architektuře klient-server, ve které klient požádá o soubor ze serveru a server vrátí požadovaný soubor klientovi. Na klientském počítači se ke komunikaci se serverem používá klientská aplikace FTP. Je také možné přistupovat na FTP server v prohlížeči. 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 kurzu se naučíte, jak nakonfigurovat server FTP pomocí protokolu TLS a poté použít FileZilla jako klientskou aplikaci pro připojení k serveru FTP.

Instalace VSFTPD

VSFTPD (Very Secure FTP Daemon) je softwarový program používaný ke konfiguraci FTP na serveru. V tomto kurzu se VSFTPD použije ke konfiguraci serveru FTP v počítači. Před instalací VSFTPD aktualizujte úložiště na serveru vydáním následujícího příkazu.

[chráněno e-mailem]: ~ $ sudo apt-get update -y

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

[chráněno e-mailem]: ~ $ sudo apt-get install vsftpd -y

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

[chráněno e-mailem]: ~ $ vsftpd -v

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

FTP v aktivním režimu

V aktivním režimu klient FTP zahájí relaci navázáním řídicího připojení TCP z libovolného náhodného portu v klientském počítači na port 21 serveru. Poté klient začne poslouchat na náhodném portu X datové připojení a informuje server prostřednictvím připojení TCP Control, že klient čeká na datové připojení na portu X. Poté server naváže datové připojení ze svého portu 20 do portu X na klientském počítači.

Může nastat problém, když je klient za bránou firewall a port X je blokován. V tomto případě server není schopen navázat datové připojení s klientem. Abychom se tomuto problému vyhnuli, používá se FTP server většinou v pasivním režimu, o kterém si povíme později v tomto článku. Ve výchozím nastavení používá VSFTPD pasivní režim, takže jej budeme muset změnit na aktivní režim.

Nejprve otevřete konfigurační soubor VSFTPD.

[chráněno e-mailem]: ~ $ sudo nano / etc / vsftpd.konf

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

pasv_enable = NE

Ujistěte se také, že je možnost 'connect_from_port_20' nastavena na 'ANO.„Tato možnost zajišťuje, že je datové připojení navázáno na portu 20 serveru.

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

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

Nyní zadejte tento adresář v konfiguračním souboru změnou možnosti 'local_root'. Následující parametr nakonfiguruje kořenovou cestu serveru.

local_root = / home / ubuntu / ftp

Musí být povolena možnost „write_enable“, aby uživatelé mohli zapisovat na server FTP.

Pokaždé, když změníte konfigurační soubor, vždy restartujte server.

[chráněno e-mailem]: ~ $ sudo systemctl restart vsftpd

Nastavení hesla pro uživatele

Klient FTP se připojuje k serveru pomocí uživatelského jména a hesla. Pomocí následujícího příkazu nastavte heslo uživatele na stroji.

[chráněno e-mailem]: ~ $ sudo passwd ubuntu

Výše uvedený příkaz požádá o heslo pro uživatele „ubuntu“.

Konfigurace brány firewall pro aktivní režim

Pokud se používá FTP v aktivním režimu, použije server FTP ke komunikaci s klientem dva porty, porty 21 a 22. Port 21 se používá k předávání příkazů klientovi a port 20 se používá k přenosu dat na libovolný náhodný port klienta. Ke konfiguraci brány firewall na serveru použijeme ufw. Nainstalujte ufw pomocí následujícího příkazu.

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

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

[chráněno e-mailem]: ~ $ sudo ufw povolit z libovolného na jakýkoli port proto tcp

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

[chráněno e-mailem]: ~ $ sudo ufw povoleno
[chráněno e-mailem]: ~ $ sudo ufw status

POZNÁMKA: pokud konfigurujete svůj FTP server v cloudu, budete také muset povolit porty 20, 21 a 22 ve skupině zabezpečení.

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

Instalace klienta FTP

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

[chráněno e-mailem]: ~ $ sudo apt-get install filezilla -y

Otevřete klientskou aplikaci FTP a zadejte veřejnou IP adresu a další pověření serveru FTP.

Když kliknete na „Rychlé připojení“, připojíte se k serveru FTP a automaticky se přenesete do adresáře uvedeného v možnosti „local_root“ v konfiguračním souboru „/ home / ubuntu / ftp“.

Problémy v aktivním režimu

Používání FTP v aktivním režimu vyvolává problémy, když je klient za bránou firewall. Po zadání počátečních řídicích příkazů, když server vytvoří datové připojení s klientem na náhodném portu, může být port blokován bránou firewall v klientovi, což způsobí selhání přenosu dat. K řešení těchto problémů s bránou firewall lze použít FTP v pasivním režimu.

FTP v pasivním režimu

V pasivním režimu vytvoří klient řídicí spojení se serverem na portu 21 serveru. Klient poté odešle speciální příkaz 'PASV', aby informoval server, že datové připojení bude navázáno klientem místo serveru. V reakci na to klient obdrží IP adresu serveru a náhodné číslo portu (toto číslo portu bude nakonfigurováno na serveru). Klient používá tuto adresu IP a číslo portu k vytvoření datového připojení se serverem. V pasivním režimu je datové i řídicí připojení navázáno klientem, takže brána firewall nenarušuje komunikaci mezi klientem a serverem.

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

[chráněno e-mailem]: ~ $ sudo nano / etc / vsftpd.konf

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

Jak již bylo popsáno dříve, datové připojení naváže klient a server odešle klientovi veřejnou IP a náhodný port, aby vytvořil datové připojení. Tento náhodný port na serveru lze určit z řady portů v konfiguračním souboru.

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

[chráněno e-mailem]: ~ $ sudo systemctl restart vsftpd

Konfigurace brány firewall v pasivním režimu

Pokud používáme FTP v pasivním režimu, datové připojení bude navázáno na jakýkoli port od 1024 do 1048, takže je nutné povolit všechny tyto porty na FTP serveru.

[chráněno e-mailem]: ~ $ sudo ufw povolit z libovolného na jakýkoli port proto tcp

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

[chráněno e-mailem]: ~ $ sudo ufw povoleno

Před povolením brány firewall vždy povolte porty na serveru; jinak nebudete mít přístup k serveru přes SSH jako ufw, který ve výchozím nastavení blokuje port 22.

Testování připojení

Nyní jsme nastavili server FTP v pasivním režimu a můžeme zkontrolovat připojení ftp s klientskou aplikací. Chcete-li tak učinit, 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 k vašemu serveru. Nyní, když jste připojeni k serveru FTP spuštěnému v pasivním režimu, můžete na server nahrávat soubory.

Konfigurace certifikátů SSL pomocí serveru FTP

Ve výchozím nastavení FTP server naváže spojení mezi klientem a serverem přes nezabezpečený kanál. Tento typ komunikace by se neměl používat, pokud chcete sdílet citlivá data mezi klientem a serverem. Pro komunikaci přes zabezpečený kanál je nutné použít certifikáty SSL.

Generování certifikátů SSL

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

[chráněno e-mailem]: ~ $ sudo openssl req -x509 -nodes -day 365 -newkey rsa: 2048 -keyout / etc / ssl / private / vsftpd.pem -out / etc / ssl / private / vsftpd.pem

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

[chráněno e-mailem]: ~ $ 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 'vsftpd.conf 'pro použití certifikátů SSL pro komunikaci. Otevřete konfigurační soubor pomocí následujícího příkazu.

[chráněno e-mailem]: ~ $ sudo nano / etc / vsftpd.konf

Přidejte následující řádky na konec souborů. Tyto změny zajistí, že server FTP používá nově vygenerované certifikáty SSL ke bezpečné 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_cert_file = / etc / ssl / private / vsftpd.pem
rsa_private_key_file = / etc / ssl / private / vsftpd.pem

Chcete-li tyto změny použít, restartujte server FTP.

[chráněno e-mailem]: ~ $ sudo systemctl restart vsftpd

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

Pokud máte certifikáty od důvěryhodné certifikační autority, nemělo by se toto varování zobrazit. Naše certifikáty jsme vygenerovali pomocí openssl, což není důvěryhodná certifikační autorita, a proto v našem případě požádala o ověření certifikátu. 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 svém FTP serveru. Pokud je tato konfigurace povolena, může se každý uživatel přihlásit na server FTP pomocí libovolného uživatelského jména a hesla. Následující parametry v konfiguračním souboru zpřístupní server FTP anonymně.

Výše uvedená konfigurace nastaví kořenovou cestu pro anonymní uživatele na '/ home / ubuntu / ftp / anon' a při přihlášení anonymního uživatele nebude vyžadovat zadání hesla.

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

Nyní restartujte server FTP.

[chráněno e-mailem]: ~ $ sudo systemctl restart vsftpd

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

ftp: // 3.8.12.52

Výše uvedená adresa URL vás přenese do kořenového adresáře serveru FTP, jak je uvedeno v konfiguračním souboru. Pokud je anonymní přihlášení zakázáno, při pokusu o připojení k serveru FTP pomocí prohlížeče budete nejprve požádáni o ověření a poté budete přesměrováni do kořenového adresáře serveru.

Nakonfigurujte místní přístup

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

Nejprve restartujte server FTP.

[chráněno e-mailem]: ~ $ sudo systemctl restart vsftpd

Po restartování serveru zkuste místní přístup k serveru FTP pomocí rozhraní příkazového řádku. Přihlaste se na vzdálený server pomocí SSH.

[chráněno e-mailem]: ~ $ ssh ubuntu @ 3.8.12.52 -i

Nyní zadejte následující příkaz pro místní přihlášení k serveru FTP pomocí rozhraní příkazového řádku.

[chráněno e-mailem]: ~ $ ftp localhost

Když spustíte výše uvedený příkaz, vyvolá chybu 500.

Závěr

File Transfer Protocol se již mnoho let používá k přenosu souborů a dokumentů přes internet. VSFTPD je jeden z balíčků používaných jako server FTP na vašem počítači. VSFTPD obsahuje různé konfigurace, které můžete použít k přizpůsobení serveru FTP. Tento výukový program vám ukázal, jak nakonfigurovat server FTP pomocí protokolu TLS pro lepší zabezpečení. Další informace o konfiguracích FTP najdete na následujícím odkazu.

http: // vsftpd.zvířata.org / vsftpd_conf.html

Hry Nejlepší hry pro ruční sledování
Nejlepší hry pro ruční sledování
Oculus Quest nedávno představil skvělou myšlenku ručního sledování bez ovladačů. S neustále se zvyšujícím počtem her a aktivit, které provádějí podpor...
Hry Jak zobrazit překrytí OSD v linuxových aplikacích a hrách na celou obrazovku
Jak zobrazit překrytí OSD v linuxových aplikacích a hrách na celou obrazovku
Hraní her na celou obrazovku nebo používání aplikací v režimu celé obrazovky bez rozptýlení vás mohou odříznout od příslušných systémových informací v...
Hry Top 5 karet pro zachycení hry
Top 5 karet pro zachycení hry
Všichni jsme viděli a milovali streamování her na YouTube. PewDiePie, Jakesepticye a Markiplier jsou jen někteří z nejlepších hráčů, kteří vydělali mi...