Android

Cum să configurați serverul ftp cu vsftpd pe centos 7

Установка сервера FTP на Linux Ubuntu и публикация FTP-сайта

Установка сервера FTP на Linux Ubuntu и публикация FTP-сайта

Cuprins:

Anonim

FTP (File Transfer Protocol) este un protocol standard de rețea client-server care permite utilizatorilor să transfere fișierele către și de la o rețea de la distanță.

Există mai multe servere FTP open source disponibile pentru Linux. Cele mai populare și utilizate pe scară largă sunt PureFTPd, ProFTPD și vsftpd.

În acest tutorial, vom instala vsftpd (Daemon Ftp foarte sigur) pe CentOS 7. Este un server FTP stabil, sigur și rapid. Vă vom arăta, de asemenea, cum să configurați vsftpd pentru a restricționa utilizatorii la directorul lor de origine și a cripta întreaga transmisie cu SSL / TLS.

Pentru transferuri de date mai sigure și mai rapide, utilizați SCP sau SFTP.

Cerințe preliminare

Înainte de a continua cu acest tutorial, asigurați-vă că sunteți autentificat ca utilizator cu privilegii sudo.

Instalarea vsftpd pe CentOS 7

Pachetul vsftpd este disponibil în depozitele implicite CentOS. Pentru instalare, emite următoarea comandă:

sudo yum install vsftpd

După instalarea pachetului, porniți demonul vsftpd și permiteți-l să pornească automat la momentul de pornire:

sudo systemctl start vsftpd sudo systemctl enable vsftpd

Puteți verifica funcționarea serviciului vsftpd prin imprimarea stării sale:

sudo systemctl status vsftpd

Rezultatul va arăta ca mai jos, arătând că serviciul vsftpd este activ și funcționează:

● 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

Configurarea vsftpd

Configurarea serviciului vsftpd implică editarea fișierului de configurare /etc/vsftpd/vsftpd.conf . Majoritatea setărilor sunt bine documentate în fișierul de configurare. Pentru toate opțiunile disponibile, vizitați pagina oficială vsftpd.

În secțiunile următoare, vom trece peste câteva setări importante necesare pentru a configura o instalare sigură vsftpd.

Începeți prin deschiderea fișierului de configurare vsftpd:

sudo nano /etc/vsftpd/vsftpd.conf

1. Acces FTP

Vom permite accesul la serverul FTP doar utilizatorii locali, local_enable directivele local_enable și local_enable și local_enable verifica potrivirea configurației la liniile de mai jos:

/etc/vsftpd/vsftpd.conf

anonymous_enable=NO local_enable=YES

2. Activarea încărcărilor

write_enable setarea write_enable pentru a permite modificări la sistemul de fișiere, cum ar fi încărcarea și ștergerea fișierelor.

/etc/vsftpd/vsftpd.conf

write_enable=YES

3. Închisoarea Chroot

Împiedicați utilizatorii FTP să acceseze orice fișiere din afara directorilor lor de origine, fără a chroot directiva chroot .

/etc/vsftpd/vsftpd.conf

chroot_local_user=YES

În mod implicit, atunci când chroot este activat, vsftpd va refuza să încarce fișiere dacă directorul în care utilizatorii sunt blocați este scris. Acest lucru este pentru a preveni o vulnerabilitate de securitate.

Utilizați una dintre metodele de mai jos pentru a permite încărcarea când chroot este activat.

  • Metoda 1. - Metoda recomandată pentru a permite încărcarea este să mențineți activarea chroot și să configurați directoare FTP. În acest tutorial, vom crea un director ftp în interiorul locuinței utilizatorului, care va servi drept chroot și un director de uploads scris pentru încărcarea fișierelor.

    /etc/vsftpd/vsftpd.conf

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

    Metoda 2. - O altă opțiune este adăugarea următoarei directive în fișierul de configurare vsftpd. Utilizați această opțiune dacă trebuie să acordați accesului scriitorului la directorul său de origine.

    /etc/vsftpd/vsftpd.conf

    allow_writeable_chroot=YES

4. Conexiuni FTP pasive

vsftpd poate folosi orice port pentru conexiuni FTP pasive. Vom specifica intervalul minim și maxim de porturi și vom deschide ulterior intervalul în firewall-ul nostru.

