» Utilizator
Salut, vizitatorule!

SkullBox este o comunitate formata din programatori si administratori de sisteme sau retele care iti sta la dispozitie cand ai o problema legata de calculatoare. Daca esti un utilizator existent, autentifica-te.

Daca nu te-ai inregistrat inca pe forum, alatura-te noua astfel marind comunitatea si ajutandu-i pe cei care au nevoie de informatii.

Daca te-ai inregistrat dar inca nu ai primit codul de activare, il poti cere aici.




Autentifica-te cu numele de utilizator si parola pentru a putea posta pe forum sau pentru a accesa ariile disponibile doar utilizatorilor inregistrati.
» Promovam
» Parteneri » Statistici
  • 59707 de mesaje.
  • 7145 de topicuri.
  • 1013 de utilizatori.
  •  
  • BautistaOliveira e ultimul utilizator inregistrat.
[Detalii]

 
Pagini: [1]
Print
Securizarea serverului ssh [1035 afisari]
Agkelos
*


Mesaje: 6706
OfflineOffline

WWW

SSH, Secure SHell, e sistemul cel mai des intalnit pentru conectarea la distanta. Orice sistem folosit e implicit atacat, asa ca e bine sa stim care sunt principalele moduri in care se poate proteja acest serviciu. Pentru a face mai util articolul voi prezenta sfaturile punctual.

1. Schimbarea portului SSH
Portul implicit pentru ascultarea de conexiuni este 22. Oricine vrea sa atace sistemul verifica daca portul 22 este deschis. O idee buna ar fi modificarea portului cu un altul care nu e folosit pe server, de preferat un port care poate deruta atacatorul. De exemplu, daca nu se foloseste un server POP3 pe masina in cauza se poate schimba portul SSH in 110. Majoritatea atacatorilor vor trece cu usurinta cu vederea peste portul 110 avand in vedere ca nu (mai) prezinta interes decat in cazuri izolate. Pentru modificarea portului se deschide fisierul de configurare ( /etc/ssh/sshd_config ) si se cauta linia:

Code:
Port 22
Modificati 22 cu 110 sau orice alt port liber si restartati serverul. E important sa verificati configuratia firewall-ului inainte de a modifica portul pentru ca nu pune din neatentie un port care este blocat din firewall si astfel blocandu-va in afara serverului fara ca acesta sa mai poata fi accesat remote.

2. Schimbarea protocolului
Serverul ssh poate comunica folosind protocoalele SSHv1 si SSHv2. SSHv1 este protocolul vechi, vulnerabil, si e recomandat sa nu mai fie folosit pe nici un sistem aflat intr-un mediu care necesita securitate. In schimb serverul ssh poate fi obligat sa foloseasca doar SSHv2 astfel scazand riscul ca serverul sa fie accesat de un atacator care stie cum sa exploateze vulnerabilitatile SSHv1. Pentru a configura serverul ssh sa foloseasca doar protocolul SSHv2 trebuie sa cautam in fisierul de configurare ( /etc/ssh/sshd_config ) linia urmatoare:

Code:
Protocol 2,1
Tot ce trebuie sa facem e sa stergem ,1 si sa lasam doar 2. Bineinteles, serverul ssh trebuie restartat pentru ca modificarea sa aiba efect.

3. Schimbarea adresei
In mod implicit serverul SSH asculta conexiuni pe orice adresa IP disponibila in sistem. E o optiune comoda, dar nu foarte sigura. Daca serverul dispune de mai multe adrese IP e bine ca serverul sa nu asculte conexiuni pe adresa IP principala, adresa care e atacata in majoritatea cazurilor. In schimb e de preferat ca serverul sa asculte conexini pe ultima adresa din cele alocate serverului. Pentru asta se cauta linia ListenAddress in care se adauga DOAR adresa IP pe care se doreste ascultarea de conexiuni. De exemplu, daca dorim ca serverul ssh sa asculte conexiuni doar pe adresa 1.2.3.4 vom modifica fisierul de configurare ( /etc/ssh/sshd_config ) in felul urmator:

Code:
ListenAddress 1.2.3.4
Din nou va trebui sa verificam firewallul ca nu cumva sa fie blocat accesul pe portul SSH pe IP-ul in cauza. Daca e totul in regula se restarteaza serverul ssh si se verifica daca totul functioneaza corect.

4. Blocarea accesului ca root
Scopul unui hacker este de a avea acces ca superuser pe sistem ceea ce in majoritatea cazurilor presupune cunoasterea parolei utilizatorului root. Pentru o mai buna securitate e bine sa nu permitem logarea pe ssh ca root. Daca avem nevoie de acces ca superuser pe sistem ne putem loga ca simplu utilizator iar apoi folosind comanda su ne putem schimba in root. Blocarea accesului ca root se face modificand din nou fisierul de configurare ( /etc/ssh/sshd_config ) si schimband linia:

Code:
PermitRootLogin yes
In loc de yes punem no si restartam serverul ssh. Acum utilizatorul root nu se mai poate loga direct pe sistem si pentru orice modificare importanta trebuie sa ne logam ca simplu utilizator iar apoi sa devenim root folosind comanda su. Trebuie sa fim atenti cand facem aceasta modificare sa avem cel putin un utilizator care are dreptul sa foloseasca comanda su. Asta presupune ca utilizatorul respectiv sa fie in grupul wheel.

5. Restrictionarea accesului la ssh pentru un grup restrans de utilizatori
Daca serverul are un numar mare de utilizatori din care doar o parte trebuie sa aiba acces ssh se poate folosi directiva AllowUsers care permite mentionarea utilizatorilor cu acces ssh. De exemplu, daca vom oferi acces ssh doar pentru utilizatorii administrator, tester si developer trebuie sa editam fisierul de configurare ( /etc/ssh/sshd_config ) si sa adaugam o linie de forma:

