
FTP, zkratka pro File Transfer Protocol, je oblíbený protokol pro přenos souborů na a ze serveru FTP. Je však plný bezpečnostních rizik, protože odesílá data a citlivé informace, jako jsou uživatelská jména a hesla, v prostém textu. VSFTPD ( Very Secure FTP Daemon ) je rychlý, bezpečný a stabilní FTP server, který používá šifrování k zabezpečení dat vyměňovaných se serverem.
V tomto tutoriálu se naučíme, jak nainstalovat FTP server vsftpd na Debian 11 .
Krok 1:Nainstalujte vsftpd na Debian 11
Nejprve otevřete terminál a aktualizujte seznamy balíčků na vašem serveru Debian.
$ sudo apt update
Balíček vsftpd je umístěn na oficiálních repozitářích Debianu. Proto použijte správce balíčků APT, jak je uvedeno.
$ sudo apt install vsftpd
Příkaz nainstaluje vsftpd spolu s dalšími závislostmi. Po instalaci se vsftpd spustí automaticky. Můžete to potvrdit spuštěním příkazu:
$ sudo systemctl status vsftpd
Z výstupu můžete vidět, že vsftpd běží podle očekávání.

V případě, že služba vsftpd ve vašem případě neběží, můžete ji spustit, jak je uvedeno.
$ sudo systemctl start vsftpd
Poté povolte spuštění služby při spuštění.
$ sudo systemctl enable vsftpd
Krok 2:Vytvořte jedinečného uživatele FTP
Dále vytvoříme jedinečný uživatelský účet FTP, který budeme používat pro přihlášení k serveru FTP. Jednoduše použijte adduser
příkaz následovaný jménem uživatele a odpovídajícím způsobem odpovězte na výzvy.
$ sudo adduser ftpuser

Krok 3:Přidejte uživatele FTP do seznamu uživatelů s povoleným přihlášením
Dále přidáme uživatele FTP do vsftpd.userlist
soubor. Místním uživatelům uvedeným v tomto souboru je uděleno oprávnění k přístupu k serveru FTP.
Spusťte tedy příkaz:
$ echo "ftpuser" | sudo tee -a /etc/vsftpd.userlist

Perfektní. Nyní pokračujte a nakonfigurujte vsftpd.
Krok 4:Vytvoření uživatelského adresáře FTP
Dále vytvořte adresář FTP pro uživatele FTP a přiřaďte mu příslušná oprávnění k adresáři a vlastnictví.
$ sudo mkdir -p /home/ftpuser/ftp_dir
$ sudo chmod -R 750 /home/ftpuser/ftp_dir
$ sudo chown -R ftpuser: /home/ftpuser/ftp_dir
Krok 5:Konfigurace vsftpd
Než se budeme moci přihlásit a začít komunikovat se serverem, je potřeba provést několik dalších kroků. Pokračujte a upravte hlavní konfigurační soubor – /etc/vsftpd.conf
.
$ sudo vim /etc/vsftpd.conf
Existuje několik nastavení, která musíte zajistit.
Začněme nejprve Přístupem k FTP . Ve výchozím nastavení mají přístup anonymní uživatelé. Ale to z bezpečnostních důvodů nechceme. Proto zakážeme přihlášení anonymnímu uživateli a udělíme přístup pouze místnímu uživateli.
anonymous_enable=NO
local_enable=YES
Dále musíte povolit místnímu uživateli nahrávat soubory a získat přístup do jejich domovského adresáře a také provádět změny v souborech, jak je uvedeno.
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
Kromě toho můžete omezit místní uživatele, kteří mohou přistupovat k souborům a nahrávat je, zadáním pouze uživatelů obsažených v vsftpd.userlist
soubor.
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO
Aby bylo zajištěno zabezpečené FTP připojení k serveru, musíme server zašifrovat pomocí certifikátu SSL. Chystáme se vygenerovat certifikát SSL s vlastním podpisem pro šifrování serveru. Chcete-li tak učinit, spusťte příkaz.
$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
Vraťte se znovu k výchozímu konfiguračnímu souboru a vložte tyto řádky, abyste určili cestu k vygenerovaným certifikátům SSL a povolili SSL.
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES
Stručně řečeno, váš konfigurační soubor by měl obsahovat tyto řádky:
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
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO
Aby se změny projevily, restartujte server.
$ sudo systemctl restart vsftpd
Aby bylo zajištěno, že je vše v pořádku, můžete ověřit jeho provozní stav.
$ sudo systemctl status vsftpd
Krok 5:Přístup k serveru vsftpd
Nyní jsme s konfiguracemi hotovi. Posledním krokem je přihlášení. V případě, že máte povolený firewall, povolte porty 20 a 21.
$ sudo ufw allow 20/tcp
$ sudo ufw allow 21/tcp
Poté znovu načtěte bránu firewall, aby se změny projevily.
$ sudo ufw reload
Nakonec vezměte svého FTP klienta, jako je FileZilla, a vyplňte podrobnosti následovně:
Hostitel :sftp://IP-serveru
Uživatelské jméno: ftpuser
Heslo :Heslo ftpuser
Jakmile vyplníte podrobnosti, klikněte na tlačítko 'QuickConnect'.

Po úspěšném výpisu adresáře můžete nyní začít bezpečně přenášet soubory přes SSL.

Na příkazovém řádku jednoduše spusťte příkaz:
$ sftp ftpuser@server-IP
Když budete vyzváni k pokračování, napište „yes“ a poskytněte uživateli FTP heslo pro přihlášení.

Závěr
Toto byl tutoriál, ve kterém jsme se naučili, jak nainstalovat FTP server vsftpd na Debian 11. Dále jsme pokračovali a vytvořili uživatele, nakonfigurovali server a přihlásili se z FTP klienta az příkazového řádku.