V tomto článku se dozvíte, jak nastavit FTP server na Ubuntu VPS. Budeme používat server vsftpd, který je obecně považován za nejrychlejší a nejbezpečnější FTP server pro systémy typu UNIX.
Co je FTP?
FTP neboli File Transfer Protocol je prostředek pro sdílení souborů mezi počítači přes internetové připojení pomocí protokolu TCP/IP. Využívá také rámec klient-server a zabezpečení SSL/TLS k zajištění bezpečného a spolehlivého přenosu dat.
Je to trochu podobné HTTP (HypertText Transfer Protocol) nebo SMTP (Simple Mail Transfer Protocol). Rozdíl je v tom, že FTP je zodpovědný za přenos souborů přes internet, zatímco HTTP a SMTP zajišťují přenos webových stránek a e-mailů.
Než začneme, mějte na paměti, že vás provedeme konfigurací FTP serveru na Ubuntu 18.04. Proto se musíte ujistit, že váš VPS běží na tomto konkrétním OS.
Jak nastavit FTP server na Ubuntu
Tento tutoriál vyžaduje, abyste věděli, jak se připojit k serveru prostřednictvím SSH. Pokud vlastníte Hostinger's VPS, přihlašovací údaje jsou k dispozici na Serveru hPanel.
Krok 1 – Instalace vsftpd
- Nejprve musíme získat aktualizace našich balíčků, než budeme pokračovat s vsftpd instalace. Začněte spuštěním následujícího příkazu:
sudo apt-get update
Počkejte na dokončení všech procesů a po dokončení aktualizace se zobrazí potvrzení.
- Jakmile budete hotovi, nainstalujte vsftpd démona pomocí příkazu níže:
sudo apt-get install vsftpd
Budete vyzváni potvrzovací zprávou, která bude vyžadovat zadání Y a stiskněte Enter pokračovat v instalaci.
- Po dokončení instalace byste měli zálohovat původní soubor, abyste mohli začít s prázdným konfiguračním souborem:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.original
Nyní jsme připraveni nakonfigurovat firewall.
Krok 2 – Povolení provozu FTP z brány firewall
- Aby mohl FTP server Ubuntu komunikovat přes internet, musí si projít firewallem. Nejprve se však podívejme, zda je brána firewall na vašem počítači již povolena nebo ne. Jednoduše spusťte tento příkaz a ověřte stav:
sudo ufw status
Pokud se zobrazí následující zpráva:
ufw: command not found
Znamená to, že firewall není nainstalován. Můžete jej nainstalovat a povolit zadáním:
sudo apt-get install ufw sudo ufw enable
- Pokud je již aktivní, musíte se ještě ujistit, že je povolen provoz FTP. Chcete-li to provést, spusťte jeden po druhém následující příkazy:
sudo ufw allow OpenSSH sudo ufw allow 20/tcp sudo ufw allow 21/tcp sudo ufw allow 990/tcp sudo ufw allow 40000:50000/tcp
Tato řada příkazů otevře několik portů:
- OpenSSH je vyžadováno, pokud stále chcete přistupovat k serveru přes SSH. Někdy je tato možnost ve výchozím nastavení povolena.
- porty 20 a 21 pro provoz FTP.
- porty 40000:50000 bude vyhrazen pro rozsah pasivních portů, které budou případně nastaveny v konfiguračním souboru.
- port 990 se použije, když je povoleno TLS.
- Nyní se znovu podíváme na stav:
sudo ufw status
Výstup by měl vypadat nějak takto:
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 990/tcp ALLOW Anywhere 20/tcp ALLOW Anywhere 21/tcp ALLOW Anywhere 40000:50000/tcp ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 20/tcp (v6) ALLOW Anywhere (v6) 21/tcp (v6) ALLOW Anywhere (v6) 990/tcp (v6) ALLOW Anywhere (v6) 40000:50000/tcp (v6) ALLOW Anywhere (v6)
Krok 3 – Vytvoření adresáře uživatelů
- Jakmile je firewall nastaven, musíme vytvořit uživatele, který bude používat FTP přístup. Postupujte takto:
sudo adduser hostinger
Nezapomeňte změnit uživatelské jméno podle svých vlastních preferencí.
- Poté zadejte heslo pro uživatele a vyplňte všechny požadované údaje.
V ideálním případě by měl být FTP z bezpečnostních důvodů omezen na jeden konkrétní adresář. Protovsftpd používá chroot vězení , který ve výchozím nastavení omezuje místního uživatele na jeho domovský adresář.
Je však možné, že kvůli vsftpd zabezpečení, uživatel nemusí být schopen zapisovat do tohoto adresáře. Abychom to napravili, nemusíme odstraňovat oprávnění k zápisu z domovské složky. Místo toho vytvoříme ftp adresář, který funguje jako chroot . Obsahuje zapisovatelný adresář, který bude zodpovědný za uložení požadovaných souborů. - K vytvoření složky FTP použijte následující příkaz:
sudo mkdir /home/hostinger/ftp
Poté nastavte vlastnictví pomocí:
sudo chown nobody:nogroup /home/hostinger/ftp
Nakonec odeberte oprávnění k zápisu:
sudo chmod a-w /home/hostinger/ftp
Nyní použijte následující příkaz k ověření oprávnění:
sudo ls -la /home/hostinger/ftp
Výstup by měl vypadat nějak takto:
total 8 dr-xr-xr-x 2 nobody nogroup 4096 Oct 8 11:32 . drwxr-xr-x 3 hostinger hostinger 4096 Oct 8 11:32 ..
- Dále vytvoříme adresář pro uložení souborů a přiřadíme vlastnictví:
sudo mkdir /home/hostinger/ftp/files sudo chown hostinger:hostinger /home/hostinger/ftp/files
Nakonec přidejte testovací soubor do adresáře, který bude použit, až budeme později vše testovat:
echo "vsftpd sample file" | sudo tee /home/hostinger/ftp/files/sample.txt
Krok 4 – Konfigurace vsftpd
Dalším krokem je konfigurace vsftpd a našeho FTP přístupu. V tomto příkladu umožníme jednomu uživateli připojit se pomocí místního shellového účtu. Dvě klíčové konfigurace potřebné k tomu jsou již nastaveny v konfiguraci (vsftpd.conf ) soubor.
- Začněte pomocí příkazu nano a otevřete vsftpd konfigurační soubor.
sudo nano /etc/vsftpd.conf
Ověřte, že obsah má podobná nastavení jako toto:
. . . # Allow anonymous FTP? (Disabled by default). anonymous_enable=NO # # Uncomment this to allow local users to log in. local_enable=YES . . .
Ve stejném souboru odstraníme # (odkomentujte) a ujistěte se, že je povoleno write_enable .
. . . write_enable=YES . . .
- Musíte také zrušit komentář chroot abyste zajistili, že uživatel FTP přistupuje pouze k souborům v povoleném adresáři. Změňte NE hodnotu na ANO , také. Mějte na paměti, že existují dva řádky jako je tento a musíte oba zrušit komentáře.
. . . chroot_local_user=YES . . .
- Je zde několik nových hodnot, které byste také měli přidat na konec souboru. První z nich je user_sub_token v cestě k adresáři local_root . Umožní konfiguraci pracovat s aktuálním uživatelem nebo dalšími uživateli, kteří budou následně přidáni:
user_sub_token=$USER local_root=/home/$USER/ftp
- Aby bylo zajištěno, že bude k dispozici značné množství připojení, omezíme počet portů konfiguračního souboru:
pasv_min_port=40000 pasv_max_port=50000
- V tomto kurzu chceme umožnit přístup případ od případu. Proto nastavíme konfiguraci tak, aby udělovala přístup pouze uživatelům, které jste výslovně přidali do seznamu:
userlist_enable=YES userlist_file=/etc/vsftpd.userlist userlist_deny=NO
Když nastavíte příznak userlist_deny na NE , budou mít přístup pouze vybraní uživatelé. Po dokončení klikněte na CTRL+X následuje Y uložte jej a stiskněte Enter pro potvrzení změn souboru.
- Nakonec vytvoříme seznam uživatelů a přidáme uživatele do souboru:
echo "hostinger" | sudo tee -a /etc/vsftpd.userlist
Ověřte, zda je uživatel skutečně aktivní spuštěním následujícího příkazu:
cat /etc/vsftpd.userlist
Výstup by měl být „hostinger“, jak je znázorněno na tomto snímku obrazovky:
- Restartujte démona pomocí následujícího příkazu k načtení změn konfigurace:
sudo systemctl restart vsftpd
Krok 5 – Zabezpečení FTP
- Ve výchozím nastavení FTP nešifruje data, takže budeme používat SSL/TLS certifikát pro zabezpečení přenosu dat. Prvním krokem je, že musíme vytvořit certifikát SSL pro FTP server Ubuntu.
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
–dnů flag činí certifikát platným rok a my jsme zahrnuli 2048bitový soukromé RSA zadejte stejný příkaz.
- Po zobrazení výzvy zadejte do zobrazeného pole odpovídající osobní údaje.
- Po dokončení vytváření certifikátu znovu otevřete konfigurační soubor:
sudo nano /etc/vsftpd.conf
Konec souboru by měl obsahovat dva řádky začínající rsa .
# rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem # rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
Nyní nasměrujeme konfigurační soubor na certifikát, který jsme právě vytvořili. Přidejte následující adresáře přímo pod předchozí řádky:
rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem
- Dále povolíme SSL a zajistíme, aby nás mohli kontaktovat pouze klienti, kteří mají aktivní SSL. Jednoduše zadejte tento řádek:
ssl_enable=YES
Poté přidejte následující řádky, abyste zakázali všechna anonymní připojení přes SSL:
allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES
Nakonfigurujte server pro použití TLS pomocí:
ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO
- Nyní změníme další dvě možnosti. Nejprve vypněte Opětovné použití SSL aby se zabránilo selhání FTP klientů. Za druhé, použijeme šifrovací sady s vysokým šifrováním, které zajistí, že délka klíčů bude rovna nebo větší než 128 bitů.
require_ssl_reuse=NO ssl_ciphers=HIGH
Uložte soubor znovu stisknutím CTRL+X následuje Y a poté stiskněte Enter .
- Pojďme restartovat vsftpd znovu použít nové konfigurace:
sudo systemctl restart vsftpd
Skvělá práce! Nyní jste nakonfigurovali FTP server na vašem Ubuntu VPS pro práci s protokolem SSL/TLS.
Krok 6 – Testování připojení s FileZilla
V současné době většina FTP klientů podporuje konfigurace šifrování TLS. Je to skvělý způsob, jak otestovat, zda váš FTP server Ubuntu funguje správně. K otestování připojení použijeme FTP klienta FileZilla.
- Začněte spuštěním FileZilla a klikněte na Správce webu ikona. Poté klikněte na Nový web v zobrazeném okně zadejte podrobnosti o serveru FTP Ubuntu.
- Vyplňte všechny požadované sloupce informacemi o nově vytvořeném FTP serveru Ubuntu. Protože jsme jej nakonfigurovali tak, aby používal TLS, můžeme také zvolit Použít explicitní FTP přes TLS volba. Konečná konfigurace by měla vypadat takto:
- Až budete připraveni, klikněte na Připojit a objeví se obrazovka s výzvou k zadání hesla uživatele FTP. Poté stiskněte OK .
- Nakonec budete muset ověřit SSL certifikát vašeho FTP serveru na Ubuntu VPS. Po potvrzení by se nyní na obrazovce měl objevit kořenový adresář s testovacím souborem.
To je vše! Nyní můžete provádět různé přenosy souborů z vašeho počítače na FTP server Ubuntu a naopak.
Závěr
Mít Ubuntu FTP server vám usnadní sdílení souborů mezi vaším Ubuntu VPS/serverem a počítačem. Jde o bezpečný a spolehlivý způsob přenosu dat díky zabezpečení SSL/TLS a protokolu TCP/IP.
V tomto tutoriálu jste se naučili, jak nastavit FTP server na Ubuntu 18.04 pomocí vsftpd. Existuje pět kroků, které byste měli dodržovat. Pojďme se na ně podívat ještě jednou.
- Nainstalujte vsftpd na vašem serveru Ubuntu a zálohujte původní konfigurační soubor.
- Povolte připojení FTP přes bránu firewall.
- Vytvořte uživatelský adresář, ke kterému budou mít přístup pouze vybraní uživatelé.
- Nakonfigurujte vsftpd .
- Zabezpečte server FTP.
- Otestujte své připojení FTP pomocí FileZilla.
Hodně štěstí a nezapomeňte se podívat na naše další výukové programy VPS!