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 -andDále nainstalujte VSFTPD pomocí následujícího příkazu.
[e-mail chráněný]:~$ sudo apt-get install vsftpd -andNakonec 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.confPř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/ftpNyní 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 vsftpdNastavit 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 ubuntuVýš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 ufwNyní 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 -andOtevř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.confNastavte 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 vsftpdNakonfigurujte 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 ufwPř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.pemKdyž 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.confPř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=ANOforce_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 vsftpdPo 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 vsftpdPo 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.52Výš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 vsftpdPo 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] -iNyní zadejte následující příkaz a přihlaste se k serveru FTP lokálně pomocí rozhraní příkazového řádku.
[email protected]:~$ ftp localhostSpuš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

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

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

Jak nastavit a nainstalovat Squid Proxy Server na Ubuntu 18.04