Linux

Kako postaviti FTP poslužitelj s VSFTPD-om na Ubuntu 20.04

Kako postaviti FTP poslužitelj s VSFTPD-om na Ubuntu 20.04

Ovaj članak opisuje kako instalirati i konfigurirati FTP poslužitelj na Ubuntu 20.04 koju upotrebljavate za dijeljenje datoteka između svojih uređaja.

FTP (File Transfer Protocol) je standardni mrežni protokol koji se koristi za prijenos datoteka na i s udaljene mreže. Za Linux postoji nekoliko FTP poslužitelja otvorenog koda. Najpoznatiji i najrašireniji su PureFTPd, ProFTPD i vsftpd . Instalirat ćemo vsftpd (Very Secure Ftp Daemon), stabilan, siguran i brz FTP poslužitelj. Pokazat ćemo vam i kako konfigurirati poslužitelj tako da ograniči korisnike na njihov kućni direktorij i šifrira cijeli prijenos SSL / TLS-om.

Iako je FTP vrlo popularan protokol, za sigurniji i brži prijenos podataka trebali biste koristiti SCP ili SFTP .

Instaliranje vsftpd na Ubuntu 20.04 #

Paket vsftpd dostupan je u Ubuntu spremištima. Da biste ga instalirali, izvršite sljedeće naredbe:

sudo apt ažuriranjesudo apt instalirati vsftpd

FTP usluga automatski će se pokrenuti nakon završetka postupka instalacije. Da biste je provjerili, ispišite status usluge:

sudo systemctl status vsftpd

Izlaz bi trebao pokazati da je usluga vsftpd aktivna i radi:

● vsftpd.usluga - vsftpd FTP poslužitelj Loaded: loaded (/ lib / systemd / system / vsftpd.servis; omogućeno; unaprijed postavljeno: dobavljač aktivan: aktivan (aktivan) od utorka 2021-03-02 15:17:22 UTC; Prije 3s .. 

Konfiguriranje vsftpd #

Konfiguracija vsftpd poslužitelja pohranjena je u / etc / vsftpd.konf datoteka.

Većina postavki poslužitelja dobro je dokumentirana unutar datoteke. Za sve dostupne opcije posjetite stranicu dokumentacije vsftpd.

U sljedećim odjeljcima proći ćemo kroz neke važne postavke potrebne za konfiguriranje sigurne vsftpd instalacije.

Započnite otvaranjem datoteke konfiguracije vsftpd:

sudo nano / etc / vsftpd.konf

1. FTP pristup #

Pristup FTP poslužitelju dopustit ćemo samo lokalnim korisnicima. Potražite anonimno_enable i local_enable direktive i potvrdite da se vaša konfiguracija podudara s donjim redovima:

/ etc / vsftpd.konf
anonimno_enable = NEMA local_enable = DA 

2. Omogućavanje prijenosa #

Pronađite i nekomentirajte write_enable direktivu koja dopušta promjene datotečnog sustava, poput prijenosa i uklanjanja datoteka:

/ etc / vsftpd.konf
write_enable = DA 

3. Chroot zatvor #

Da biste spriječili lokalne FTP korisnike da pristupe datotekama izvan svojih kućnih direktorija, uklonite komentar iz lne-a počevši sa chroot_local_user:

/ etc / vsftpd.konf
chroot_local_user = DA 

Prema zadanim postavkama, iz sigurnosnih razloga, kada je omogućen chroot, vsftpd će odbiti učitavanje datoteka ako je u direktorij u kojem su korisnici zaključani moguće pisati.

Upotrijebite jedno od rješenja u nastavku da biste omogućili prijenose kada je omogućen chroot:

4. Pasivne FTP veze #

Prema zadanim postavkama vsftpd koristi aktivni način rada. Da biste koristili pasivni način rada, postavite minimalni i maksimalni raspon priključaka:

/ etc / vsftpd.konf
pasv_min_port = 30000 pasv_max_port = 31000 

Možete koristiti bilo koji priključak za pasivne FTP veze. Kad je omogućen pasivni način rada, FTP klijent otvara vezu sa poslužiteljem na slučajnom priključku u rasponu koji ste odabrali.

5. Ograničavanje prijave korisnika #

Možete konfigurirati vsftpd da dozvoli prijavu samo određenim korisnicima. Da biste to učinili, dodajte sljedeće retke na kraj datoteke:

/ etc / vsftpd.konf
userlist_enable = DA userlist_file = / etc / vsftpd.user_list userlist_deny = NE 

Kada je ova opcija omogućena, morate izričito navesti koji se korisnici mogu prijaviti dodavanjem korisničkih imena u / etc / vsftpd.popis korisnika datoteka (jedan korisnik u retku).

6. Osiguravanje prijenosa pomoću SSL / TLS-a #

Da biste šifrirali FTP prijenos SSL / TLS-om, morat ćete imati SSL certifikat i konfigurirati FTP poslužitelj da ga koristi.

Možete koristiti postojeći SSL certifikat koji je potpisalo pouzdano tijelo za izdavanje certifikata ili stvoriti samopotpisan certifikat.

Ako imate domenu ili poddomenu koja upućuje na IP adresu FTP poslužitelja, možete brzo generirati besplatni Let's Encrypt SSL certifikat.

Generirat ćemo 2048-bitni privatni ključ i samopotpisani SSL certifikat koji će vrijediti deset godina:

sudo openssl req -x509 -nodes -days 3650 -newkey rsa: 2048 -keyout / etc / ssl / private / vsftpd.pem -out / etc / ssl / private / vsftpd.pem

I privatni ključ i certifikat spremit će se u istu datoteku.

Jednom kada se SSL certifikat kreira, otvorite vsftpd konfiguracijsku datoteku:

sudo nano / etc / vsftpd.konf

Naći rsa_cert_file i rsa_private_key_file smjernice, promijenite njihove vrijednosti u pam putanju datoteke i postavite ssl_enable direktiva da DA:

/ etc / vsftpd.konf
rsa_cert_file = / etc / ssl / private / vsftpd.pem rsa_private_key_file = / etc / ssl / private / vsftpd.pem ssl_enable = DA 

Ako nije drugačije naznačeno, FTP poslužitelj upotrebljavat će samo TLS za uspostavljanje sigurnih veza.

Ponovo pokrenite uslugu vsftpd #

Kad završite s uređivanjem, konfiguracijska datoteka vsftpd (bez komentara) trebala bi izgledati otprilike ovako:

/ etc / vsftpd.konf
Listen = NE Listen_ipv6 = DA anonimno_enable = NE local_enable = DA write_enable = DA dirmessage_enable = DA use_localtime = DA xferlog_enable = DA connect_from_port_20 = DA chroot_local_user = DA secure_chroot_dir = / var / ime / vs_ftft / var / ime / vs_ft / vsft privatno / vsftpd.pem rsa_private_key_file = / etc / ssl / private / vsftpd.pem ssl_enable = DA user_sub_token = $ USER local_root = / home / $ USER / ftp pasv_min_port = 30000 pasv_max_port = 31000 userlist_enable = DA userlist_file = / etc / vsftpd.user_list userlist_deny = NE 

Spremite datoteku i ponovo pokrenite uslugu vsftpd da bi promjene stupile na snagu:

sudo systemctl ponovno pokreni vsftpd

Otvaranje vatrozida #

Ako koristite UFW vatrozid, morat ćete omogućiti FTP promet.

Otvoriti luku 21 (FTP naredbeni port), port 20 (FTP podatkovni port) i 30000-31000 (Raspon pasivnih priključaka), pokrenite sljedeće naredbe:

sudo ufw dopustiti 20: 21 / tcpsudo ufw dopustiti 30000: 31000 / tcp

Da biste izbjegli zaključavanje, osigurajte priključak 22 otvoreno je:

sudo ufw dopustiti OpenSSH

Ponovno učitajte UFW pravila onemogućavanjem i ponovnim omogućavanjem UFW:

sudo ufw onesposobitisudo ufw omogućiti

Da biste potvrdili pokretanje promjena:

sudo ufw status
Status: aktivan Za akciju od - ------ ---- 20: 21 / tcp DOZVOLI bilo gdje 30000: 31000 / tcp DOZVOLI bilo gdje OpenSSH DOZVOLI bilo gdje 20: 21 / tcp (v6) DOZVOLI bilo gdje (v6) 30000: 31000 / tcp (v6) DOZVOLI bilo gdje (v6) OpenSSH (v6) DOZVOLI bilo gdje (v6) 

Stvaranje FTP korisnika #

Da bismo testirali FTP poslužitelj, stvorit ćemo novog korisnika.

  1. Izradite novog korisnika s imenom newftpuser:

    sudo adduser newftpuser
  2. Dodajte korisnika na popis dopuštenih FTP korisnika:

    echo "newftpuser" | sudo tee -a / etc / vsftpd.popis korisnika
  3. Stvorite stablo FTP direktorija i postavite ispravna dopuštenja:

    sudo mkdir -p / home / newftpuser / ftp / uploadsudo chmod 550 / home / newftpuser / ftpsudo chmod 750 / home / newftpuser / ftp / uploadsudo chown -R newftpuser: / home / newftpuser / ftp

    Kao što je objašnjeno u prethodnom odjeljku, korisnik će moći prenijeti svoje datoteke na ftp / upload imenik.

U ovom je trenutku vaš FTP poslužitelj potpuno funkcionalan. Trebali biste se moći povezati s poslužiteljem pomoću bilo kojeg FTP klijenta koji se može konfigurirati za upotrebu TLS šifriranja, kao što je FileZilla .

Onemogućavanje pristupa školjki #

Prema zadanim postavkama, prilikom stvaranja korisnika, ako nije izričito navedeno, korisnik će imati SSH pristup poslužitelju. Da biste onemogućili pristup ljusci, stvorite novu ljusku koja će ispisati poruku koja govori korisniku da je njihov račun ograničen samo na FTP pristup.

Izvedite sljedeće naredbe da biste kreirali / bin / ftponly datoteku i učinite je izvršnom:

echo -e '#!/ bin / sh \ necho "Ovaj je račun ograničen samo na FTP pristup."'| sudo tee -a / bin / ftponlysudo chmod a + x / bin / ftponly

Dodajte novu ljusku na popis važećih ljuski u / itd. / ljuske datoteka:

echo "/ bin / ftponly" | sudo tee -a / itd / školjke

Promijenite korisničku ljusku u / bin / ftponly:

sudo usermod newftpuser -s / bin / ftponly

Istu naredbu možete koristiti za promjenu ljuske svih korisnika kojima želite dati samo FTP pristup.

Zaključak #

Pokazali smo vam kako instalirati i konfigurirati siguran i brz FTP poslužitelj na vašem Ubuntu 20.04 sustav.

Ako imate pitanja ili povratne informacije, slobodno ostavite komentar.

Lijevi gumb miša ne radi u sustavu Windows 10
Ako s prijenosnim računalom ili stolnim računalom koristite namjenski miš, ali lijevi gumb miša ne radi u sustavu Windows 10/8/7 iz nekog razloga evo ...
Pokazivač skače ili se slučajno pomiče dok tipkate u sustavu Windows 10
Ako ustanovite da kursor miša sam skače ili se pomiče automatski, nasumično dok tipkate u Windows prijenosnom računalu ili računalu, neki od ovih prij...
Kako obrnuti smjer pomicanja miša i dodirnih pločica u sustavu Windows 10
Miš i Dodirna pločaRačunarstvo ne samo da olakšava, već i učinkovitije i oduzima puno vremena. Ne možemo zamisliti život bez ovih uređaja, ali činjeni...