Ghid esențial SSH: servere, clienți și chei criptografice

Opțiuni de configurare pe partea de server

Această secțiune conține câteva setări obișnuite pentru partea de server care pot modela felul în care serverul dvs. răspunde și, mai ales, ce tipuri de conexiuni permite.

Dezactivarea autentificării cu parolă

Dacă aveți cheile SSH configurate, testate și perfect funcționale, este probabil o idee bună dezactivarea autentificării bazate pe parolă. Aceasta va preveni orice utilizator să se autentifice prin SSH doar cu parolă.

Pentru aceasta, conectați-vă la serverul de la distanță și deschideți fișierul /etc/ssh/sshd_config cu privilegii root sau sudo.

$ sudo nano /etc/ssh/sshd_config

În interiorul fișierului, căutați după directivaPasswordAuthentication . Dacă este anulată prin semnul # care semnifică începutul unui comentariu, atunci ștergeți acest caracter. Schimbați valoarea din “yes” în “no” pentru a dezactiva autentificarea bazată pe parolă:

Conținut fișier:

PasswordAuthentication no

După ce ați făcut schimbările, salvați și închideți fișierul. Pentru a implementa schimbările, ar trebui să restartați serviciul SSH.

În Ubuntu/Debian:

$ sudo service ssh restart

În CentOS/Fedora:

$ sudo service sshd restart

Acum, toate conturile de pe sistem nu se vor mai putea conecta prin SSH folosind doar parola.

Schimbarea portului pe care rulează demonul (serviciul) SSH

Unii administratori sugerează faptul ca ar fi benefic din punct de vedere al securității schimbarea portului pe care rulează portul SSH. Aceasta acțiune poate micșora numărul de încercări de conectare la care este supus serverul dvs. din partea programelor automate (boți).

Pentru schimbarea portului pe care rulează demonul SSH, vă trebui să vă conectați la serverul de la distanță. Deschideți fișierul sshd_config cu privilegii de utilizator root, fie prin conectare directă la utilizatorul rădăcină (root), fie folosind comanda sudo ca și prefix:

$ sudo nano /etc/ssh/sshd_config

Imediat ce ați deschis fișierul, puteți schimba portul pe care SSH rulează prin identificarea textului (liniei de cod) Port 22sp și apoi prin modificarea acestuia astfel încât să reflecte numărul portului pe care doriți sa îl folosiți. De exemplu, pentru a modifica portul pe 4444, inserați această linie de cod în fișier:

Conținut fișier:

#Port 22
Port 4444

Salvați și închideți fișierul când ați terminat. Pentru a implementa schimbările, trebuie să restartați demonul SSH.

În Ubuntu/Debian:

$ sudo service ssh restart

În CentOS/Fedora:

$ sudo service sshd restart

După ce demonul este repornit, va trebui să vă autentificați prin specificarea numărului portului (problemă demonstrată în secțiunile anterioare).

Limitarea utilizatorilor care se pot conecta prin SSH

Pentru a limita explicit conturile de utilizator care se pot autentifica prin SSH, puteți aborda câteva metode, fiecare dintre ele constând în editarea fișierul de configurare a al demonului SSH.

Pe serverul dvs. de la distanță, deschideți acest fișier cu privilegii root sau sudo:

$ sudo nano /etc/ssh/sshd_config

Prima metodă prin care puteți specifica conturile de utilizatori care sunt autorizate să se conecteze se folosește de directiva AllowUsers. Căutați după directiva AllowUsers în acest fișier. Dacă nu există această directivă, o puteți crea oriunde. După directivă, enumerați conturile de utilizatori care ar trebui să fie autorizate să se conecteze prin SSH:

Conținut fișier:

AllowUsers utilizator1 utilizator2

Salvați și închideți fișierul. Reporniți demonul pentru implementarea schimbărilor făcute.

În Ubuntu/Debian:

$ sudo service ssh restart

În CentOS/Fedora:

$ sudo service sshd restart

Dacă sunteți mai obișnuiți cu gestionarea grupurilor, puteți folosi în schimb directiva AllowGroups. Dacă optați pentru asta, adăugați un grup care ar trebui să aibă permisiunea să acceseze SSH (vom crea acest grup și vom adăuga membri imediat):

Conținut fișier:

AllowGroups membriissh

Salvați și închideți fișierul.

Acum puteți crea un grup de sistem (fără un director home) care este identic cu denumirea dată anterior, tastând:

$ sudo groupadd -r membrissh 

Asigurați-vă că adăugați oricare utilizatori aveți nevoie la acest grup. Aceasta se poate face tastând comanda:

$ sudo usermod -a -G membrissh utilizator1
$ sudo usermod -a -G membrissh utilizator2

Acum, Reporniți demonul pentru implementarea schimbărilor făcute.

În Ubuntu/Debian:

$ sudo service ssh restart

În CentOS/Fedora:

$ sudo service sshd restart

Dezactivarea autentificării utilizatorului Root

De multe ori este înțelept să dezactivați complet conectarea utilizatorului root prin protocolul SSH,bineînțeles după ce ați configurat un cont de utilizator cu privilegii sudo.

Pentru a face asta, deschideți fișierul de configurare al demonului SSH de pe serverul de la distanță, cu utilizatorul root sau cu ajutorul comenzii sudo.

$ sudo nano /etc/ssh/sshd_config

În acest fișier, căutați o directiva denumită  PermitRootLogin. Dacă este comentată, ștergeți simbolul pentru comentarii # și setați valoarea “no” :

Conținut fișier:

PermitRootLogin no

Salvați și închideți fișierul. Pentru a implementa schimbările, reporniți demonul SSH. ave and close the file. To implement your changes, restart the SSH daemon.

În Ubuntu/Debian:

$ sudo service ssh restart

În CentOS/Fedora:

$ sudo service sshd restart

Permiterea accesului utilizatorului Root la anumite comenzi

Există anumite cazuri în care s-ar putea să doriți să dezactivați global accesul utilizatorului Root, dar totuși să îi permiteți să ruleze anumite aplicații, fără de care acestea nu pot funcționa corect. Un exemplu concret ar fi o rutină de backup.

Acest lucru poate fi realizat cu ajutorul fișierului authorized_keys al utilizatorului Root, care conține cheile SSH autorizate să folosească acest cont.

Adăugați cheia pe care doriți să o folosiți, de pe calculatorul dvs. (recomandăm crearea de chei noi pentru fiecare proces automat). în fișierul authorized_keys al utilizatorului Root aflat pe serverul de la distanță. Vom utiliza în acest exempli comanda ssh-copy-id, dar puteți folosi orice metodă de copiere a cheilor pe care am prezentat-o in secțiunile anterioare ale acestui articol:

$ ssh-copy-id root@gazda_la_distanță

Acum, conectați-vă la serverul de la distanță. Va trebui să ajustați conținutul fișierului authorized_keys, așa că deschideți-l cu utilizatorul Root sau cu ajutorul comenzii sudo:

$ sudo nano /root/.ssh/authorized_keys

La începutul liniei cu cheia pe care ați încărcat-o adăugați o instrucțiune command= care definește cheia pentru care este validă comanda. Aceasta ar trebui să includă calea completă către executabil plus orice eventuale argumente:

command="/path/to/command arg1 arg2" ssh-rsa ...

Salvați și închideți fișierul când ați terminat.

Acum, deschideți fișierul sshd_config cu ajutorul utilizatorului Root sau cu ajutorul comenzii sudo:

$ sudo nano /etc/ssh/sshd_config

Găsiți directiva PermitRootLogin, și schimbați valoarea în forced-commands-only. Aceasta va permite numai cheilor de conectare SSH să folosească utilizatorul root în momentul în care o comandă a fost specificată pentru acea cheie:

Conținut fișier:

PermitRootLogin forced-commands-only

Salvați și închideți fișierul. Restartați demonul SSH pentru a implementa noile schimbări făcute.

În Ubuntu/Debian:

$ sudo service ssh restart

În CentOS/Fedora:

$ sudo service sshd restart

Redirecționarea afișării video a aplicațiilor pentru X (mediu grafic) către client

Demonul SSH poate fi configurat pentru a redirecționa automat afișarea aplicațiilor în mediu grafic X de pe server pe calculatorul local. Pentru a funcționa corect clientul trebuie sa aibe un sistem X de gestionare a ferestrelor grafice configurat și activ.

Pentru a activa această funcție, conectați-vă la serverul de la distanță și editați fișierul sshd_config cu ajutorul utilizatorului Root sau cu ajutorul comenzii sudo:

$ sudo nano /etc/ssh/sshd_config

Căutați după directiva X11Forwarding. Dacă este comentată, ștergeți caracterul #. Sau creați-o dacă nu există deloc, apoi setați valoarea acesteia la “yes”:

Conținut fișier:

X11Forwarding yes

Salvați și închideți fișierul. Restartați demonul SSH pentru a implementa noile schimbări făcute.

În Ubuntu/Debian:

$ sudo service ssh restart

În CentOS/Fedora:

$ sudo service sshd restart

Pentru conectarea la server și redirecționarea mediului grafic al unei aplicații, va trebui să adăugați opțiunea -X de pe calculatorul local în momentul conectării:

$ ssh -X utilizator@gazda_la_distanță

Aplicațiile grafice pornite pe server prin intermediul acestei sesiuni ar trebui să fie afișate pe calculatorul local. Performanța este una scăzută, dar ar putea fi utilă la un moment dat.

root

Un entuziast pasionat de tot ceea ce înseamnă Linux și Open Source și un energic promotor. Deschis la orice proiecte bazate pe aceste tehnologii.

Faci un comentariu sau dai un răspuns?

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

Acest site folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.