Tutorial Configure FTP Server on Ubuntu Server 14.04
Obsah:
- Předpoklady
- Instalace vsftpd na Ubuntu 18.04
- Konfigurace vsftpd
- 1. FTP přístup
- 2. Povolení nahrávání
- 3. Chroot vězení
- 4. Pasivní připojení FTP
- 5. Omezení přihlášení uživatele
- 6. Zabezpečení přenosu pomocí SSL / TLS
- Restartujte službu vsftpd
- Otevření Firewallu
- Vytvoření FTP uživatele
- Zakázání Shell Access
- Závěr
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:
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:
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
.
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
.
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ář
/etc/vsftpd.confftp
uvnitř uživatelského domova, který bude sloužit jako chroot a adresář pro nahrávání souborů pro nahrávání souborů.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.confallow_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:
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
:
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:
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.
-
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 ubuntuJak nastavit a používat ftp server na Androidu
Chcete přenášet soubory ze zařízení Android do počítače bez kabelu USB? Vyzkoušejte metodu FTP serveru pro bezdrátové sdílení souborů mezi Androidem a PC.
Jak nastavit ftp server s vsftpd na centos 7
V tomto tutoriálu instalujeme vsftpd. Je to stabilní, bezpečný a rychlý FTP server. Také vám ukážeme, jak nakonfigurovat vsftpd tak, aby omezoval uživatele na jejich domovský adresář a šifroval celý přenos pomocí SSL / TLS.
Jak nastavit ftp server pomocí vsftpd na debian 9
V tomto tutoriálu instalujeme vsftpd. Je to stabilní, bezpečný a rychlý FTP server. Také vám ukážeme, jak nakonfigurovat vsftpd tak, aby omezoval uživatele na jejich domovský adresář a šifroval celý přenos pomocí SSL / TLS.