Najvýkonnejšie servery Najvýkonnejšie servery
Dlhodobý víťaz
v porovnávacích testoch výkonu

Inštalácia FTP servera proftpd

Nápověda > Cloud Server Linux > Inštalácia FTP servera proftpd

FTP server je služba pre prenos dát na server. Používa sa pre nahrávanie súborov webových prezentácii a CMS systémov.

Služba používa prihlásenie s heslom a je častým cieľom útokov na servery. Po prelomení hesla môže útočník na Váš server nahrať malware a dostať ho do stránok. Zabezpečenie SSL certifikátom, ktoré je v návode uvedené, nemusí byť dostatočné, pretože útočníci heslo môžu prelomiť. Odporúčame preto využiť SFTP protokol cez SSH, pokiaľ vyslovene nepotrebujete FTP.

Inštalácia balíkov

  • Inštaláciu balíku vykonáme príkazom apt-get install proftpd openssl
  • Pri inštalácii zvoľte Standalone verziu.

Vytvorenie užívateľov

Aby sa na server mohol užívateľ prihlásiť a nahrať súbory, musíme vytvoriť uživateľské účty.Do terminálu zadajte addgroup ftpgroup, čím sa vytvorí skupina uživateľov. Jednotlivcov potom vytvárate príkazom adduser pepa -shell /bin/false -home /ftpshare. Parameter /ftpshare udává zdieľanú zložku užívateľa. Server sa Vás pýta na nové heslo a niekoľko údajov o užívateľovi, ktoré môžete nechať prázdne.

Užívateľov prídame do skupiny adduser pepa ftpgroup

Nakoniec nastavte práva zdieľanej zložky: chmod -R 1777 /ftpshare/

Nastavenie servera

Krátko sa musíme pozrieť aj na nastavenie FTP servera. Otvorte jeho konfiguračný súbor: nano /etc/proftpd/proftpd.conf Vypneme možnosť prihlásenia Roota nastavením RootLogon off

Direktiva DefaultRoot určuje, aká je východzia zložka užívateľov. Hodnota (vlnovka) v príklade znamená ich domovskú zložku.

Doplňte do konfigurácie tieto riadky:

<Global>
RootLogin off
RequireValidShell off
</Global>
<Limit LOGIN>
DenyGroup !ftpgroup
</Limit>

Odporúčame nastaviť FTP port z bezpečnostných dôvodov na iný, ako 21.

Napríklad 999. Hodnotu môžete zmeniť v direktíve Port.

V nastavení uvidíte aj umiestnenie dvoch užitočných logov:

<TransferLog /var/log/proftpd/xferlog>
<SystemLog /var/log/proftpd/proftpd.log>

Po dokončení nastavení server reštartujte service proftpd restart

Teraz sa na server môžete prihlásiť.

Zapnutie šifrovania

Ako sme upozornili v úvode, FTP protokol je nutné zabezpečiť TLS protokolom.

To ochráni prenášané dáta a prihlasovacie údaje pred odposluchom, nie však server pred prelomením hesla na FTP.

Povolenie TLS

Otvorte znovu konfiguračný súbor: nano /etc/proftpd/proftpd.conf

V ňom „odkomentujte“ (zrušte # pred riadkom s ) Include /etc/proftpd/tls.conf

Uložte a otvorte konfiguráciu TLS: nano /etc/proftpd/tls.conf

Tam nastavte tieto hodnoty:

<IfModule mod_tls.c>
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol TLSv1
TLSOptions NoCertRequest
TLSRSACertificateFile /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key
TLSVerifyClient off
TLSRequired on
</IfModule>

Teraz vytvoríme SSL certifikát pre FTP pripojenie. Môžete si vytvoriť vlastný self signed.
openssl req -new -x509 -days 365 -nodes -out /etc/ssl/certs/proftpd.crt -keyout /etc/ssl/private/proftpd.key

Údaje pre CSR vyplňte podľa svojho uváženia, venujte ale pozornosť Common name, čo je adresa servera, kde ftp pobeží (väčšinou doména 3. úrovne).

Privátny kľúč musí byť chránený proti prístupu nepovolených užívateľov: chmod 0440 /etc/ssl/private/proftpd.key

Reštartujte server pomocou service proftpd restart a môžete ho začať používať.

Otestovanie

K pripojeniu na Váš server pomocou protokolu FTP odporúčame využiť napríklad klienta Filezilla. V ňom vyplníte adresu servera (IP alebo doménové meno), vyplníte uživateľské meno a pripojíte sa. Pretože sme na servery vynútili TLS šifrovanie, vložte pred adresu servera prefix ftpes://.

Klient by Vás mal vyzvať k odsúhlaseniu certifikátu a potom Vás pripojí do zdielanej zložky, ktorú sme nastavili v konfigurácii predtým.

Anonymný prístup

Na svojom FTP servery môžete tiež povoliť anonymný prístup, teda aj uživateľom bez mena a hesla. Pokiaľ nemáte dôvod to povoliť, tak to nerobte. V opačnom prípade doplňte do konfigurácie následujúce.

Otvorte konfiguráciu:

nano /etc/proftpd/proftpd.conf
[...]
###Anonymous share#####
<Anonymous ~ftp>
User ftp
Group nogroup
<Limit LOGIN>
AllowAll
</Limit>
# We want clients to be able to login with "anonymous" as well as "ftp"
UserAlias anonymous ftp
# Cosmetic changes, all files belongs to ftp user
DirFakeUser on ftp
DirFakeGroup on ftp
RequireValidShell off
# Limit the maximum number of anonymous logins
MaxClients 10
# Limit WRITE everywhere in the anonymous chroot
<Directory *>
<Limit WRITE>
DenyAll
</Limit>
</Directory>
</Anonymous>
~