Android

Cum configurați serverul ftp cu vsftpd pe debian 9

Ubuntu Server 18.04.1. Настройка и установка FTP-сервера vsftpd

Ubuntu Server 18.04.1. Настройка и установка FTP-сервера vsftpd

Cuprins:

Anonim

FTP (File Transfer Protocol) este un protocol de rețea standard utilizat pentru a transfera fișierele către și dintr-o rețea de la distanță. Pentru transferuri de date mai sigure și mai rapide, utilizați SCP sau SFTP.

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

Acest tutorial explică cum să instalați și să configurați vsftpd (Daemon Ftp foarte sigur) pe Debian 9. vsftpd 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.

Cerințe preliminare

Utilizatorul la care sunteți conectat, deoarece trebuie să aibă privilegii sudo pentru a putea instala pachete.

Instalarea vsftpd pe Debian 9

Pachetul vsftpd este disponibil în depozitele Debian. Instalarea este destul de simplă:

sudo apt update sudo apt install vsftpd

Serviciul vsftpd va începe automat după finalizarea procesului de instalare. Verificați prin imprimarea stării serviciului:

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 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

Configurarea vsftpd

Serverul vsftpd poate fi configurat modificând fișierul vsftpd.conf , găsit în directorul /etc

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

1. Acces FTP

Găsiți directivele local_enable și local_enable și verificați potrivirea configurației la liniile de mai jos:

/etc/vsftpd.conf

anonymous_enable=NO local_enable=YES

Acest lucru asigură că numai utilizatorii locali pot accesa serverul FTP.

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

write_enable=YES

3. Închisoarea Chroot

Pentru a împiedica utilizatorii FTP să acceseze orice fișiere din afara directorilor lor de origine, nu respectă setarea chroot .

/etc/vsftpd.conf

chroot_local_user=YES

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

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.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.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.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 la sfârșitul fișierului:

/etc/vsftpd.conf

userlist_enable=YES 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 fișierul /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/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

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

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

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

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), executați următoarele comenzi:

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

Pentru a evita blocarea, vom deschide și portul 22 :

sudo ufw allow OpenSSH

Reîncărcați regulile UFW prin dezactivarea și reabilitarea UFW:

sudo ufw disable sudo ufw enable

Pentru a verifica modificările rulate:

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)

Crearea utilizatorului 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

    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. folosind 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.

Creați shell-ul /bin/ftponly și faceți-l 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 tuturor utilizatorilor cărora doriți să le acordaț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. Debian 9.

ftp debian