File Transfer Protocol neboli FTP je velmi starý a jeden z nejznámějších síťových protokolů. Ve srovnání s SFTP nebo SCP v dnešní době není bezpečný, ale stále je první volbou mnoha uživatelů pro přenos souborů mezi serverem a klientem. FTP je známý jako nezabezpečený, protože přenáší data spolu s uživatelskými pověřeními bez jakéhokoli typu šifrování.
V současné době máme k dispozici širokou škálu open-source FTP serverů, jako jsou FTPD, VSFTPD, PROFTPD a pureftpd. Mezi všemi z nich je VSFTPD velmi bezpečný, rychlý a nejrozšířenější protokol pro přenos souborů mezi dvěma systémy.
VSFTPD je také známý jako "Very Secure File Transfer Protocol Daemon" s podporou SSL , IPv6, explicitní a implicitní FTPS.
V této příručce vám ukážeme, jak nainstalovat FTP server vsftpd na Debian 11.
Předpoklady
Server se systémem Debian 11.
Uživatel bez oprávnění root s právy sudo.
1. Nainstalujte Vsftpd
Před zahájením instalace aktualizujte svůj server Debian 11 provedením následujícího příkazu v terminálu:
sudo apt update -y
sudo apt upgrade -y
Debian má velmi velké úložiště a Balíček vsftpd je dostupný v oficiálním úložišti, takže můžete snadno nainstalovat vsftpd spuštěním následujícího příkazu:
sudo apt install vsftpd -y
Po instalaci balíčku spusťte službu Vsftpd, zkontrolujte stav služby a povolte službu při spuštění.
sudo systemctl start vsftpd
sudo systemctl status vsftpd
systemctl povolit vsftpd.service
2. Vytvořte uživatele FTP a nakonfigurujte přihlášení k FTP
Nyní vytvořte nový uživatelský účet pro FTP, pomocí tohoto uživatele se později přihlásíme k FTP serveru.
sudo adduser sohan
Uživatelé přidání v souboru vsftpd.userlist mají oprávnění pro přístup k FTP serveru.
Dále musíme přidat uživatele sohan do seznamu uživatelů vsftpd. Otevřete soubor a přidejte uživatele provedením následujícího příkazu:
echo "sohan" | sudo tee -a /etc/vsftpd.userlist
3. Vytvořte uživatelský adresář FTP
Dále musíme vytvořit FTP adresář pro našeho FTP uživatele a nastavit vlastnictví pomocí následujícího příkazu:
sudo mkdir -p /home/sohan/adresář_ftp
sudo chown Nobody:nogroup /home/sohan/adresář_ftp
sudo chmod a-w /home/sohan/adresář_ftpNyní vytvořte adresář, kam lze nahrávat soubory, a udělte vlastnictví uživateli sohan provedením příkazu:
sudo mkdir -p /home/sohan/ftp_directory/ftp_datasudo chown sohan:sohan /home/sohan/ftp_directory/ftp_datacd /home/sohan/ftp_directory/chmod -R 777 ftp_data
4. Nakonfigurujte Vsftpd
Dále musíte změnit některé výchozí parametry pro nastavení FTP serveru.
Nejprve vytvořte záložní kopii původního konfiguračního souboru vsftpd.sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bakNa serveru FTP mají ve výchozím nastavení přístup anonymní uživatelé. Aby byl FTP server bezpečnější, zakážeme anonymní přihlášení uživatele a udělíme přístup pouze konkrétnímu uživateli.
Dále otevřete soubor vsftpd.conf a proveďte změny, jak je uvedeno níže:
vim /etc/vsftpd.confanonymous_enable=NE
local_enable=ANOV konfiguraci musíme provést některé další změny, First Open vsftpd.conf
sudo vim /etc/vsftpd.confDále se ujistěte, že vsftpd.conf by měl obsahovat následující řádky:
listen=NE
listen_ipv6=YES
anonymní_povolit=NE
write_enable=ANO
local_umask=022
dirmessage_enable=ANO
use_localtime=ANO
xferlog_enable=ANO
connect_from_port_20=ANO
chroot_local_user=ANO
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
user_sub_token />local_root=/home/$USER/ftp_directory
userlist_enable=ANO
userlist_file=/etc/vsftpd.userlist
userlist_deny=NEUložte a zavřete soubor. Výše uvedenou konfiguraci můžete změnit podle svých potřeb.
Nyní restartujte službu vsftpd a zkontrolujte stav služby provedením následujících příkazů:sudo systemctl restart vsftpd
Dále se ujistěte, že je služba vsftpd ve stavu spuštěna provedením následujícího příkazu v Terminálu:sudo systemctl status vsftpd5. povolit vsftpd ve firewallu a přístup k serveru vsftpd
Dále, pokud používáte firewall, povolte port 21 a port 22 spuštěním následujícího příkazu:
sudo ufw povolit 21/tcp
sudo ufw povolit 22/tcpPoté znovu načtěte bránu firewall, aby se změny projevily:
sudo ufw reloadDále otevřete libovolného FTP klienta, jako je FileZilla, a zadejte podrobnosti o svém serveru, Like Protocol, Host, User:
Nyní klikněte na připojit a zadejte své heslo:
Poté se zobrazí podrobnosti jako níže, klikněte na OK.
V tomto okamžiku jste připojeni k serveru FTP a můžete nahrávat a stahovat soubory/složky.
6. Zabezpečte Vsftpd pomocí SSL/TLS
Řekněme, že chcete přenášet šifrovaná data přes FTP, k tomu potřebujete vytvořit SSL certifikát a musíte povolit SSL/TLS připojení.
Certifikát můžete vytvořit pomocí OpenSSL pomocí následujícího příkazu:sudo mkdir /etc/cert
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/cert/vsftpd.pem -out /etc/cert/vsftpd.pemNyní budete muset upravit soubor vsftpd.conf a provést nějaké změny:
sudo vim /etc/vsftpd.confPřidejte nakonec následující řádky:
rsa_cert_file=/etc/cert/vsftpd.pem
rsa_private_key_file=/etc/cert/vsftpd.pem
ssl_enable=ANO
allow_anon_ssl=NE
force_local_ESdata />force_local_logins_ssl=ANO
ssl_tlsv1=ANO
ssl_sslv2=NE
ssl_sslv3=NE
require_ssl_reuse=NE
ssl_ciphers=HIGHUložte a ukončete soubor a restartujte Vsftpd pomocí následujícího příkazu:
sudo systemctl restart vsftpd7. Přístup k FTP přes SSL/TLS
Otevřete FTP klienta FileZilla a přejděte do nabídky Soubor>Správce webů. Zde klikněte na Přidat nový web a zadejte název hostitele/webu, přidejte IP adresu, definujte protokol, který se má použít, Šifrování:Vyžadovat vysvětlení FTP přes TLS a typ přihlášení. Poté klikněte na tlačítko Připojit. Měli byste vidět následující obrázek:
Dále zadejte své heslo:
Dále uvidíte certifikát SSL, ověřte podrobnosti certifikátu a klikněte na OK.
Konečně uvidíte obsah svého FTP serveru a můžete bezpečně přenášet svá data z jednoho systému jinému.
Závěr
Ve výše uvedené příručce jsme nainstalovali server VSFTPD na Debian 11. Také jsme se naučili, jak se připojit prostřednictvím nešifrovaného a šifrovaného připojení pomocí certifikátu SSL.
Jak nainstalovat Bugzilla Bug Tracker na Debian 11 Jak nainstalovat InvoicePlane s Apache a Free Umožňuje šifrovat certifikát SSL na Debian 11Debian