Securizarea conexiunilor SSH vă ajută să vă protejați sistemul și datele Linux. Administratorii de sistem și utilizatorii casnici trebuie, de asemenea, să securizeze computerele cu acces la internet. Iată 10 moduri simple de a vă ajuta să vă securizați serverul SSH .
Câteva elemente de bază despre securitatea SSH
SSH înseamnă Secure Shell. Protocolul SSH sau instrumentul software le permite administratorilor de sistem și utilizatorilor să realizeze conexiuni securizate la computere de la distanță folosind acel protocol.
Protocolul SSH este un protocol criptat conceput pentru a oferi o conexiune sigură printr-o rețea nesigură, cum ar fi Internetul. SSH în Linux este construit pe versiunea portabilă a proiectului OpenSSH. Este implementat într-un model clasic client-server cu un server SSH care acceptă conexiuni de la clienții SSH. Clientul este folosit pentru a se conecta la server și a expune sesiunea utilizatorilor la distanță. Serverul acceptă conexiunea și inițiază sesiunea.
În configurația sa implicită, serverul SSH va „asculta” pentru conexiunile de intrare pe Protocolul de control al transmisiei (TCP), portul 22. Deoarece acesta este un port standardizat și popular, este o țintă pentru amenințările actorilor și boții rău intenționați.
Actorii rău intenționați lansează roboți care scanează intervale de adrese IP în căutarea porturi deschise. Apoi sondează aceste porturi pentru vulnerabilități exploatabile. Gândindu-mă că sunt în siguranță, că există multe ținte mai mari și mai bune decât mine pe care băieții răi să le vizeze este complet greșit. Acești roboți nu își aleg țintele pe baza niciunui criteriu, ei doar caută o modalitate de a pătrunde în sistem.
Veți fi o victimă dacă nu vă securizați sistemul.
Frecare de securitate
Un punct de fricțiune de securitate este orice situație în care sarcina principală este împiedicată sau întârziată din cauza cerințelor de securitate.
Fricțiunea de securitate provoacă disconfort (la orice nivel) utilizatorilor și altora atunci când implementați măsuri de securitate. Oamenii nou în sistemele informatice se pot îngrijora dacă vor trebui să introducă o parolă de fiecare dată când se conectează la mainframe. Pentru ei, aceasta este și o formă de fricțiune de securitate.
Introducerea măsurilor de securitate va include adesea o anumită formă de frecare pentru unii oameni. Proprietarii de afaceri trebuie să plătească pentru aceste măsuri. Este posibil ca utilizatorii de computere să fie nevoiți să-și schimbe obiceiurile sau să-și amintească diferite informații de autentificare, adăugând pași pentru a se conecta cu succes. Administratorii de sistem vor avea de lucru suplimentar pentru implementarea și menținerea noilor măsuri de securitate.
Strângerea și blocarea unui sistem de operare Linux sau Unix poate fi rapidă. Măsurile de securitate de aici sunt un set de pași ușor de urmat care vor îmbunătăți securitatea computerului fără a fi nevoie de aplicații terțe și de intervenție profundă pentru firewall .
Utilizați protocolul SSH versiunea 2
În 2006, protocolul SSH a fost actualizat de la versiunea 1 la versiunea 2. Aceasta este o actualizare semnificativă. Există multe modificări și îmbunătățiri, în special în ceea ce privește criptarea și securitatea, iar versiunea 2 nu este compatibilă cu versiunea 1. Pentru a preveni conexiunile de la clienții versiunii 1, puteți specifica computerele să accepte numai conexiuni din versiunea 2.
Pentru a face acest lucru, editați fișierul /etc/ssh/sshd_config folosind următoarea comandă:
sudo gedit /etc/ssh/sshd_config

