Cum se configurează securitatea SSH Linux

Unul dintre cele mai utilizate protocoale la nivel de securitate pentru stabilirea conexiunilor în mediile UNIX este protocolul SSH (Secure Shell) care ne oferă o serie de funcționalități și caracteristici speciale pentru a proteja datele și conexiunile realizate.

SSH este un protocol care a fost dezvoltat concentrându-se pe securitatea comunicațiilor între două sisteme prin modelul client / server și datorită căruia utilizatorii au voie să se conecteze la o gazdă de la distanță.
Una dintre caracteristicile principale ale SSH este că criptează sesiunea de conexiune, ceea ce împiedică orice utilizator să obțină parole necriptate.

Tipuri de protecțieLa utilizarea protocolului SSH vom avea următoarele tipuri de protecție:

  • Odată stabilită conexiunea inițială, clientul poate verifica dacă se conectează la același server la care s-a conectat anterior
  • Clientul trimite informațiile de autentificare către server prin criptare pe 128 de biți
  • Toate datele trimise și primite în timpul sesiunii sunt transferate utilizând criptarea pe 128 de biți, ceea ce face dificilă decriptarea și citirea
  • Clientul are posibilitatea de a redirecționa aplicații X11 de pe server, aceasta este o tehnică numită redirecționare X11 care oferă un mijloc sigur de utilizare a aplicațiilor grafice pe o rețea locală sau externă.

Acum, în sistemele de operare Linux găsim fișierul de configurare SSH în calea / etc / ssh / ssh_config și datorită acestui fișier va fi posibil să se efectueze toate măsurile de securitate pentru conexiunile SSH.

MARI

Pentru sistemele macOS, acest fișier se află în calea / private / etc / ssh / ssh_config și are o legătură simbolică către / etc / ssh / ssh_config în scopuri de compatibilitate.