Adăugați următoarele linii în fișierul de configurare:

/etc/vsftpd/vsftpd.conf

pasv_min_port=30000 pasv_max_port=31000

5. Limitarea autentificării utilizatorului

Pentru a permite doar anumitor utilizatori să se autentifice pe serverul FTP, adăugați următoarele linii după userlist_enable=YES line:

/etc/vsftpd/vsftpd.conf

userlist_file=/etc/vsftpd/user_list userlist_deny=NO

Când această opțiune este activată, trebuie să specificați în mod explicit ce utilizatori se pot autentifica adăugând numele de utilizator la /etc/vsftpd/user_list (un utilizator pe linie).

6. Securizarea transmisiilor cu SSL / TLS

Pentru a cripta transmisiile FTP cu SSL / TLS, va trebui să aveți un certificat SSL și să configurați serverul FTP pentru al utiliza.

Puteți utiliza un certificat SSL existent semnat de o autoritate de certificare de încredere sau puteți crea un certificat auto-semnat.

În acest tutorial, vom genera un certificat SSL openssl folosind comanda openssl .

Următoarea comandă va crea o cheie privată de 2048 biți și un certificat semnat auto valabil timp de 10 ani. Atât cheia privată cât și certificatul vor fi salvate într-un același fișier:

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

Odată ce certificatul SSL este creat, deschideți fișierul de configurare vsftpd:

sudo nano /etc/vsftpd/vsftpd.conf

Găsiți directivele rsa_private_key_file și rsa_private_key_file , schimbați valorile lor pe calea fișierului pam și setați directiva ssl_enable la YES :

/etc/vsftpd/vsftpd.conf

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

Dacă nu se specifică altfel, serverul FTP va folosi doar TLS pentru a realiza conexiuni sigure.

Reporniți serviciul vsftpd

După ce ați terminat de editat, fișierul de configurare vsftpd (excluzând comentariile) ar trebui să arate așa:

/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

Salvați fișierul și reporniți serviciul vsftpd pentru ca modificările să intre în vigoare:

sudo systemctl restart vsftpd

Deschiderea firewallului

Pentru a deschide portul 21 (port de comandă FTP), portul 20 (port de date FTP) și 30000-31000 (interval de porturi pasive), emite următoarele comenzi:

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

Reîncărcați regulile firewallului tastând:

firewall-cmd --reload

Crearea unui utilizator FTP

Pentru a testa serverul FTP vom crea un utilizator nou.

  • Dacă aveți deja un utilizator căruia doriți să acordați acces FTP, săriți la primul pas. Dacă setați allow_writeable_chroot=YES în fișierul dvs. de configurare, săriți la al treilea pas.
  1. Creați un utilizator nou numit newftpuser :

    sudo adduser newftpuser

    În continuare, va trebui să setați parola utilizatorului:

    sudo passwd newftpuser

    Adăugați utilizatorul la lista de utilizatori FTP permisă:

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

    Creați arborele de director FTP și setați permisiunile corecte:

    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

    După cum s-a discutat în secțiunea anterioară, utilizatorul va putea încărca fișierele sale în directorul ftp/upload .

În acest moment, serverul dvs. FTP este complet funcțional și ar trebui să vă puteți conecta la serverul dvs. cu orice client FTP care poate fi configurat pentru a utiliza criptarea TLS, cum ar fi FileZilla.

Dezactivarea accesului la Shell

În mod implicit, la crearea unui utilizator, dacă nu este specificat explicit, acesta va avea acces SSH la server.

Pentru a dezactiva accesul la shell, vom crea un nou shell care va tipări pur și simplu un mesaj care să spună utilizatorului că contul său este limitat doar la acces FTP.

Rulați următoarele comenzi pentru a crea shell-ul /bin/ftponly și a-l face executabil:

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

Adăugați noul shell la lista de cochilii valide din /etc/shells :

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

Modificați shell-ul utilizatorului în /bin/ftponly :

sudo usermod newftpuser -s /bin/ftponly

Utilizați aceeași comandă pentru a schimba shell-ul pentru alți utilizatori cărora doriți să le oferiți numai acces FTP.

Concluzie

În acest tutorial, ați învățat cum să instalați și să configurați un server FTP sigur și rapid pe sistemul dvs. CentOS 7.

ftp centos