Code:
AllowUsers administrator tester developer
6. Folosirea autentificarii bazata pe perechi de chei publice/private
SSH permite autentificarea bazata pe o pereche de chei: o cheie publica si una privata. Trecand peste avantajele aduse de posibilitatea de automatizare oferite de aceasta metoda exista un avantaj mare si anume se poate dezactiva optional autentificarea bazata pe parola daca e activa autentificarea bazata pe chei. Acesta e un avantaj foarte mare deoarece serverul ssh va fi practic imun la atacurile brute-force sau atacurile bazate pe dictionare. Pentru ca acest sistem sa functioneze trebuie sa editam fisierul de configurare ( /etc/ssh/sshd_config ) si sa adaugam/editam urmatoarele linii:

Code:
   RSAAuthentication yes
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
Astfel autentificarea bazata pe chei va fi activa iar cheile cautate vor fi lute din directorul ~/.ssh/authorized_keys a utilizatorului care se conecteaza. Dupa aceasta modificare restartam serverul ssh pentru a verifica daca e totul in regula. Daca totul functioneaza corect si autentificarea bazata pe chei publice/private functioneaza corect putem bloca autentificarea bazata pe parola adaugand in fisierul de configurare urmatoarea linie:

Code:
PasswordAuthentication no
Acum accesul la server se poate face doar pe baza de chei. Chiar daca atacatorul cunoaste parola utilizatorului cu acces la ssh dar nu are cheia privata nu va putea face nimic pentru a se loga.

7. Restrictionarea accesului ssh de la o anumita adresa
Folosindu-ne de tcpwrappers putem restrictiona accesul la ssh doar de la anumite adrese IP sau putem bloca accesul ssh de la anumite adrese.
In Linux se foloseste sistemul vechi de configurare tcpwrappers, bazat pe doua fisiere: hosts.allow si hosts.deny. Unui numar restrans de adrese IP (ex. 192.168.0.1 si 192.168.0.2) modificam fisierul /etc/hosts.allow si adaugam cele doua adrese de forma:

Code:
   sshd: 192.168.0.1
    sshd: 192.168.0.2
Dupa asta modificam fisierul /etc/hosts.deny in care blocam accesul ssh pentru oricine altcineva:

Code:
   sshd: ALL
Daca se foloseste FreeBSD treburile sunt putin diferite pentru ca acesta foloseste sistemul nou de configurare tcpwrappers in care toate regulile se pastreaza in acelasi fisier: hosts.allow. Daca dorim accesul doar pentru adresele de mai sus editam fisierul /etc/hosts.allow si adaugam urmatoarele 3 linii:

Code:
   sshd:192.168.0.1:allow
    sshd:192.168.0.2:allow
    sshd:ALL:deny
Astfel se va permite accesul pentru cele doua IP-uri iar pentru orice alt IP care incearca sa se conecteze la server accesul va fi blocat.

Articol original: Securizarea serverului SSH
Logged

SkullBox Blogger | LAMP Blogger | Web aggregator

De nu va zice omul intru inima sa "Eu singur si Dumnezeu suntem in lume" nu va avea odihna. - Avva Alonie
18-06-2008, 13:53 Twitt ::
miezoo



Mesaje:

Cum vad daca am un port ssh deschis in linia de comanda pe linux ?
Logged
22-03-2009, 13:27 Twitt ::
astan
*


Mesaje: 737
OfflineOffline


Folosesti comanda netstat

Uite un exemplu:
Code:
%> netstat -a --numeric-ports

Pentru mai mult informatii despre comanda netstat, executi:
Code:
man netstat
Logged
22-03-2009, 19:07 Twitt ::
Gheorghe
*


Mesaje: 253
OfflineOffline

WWW

Cum vad daca am un port ssh deschis in linia de comanda pe linux ?

Comand care o folosesc pentru netstat(pe linux) la mine arata asa:
Code:
[root@localhost ~]# netstat -ant

Iar ca rezultat pentru ssh o sa vezi asa:
Code:
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN   
Logged

A. Einstein "Religia fara stiinta e oarba, dar stiinta fara religie e schioapa." Simple BLOG

29-03-2009, 07:20 Twitt ::
kenzzo
*


Mesaje: 66
OfflineOffline


daca ai nmap, poti sa te scanezi singur sa vezi ce porturi ai deschise
Logged

Fax mentis incendium gloriae!
23-05-2009, 22:00 Twitt ::
Agkelos
*


Mesaje: 6706
OfflineOffline

WWW

daca ai nmap, poti sa te scanezi singur sa vezi ce porturi ai deschise
True, dar astepti dupa el pana termina...  (Straight face

E mai simplu cu netstat -anf inet. In mai putin de o secunda vezi tot Smile
Logged

SkullBox Blogger | LAMP Blogger | Web aggregator

De nu va zice omul intru inima sa "Eu singur si Dumnezeu suntem in lume" nu va avea odihna. - Avva Alonie
16-06-2009, 22:59 Twitt ::
Reclama
VIP

Hosting

Mesaje: 25.90
OnlineOnline

WWW
 

   Pe ABCDomenii: 250MB spatiu + 20GB trafic + 5 subdomenii = 0.95 €
 
 

The problem with troubleshooting is that trouble shoots back.
Azi 
Pages: [1]
Print
SkullBox Forum  |  Administrare, configurare si intretinere  |  Securitate  |  Topic: Securizarea serverului ssh
Jump to: