Linux

Ako nastaviť FTP server s VSFTPD na Ubuntu 20.04

Ako nastaviť FTP server s VSFTPD na Ubuntu 20.04

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áciasudo 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:

/ etc / vsftpd.konf
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:

/ etc / vsftpd.konf
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:

/ etc / vsftpd.konf
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:

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.konf
pasv_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.konf
userlist_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:

/ etc / vsftpd.konf
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.konf
listen = 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 / tcpsudo 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.

  1. Vytvorte nového používateľa s menom newftpuser:

    sudo adduser newftpuser
  2. Pridajte používateľa do zoznamu povolených používateľov FTP:

    echo "newftpuser" | sudo tee -a / etc / vsftpd.zoznam_uživateľov
  3. Vytvorte strom adresárov FTP a nastavte správne povolenia:

    sudo mkdir -p / home / newftpuser / ftp / uploadsudo chmod 550 / home / newftpuser / ftpsudo chmod 750 / home / newftpuser / ftp / uploadsudo 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 / ftponlysudo 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.

Hry Najlepšie hry Oculus App Lab
Najlepšie hry Oculus App Lab
Ak ste vlastníkom náhlavnej súpravy Oculus, musíte byť informovaní o bočnom nakladaní. Sideloading je proces inštalácie neuloženého obsahu do náhlavne...
Hry Top 10 hier, ktoré sa dajú hrať na Ubuntu
Top 10 hier, ktoré sa dajú hrať na Ubuntu
Platforma Windows je jednou z dominujúcich platforiem pre hry kvôli obrovskému percentu hier, ktoré sa dnes vyvíjajú na natívnu podporu systému Window...
Hry 5 najlepších arkádových hier pre Linux
5 najlepších arkádových hier pre Linux
V dnešnej dobe sú počítače vážne stroje používané na hranie hier. Ak nemôžete dosiahnuť nové najvyššie skóre, budete vedieť, čo tým myslím. V tomto pr...