Zdarma dostupný FTP server (File Transfer Protocol = protokol přenosu souborů) s otevřeným zdrojovým kódem ProFTPD nabízí široké možnosti nastavení podobné zápisu direktiv webového serveru Apache. Pro nahrávání nebo stahování souborů a složek na server / ze serveru (např. webové stránky) je ProFTPD ideální nástroj, kterému důvěřují i velké weby jako SourceForge, Linksys nebo Harvard.
Tento návod funguje na linuxovém operačním systému Ubuntu ve verzi 20.04 LTS (Focal Fossa). Jde o verzi LTS (Long Term Support = dlouhodobá podpora), která byla zveřejněná 23. 04. 2020 a je oficiálně podporovaná softwarovou společností Canonical 5 let od vydání, čili do dubna 2025. Vývojáři se v LTS ve zvýšené míře zaměřují na bezpečnost a hardwarovou kompatibilitu, aby bylo možné nasazení na enterprise úrovni.
Instalujeme ProFTPD
V první řade je potřeba zabezpečit aktuálnost všech balíků. Nainstalujeme tedy všechen updatovaný software pomocí dvou příkazů v jedné dávce:
sudo apt update && sudo apt upgrade
Když systém najde aktualizovatelné balíčky, takto se zeptá, jestli je chcete začít instalovat:
Do you want to continue? [Y/n]
Stlačíme klávesu y
když chceme začít aktualizační proces nebo klávesu n
, když aktualizovat nechceme. Následně stlačíme klávesu Enter
.
ProFTPD budeme instalovat z oficiálního repozitáře:
sudo apt install proftpd
Stlačíme klávesu y
když chceme začít instalační proces nebo klávesu n
, když instalovat nechceme. Následně stlačíme klávesu Enter
.
Spustíme nainstalovaný ProFTPD (první řádek) a necháme ho spustit po startu systému (druhý řádek):
sudo systemctl start proftpd
sudo systemctl enable proftpd
Zabezpečujeme FTP spojení
Nejdříve musíme nainstalovat OpenSSL:
sudo apt install openssl
Stlačíme klávesu y
když chceme začít instalační proces nebo klávesu n
, když instalovat nechceme. Následně stlačíme klávesu Enter
.
Následně si vygenerujeme SSL certifikát pro ProFTPD:
sudo openssl req -x509 -newkey rsa:2048 -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt -nodes -days 365
Není potřeba zadat žádné informace, proto pouze pokaždé stlačíme klávesu Enter
, čímž zapíšeme prázdné hodnoty.
Vytvořily se dva certifikáty, kterým teď nastavíme oprávnění:
sudo chmod 600 /etc/ssl/private/proftpd.key
sudo chmod 600 /etc/ssl/certs/proftpd.crt
V konfiguračním souboru ProFTPD proftpd.conf
najdeme řádek s obsahem #Include /etc/proftpd/tls.conf
(zde řádek číslo 140) a vymažeme mřížku (první znak). Pod řádek s obsahem Group
(zde řádek číslo 71) ještě přidáme nový řádek (zde řádek číslo 72) s obsahem DefaultRoot /var/www/html/
(cesta se ve vašem případě může lišit):
sudo nano /etc/proftpd/proftpd.conf
Soubor uložíme pomocí klávesové zkratky Ctrl + X
a následně stlačením klávesy y
a potvrzením klávesou Enter
.
Otevřeme konfigurační soubor tls.conf
sudo nano /etc/proftpd/tls.conf
a celý jeho obsah vymažeme. Následně přidáme tyto řádky:
<IfModule mod_tls.c>
TLSRSACertificateFile /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol TLSv1.2
TLSRequired on
TLSOptions NoCertRequest EnableDiags NoSessionReuseRequired
TLSVerifyClient off
TLSRenegotiate none
</IfModule>
Soubor uložíme pomocí klávesové zkratky Ctrl + X
a následně stlačením klávesy y
a potvrzením klávesou Enter
.
Restartujeme ProFTPD, aby se změny zapsané do konfiguračních souborů projevily:
sudo systemctl restart proftpd
Vytváříme uživatele a přihlašujeme se
Abychom mohli kopírovat, upravovat a mazat soubory a složky v nastavené cestě DefaultRoot /var/www/html/
(cesta se ve vašem případě může lišit), potřebujeme vytvořit nového uživatele:
sudo adduser ftp1
V procesu vytváření účtu ftp1
nejdřív zadáme a následně potvrdíme heslo Toto.Hes1o.je:silne
. Ostatní informace nezadáváme (pouze stlačíme klávesu Enter
) a nakonec ještě klávesami y + Enter
potvrdíme, že všechny poskytnuté informace o novém účtu souhlasí.
Na otestování funkčnosti zabezpečeného připojení přes protokol FTPS potřebujeme nainstalovat a spustit zdarma dostupnou aplikaci s otevřeným zdrojovým kódem FileZilla, která podporuje všechny nejpoužívanější operační systémy (Windows, MacOS a Linux). V menu Soubor > Správce lokalit...
si přidáme novou lokalitu. Stačí kliknout na tlačítko New site
a následně zadat název nové lokality (zde WebSupport
). Ostatní nastavení jsou zapsané v obrázku, přičemž Hostitel (zde IP adresa 185.87.12.38
) se ve vašem případě bude lišit a uživatele (zde ftp1
) spolu s heslem (tu Toto.Hes1o.je:silne
) jsme si vytvořili v tomto návodě výše:
Ještě před samotným připojením se FileZilla zeptá, jestli chcete certifikátu důvěřovat. Dole vlevo zaškrtněte možnost Always trust this certificate in future sessions
a následně klikněte na tlačítko OK
:
Po odsouhlasení důvěryhodnosti certifikátu FileZilla načítá obsah složky DefaultRoot /var/www/html/
(cesta se ve vašem případě může lišit), ve které odteď můžeme požadované soubory a složky upravovat, kopírovat a mazat jak uznáme za vhodné.
Shrnutí
Nainstalovali jsme FTP server, který podporuje zabezpečené spojení FTPS. Stejně tak jsme si ukázali, jak se ze strany klienta na vytvořený FTP server připojit. Teď můžeme na server nahrávat a ze serveru stahovat soubory, což využijeme např. při tvorbě webových stránek.