Zdarma dostupný FTP server (File Transfer Protocol = protokol prenosu súborov) s otvoreným zdrojovým kódom ProFTPD ponúka široké možnosti nastavenia podobné zápisu direktív webového servera Apache. Pre nahrávanie alebo sťahovanie súborov a priečinkov na server / zo servera (napr. webové stránky) je ProFTPD ideálny nástroj, ktorému dôverujú aj veľké weby ako SourceForge, Linksys alebo Harvard.
Tento návod funguje na linuxovom operačnom systéme Ubuntu vo verzii 20.04 LTS (Focal Fossa). Ide o verziu LTS (Long Term Support = dlhodobá podpora), ktorá bola zverejnená 23. 04. 2020 a je oficiálne podporovaná softvérovou spoločnosťou Canonical 5 rokov od vydania, čiže do apríla 2025. Vývojári sa v LTS vo zvýšenej miere zameriavajú na bezpečnosť a hardvérovú kompatibilitu, aby bolo možné nasadenie na enterprise úrovni.
Inštalujeme ProFTPD
V prvom rade je potrebné zabezpečiť aktuálnosť všetkých balíkov. Nainštalujeme teda všetok updatovaný softvér pomocou dvoch príkazov v jednej dávke:
sudo apt update && sudo apt upgrade
Ak systém nájde aktualizovateľné balíčky, takto sa opýta, či ich chcete začať inštalovať:
Do you want to continue? [Y/n]
Stlačíme kláves y
ak chceme začať aktualizačný proces alebo kláves n
, ak aktualizovať nechceme. Následne stlačíme kláves Enter
.
ProFTPD budeme inštalovať z oficiálneho repozitára:
sudo apt install proftpd
Stlačíme kláves y
ak chceme začať inštalačný proces alebo kláves n
, ak inštalovať nechceme. Následne stlačíme kláves Enter
.
Spustíme nainštalovaný ProFTPD (prvý riadok) a necháme ho spustiť po štarte systému (druhý riadok):
sudo systemctl start proftpd
sudo systemctl enable proftpd
Zabezpečujeme FTP spojenie
Najskôr musíme nainštalovať OpenSSL:
sudo apt install openssl
Stlačíme kláves y
ak chceme začať inštalačný proces alebo kláves n
, ak inštalovať nechceme. Následne stlačíme kláves Enter
.
Následne si vygenerujeme SSL certifikát pre ProFTPD:
sudo openssl req -x509 -newkey rsa:2048 -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt -nodes -days 365
Nie je potrebné zadať žiadne informácie, preto iba zakaždým stlačíme kláves Enter
, čím zapíšeme prázdne hodnoty.
Vytvorili sa dva certifikáty, ktorým teraz nastavíme oprávnenia:
sudo chmod 600 /etc/ssl/private/proftpd.key
sudo chmod 600 /etc/ssl/certs/proftpd.crt
V konfiguračnom súbore ProFTPD proftpd.conf
nájdeme riadok s obsahom #Include /etc/proftpd/tls.conf
(tu riadok číslo 140) a vymažeme mriežku (prvý znak). Pod riadok s obsahom Group
(tu riadok číslo 71) ešte pridáme nový riadok (tu riadok číslo 72) s obsahom DefaultRoot /var/www/html/
(cesta sa vo vašom prípade môže líšiť):
sudo nano /etc/proftpd/proftpd.conf
Súbor uložíme pomocou klávesovej skratky Ctrl + X
a následne stlačením klávesu y
a potvrdením klávesom Enter
.
Otvoríme konfiguračný súbor tls.conf
sudo nano /etc/proftpd/tls.conf
a celý jeho obsah vymažeme. Následne pridáme tieto riadky:
<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>
Súbor uložíme pomocou klávesovej skratky Ctrl + X
a následne stlačením klávesu y
a potvrdením klávesom Enter
.
Reštartujeme ProFTPD, aby sa zmeny zapísané do konfiguračných súborov prejavili:
sudo systemctl restart proftpd
Vytvárame používateľa a prihlasujeme sa
Aby sme mohli kopírovať, upravovať a mazať súbory a priečinky v nastavenej ceste DefaultRoot /var/www/html/
(cesta sa vo vašom prípade môže líšiť), potrebujeme vytvoriť nového používateľa:
sudo adduser ftp1
V procese vytvárania účtu ftp1
najskôr zadáme a následne potvrdíme heslo Toto.Hes1o.je:silne
. Ostatné informácie nezadávame (iba stlačíme kláves Enter
) a nakoniec ešte klávesmi y + Enter
potvrdíme, že všetky poskytnuté informácie o novom účte súhlasia.
Na otestovanie funkčnosti zabezpečeného pripojenia cez protokol FTPS potrebujeme nainštalovať a spustiť zdarma dostupnú aplikáciu s otvoreným zdrojovým kódom FileZilla, ktorá podporuje všetky najpoužívanejšie operačné systémy (Windows, MacOS a Linux). V menu Súbor > Správca lokalít...
si pridáme novú lokalitu. Stačí kliknúť na tlačidlo New site
a následnej zadať názov novej lokality (tu WebSupport
). Ostatné nastavenia sú zapísané v obrázku, pričom Hostiteľ (tu IP adresa 185.87.12.38
) sa vo vašom prípade bude líšiť a používateľa (tu ftp1
) spolu s heslom (tu Toto.Hes1o.je:silne
) sme si vytvorili v tomto návode vyššie:
Ešte pred samotným pripojením sa FileZilla opýta, či chcete certifikátu dôverovať. Dole vľavo zaškrtnite možnosť Always trust this certificate in future sessions
a následne kliknite na tlačidlo OK
:
Po odsúhlasení dôveryhodnosti certifikátu FileZilla načíta obsah priečinka DefaultRoot /var/www/html/
(cesta sa vo vašom prípade môže líšiť), v ktorom odteraz môžeme požadované súbory a priečinky upravovať, kopírovať a mazať ako uznáme za vhodné.
Zhrnutie
Nainštalovali sme FTP server, ktorý podporuje zabezpečené spojenie FTPS. Rovnako sme si ukázali, ako sa zo strany klienta na vytvorený FTP server pripojiť. Teraz môžeme na server nahrávať a zo servera sťahovať súbory, čo využijeme napr. pri tvorbe webových stránok.