Android

Jak nastavit ftp server pomocí vsftpd na Ubuntu 18.04

Tutorial Configure FTP Server on Ubuntu Server 14.04

Tutorial Configure FTP Server on Ubuntu Server 14.04

Obsah:

Anonim

FTP (File Transfer Protocol) je standardní síťový protokol používaný k přenosu souborů do a ze vzdálené sítě. Pro bezpečnější a rychlejší přenos dat použijte SCP nebo SFTP.

Pro Linux je k dispozici mnoho FTP serverů s otevřeným zdrojovým kódem. Nejoblíbenější a nejrozšířenější jsou PureFTPd, ProFTPD a vsftpd. V tomto tutoriálu instalujeme vsftpd (Very Secure Ftp Daemon). Je to stabilní, bezpečný a rychlý FTP server. Ukážeme vám také, jak nakonfigurovat vsftpd tak, aby omezoval uživatele na jejich domovský adresář a šifroval celý přenos pomocí SSL / TLS.

Přestože je tento tutoriál napsán pro Ubuntu 18.04, platí stejné pokyny pro Ubuntu 16.04 a jakékoli distribuce založené na Debianu, včetně Debian, Linux Mint a Elementary OS.

Předpoklady

Před pokračováním v tomto kurzu se ujistěte, že jste přihlášeni jako uživatel s právy sudo.

Instalace vsftpd na Ubuntu 18.04

Balíček vsftpd je k dispozici v repozitářích Ubuntu. Chcete-li jej nainstalovat, jednoduše spusťte následující příkazy:

sudo apt update sudo apt install vsftpd

Služba vsftpd se automaticky spustí po dokončení procesu instalace. Ověřte to vytištěním stavu služby:

sudo systemctl status vsftpd

Výstup bude vypadat podobně jako níže, což ukazuje, že služba vsftpd je aktivní a běží:

* vsftpd.service - vsftpd FTP server Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2018-10-15 03:38:52 PDT; 10min ago Main PID: 2616 (vsftpd) Tasks: 1 (limit: 2319) CGroup: /system.slice/vsftpd.service `-2616 /usr/sbin/vsftpd /etc/vsftpd.conf

Konfigurace vsftpd

Server vsftpd lze nakonfigurovat úpravou souboru /etc/vsftpd.conf . Většina nastavení je dobře zdokumentována uvnitř konfiguračního souboru. Všechny dostupné možnosti najdete na oficiální stránce vsftpd.

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

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

sudo nano /etc/vsftpd.conf

1. FTP přístup

Umožníme přístup k FTP serveru pouze místním uživatelům, najdeme direktivy anonymous_enable a local_enable a ověříme, zda vaše konfigurace odpovídá níže uvedeným řádkům:

/etc/vsftpd.conf

anonymous_enable=NO local_enable=YES

2. Povolení nahrávání

Chcete-li povolit změny v souborovém systému, například nahrávání a mazání souborů, odkomentujte nastavení write_enable .

/etc/vsftpd.conf

write_enable=YES

3. Chroot vězení

Chcete-li zabránit uživatelům FTP v přístupu ke všem souborům mimo jejich domovské adresáře, odkomentujte nastavení chroot .

/etc/vsftpd.conf

chroot_local_user=YES

Ve výchozím nastavení, aby se předešlo zranitelnosti zabezpečení, když je povoleno chroot, vsftpd odmítne nahrát soubory, pokud je adresář, do kterého jsou uzamčení uživatelé zapisovatelný.

Použijte jednu z níže uvedených metod a povolte nahrávání, když je povolena chroot.

  • Metoda 1 - Doporučenou metodou pro povolení nahrávání je udržování chrootu povoleno a konfigurace adresářů FTP. V tomto tutoriálu vytvoříme adresář ftp uvnitř uživatelského domova, který bude sloužit jako chroot a adresář pro nahrávání souborů pro nahrávání souborů.

    /etc/vsftpd.conf

    user_sub_token=$USER local_root=/home/$USER/ftp

    Metoda 2. - Další možností je přidání následující směrnice do konfiguračního souboru vsftpd. Tuto možnost použijte, pokud musíte uživateli udělit přístup k zápisu do svého domovského adresáře.

    /etc/vsftpd.conf

    allow_writeable_chroot=YES

4. Pasivní připojení FTP

vsftpd může použít jakýkoli port pro pasivní připojení FTP. Určíme minimální a maximální rozsah portů a později tento rozsah otevřeme v našem firewallu.

Do konfiguračního souboru přidejte následující řádky:

/etc/vsftpd.conf

pasv_min_port=30000 pasv_max_port=31000

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

Chcete-li povolit pouze určitým uživatelům přihlášení k serveru FTP, přidejte na konec souboru následující řádky:

/etc/vsftpd.conf

userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO

Pokud 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 souboru /etc/vsftpd.user_list (jeden uživatel na řádek).

6. Zabezpečení přenosu pomocí SSL / TLS

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

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

Pomocí příkazu openssl vygenerujeme SSL certifikát s vlastním podpisem.

Následující příkaz vytvoří 2048bitový soukromý klíč a certifikát s vlastním podpisem platný 10 let. Soukromý klíč i certifikát budou uloženy ve stejném souboru:

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

Po vytvoření certifikátu SSL otevřete konfigurační soubor vsftpd:

sudo nano /etc/vsftpd.conf

Najděte rsa_cert_file a rsa_cert_file , změňte jejich hodnoty na cestu k souboru pam a nastavte direktivu ssl_enable na YES :

/etc/vsftpd.conf

rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES

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

Restartujte službu vsftpd

Po dokončení úprav by měl konfigurační soubor vsftpd (bez komentářů) vypadat asi takto:

/etc/vsftpd.conf

listen=NO listen_ipv6=YES anonymous_enable=NO local_enable=YES write_enable=YES dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES user_sub_token=$USER local_root=/home/$USER/ftp pasv_min_port=30000 pasv_max_port=31000 userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO

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

sudo systemctl restart vsftpd

Otevření Firewallu

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 allow 20:21/tcp sudo ufw allow 30000:31000/tcp

Chcete-li se vyhnout uzamčení, otevřete port 22 :

sudo ufw allow OpenSSH

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

sudo ufw disable sudo ufw enable

Chcete-li ověřit běh změn:

sudo ufw status

Status: active To Action From -- ------ ---- 20:21/tcp ALLOW Anywhere 30000:31000/tcp ALLOW Anywhere OpenSSH ALLOW Anywhere 20:21/tcp (v6) ALLOW Anywhere (v6) 30000:31000/tcp (v6) ALLOW Anywhere (v6) OpenSSH (v6) ALLOW Anywhere (v6)

Vytvoření FTP uživatele

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

  • Pokud již máte uživatele, kterému chcete udělit přístup FTP, přeskočte 1. krok. Pokud v konfiguračním souboru nastavíte allow_writeable_chroot=YES přeskočte 3. krok.
  1. Vytvořit nového uživatele s názvem newftpuser :

    sudo adduser newftpuser

    Přidejte uživatele do seznamu povolených uživatelů FTP:

    echo "newftpuser" | sudo tee -a /etc/vsftpd.user_list

    Vytvořte strom adresáře FTP a nastavte správná oprávnění:

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

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

Nyní je váš FTP server plně funkční a měli byste být schopni se k serveru připojit pomocí libovolného FTP klienta, který lze nakonfigurovat tak, aby používal šifrování TLS, jako je FileZilla.

Zakázání Shell Access

Ve výchozím nastavení bude mít uživatel při vytváření uživatele, pokud není výslovně uvedeno, přístup na server SSH.

Chcete-li zakázat přístup do shellu, vytvoříme nový shell, který jednoduše vytiskne zprávu sdělující uživateli, že jejich účet je omezen pouze na FTP přístup.

Vytvořte shell /bin/ftponly a udělejte ho spustitelným:

echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly sudo chmod a+x /bin/ftponly

Připojte nový shell k seznamu platných prostředí v souboru /etc/shells :

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

Změnit shell uživatele na /bin/ftponly :

sudo usermod newftpuser -s /bin/ftponly

Stejným příkazem můžete změnit prostředí všech uživatelů, kterým chcete dát pouze FTP přístup.

Závěr

V tomto tutoriálu jste se naučili, jak nainstalovat a nakonfigurovat zabezpečený a rychlý FTP server v systému Ubuntu 18.04.

ftp ubuntu