Adăugați următorul rând:
Protocol 2
![Cum securizați un server SSH Cum securizați un server SSH]()
Și salvați fișierul, apoi reporniți procesul demonului SSH folosind următoarea comandă:
sudo systemctl restart sshd
![Cum securizați un server SSH Cum securizați un server SSH]()
Testați noua configurație în acțiune, trecând la o altă mașină și încercând să faceți SSH în mașina de testare. Vom folosi opțiunea -1 (protocol 1) pentru a forța comanda ssh să utilizeze versiunea 1 a protocolului.
ssh -1 dave@howtogeek.local
![Cum securizați un server SSH Cum securizați un server SSH]()
Solicitarea de conectare a fost refuzată. Asigurați-vă că vă puteți conecta în continuare la protocolul 2. Vom folosi -2 (protocolul 2) pentru a testa.
ssh -2 dave@howtogeek.local
![Cum securizați un server SSH Cum securizați un server SSH]()
Faptul că serverul SSH solicită o parolă este un semn pozitiv că conexiunea a fost realizată și că interacționați cu serverul. Clienții SSH moderni vor folosi implicit protocolul 2, nu este nevoie să specificăm protocolul 2 cu condiția ca clientul să fie actualizat.
ssh dave@howtogeek.local
![Cum securizați un server SSH Cum securizați un server SSH]()
Conexiunea a fost acceptată.
Evita poarta 22
Portul 22 este portul standard pentru conexiunile SSH. Dacă este utilizat un alt port, acesta adaugă un pic de securitate prin obscuritate (STO) sistemului dumneavoastră. Securitatea prin ambiguitate nu ar trebui să fie niciodată considerată o măsură de securitate reală. De fapt, unii roboți de atac mai inteligenți analizează toate porturile deschise și decid ce serviciu prestează, mai degrabă decât să se bazeze pe o simplă listă de porturi și presupunând că oferă un serviciu în mod normal. Dar utilizarea unui port non-standard poate ajuta la reducerea traficului prost pe portul 22.
Pentru a configura un port non-standard, editați fișierul de configurare SSH ca mai sus.
![Cum securizați un server SSH Cum securizați un server SSH]()
Ștergeți # de la începutul liniei Port și înlocuiți 22 cu numărul dorit. Salvați fișierul de configurare și reporniți demonul SSH.
Pe alt computer vom folosi comanda ssh pentru a ne conecta la server. Comanda implicită ssh folosește portul 22:
ssh dave@howtogeek.local
![Cum securizați un server SSH Cum securizați un server SSH]()
Conexiune refuzată. Încercați din nou și specificați portul 470 utilizând opțiunea –p (port):
ssh -p 479 dave@howtogeek.local
![Cum securizați un server SSH Cum securizați un server SSH]()
Conexiunea a fost confirmată.
Conectați filtrul folosind TCP Wrappers
TCP Wrappers sunt o listă de control al accesului ușor de înțeles. Vă permite să refuzați și să permiteți conexiuni pe baza caracteristicilor cererii de conectare, cum ar fi adresa IP sau numele de gazdă. TCP Wrapper-urile trebuie utilizate cu, nu în locul unui firewall configurat corespunzător.
TCP Wrappers vine preinstalat pe mașinile Ubuntu 18.04 LTS . Trebuie instalat pe Manjaro 18.10 și Fedora 30.
Pentru a instala pe Fedora, utilizați următoarea comandă:
sudo yum install tcp_wrappers
![Cum securizați un server SSH Cum securizați un server SSH]()
Pentru a instala pe Manjaro, utilizați această comandă:
sudo pacman -Syu tcp-wrappers
![Cum securizați un server SSH Cum securizați un server SSH]()
Sunt incluse două fișiere, un fișier deține lista de permise și un fișier deține lista de respingere. Editați lista de respingere folosind următoarea comandă:
sudo gedit /etc/hosts.deny
![Cum securizați un server SSH Cum securizați un server SSH]()
Comanda de mai sus va deschide editorul gedit cu fișierul refuzând să se încarce în el.
![Cum securizați un server SSH Cum securizați un server SSH]()
Trebuie să adăugați linia:
ALL : ALL
Și salvați fișierul. Această linie va bloca orice acces neautorizat. Acum, trebuie să acordăm permisiuni conexiunilor pe care doriți să le acceptați. Pentru a face acest lucru, trebuie să editați fișierul de permisiuni:
sudo gedit /etc/hosts.allow
![Cum securizați un server SSH Cum securizați un server SSH]()
Comanda de mai sus va deschide editorul gedit cu fișierul descărcabil în el.
![Cum securizați un server SSH Cum securizați un server SSH]()
Am adăugat numele demonului SSH, SSHD și adresa IP a computerului care permite realizarea conexiunii. Salvați fișierul și vedeți dacă restricțiile și permisiunile sunt în vigoare.
Mai întâi, veți încerca să vă conectați de la un computer care nu se află în fișierul hosts.allow:
![Cum securizați un server SSH Cum securizați un server SSH]()
Conexiune refuzată. Vom încerca să ne conectăm de la o mașină cu adresa IP 192.168.4.23:
![Cum securizați un server SSH Cum securizați un server SSH]()
Conexiune acceptată.
Exemplul de aici permite doar o singură mașină să se conecteze. Wrapper-urile TCP sunt destul de flexibile, acceptă nume de gazdă, wildcards și măști de subrețea pentru a accepta conexiuni din intervale de adrese IP.
Respinge cererile de conectare fără parolă
Deși nu este bine, administratorii de sistem Linux pot crea conturi de utilizator fără parole. Aceasta înseamnă că nu este necesară nicio parolă pentru conexiunile la distanță din acest cont. Aceste conexiuni vor fi acceptate, dar nu autentificate.
Setarea implicită pentru SSH acceptă cereri de conectare fără parolă. Îl putem schimba cu ușurință și ne asigurăm că toate acele conexiuni sunt autentificate.
Trebuie să editați fișierul de configurare SSH.
![Cum securizați un server SSH Cum securizați un server SSH]()
Derulați în jos în fișier până când vedeți linia care spune #PermitEmptyPasswords nu . Ștergeți # de la începutul liniei și salvați fișierul. Reporniți demonul SSH.
Folosiți chei SSH în loc de parole
Cheile SSH oferă o modalitate sigură de a vă conecta la un server SSH. Parolele pot fi sparte, ghicite sau forțate . Cheile SSH nu sunt vulnerabile la aceste tipuri de atacuri.
Când generați o cheie SSH, creați o pereche de chei. Una este cheia publică, iar cealaltă este cheia privată. Cheia publică este instalată pe serverele la care doriți să vă conectați. Cheia privată este păstrată în siguranță pe computer.
Cheile SSH permit conexiunile să fie făcute fără o parolă, ceea ce este mai sigur decât conexiunile care utilizează autentificarea prin parolă.
Când faceți o solicitare de conectare, computerul de la distanță folosește o copie a cheii publice pentru a crea un mesaj criptat trimis înapoi la computer. Deoarece este criptat cu cheia publică, computerul îl poate decripta cu cheia privată.
Computerul extrage apoi unele informații din mesaj, le criptează și le trimite înapoi la server. Dacă serverul îl poate decripta cu o copie a cheii publice. Dacă informațiile din mesaj se potrivesc cu cele trimise de server, conexiunea va fi confirmată.
Aici, conexiunea se face la server la 192.168.4.11 de către utilizatorul cu cheia SSH. Rețineți că nu li se cere să introducă o parolă.
ssh dave@192.168.4.11
![Cum securizați un server SSH Cum securizați un server SSH]()
Dezactivați complet autentificarea parolei
Puteți dezactiva complet autentificarea parolei dacă utilizați chei SSH. Trebuie să edităm fișierul de configurare SSH.
![Cum securizați un server SSH Cum securizați un server SSH]()
Derulați în jos fișierul până când vedeți linia care începe cu #PasswordAuthentication da . Ștergeți # la începutul rândului, schimbați da cu nu și salvați fișierul. Reporniți demonul SSH.
Dezactivați redirecționarea X11
Redirecționarea X11 permite utilizatorilor de la distanță să ruleze aplicații grafice de pe serverul dvs. printr-o sesiune SSH, dar este ușor exploatată de actorii răi. Este mai bine să-l dezactivați prin editarea fișierului de configurare SSH.
![Cum securizați un server SSH Cum securizați un server SSH]()
Derulați în jos fișierul până când vedeți linia #X11Forwarding no , ștergeți # de la începutul liniei și salvați fișierul. Reporniți demonul SSH.
Setați valoarea timpului de inactivitate
Dacă se stabilește o conexiune SSH cu un computer și nu există activitate pe acesta pentru o perioadă de timp, acest lucru poate reprezenta un risc de securitate.
Prin urmare, ar trebui să setați o limită de timeout. Conexiunea SSH va fi deconectată dacă nu există activitate în limita de timp. Încă o dată, trebuie să edităm fișierul de configurare SSH.
![Cum securizați un server SSH Cum securizați un server SSH]()
Derulați în jos fișierul până când vedeți linia care începe cu #ClientAliveInterval 0 . Eliminați # de la începutul liniei, schimbați numărul 0 la valoarea dorită. De obicei, oamenii o setează la 300 de secunde, adică 5 minute. Salvați fișierul și reporniți demonul SSH.
Setați o limită pentru numărul de intrări de parolă
Definirea unei limite a numărului de confirmări poate ajuta la prevenirea ghicirii parolelor și a atacurilor cu forță brută. După numărul specificat de solicitări de autentificare, utilizatorul va fi deconectat de la serverul SSH. În mod implicit, nu există o limită a numărului de încercări de parolă, dar o puteți edita în fișierul de configurare SSH.
![Cum securizați un server SSH Cum securizați un server SSH]()
Derulați în jos fișierul până când vedeți linia care începe cu #MaxAuthTries 0 . Eliminarea # de la începutul liniei schimbă numărul la valoarea dorită. Îl puteți seta la 3. Salvați fișierul când faceți modificări și reporniți demonul SSH.
Puteți testa acest lucru încercând să vă conectați și introducând parola greșită.
![Cum securizați un server SSH Cum securizați un server SSH]()
Rețineți că numărul MaxAuthTries este mai mare decât numărul de încercări permise utilizatorului. După două încercări eșuate, sunteți deconectat, ceea ce înseamnă că MaxAuthTries este setat la 3.
Dezactivați autentificarea rădăcină
Vi se recomandă să nu vă conectați ca root, să utilizați doar ca utilizator normal pe Linux și să utilizați sudo pentru a efectua acțiuni care necesită permisiuni root. De asemenea, nu ar trebui să permiteți root să se conecteze la serverul SSH. Numai utilizatorii normali au voie să se conecteze. Dacă trebuie să efectueze o sarcină la nivel administrativ, pot folosi și sudo. Dacă trebuie să permiteți utilizatorului root să se conecteze, îl puteți forța să folosească o cheie SSH.
Editați fișierul de configurare pentru a dezactiva autentificarea root.
![Cum securizați un server SSH Cum securizați un server SSH]()
Derulați în jos fișierul până când vedeți linia care începe cu #PermitRootLogin prohibit-password , ștergeți # de la începutul liniei.
- Dacă doriți să împiedicați conectarea root-ului, înlocuiți prohibit-password cu nr.
- Dacă permiteți utilizatorului root să se autentifice, dar forțați utilizarea unei chei SSH, lăsați interzis-parola intactă.
Salvați modificările și reporniți demonul SSH.
Ultimul pas
Desigur, dacă nu aveți nevoie de SSH care rulează pe computer, dezactivați-l cu următoarea comandă:
sudo systemctl stop sshd
sudo systemctl disable sshd
Vă doresc succes!