Android

Kako postaviti ftp poslužitelj s vsftpd na centos 7

How to Setup an FTP Server in Windows 10 - AvoidErrors

How to Setup an FTP Server in Windows 10 - AvoidErrors

Sadržaj:

Anonim

FTP (File Transfer Protocol) standardni je mrežni protokol klijent-poslužitelj koji korisnicima omogućuje prijenos datoteka s udaljene mreže i sa nje.

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

U ovom tutorialu ćemo instalirati vsftpd (vrlo siguran Ftp Daemon) na CentOS 7. To je 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.

Za sigurniji i brži prijenos podataka koristite SCP ili SFTP.

Preduvjeti

Prije nego što nastavite s ovim vodičem, provjerite jeste li prijavljeni kao korisnik s povlasticama sudo.

Instaliranje vsftpd na CentOS 7

Vsftpd paket dostupan je u zadanim CentOS-ovim spremištima. Da biste ga instalirali, izdajte sljedeću naredbu:

sudo yum install vsftpd

Jednom kada je paket instaliran, pokrenite vsftpd demon i omogućite mu da se automatski pokrene u vrijeme dizanja:

sudo systemctl start vsftpd sudo systemctl enable vsftpd

Možete provjeriti da se vsftpd usluga izvodi ispisom njezinog statusa:

sudo systemctl status vsftpd

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

● vsftpd.service - Vsftpd ftp daemon Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2018-11-22 09:42:37 UTC; 6s ago Main PID: 29612 (vsftpd) CGroup: /system.slice/vsftpd.service └─29612 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

Konfiguriranje vsftpd

Konfiguriranje vsftpd usluge uključuje uređivanje konfiguracijske datoteke /etc/vsftpd/vsftpd.conf . 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 vsftpd instalacije.

Započnite otvaranjem vsftpd konfiguracijske datoteke:

sudo nano /etc/vsftpd/vsftpd.conf

1. FTP pristup

Omogućit ćemo pristup FTP poslužitelju samo lokalnim korisnicima, pronaći anonymous_enable i local_enable smjernice i provjeriti da li se vaša konfiguracija podudara s niže navedenim linijama:

/etc/vsftpd/vsftpd.conf

anonymous_enable=NO local_enable=YES

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/vsftpd.conf

write_enable=YES

3. Chroot zatvor

Zabranite korisnicima FTP-a da pristupaju bilo kakvim datotekama izvan njihovih matičnih direktorija komentiranjem chroot direktive.

/etc/vsftpd/vsftpd.conf

chroot_local_user=YES

Kada je omogućeno chroot vsftpd će odbiti prijenos datoteka ako direktorij u koji su korisnici zaključani može pisati. Time se sprečava sigurnosna ugroženost.

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/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/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/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 nakon korisničkog userlist_enable=YES red:

/etc/vsftpd/vsftpd.conf

userlist_file=/etc/vsftpd/user_list userlist_deny=NO

Kada 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/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem

Nakon kreiranja SSL certifikata otvorite vsftpd konfiguracijsku datoteku:

sudo nano /etc/vsftpd/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/vsftpd.conf

rsa_cert_file=/etc/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/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/vsftpd.conf

anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES chroot_local_user=YES listen=NO listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES userlist_file=/etc/vsftpd/user_list userlist_deny=NO tcp_wrappers=YES user_sub_token=$USER local_root=/home/$USER/ftp pasv_min_port=30000 pasv_max_port=31000 rsa_cert_file=/etc/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/vsftpd.pem ssl_enable=YES

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), izdajte sljedeće naredbe:

sudo firewall-cmd --permanent --add-port=20-21/tcp sudo firewall-cmd --permanent --add-port=30000-31000/tcp

Ponovno učitajte pravila vatrozida unosom:

firewall-cmd --reload

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

    Zatim ćete morati postaviti korisničku lozinku:

    sudo passwd 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 na svoj poslužitelj s bilo kojim FTP klijentom koji se može konfigurirati za korištenje TLS šifriranja, kao što je 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.

Pokrenite sljedeće naredbe da kreirate 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 za ostale korisnike 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 CentOS 7 sustavu.

ftp centos