Linux

Jak nastavit FTP server s VSFTPD na Ubuntu 20.04

Jak nastavit FTP server s VSFTPD na Ubuntu 20.04

Tento článek popisuje, jak nainstalovat a nakonfigurovat server FTP v systému Ubuntu 20.04, kterou používáte ke sdílení souborů mezi zařízeními.

FTP (File Transfer Protocol) je standardní síťový protokol používaný k přenosu souborů do a ze vzdálené sítě. V systému Linux je k dispozici několik serverů FTP s otevřeným zdrojovým kódem. Nejznámější a nejpoužívanější jsou PureFTPd, ProFTPD a vsftpd . Budeme instalovat stabilní, bezpečný a rychlý FTP server vsftpd (Very Secure Ftp Daemon). Ukážeme vám také, jak nakonfigurovat server tak, aby omezoval uživatele na jejich domovský adresář a šifroval celý přenos pomocí SSL / TLS.

Ačkoli FTP je velmi populární protokol, pro bezpečnější a rychlejší datové přenosy byste měli používat SCP nebo SFTP .

Instalace vsftpd na Ubuntu 20.04 #

Balíček vsftpd je k dispozici v úložištích Ubuntu. Chcete-li jej nainstalovat, proveďte následující příkazy:

sudo apt aktualizacesudo apt install vsftpd

Služba ftp se automaticky spustí po dokončení procesu instalace. Chcete-li to ověřit, vytiskněte stav služby:

sudo systemctl status vsftpd

Výstup by měl ukázat, že služba vsftpd je aktivní a běží:

● vsftpd.služba - vsftpd FTP server Načteno: načteno (/ lib / systemd / system / vsftpd.servis; povoleno; přednastavení dodavatele: povoleno) Aktivní: aktivní (běží) od Út 2021-03-02 15:17:22 UTC; Před 3 s… 

Konfigurace vsftpd #

Konfigurace serveru vsftpd je uložena v / etc / vsftpd.konf soubor.

Většina nastavení serveru je uvnitř souboru dobře zdokumentována. Všechny dostupné možnosti najdete na stránce dokumentace vsftpd.

V následujících částech projdeme některá důležitá nastavení potřebná ke konfiguraci zabezpečené instalace vsftpd.

Začněte otevřením konfiguračního souboru vsftpd:

sudo nano / etc / vsftpd.konf

1. FTP přístup #

Přístup na server FTP povolíme pouze místním uživatelům. Vyhledejte anonymous_enable a local_enable direktivy a ověřte, zda se vaše konfigurace shoduje s níže uvedenými řádky:

/ etc / vsftpd.konf
anonymous_enable = NO local_enable = ANO 

2. Povolení nahrávání #

Vyhledejte a odkomentujte write_enable směrnice umožňující změny souborového systému, jako je nahrávání a odebírání souborů:

/ etc / vsftpd.konf
write_enable = ANO 

3. Chroot vězení #

Chcete-li zabránit místním uživatelům FTP v přístupu k souborům mimo jejich domovské adresáře, odkomentujte lne počínaje chroot_local_user:

/ etc / vsftpd.konf
chroot_local_user = ANO 

Ve výchozím nastavení z důvodu zabezpečení, když je povolen chroot, vsftpd odmítne nahrát soubory, pokud je zapisovatelný adresář, do kterého jsou uživatelé uzamčeni.

Chcete-li povolit nahrávání, když je povolen chroot, použijte jedno z níže uvedených řešení:

4. Pasivní připojení FTP #

Ve výchozím nastavení vsftpd používá aktivní režim. Chcete-li použít pasivní režim, nastavte minimální a maximální rozsah portů:

/ etc / vsftpd.konf
pasv_min_port = 30000 pasv_max_port = 31000 

Pro pasivní připojení FTP můžete použít libovolný port. Když je povolen pasivní režim, klient FTP otevře připojení k serveru na náhodném portu v rozsahu, který jste vybrali.

5. Omezení přihlášení uživatele #

Můžete nakonfigurovat vsftpd tak, aby umožňoval přihlášení pouze určitým uživatelům. Chcete-li tak učinit, přidejte na konec souboru následující řádky:

/ etc / vsftpd.konf
userlist_enable = ANO userlist_file = / etc / vsftpd.user_list userlist_deny = NE 

Když je tato možnost povolena, musíte explicitně určit, kteří uživatelé se mohou přihlásit, přidáním uživatelských jmen do / etc / vsftpd.seznam_uživatelů soubor (jeden uživatel na řádek).

6. Zabezpečení přenosů pomocí SSL / TLS #

Chcete-li šifrovat přenosy FTP pomocí protokolu SSL / TLS, musíte mít certifikát SSL a nakonfigurovat server FTP tak, aby jej mohl používat.

Můžete použít existující certifikát SSL podepsaný důvěryhodnou certifikační autoritou nebo vytvořit certifikát podepsaný svým držitelem.

Pokud máte doménu nebo subdoménu ukazující na adresu IP serveru FTP, můžete rychle vygenerovat bezplatný certifikát Let's Encrypt SSL.

Vygenerujeme 2048bitový soukromý klíč a certifikát SSL s vlastním podpisem, který bude platný deset let:

sudo openssl req -x509 -nodes -days 3650 -newkey rsa: 2048 -keyout / etc / ssl / private / vsftpd.pem -out / etc / ssl / private / vsftpd.pem

Soukromý klíč i certifikát budou uloženy ve stejném souboru.

Jakmile je certifikát SSL vytvořen, otevřete konfigurační soubor vsftpd:

sudo nano / etc / vsftpd.konf

Najít rsa_cert_file a rsa_private_key_file směrnice, změňte jejich hodnoty na pam cestu k souboru a nastavte ssl_enable směrnice do ANO:

/ etc / vsftpd.konf
rsa_cert_file = / etc / ssl / private / vsftpd.pem rsa_private_key_file = / etc / ssl / private / vsftpd.pem ssl_enable = ANO 

Pokud není uvedeno jinak, použije server FTP k zabezpečenému připojení pouze protokol TLS.

Restartujte službu vsftpd #

Jakmile dokončíte úpravy, konfigurační soubor vsftpd (kromě komentářů) by měl vypadat asi takto:

/ etc / vsftpd.konf
poslouchat = NE poslouchat_ipv6 = ANO anonymní_enable = NE lokální_enable = ANO write_enable = ANO dirmessage_enable = ANO use_localtime = ANO xferlog_enable = ANO connect_from_port_20 = ANO chroot_local_user = ANO zabezpečený_chroot_dir = / var / běh / pam_s / soukromé / vsftpd.pem rsa_private_key_file = / etc / ssl / private / vsftpd.pem ssl_enable = ANO user_sub_token = $ USER local_root = / home / $ USER / ftp pasv_min_port = 30000 pasv_max_port = 31000 userlist_enable = ANO userlist_file = / etc / vsftpd.user_list userlist_deny = NE 

Uložte soubor a restartujte službu vsftpd, aby se změny projevily:

sudo systemctl restart vsftpd

Otevření brány firewall #

Pokud používáte bránu firewall UFW, budete muset povolit přenos FTP.

Chcete-li otevřít port 21 (Port příkazu FTP), port 20 (Datový port FTP) a 30000-31000 (Rozsah pasivních portů), spusťte následující příkazy:

sudo ufw povolit 20:21 / tcpsudo ufw povolit 30000: 31000 / tcp

Abyste se vyhnuli uzamčení, zkontrolujte port 22 je otevřeno:

sudo ufw povolit OpenSSH

Znovu načtěte pravidla UFW deaktivací a opětovným povolením UFW:

sudo ufw deaktivovatsudo ufw povolit

Ověření spuštění změn:

sudo ufw status
Stav: aktivní Do Akce Od - ------ ---- 20:21 / tcp POVOLIT kdekoli 30000: 31000 / tcp POVOLIT kdekoli OpenSSH POVOLIT kdekoli 20: 21 / tcp (v6) POVOLIT kdekoli (v6) 30000: 31000 / tcp (v6) ALLOW Anywhere (v6) OpenSSH (v6) ALLOW Anywhere (v6) 

Vytvoření uživatele FTP #

Abychom otestovali server FTP, vytvoříme nového uživatele.

  1. Vytvořte nového uživatele s názvem newftpuser:

    sudo adduser newftpuser
  2. Přidejte uživatele do seznamu povolených uživatelů FTP:

    echo "newftpuser" | sudo tee -a / etc / vsftpd.seznam_uživatelů
  3. Vytvořte strom adresářů FTP a nastavte správná oprávnění:

    sudo mkdir -p / home / newftpuser / ftp / uploadsudo chmod 550 / home / newftpuser / ftpsudo chmod 750 / home / newftpuser / ftp / uploadsudo chown -R newftpuser: / home / newftpuser / ftp

    Jak je uvedeno v předchozí části, uživatel bude moci nahrát své soubory do ftp / upload adresář.

V tomto okamžiku je váš server FTP plně funkční. Měli byste být schopni se připojit k serveru pomocí libovolného klienta FTP, který lze nakonfigurovat tak, aby používal šifrování TLS, například FileZilla .

Zakázání přístupu k prostředí #

Ve výchozím nastavení bude mít uživatel při vytváření uživatele, pokud není výslovně zadán, přístup SSH k serveru. Chcete-li zakázat přístup k prostředí, vytvořte nový prostředí, které vytiskne zprávu sdělující uživateli, že jeho účet je omezen pouze na přístup FTP.

Spuštěním následujících příkazů vytvořte / bin / ftponly soubor a proveďte jej spustitelný:

echo -e '#!/ bin / sh \ necho "Tento účet je omezen pouze na přístup FTP."'| sudo tee -a / bin / ftponlysudo chmod a + x / bin / ftponly

Připojte nový shell k seznamu platných skořápek v / etc / skořápky soubor:

echo "/ bin / ftponly" | sudo tee -a / etc / shells

Změňte uživatelské prostředí na / bin / ftponly:

sudo usermod newftpuser -s / bin / ftponly

Stejným příkazem můžete změnit shell všech uživatelů, kterým chcete udělit pouze přístup FTP.

Závěr #

Ukázali jsme vám, jak nainstalovat a nakonfigurovat zabezpečený a rychlý server FTP na vašem Ubuntu 20.04 systém.

Máte-li jakékoli dotazy nebo zpětnou vazbu, neváhejte zanechat komentář.

Hry Užitečné nástroje pro hráče Linuxu
Užitečné nástroje pro hráče Linuxu
Pokud rádi hrajete hry na Linuxu, je pravděpodobné, že jste ke zlepšení herního zážitku použili aplikace a nástroje jako Wine, Lutris a OBS Studio. Kr...
Hry HD remasterované hry pro Linux, které nikdy dříve neměly vydání Linuxu
HD remasterované hry pro Linux, které nikdy dříve neměly vydání Linuxu
Mnoho vývojářů a vydavatelů her přichází s HD remasterem starých her, aby prodloužili životnost franšízy, prosím fanoušky, kteří požadují kompatibilit...
Hry Jak používat AutoKey k automatizaci linuxových her
Jak používat AutoKey k automatizaci linuxových her
AutoKey je nástroj pro automatizaci stolních počítačů pro systémy Linux a X11, programovaný v programech Python 3, GTK a Qt. Pomocí jeho funkcí skript...