La editarea acestui fișier trebuie să avem în vedere următoarele.

  • Liniile goale și liniile care încep cu „#” sunt comentarii
  • Fiecare rând începe cu un cuvânt cheie, urmat de argument (e)
  • Opțiunile de configurare pot fi separate prin spații libere sau spații opționale și un semn =
  • Argumentele pot fi încadrate între ghilimele duble (") pentru a specifica argumente care conțin spații

1. Cum se editează fișierul Linux ssh_config


Pentru a edita acest fișier pentru a stabili valori adecvate, trebuie să executăm următoarele cu un editor:
 sudo nano / etc / ssh / ssh_config
Vom vedea următoarele:

MARI

Fișierul ssh_config este organizat de gazde și acolo fiecare gazdă conține setări specifice pentru acea gazdă anume, acolo putem folosi metacaractere precum * pentru a potrivi mai multe nume de gazde cu o singură declarație.
Unii dintre parametrii pe care îi putem folosi în acest fișier sunt:

GazdăRestrângeți declarațiile care sunt numai pentru gazde care se potrivesc cu unul dintre modelele date după cuvântul cheie.
MeciDeclarațiile restricționate se aplică numai gazdelor care corespund criteriilor specificate
AdresaFamilieSpecifică familia de adrese de utilizat la conectare, argumentele valide sunt: ​​oricare, inet, inet6.
BatchModeCu această valoare, interogarea parolei va fi dezactivată, evitându-se astfel blocarea accidentală a unei cereri de parolă
BindAddressSpecifică utilizarea adresei specificate pe mașina locală ca adresă sursă de conexiune.
ChallengeResponseAuthenticationIndică dacă se folosește autentificarea provocare-răspuns. Aceasta este în primul rând o metodă veche și a fost înlocuită de KbdInteractiveAuthentication
CheckHostIPSpuneți ssh să verifice suplimentar adresa IP a gazdei în fișierul known_hosts.
CifruSe referă la criptarea care va fi utilizată pentru a cripta sesiunea în versiunea 1 a protocolului.
CifrăriSpecifică cifrele permise pentru versiunea 2 a protocolului în ordinea preferințelor.

În continuare, vom vedea câteva sfaturi practice pentru a îmbunătăți securitatea conexiunilor SSH la Linux și, astfel, pentru a obține cele mai bune performanțe de acces.

2. Cum se blochează fișierele SSH Linux


Primul pas înainte de a edita fișierul este să vă asigurați că atât fișierul ssh_config, cât și fișierul sshd_config au proprietarul și utilizatorul configurate ca root, deoarece acesta este super-utilizatorul Linux și nimeni mai bun decât acesta nu este proprietarul.

Pentru aceasta executăm următoarele:

 rădăcină sudo chown: root / etc / ssh / sshd_config sudo chmod og-rwx / etc / ssh / sshd_config

3. Cum se confirmă protocolul SSH versiunea 2 Linux


Versiunea 2 a SSH are un algoritm de schimb de chei îmbunătățit care nu este vulnerabil la gaura de securitate din versiunea 1, îmbunătățind astfel securitatea generală a conexiunilor, deci este ideal să confirmați că noul Protocol 2 este utilizat în loc de Protocolul 1 și pentru aceasta trebuie să confirmăm următoarea linie din fișierul ssh_config:
 Protocolul 2

MARI

Acolo putem configura protocolul implicit și prin intermediul cifrelor, care vor seta automat Protocolul la 2 pentru a utiliza cifrele moderne, pentru aceasta validăm următoarea linie chiar sub linia Protocolului:

 Cifre aes128-ctr, aes192-ctr, aes256-ctr

4. Cum se dezactivează parolele goale SSH Linux


Este important să validați că fiecare cont SSH trebuie să utilizeze o parolă la conectare, blocând parolele goale care ar permite accesul simplu provocând riscuri de securitate în sistem, pentru a valida acest lucru vom folosi următoarea linie sau, dacă nu există, vom îl va adăuga plasând simbolul #:
 PermitEmptyPasswords nr

MARI

5. Cum se dezactivează autentificarea root SSH Linux


Prin împiedicarea conectării utilizatorului root, va fi posibil să blocați anumite conturi și să le interziceți utilizarea în întregul sistem, opțiunile pentru PermitRootLogin includ „da”, „fără parolă”, „numai comenzi forțate” sau „nu”. Valoarea implicită este „da”. Pentru a opri complet autentificarea root vom folosi următoarea linie:
 PermitRootLogin nr

MARI

6. Cum se setează un nou port Linux SSH


În mod implicit, portul atribuit pentru SSH este 22, astfel încât atacatorii să știe cu certitudine prin ce port vor accesa pentru a-și efectua atacurile, deci o metodă bună de securitate este schimbarea acestui port implicit și indicarea doar a utilizatorilor autorizați. Noul port.

Pentru aceasta, trebuie să localizăm linia Port și să adăugăm următoarea sintaxă:

 Portul XXXXX

MARI

7. Cum se restricționează accesul SSH Linux


În cazul în care accesul la serverul SSH este alcătuit din mai mulți utilizatori, este posibil să se aplice anumite restricții prin crearea de grupuri în care acești utilizatori sunt incluși, acest lucru este posibil prin adăugarea de cuvinte cheie precum:
 AllowUsers (Permiteți accesul utilizatorului) AllowGroups (Permiteți accesul la grup) DenyUsers (Limitați accesul utilizatorilor)
De exemplu, putem rula următoarele în fișierul de configurare:
 AllowUsers Testele solvetice Testul DenyGroups

8. Cum se actualizează timpul de grație SSH Linux


În mod implicit, timpul în care un utilizator poate rămâne inactiv fără să se conecteze este de două minute, pentru a preveni conexiunile neautorizate la sistem, acest timp poate fi editat în linia LoginGraceTime crescând sau scăzând această vreme:
 LoginGraceTime 1m

MARI

9. Cum se creează un alias SSH Linux


În cadrul configurațiilor SSH este posibilă specificarea unui alias, acestea permit conectarea la un anumit server printr-un port și utilizatori definiți, de exemplu, putem adăuga următoarele:
 Gazdă dev HostName dev.solvetic.com Port 3333 User Solvetic
În acest caz specific, trebuie să accesăm după cum urmează:
 ssh [email protected] -p 3333

10. Autentificare cu chei securizate SSH Linux


ssh va fi mult mai sigur și util atunci când este utilizat cu perechi de chei publice / private în scopuri de autentificare, mai degrabă decât utilizarea parolelor. Fișierul ssh_config poate declara o cheie specifică pentru o anumită gazdă folosind cheia IdentityFile, în acest caz am introduce următoarele:
 Gazdă Dev HostName dev.solvetic.com Port 3333 User Solvetic IdentityFile ~ / .ssh / dev.solvetic.key
Pentru acest caz, conexiunea ar fi următoarea:
 ssh -i ~ / .ssh / dev.solvetic.key [email protected] -p 3333
Unii parametri suplimentari sunt:

ComprimareAcolo putem folosi valori precum da sau nu pentru a activa dezactivarea compresiei pentru o gazdă.
LogLevelPermite definirea nivelului de detaliu în jurnalele pentru clientul ssh, opțiunile sunt LINSE, FATALE, EROARE, INFO, VERBOS, DEBUG1, DEBUG2 și DEBUG3.
StrictHostKeyCheckingSetați o preferință pentru adăugarea gazdelor în fișierul known_hosts.

Astfel, avem diferite opțiuni pentru a îmbunătăți securitatea și conectivitatea SSH în Linux.

wave wave wave wave wave