Administrare server open source

Platforma de hosting cu software liber, gratuit, open source.

Comentariile sunt închise pentru Restrictionarea accesului la SSH pe baza de IP

Pentru restrictionarea accesului pe SSH putem folosi tcpwrapper care foloseste doua fisiere de configurare: /etc/hosts.allow si /etc/hosts.deny.

Linux

Cand se face o cerere de conexiune se verifica prima data fisierul /etc/hosts.allow pentru a se verifica daca hostul care initiaza conexiunea este trecut ca avand dreptul de a se conecta. Daca exista o linie care ii da hostului permisiunea de a se conecta, se creaza conexiunea. Daca nu exista nici o linie se verifica fisierul /etc/hosts.deny pentru o regula care sa blocheze accesul – general sau doar al hostului initiator. Daca nici o regula din /etc/hosts.deny nu corespunde se va permite conexiunea. In cazul in care se gaseste o regula care sa blocheze conexiunea, aceasta va fi blocata.

Acest mecanism este util pentru a crea doua politici de conectare diferite: default to accept si default to deny – adica sa fie acceptate toate conexiunile in afara de adresele blocate sau sa nu fie acceptata nici o conexiune decat cele acceptate in mod explicit.

Daca dorim o politica default to accept tot ce trebuie sa facem e sa editam fisierul /etc/hosts.deny si sa trecem hosturile de la care nu dorim conexiuni. Sintaxa fisierelor e simpla:

SERVICIU: adresa

SERVICIU inlocuim cu numele daemonului caruia ne adresam, in cazul nostru sshd, iar adresa se inlocuieste cu adresa pentru care e setata regula. Adresa poate fi o adresa IP sau un hostname. Ambele variante functioneaza corect. Pentru a pune in practica exemplul de mai sus, trebuie sa blocam unele adrese de pe care nu se va permite accesul pe ssh. Pentru asta adaugam in /etc/hosts.deny linii de forma:

sshd: 192.168.0.5
sshd: 192.168.0.7

Dupa ce am salvat fisierul, accesul ssh de pe adresele 192.168.0.5 si 192.168.0.7 va fi blocat. Serviciul si adresa pot avea si valoarea ALL pentru a corespunde oricarei valori care poate fi introdusa.

Daca ne intereseaza o politica default to deny treaba sta putin diferit. Va trebui sa modificam fisierul /etc/hosts.allow si sa adaugam cate o linie pentru fiecare host acceptat iar apoi in /etc/hosts.deny sa blocam accesul. Astfel fisierul /etc/hosts.allow, pentru a permite accesul de pe adresa 192.168.0.2, va avea urmatorul continut:

sshd: 192.168.0.2

Fisierul /etc/hosts.deny, pentru a bloca orice nu e acceptat in fisierul /etc/hosts.allow, va avea urmatorul continut:

sshd: ALL

Cuvantul cheie ALL ne spune ca se va bloca orice cerere de conexiune – cu conditia ca aceasta sa nu aiba deja o regula in fisierul /etc/hosts.allow.

FreeBSD

In FreeBSD treburile stau putin diferit. FreeBSD foloseste sistemul nou de configurare pentru tcpwrapper in care toate regulile sunt trecute in acelasi fisier si anume /etc/hosts.allow. Sintaxa este putin diferita fata de Linux, aparand un nou parametru care ne da regula:

serviciu : adresa : regula

Serviciu, ca in Linux, este inlocuit de numele daemonului sau de cuvantul cheie ALL. Adresa va fi numele hostului care initiaza conexiunea iar regula va avea unul din cuvintele cheie allow (pentru a permite) sau deny (pentru a bloca).

Pentru a reula cele doua exemple de mai sus in cazul unui sistem FreeBSD va trebui sa modificam doar fisierul /etc/hosts.allow. In primul caz, default to accept, va trebui doar sa blocam adresele carora nu dorim sa le permitem accesul:

sshd:192.168.0.5:deny
sshd:192.168.0.7:deny

Cele doua linii de mai sus vor bloca accesul ssh pentru adresele 192.168.0.5 si 192.168.0.7.

Pentru a forma o politica default to deny va trebui sa adaugam prima data adresele de la care se accepta conexiuni iar apoi sa blocam tot accesul pe ssh. Daca dorim sa acceptam doar conexiuni de la 192.168.0.2 iar restul sa le blocam, fisierul /etc/hosts.allow va arata asa:

sshd:192.168.0.2:allow
sshd:ALL:deny

Este bine sa ne obisnuim sa folosim tcpwrapper pentru ca ne ofera un plus de securitate care e intotdeauna binevenit.

Linux

Comments are closed.