Configurarea unui server FTP (File Transfer Protocol) pe Linux poate fi esențială pentru transferul securizat de fișiere și partajarea datelor între utilizatori sau dispozitive. Totuși, FTP-ul tradițional este adesea considerat nesigur, deoarece transmite date în text simplu. Acest ghid îți va arăta cum să instalezi și să configurezi un server FTP securizat pe Linux folosind VSFTPD (Very Secure FTP Daemon), permițând transferuri de fișiere criptate, permisiuni pentru utilizatori și controale de acces securizate.

Ce vei avea nevoie

  • Un server Linux cu un cont de utilizator și privilegii sudo
  • Abilități de bază în linia de comandă
  • Acces la internet pentru a instala pachetele software necesare

Pasul 1: Instalează VSFTPD

  1. Actualizează indexul pachetelor pentru a te asigura că ai cea mai recentă listă de repozitorii:
  2. sudo apt update
  3. Instalează pachetul VSFTPD (pentru sistemele Debian/Ubuntu):
  4. sudo apt install vsftpd -y

    Pentru sistemele CentOS/RHEL, folosește:

    sudo yum install vsftpd -y
  5. Verifică instalarea verificând versiunea VSFTPD:
  6. vsftpd -version

Pasul 2: Configurează setările de bază pentru VSFTPD

  1. Fă backup fișierului de configurare implicit:
  2. sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
  3. Deschide fișierul de configurare într-un editor de text:
  4. sudo nano /etc/vsftpd.conf
  5. Modifică setările după cum urmează pentru a permite acces securizat și restricționat:
    • Dezactivează accesul FTP anonim:
    • anonymous_enable=NO
    • Permite accesul utilizatorilor locali:
    • local_enable=YES
    • Activează încărcarea fișierelor pentru utilizatorii locali:
    • write_enable=YES
    • Restricționează fiecare utilizator la directorul lor de acasă:
    • chroot_local_user=YES

Pasul 3: Securizează FTP-ul cu SSL/TLS

  1. Generează un certificat SSL folosind OpenSSL:
  2. sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

    Completează câmpurile solicitate, deoarece acestea vor apărea pe certificat.

  3. Configurează VSFTPD pentru a folosi SSL editând din nou fișierul de configurare:
  4. sudo nano /etc/vsftpd.conf

    Adaugă sau modifică următoarele linii pentru a permite SSL:

    ssl_enable=YES
    rsa_cert_file=/etc/ssl/private/vsftpd.pem
    rsa_private_key_file=/etc/ssl/private/vsftpd.pem
    force_local_data_ssl=YES
    force_local_logins_ssl=YES
    ssl_tlsv1=YES
    ssl_sslv2=NO
    ssl_sslv3=NO
  5. Salvează și închide fișierul, apoi repornește VSFTPD pentru a aplica modificările:
  6. sudo systemctl restart vsftpd

Pasul 4: Creează utilizatori FTP și configurează permisiunile

  1. Creează un utilizator FTP dedicat și atribuie o parolă:
  2. sudo adduser ftpuser
    sudo passwd ftpuser
  3. Restricționează utilizatorul la directorul său de acasă pentru securitate:
  4. sudo usermod -d /home/ftpuser ftpuser
  5. Setează permisiunile pentru director astfel încât doar utilizatorul FTP să poată citi și scrie fișiere:
  6. sudo chown ftpuser:ftpuser /home/ftpuser
    sudo chmod 755 /home/ftpuser

Pasul 5: Configurează firewall-ul pentru a permite traficul FTP

Dacă serverul tău are un firewall activat, va trebui să permiți traficul FTP.

Pentru UFW (Ubuntu):

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 990/tcp
sudo ufw reload

Pentru Firewalld (CentOS/RHEL):

sudo firewall-cmd --permanent --add-port=20-21/tcp
sudo firewall-cmd --permanent --add-port=990/tcp
sudo firewall-cmd --reload

Pasul 6: Testează serverul FTP

  1. Conectează-te la serverul FTP folosind un client FTP din linia de comandă sau un client FTP precum FileZilla.
  2. Introdu adresa IP a serverului, numele de utilizator și parola pentru a te autentifica în siguranță.
  3. Verifică conexiunea SSL:
    • În FileZilla, setează opțiunea “Encryption” la Require explicit FTP over TLS.
    • Confirmă conexiunea securizată verificând simbolul de lacăt sau notificarea de securitate.

Pasul 7: Activează modul pasiv (Opțional)

Pentru utilizatorii din spatele unui firewall sau NAT, modul pasiv poate facilita conexiuni mai fluide.

  1. Adaugă setările pentru modul pasiv în fișierul de configurare VSFTPD:
  2. sudo nano /etc/vsftpd.conf

    Adaugă următoarele linii:

    pasv_enable=YES
    pasv_min_port=10000
    pasv_max_port=10100
  3. Salvează și închide fișierul, apoi repornește VSFTPD:
  4. sudo systemctl restart vsftpd

Concluzie

Configurarea unui server FTP securizat pe Linux folosind VSFTPD asigură transferul securizat al fișierelor, menținând permisiuni pentru utilizatori și criptare. Urmând acest ghid, ai stabilit o configurație solidă pentru serverul FTP cu criptare SSL/TLS, reguli de firewall și acces restricționat pentru utilizatori, oferind un mediu de transfer de fișiere securizat și eficient.

Aplică acești pași pentru a furniza o soluție FTP sigură și de încredere pentru echipa ta sau pentru clienți.