Android

Kako postaviti ftp poslužitelj s vsftpd na debianu 9

How to Upload Files to an FTP Server (Web Hosting)

How to Upload Files to an FTP Server (Web Hosting)

Sadržaj:

Anonim

FTP (File Transfer Protocol) je standardni mrežni protokol koji se koristi za prijenos datoteka s udaljene mreže i sa nje. Za sigurniji i brži prijenos podataka koristite SCP ili SFTP.

Za Linux postoji mnogo FTP poslužitelja otvorenog koda. Najpopularniji i naširoko se koriste PureFTPd, ProFTPD i vsftpd.

Ovaj tutorial objašnjava kako instalirati i konfigurirati vsftpd (vrlo siguran Ftp Daemon) na Debianu 9. vsftpd stabilan, siguran i brz FTP poslužitelj. Također ćemo vam pokazati kako konfigurirati vsftpd za ograničavanje korisnika na njihov kućni direktorij i šifriranje cijelog prijenosa SSL / TLS.

Preduvjeti

Korisnik koji ste prijavljeni kao i mora imati sudo povlastice da bi mogao instalirati pakete.

Instaliranje vsftpd na Debianu 9

Vsftpd paket dostupan je u Debian spremištima. Instalacija je prilično jednostavna:

sudo apt update sudo apt install vsftpd

vsftpd usluga automatski će se pokrenuti nakon završetka postupka instalacije. Potvrdite to ispisom statusa usluge:

sudo systemctl status vsftpd

Izlaz će izgledati nešto poput dolje, pokazujući da je vsftpd usluga aktivna i radi:

● vsftpd.service - vsftpd FTP server Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2018-12-10 11:42:51 UTC; 53s ago Main PID: 1394 (vsftpd) CGroup: /system.slice/vsftpd.service └─1394 /usr/sbin/vsftpd /etc/vsftpd.conf

Konfiguriranje vsftpd

Poslužitelj vsftpd može se konfigurirati izmjenom datoteke vsftpd.conf nalazi u /etc direktoriju.

Većina je postavki dobro dokumentirana unutar konfiguracijske datoteke. Za sve dostupne opcije posjetite službenu stranicu vsftpd.

U sljedećim ćemo odjeljcima pregledati nekoliko važnih postavki potrebnih za konfiguriranje sigurne instalacije vsftpd.

Započnite otvaranjem vsftpd konfiguracijske datoteke:

sudo nano /etc/vsftpd.conf

1. FTP pristup

Pronađite smjernice anonymous_enable i local_enable i provjerite da li se vaša konfiguracija podudara s linijama u nastavku:

/etc/vsftpd.conf

anonymous_enable=NO local_enable=YES

Time se osigurava da samo lokalni korisnici mogu pristupiti FTP poslužitelju.

2. Omogućavanje prijenosa

write_enable postavku_nable za write_enable da biste omogućili promjene u datotečnom sustavu, poput prijenosa i brisanja datoteka.

/etc/vsftpd.conf

write_enable=YES

3. Chroot zatvor

Kako biste spriječili da korisnici FTP-a pristupe bilo kojoj datoteci izvan matičnih direktorija, komentiraju chroot postavke.

/etc/vsftpd.conf

chroot_local_user=YES

Prema zadanim postavkama radi sprječavanja sigurnosne ranjivosti, kada je omogućen chroot vsftpd, odbija odbijati datoteke ako direktorij u koji su korisnici zaključani može pisati.

Da biste omogućili prijenos kad je omogućen chroot, koristite jednu od metoda u nastavku.

  • Metoda 1. - Preporučena metoda za omogućavanje prijenosa je hroot omogućen i konfiguriranje FTP direktorija. U ovom ćemo vodiču stvoriti ftp direktorij unutar korisničkog doma koji će služiti kao chroot i direktorij za prijenos datoteka za upis datoteka.

    /etc/vsftpd.conf

    user_sub_token=$USER local_root=/home/$USER/ftp

    Metoda 2. - Druga opcija je dodavanje sljedeće direktive u vsftpd konfiguracijsku datoteku. Upotrijebite ovu opciju ako morate odobriti pristup zapisi korisniku u njegov matični imenik.

    /etc/vsftpd.conf

    allow_writeable_chroot=YES

4. Pasivne FTP veze

vsftpd može koristiti bilo koji port za pasivne FTP veze. Navest ćemo minimalni i maksimalni raspon portova, a kasnije otvoriti raspon u našem vatrozidu.

U konfiguracijsku datoteku dodajte sljedeće retke:

/etc/vsftpd.conf

pasv_min_port=30000 pasv_max_port=31000

