Tento článok popisuje, ako nainštalovať a nakonfigurovať server FTP v systéme Ubuntu 20.04, ktorú používate na zdieľanie súborov medzi zariadeniami.
FTP (File Transfer Protocol) je štandardný sieťový protokol používaný na prenos súborov do a zo vzdialenej siete. Pre systém Linux je k dispozícii niekoľko serverov FTP s otvoreným zdrojovým kódom. Najznámejšie a najbežnejšie používané sú PureFTPd, ProFTPD a vsftpd . Inštalujeme stabilný, bezpečný a rýchly FTP server vsftpd (Very Secure Ftp Daemon). Ukážeme vám tiež, ako nakonfigurovať server tak, aby obmedzil používateľov na ich domovský adresár a šifroval celý prenos pomocou protokolu SSL / TLS.
Aj keď je FTP veľmi populárny protokol, pre bezpečnejší a rýchlejší prenos dát by ste mali používať SCP alebo SFTP .
Inštalácia vsftpd na Ubuntu 20.04 #
Balík vsftpd je k dispozícii v úložiskách Ubuntu. Ak ho chcete nainštalovať, vykonajte nasledujúce príkazy:
sudo apt aktualizácia
sudo apt nainštalovať vsftpd
Po dokončení procesu inštalácie sa služba ftp automaticky spustí. Ak to chcete overiť, vytlačte stav služby:
sudo systemctl status vsftpd
Výstup by mal ukazovať, že služba vsftpd je aktívna a spustená:
● vsftpd.služba - vsftpd FTP server Načítané: načítané (/ lib / systemd / system / vsftpd.služba; povolené; prednastavenie dodávateľa: povolené) Aktívne: aktívne (beží) od ut 2021-03-02 15:17:22 UTC; Pred 3 s ..
Konfigurácia vsftpd #
Konfigurácia servera vsftpd je uložená v / etc / vsftpd.konf
spis.
Väčšina nastavení servera je v súbore dobre zdokumentovaná. Všetky dostupné možnosti nájdete na stránke dokumentácie vsftpd.
V nasledujúcich častiach si prejdeme niektoré dôležité nastavenia potrebné na konfiguráciu bezpečnej inštalácie vsftpd.
Začnite otvorením konfiguračného súboru vsftpd:
sudo nano / etc / vsftpd.konf
1. FTP prístup #
Prístup na server FTP povolíme iba miestnym používateľom. Vyhľadajte anonymné_povoliť
a local_enable
a overte, či sa vaša konfigurácia zhoduje s riadkami nižšie:
anonymous_enable = NIE local_enable = ÁNO
2. Povolenie nahrávania #
Nájdite a odkomentujte write_enable
smernica povoľujúca zmeny súborového systému, napríklad nahrávanie a odstraňovanie súborov:
write_enable = ÁNO
3. Chroot väzenie #
Ak chcete zabrániť miestnym používateľom FTP v prístupe k súborom mimo svojich domovských adresárov, začiarknite políčko od začiatku chroot_local_user
:
chroot_local_user = ÁNO
Keď je povolený chroot, vsftpd predvolene z bezpečnostných dôvodov odmietne nahrávať súbory, ak je adresár, do ktorého sú používatelia uzamknutí, zapisovateľný.
Pomocou jedného z riešení uvedených nižšie povoľte nahrávanie, keď je povolený chroot:
Metóda 1. - Odporúčanou možnosťou je ponechať funkciu chroot povolenú a nakonfigurovať adresáre FTP. V tomto príklade vytvoríme
/ etc / vsftpd.konfftp
adresár vo vnútri domovskej stránky používateľa, ktorý bude slúžiť ako chroot a zapisovateľnýnahrávania
adresár na nahrávanie súborov:user_sub_token = $ USER local_root = / home / $ USER / ftp
Metóda 2. - Ďalšou možnosťou je povoliť
/ etc / vsftpd.konfallow_writeable_chroot
smernica:allow_writeable_chroot = ÁNO
Túto možnosť použite, iba ak musíte používateľovi povoliť prístup s oprávnením na zápis do jeho domovského adresára.
4. Pasívne pripojenia FTP #
V predvolenom nastavení vsftpd používa aktívny režim. Ak chcete používať pasívny režim, nastavte minimálny a maximálny rozsah portov:
/ etc / vsftpd.konfpasv_min_port = 30000 pasv_max_port = 31000
Na pasívne pripojenie FTP môžete použiť akýkoľvek port. Keď je povolený pasívny režim, klient FTP otvorí pripojenie k serveru na náhodnom porte v rozsahu, ktorý ste vybrali.
5. Obmedzenie prihlásenia používateľa #
Môžete nakonfigurovať vsftpd tak, aby umožňoval prihlásenie iba určitým používateľom. Za týmto účelom pridajte na koniec súboru nasledujúce riadky:
/ etc / vsftpd.konfuserlist_enable = ÁNO userlist_file = / etc / vsftpd.user_list userlist_deny = NIE
Keď je táto možnosť povolená, musíte výslovne určiť, ktorí používatelia sa môžu prihlásiť, pridaním používateľských mien do / etc / vsftpd.zoznam_uživateľov
súbor (jeden používateľ na riadok).
6. Zabezpečenie prenosov pomocou protokolu SSL / TLS #
Na šifrovanie prenosov FTP pomocou protokolu SSL / TLS musíte mať certifikát SSL a nakonfigurovať server FTP tak, aby ho mohol používať.
Môžete použiť existujúci certifikát SSL podpísaný dôveryhodnou certifikačnou autoritou alebo vytvoriť certifikát s vlastným podpisom.
Ak máte doménu alebo subdoménu smerujúcu na adresu IP servera FTP, môžete rýchlo vygenerovať bezplatný certifikát Let's Encrypt SSL.
Vygenerujeme 2048-bitový súkromný kľúč a certifikát SSL s vlastným podpisom, ktorý bude platný desať rokov:
sudo openssl req -x509 -nodes -days 3650 -newkey rsa: 2048 -keyout / etc / ssl / private / vsftpd.pem -out / etc / ssl / private / vsftpd.pem
Súkromný kľúč aj certifikát budú uložené v rovnakom súbore.
Po vytvorení certifikátu SSL otvorte konfiguračný súbor vsftpd:
sudo nano / etc / vsftpd.konf
Nájsť rsa_cert_file
a rsa_private_key_file
smernice zmeniť ich hodnoty na pam
cesta k súboru a nastaviť ssl_enable
smernica do ÁNO
:
rsa_cert_file = / etc / ssl / private / vsftpd.pem rsa_private_key_file = / etc / ssl / private / vsftpd.pem ssl_enable = ÁNO
Ak nie je uvedené inak, server FTP použije na bezpečné pripojenie iba protokol TLS.
Reštartujte službu vsftpd #
Po dokončení úprav by mal konfiguračný súbor vsftpd (bez komentárov) vyzerať asi takto:
/ etc / vsftpd.konflisten = NO listen_ipv6 = YES anonymous_enable = NO local_enable = YES write_enable = YES dirmessage_enable = YES use_localtime = YES xferlog_enable = YES connect_from_port_20 = YES chroot_local_user = YES secure_chroot_dir = / var / run / pam_service / = súkromné / vsftpd.pem rsa_private_key_file = / etc / ssl / private / vsftpd.pem ssl_enable = ÁNO user_sub_token = $ USER local_root = / home / $ USER / ftp pasv_min_port = 30000 pasv_max_port = 31000 userlist_enable = ÁNO userlist_file = / etc / vsftpd.user_list userlist_deny = NIE
Uložte súbor a reštartujte službu vsftpd, aby sa zmeny prejavili:
sudo systemctl restart vsftpd
Otvorenie brány firewall #
Ak používate bránu firewall UFW, budete musieť povoliť prenos FTP.
Ak chcete otvoriť port 21
(Port príkazového FTP), port 20
(Dátový port FTP) a 30000-31000
(Rozsah pasívnych portov), spustite nasledujúce príkazy:
sudo ufw povoliť 20:21 / tcp
sudo ufw povoliť 30000: 31000 / tcp
Aby ste sa vyhli uzamknutiu, skontrolujte port 22
je otvorené:
sudo ufw povoliť OpenSSH
Znova načítajte pravidlá UFW deaktiváciou a opätovným povolením UFW:
sudo ufw vypnúť
sudo ufw povoliť
Ak chcete overiť spustenie zmien:
sudo ufw status
Stav: aktívny Do akcie od - ------ ---- 20:21 / tcp POVOLENÉ kdekoľvek 30000: 31000 / tcp POVOLENÉ kdekoľvek OpenSSH POVOLENÉ kdekoľvek 20: 21 / tcp (v6) POVOLENÉ kdekoľvek (v6) 30000: 31000 / tcp (v6) ALLOW Anywhere (v6) OpenSSH (v6) ALLOW Anywhere (v6)
Vytváranie používateľov FTP #
Na otestovanie servera FTP vytvoríme nového používateľa.
- Ak používateľ, ktorému chcete povoliť prístup FTP, už existuje, preskočte prvý krok.
- Ak nastavíte
allow_writeable_chroot = ÁNO
v konfiguračnom súbore preskočte 3. krok.
Vytvorte nového používateľa s menom
newftpuser
:sudo adduser newftpuser
Pridajte používateľa do zoznamu povolených používateľov FTP:
echo "newftpuser" | sudo tee -a / etc / vsftpd.zoznam_uživateľov
Vytvorte strom adresárov FTP a nastavte správne povolenia:
sudo mkdir -p / home / newftpuser / ftp / upload
sudo chmod 550 / home / newftpuser / ftp
sudo chmod 750 / home / newftpuser / ftp / upload
sudo chown -R newftpuser: / home / newftpuser / ftp
Ako bolo uvedené v predchádzajúcej časti, používateľ bude môcť nahrávať svoje súbory do servera
ftp / upload
adresár.
V tomto okamihu je váš server FTP plne funkčný. Mali by ste byť schopní pripojiť sa k serveru pomocou ľubovoľného klienta FTP, ktorý je možné nakonfigurovať na používanie šifrovania TLS, napríklad FileZilla .
Zakázanie prístupu k shellu #
V predvolenom nastavení bude mať používateľ pri vytváraní používateľa, pokiaľ nie je výslovne uvedený, prístup SSH k serveru. Ak chcete zakázať prístup k shellu, vytvorte nový shell, ktorý vytlačí správu s informáciou, že jeho účet je obmedzený iba na prístup FTP.
Spustením nasledujúcich príkazov vytvorte / bin / ftponly
súbor a urobte ho spustiteľným:
echo -e '#!/ bin / sh \ necho "Tento účet je obmedzený iba na prístup FTP."'| sudo tee -a / bin / ftponly
sudo chmod a + x / bin / ftponly
Pripojiť nový shell k zoznamu platných škrupín v priečinku / etc / škrupiny
spis:
echo "/ bin / ftponly" | sudo tee -a / etc / shells
Zmeňte užívateľský shell na / bin / ftponly
:
sudo usermod newftpuser -s / bin / ftponly
Rovnakým príkazom môžete zmeniť shell všetkých používateľov, ktorým chcete povoliť iba prístup FTP.
Záver #
Ukázali sme vám, ako nainštalovať a nakonfigurovať bezpečný a rýchly server FTP na vašom systéme Ubuntu 20.04 systém.
Ak máte akékoľvek otázky alebo spätnú väzbu, neváhajte zanechať komentár.