Instalare Secure FTP pe Linux

Daca avem mai multe site-uri pe un server Linux, acestea se pot actualiza prin SFTP, folosind un client ca Filezilla, calea in care site-urile sunt de obicei instalate in Linux e /var/www/.

Secure File Transfer Protocol(SFTP) este un protocol pentru transferul de fisiere intre local si servere remote. Spre deosebire de FTP, SFTP foloseste SSH(Secure Shell) pentru a cripta tranferul de fisiere, protejand impotriva unor amenintari comune ca interceptarea de date si packet sniffing. In acest tutorial, vom detalia pasi pentru a seta SFPT server pe o masina cu Linux.

1.) Creare unui nou user

Prima data vom crea un user pentru conexiunea SFTP. Acesta este important din motive de securitate, bunele ptractici este sa nu folosesti utilizator root pentru SFTP.

Se deschide terminal si tasteaza urmatoarea comanda pentru a adauga un nou utilizator. Inlocuieste 'sftpuser' cu numele utilizator care vreti sa il folositi.

sudo adduser sftpuser
view raw adduser.sh hosted with ❤ by GitHub

Veti fii intrebati sa introduceti o parola UNIX si sa o confirmati. Salveaza aceasta parola o sa ai nevoie de ea mai tarziu.

2.) Instalare SSH(daca nu este instalat)

Majoritatea serverelor au implicit instalat SSH. Daca SSH nu este instalat deja pe server, poti instala ruland urmatoarea comanda:

sudo apt-get update
sudo apt-get install openssh-server
view raw instalssh.sh hosted with ❤ by GitHub
Verifica daca serviciu SSH ruleaza, folosind:

sudo systemctl status ssh
view raw sshstatus.sh hosted with ❤ by GitHub
Daca nu ruleaza serviciu SSH, il porniti:

sudo systemctl start ssh
view raw startssh.sh hosted with ❤ by GitHub

3.) Configurare SSH pentru SFTP

Editam fisierul de configurare SSH pentru a specifica setarile SFTP. Vom folosi editorul nano pentru asta.

sudo nano /etc/ssh/sshd_config
view raw configssh.sh hosted with ❤ by GitHub
Scroll la sfarsitul fisierului si adauga urmatoarele lini:

Match User sftpuser
ForceCommand internal-sftp
PasswordAuthentication yes
ChrootDirectory /var/www
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
view raw sshd_config hosted with ❤ by GitHub

4.) Reporneste serviciu SSH

Dupa ce ati facut schimbarile, reporneste serviciu SSH, pentru a se actualiza.

sudo systemctl restart ssh
view raw restartssh.sh hosted with ❤ by GitHub

5.) Testare conexiune SFTP

De pe masina locala, vom incerca sa ne conectam la server folosind comanda sftp, inlocuieste server_ip cu adresa IP a serverului.

sftp sftpuser@your_server_ip
view raw sftp.sh hosted with ❤ by GitHub

Veti fi intrebati sa introduceti parola. Daca totul este configurat corect, veti fi connectat la server SFTP.

6.) Permisiuni

Dupa setare server SFTP, este impornant sa verificam si sa modificam permisiunile directorului utilizatorului. ChrootDirectory in cazul nostru /var/www trebuie sa fie detinut de sftpuser si trebuie sa nu existe permisiuni de scriere, de pe orice utilizator sau grup, in afara de utilizator sftpuser. Aceasta este o cerinta din instalare SFTP.

Se schimba propietarul directorului sa fie sftpuser:

sudo chown sftpuser /var/www
view raw chown.sh hosted with ❤ by GitHub

Se seteaza permisiunile pe acest director. Aceasta comanda sterge permisunile pentru grup sau alti utilizatori in afara de sftpuser:

sudo chmod 755 /var/www
view raw chmod.sh hosted with ❤ by GitHub

6.) Instalare client SFTP Filezilla pe Linux

Pentru a instala client SFTP Filezilla din linie de comanda, se foloseste urmatoarele comenzi.

sudo apt-get update
sudo apt-get install filezilla
Asa arata client FileZilla pe Linux:

Comentarii

Postări populare