5. Ograničavanje prijave korisnika

Da biste se dozvolili samo određenim korisnicima da se prijave na FTP poslužitelj, dodajte sljedeće retke na kraju datoteke:

/etc/vsftpd.conf

userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO

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

6. Osiguravanje prijenosa SSL / TLS-om

Kako biste šifrirali FTP prijenose SSL / TLS, trebat ćete imati SSL certifikat i konfigurirati FTP poslužitelj za njegovo korištenje.

Možete koristiti postojeći SSL certifikat potpisan od strane pouzdanog certifikatora ili stvoriti vlastoručno potpisan certifikat.

U ovom tutorialu generirat ćemo openssl SSL certifikat pomoću naredbe openssl .

Sljedeća naredba stvorit će 2048-bitni privatni ključ i samopotpisani certifikat koji vrijedi 10 godina. I privatni ključ i certifikat bit će spremljeni u istu datoteku:

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

Nakon kreiranja SSL certifikata otvorite vsftpd konfiguracijsku datoteku:

sudo nano /etc/vsftpd.conf

Pronađite smjernice rsa_cert_file i rsa_private_key_file , promijenite njihove vrijednosti u put do datoteke datoteke i postavite ssl_enable direktivu na YES :

/etc/vsftpd.conf

rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES

Ako nije drugačije određeno, FTP poslužitelj će koristiti samo TLS za sigurnu vezu.

Ponovno pokrenite vsftpd uslugu

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

/etc/vsftpd.conf

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/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key ssl_enable=YES user_sub_token=$USER local_root=/home/$USER/ftp pasv_min_port=30000 pasv_max_port=31000 userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO

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

sudo systemctl restart vsftpd

Otvaranje vatrozida

Da biste otvorili port 21 (FTP naredbeni port), priključak 20 (FTP podatkovni port) i 30000-31000 (raspon pasivnih portova), pokrenite sljedeće naredbe:

sudo ufw allow 20:21/tcp sudo ufw allow 30000:31000/tcp

Da ne bi bili zaključani, otvorit ćemo i priključak 22 :

sudo ufw allow OpenSSH

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

sudo ufw disable sudo ufw enable

Da biste provjerili pokretanje promjena:

sudo ufw status

Status: active To Action From -- ------ ---- 20:21/tcp ALLOW Anywhere 30000:31000/tcp ALLOW Anywhere OpenSSH ALLOW Anywhere 20:21/tcp (v6) ALLOW Anywhere (v6) 30000:31000/tcp (v6) ALLOW Anywhere (v6) OpenSSH (v6) ALLOW Anywhere (v6)

Stvaranje FTP korisnika

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

  • Ako već imate korisnika kojem želite odobriti FTP pristup, preskočite 1. korak. Ako u konfiguracijskoj datoteci postavite allow_writeable_chroot=YES preskočite 3. korak.
  1. Izradite novog korisnika s imenom newftpuser :

    sudo adduser newftpuser

    Dodajte korisnika na popis dopuštenih FTP korisnika:

    echo "newftpuser" | sudo tee -a /etc/vsftpd.user_list

    Izradite stablo direktorija FTP i postavite ispravna dopuštenja:

    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

    Kao što je spomenuto u prethodnom odjeljku, korisnik će moći učitati svoje datoteke u ftp/upload direktorij.

U ovom trenutku, vaš FTP poslužitelj je u potpunosti funkcionalan i trebali biste se moći povezati s vašim poslužiteljem pomoću bilo kojeg FTP klijenta koji se može konfigurirati za korištenje TLS šifriranja, poput FileZilla.

Onemogućavanje pristupa školjkama

Prilikom stvaranja korisnika, ako nije izričito navedeno, korisnik će imati SSH pristup poslužitelju.

Da onemogućimo pristup školjci, stvorit ćemo novu školjku koja će jednostavno ispisati poruku koja kaže korisniku da je njihov račun ograničen samo na FTP pristup.

Napravite ljusku /bin/ftponly i učinite je izvršnom:

echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly sudo chmod a+x /bin/ftponly

Dodajte novu ljusku na popis važećih školjki u datoteci /etc/shells :

echo "/bin/ftponly" | sudo tee -a /etc/shells

Promijenite korisničku ljusku u /bin/ftponly :

sudo usermod newftpuser -s /bin/ftponly

Pomoću iste naredbe promijenite ljusku svih korisnika kojima želite dati samo FTP pristup.

Zaključak

U ovom su vodiču naučili kako instalirati i konfigurirati siguran i brz FTP poslužitelj na vašem Debian 9 sustavu.

ftp debian