předtím, Než začnete…
je překvapivé, jak mnoho webových vývojářů jsou stále netuší, SFTP a výhody přes FTP/FTPS. SFTP je dodáván s předinstalovaným linuxovým serverem a funguje stejně jako normální FTP, ale je bezpečnější a méně potíží s nastavením. Pokud váš FTP klient podporuje SFTP, měli byste jej použít!
- jak nakonfigurovat SFTP pro kořen dokumentu webového serveru
instalovat vsftpd
začněme aktualizací seznamů balíčků a instalací vsftpd na Ubuntu 18.04 / 18.10 / 19.04 / 19.10.,
níže máme dva příkazy oddělené &&
. První příkaz aktualizuje seznamy balíčků, aby se zajistilo, že získáte nejnovější verzi a závislosti pro vsftpd. Druhý příkaz pak stáhne a nainstaluje vsftpd. Stiskněte y
a ENTER
, když budete požádáni o pokračování.
sudo apt update && sudo apt install vsftpd
po instalaci zkontrolujte stav vsftpd
sudo service vsftpd status
nahoře vidíme, že náš FTP server je nyní v provozu.,
Konfigurovat Firewall
Pokud jste tak ještě neučinili, je doporučeno povolit ufw
firewall pro Ubuntu 18.04 / 18.10 / 19.04 / 19.10. Před povolenímufw
firewall se ujistěte, že přidáte pravidlo pro SSH, jinak se můžete ze serveru uzamknout, pokud jste vzdáleně připojeni. Pokud nechcete nastavit firewall, přeskočte na Krok 3.
sudo ufw allow OpenSSH
pojďme otevřít porty 20 a 21 pro FTP a porty 40000-50000 pro pasivní FTP. Otevřeme také port 990 pro TLS, který nastavíme později.,
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw allow 990/tcp
Nyní, povolte bránu firewall, pokud to není již. Stiskněte y
a ENTER
, pokud jste varováni před narušením připojení SSH.
sudo ufw enable
Chcete-li zkontrolovat stav brány firewall, spustit:
sudo ufw status
Pokud je brána firewall je spuštěn, měli byste vidět Status: active
a pravidla brány firewall, které jsme právě přidali.
vytvořit FTP uživatele
nyní vytvoříme nového uživatele, kterého použijeme k přihlášení do FTP., V tomto příkladu vytvoříme nového uživatele s názvem ftpuser
.
sudo adduser ftpuser
Vygenerujte silné heslo a udržujte jej v bezpečí.
můžete být také požádáni o zadání některých kontaktních informací. Stačí stisknout ENTER
na každou z nich.
Pokud se chcete pouze ftpuser
přihlásit přes FTP, měli byste zakázat jejich přístup k SSH na černou listinu, své uživatelské jméno v SSH config souboru. V opačném případě přeskočte na Krok 4.
otevřete SSH config v nano.,
sudo nano /etc/ssh/sshd_config
Přidejte následující na konec souboru nahrazení ftpuser
s uživatelské chcete popřít, SSH a SFTP přístup. Zde můžete přidat více uživatelů oddělených jediným mezerou. (Chcete-li vložit do nano, stiskněte pravé tlačítko myši).
DenyUsers ftpuser
uložit soubor a ukončit, stiskněte tlačítko CTRL
+ X
, stiskněte tlačítko Y
a potom stiskněte ENTER
.
restartujte službu SSH.,
sudo service sshd restart
oprávnění adresářů
nyní se musíte rozhodnout, kde tento nový uživatel FTP může prohlížet a nahrávat soubory.
vsftpd používá chroot vězení omezit uživatele do svých domovských adresářů a vyžaduje, aby domovský adresář není zapisovatelný. Z tohoto důvodu musíme nastavit některé adresáře a oprávnění.
Pokud plánujete používat tento uživatelský účet FTP k nahrávání souborů na webový server, pokračujte krokem 4.1. Pokud chcete nahrát pouze do domovské složky, přeskočte na krok 4.2.
4.1., Nahrát na webový Server
v mnoha případech chcete mít možnost nahrát soubory do kořenového adresáře dokumentu na webovém serveru.
Pokud jste sledovali předchozí průvodce pro nastavení více domén, dokument kořen může být umístěn někde v /var/www/test1.com/public_html
v tomto případě, budete muset nastavit domovskou složku ftpuser
do složky, nad kořen dokumentu: /var/www/test1.com
(dosazením test1.com pro vlastní doménu).,
Pokud nepoužíváte více domén, předpokládáme, že používáte výchozí kořen dokumentu /var/www/html
pro Apache i Nginx v Ubuntu 18.04 / 18.10 / 19.04 / 19.10. V tomto scénáři musíme vytvořit/var/www/
domovský adresář pro našeho uživateleftpuser
.
nastavíme složku nad kořenem dokumentu jako domovský adresář pro ftpuser
.
sudo usermod -d /var/www ftpuser
to umožní našemu uživateli FTP psát a měnit soubory v kořenovém adresáři dokumentu.,
sudo chown ftpuser:ftpuser /var/www/html
nyní přeskočte na Krok 5 a nakonfigurujte vsftpd.
4.2 Nahrát na Domovskou Složku
Pokud místo toho chcete, aby tento uživatel nahrát soubory na domovském adresáři, vytvořte nový adresář s názvem ftp
v domovském adresáři uživatele a další v něm files
. V tomto příkladu níže se náš uživatel nazývá ftpuser
.
sudo mkdir /home/ftpuser/ftp
Nastavte vlastnictví ftp
adresář nobody:nogroup
.,
sudo chown nobody:nogroup /home/ftpuser/ftp
Nastavte oprávnění pro ftp
adresář pomocí chmod
tak, že je nelze zapisovat kdokoliv, jinak vsftpd vám nedovolí se přihlásit. a-w
a
= všechny/všichni -
= odstranit w
= povolení zápisu, tak, odeberte oprávnění k zápisu pro všechny.
sudo chmod a-w /home/ftpuser/ftp
dále vytvoříme nový adresář v /ftp
kde uživatel může prohlížet a nahrávat soubory.,
sudo mkdir /home/ftpuser/ftp/files
přiřaďte vlastnictví tohoto adresáře našemu novému uživateli FTP, jinak do něj nebudou moci psát.
sudo chown ftpuser:ftpuser /home/ftpuser/ftp/files
Configure vsftpd
než začnete používat FTP na Ubuntu, musíme provést několik změn v konfiguračním souboru vsftpd 18.04 / 18.10 / 19.04 / 19.10.
před úpravou konfiguračního souboru vytvořte zálohu.
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
nyní otevřete konfigurační soubor v editoru nano
.,
sudo nano /etc/vsftpd.conf
Jedná se o poměrně velký soubor, ale je většinou plný komentářů, které vám pomohou.
musíte jít dolů soubor a ujistěte se, že nastavení odpovídá těm níže. Poznámka: můžete hledat v nano
pomocí CTRL
+ W
Podívejte se na #write_enable=YES
a vložte jej tím, že odstraní znak#. To umožní uživatelům FTP psát soubory na server.
write_enable=YES
podívejte se na #chroot_local_user=YES
a uvolněte jej odstraněním znaku#. To zabrání uživatelům FTP procházet mimo svůj vlastní adresář.
chroot_local_user=YES
podívejte se na #local_umask=022
a odpojte jej odstraněním znaku#. Tím získáte nahrané soubory a složky správná oprávnění.
local_umask=022
nyní musíme přidat některé směrnice, které v souboru neexistují.,
protože Linux nezobrazuje soubory začínající tečkou, soubory jako .htaccess
nebudou viditelné na FTP. To může být problém, pokud máte v úmyslu použít Apache a chcete pracovat s .htaccess
.
vynutit vsftpd zobrazit názvy souborů, které začínají tečkou, vložte následující na konec souboru. (Chcete-li vložit do nano, stiskněte pravé tlačítko myši)
force_dot_files=YES
nakonec přidáme některé rozsahy portů pro pasivní FTP, abychom se ujistili, že je k dispozici dostatek připojení. Vložte následující do dolní části souboru., (Chcete-li vložit do nano, stiskněte pravé tlačítko myši)
pasv_min_port=40000pasv_max_port=50000
Pokud jste postupovali Krok 4.2 dříve a chcete pouze tento uživatel nahrát soubory do domovského adresáře, musíme říct, vsftpd, že local_root
/ftp
složku jsme vytvořili dříve.
nepřidávejte tyto dva řádky, pokud chcete, aby uživatel nahrál do kořenového adresáře webového dokumentu!
user_sub_token=$USERlocal_root=/home/$USER/ftp
jsme hotovi s vsftpd.conf pro tuto chvíli, ale vrátí se v pozdějších krocích k nastavení zabezpečení a SSL.,
uložit soubor a ukončit, stiskněte tlačítko CTRL
+ X
, stiskněte tlačítko Y
a potom stiskněte ENTER
.
restartujte vsftpd.
sudo systemctl restart vsftpd
Test FTP
nyní můžeme vyzkoušet vsftpd, jestli se můžeme přihlásit jako uživatel, který jsme vytvořili dříve. Doporučujeme FileZilla, která funguje na Windows, Mac a Linux.
zadejte IP serveru, uživatelské jméno a heslo FTP, které jste vytvořili dříve, a klikněte na Quickconnect.,
Výše můžeme vidět, máme úspěšně připojena a na webu root directory html
se zobrazí, i když se to může lišit na vašem serveru.
zkuste nahrát, vytvářet a upravovat složky a soubory v kořenovém adresáři webu, abyste zajistili, že oprávnění fungují správně.
všimnete si, že máme varování ve stavu FileZilla: nezabezpečený server, nepodporuje FTP přes TLS.“Důrazně doporučujeme, abyste nyní nakonfigurovali TLS tak, aby přihlašovací údaje a provoz byly šifrovány přes připojení FTP.,
Pokud máte problémy s přihlášením na FTP server, zkuste zkontrolovat protokol vsftpd. Chcete-li zobrazit posledních 200 záznamů pomocí tail
:
sudo tail /var/log/vsftpd.log -n 200
Secure FTP s TLS (volitelné)
je důležité, aby pár věcí na paměti při použití FTP – to není šifrována ve výchozím nastavení, což znamená, vaše pověření a soubory, které odesíláte, jsou náchylné k odposlechu. Chcete-li to vyřešit, měli byste se připojit k vsftpd pomocí FTPS (FTP přes SSL/TLS).
začněme vytvořením nového certifikátu pomocí nástroje openssl
.,
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
budete vyzváni k zadání některých údajů, jako je země atd. Nemusíš to vyplňovat. Stačí stisknout ENTER
pro výchozí nastavení.
nyní, když byl vytvořen váš soukromý klíč, musíme provést několik změn v konfiguračním souboru vsftpd.
otevřete konfigurační soubor v editorunano
.
sudo nano /etc/vsftpd.conf
vyhledejte následující řádek: (Poznámka: můžete hledat v nano
pomocí CTRL
+ W
)
ssl_enable=NO
změňte jej na:
ssl_enable=YES
Vložit v následujícím pod ním.
Uložte soubor a ukončete (stiskněte CTRL
+ X
, stiskněte tlačítko Y
a potom stiskněte ENTER
).
restartujte vsftpd.
sudo systemctl restart vsftpd
testování TLS s FileZilla
nyní můžeme testovat TLS. Doporučujeme FileZilla, která funguje na Windows, Mac a Linux.,
zadejte IP serveru, uživatelské jméno a heslo FTP, které jste vytvořili dříve, a klikněte na Quickconnect.
můžete být upozorněni neznámým certifikátem. Klepněte na tlačítko vždy důvěřovat tomuto certifikátu v budoucích relacích a klepněte na tlačítko OK.
Pokud jste připojeni přes TLS, řekne vám to v protokolu připojení. Uvidíte také visací zámek v pravém dolním rohu.
jste hotovi!,
Dejte mi vědět, jestli to pomohlo. Následujte mě na Twitteru, Facebook a YouTube, nebo 🍊 koupit mi smoothie.
p. s. Díky AI 🤖jsem zvýšil své příjmy z AdSense o 68%. Přečtěte si můj ezoic recenzi zjistit, jak.
Napsat komentář