Administrare server open source

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

Comentariile sunt închise pentru Cum verificam suportul pentru tcpwrappers?

Intr-un articol precedent referitor la restrictionarea accesului la serverul ssh am facut o mica introducere in tcpwrappers, un sistem ACL care ne poate fi de folos cand situatia nu ne permite setarea unor reguli stricte in firewall. tcpwrappers e un sistem de control al accesului care poate fi implementat in orice aplicatie, nu doar in serverul ssh, folosind libraria libwrap.

Exista situatii in care documentatia unei aplicatii lipseste sau este vag explicata. In astfel de cazuri e bine sa stim metode ocolitoare pentru a verifica daca aplicatia in cauza are suport tcpwrappers sau nu. Pentru verificarea suportului pentru tcpwrappers se poate aplica una din cele doua metode prezentate mai jos.

Prima metoda este folosirea comenzii ldd cu ajutorul careia verificam modulele dinamice de care aplicatia are nevoie. Spre deosebire de alte aplicatii care verifica librariile dinamice incarcate de aplicatia studiata, ldd are avantajul ca afiseaza si dependentele indirecte aparute ca urmare a utilizarii unor librarii folosite. Vom folosi ldd pentru a verifica daca aplicatia in cauza foloseste libraria libwrap sau nu. Daca o foloseste, inseamna ca avem suport pentru tcpwrappers inclus in aplicatie. Pentru exemplificare vom folosi fisierul /usr/sbin/sshd, daemonul serverului ssh.

[root@server ~]# /usr/bin/ldd /usr/sbin/sshd | grep libwrap
        libwrap.so.5 => /usr/lib/libwrap.so.5 (0x809cb000)
[root@server ~]#

Dupa cum se poate observa, in rezultatul returnat s-a gasit o linie care ne spune ca binarul studiat incarca libraria libwrap.

Exista situatii aparte in care suportul pentru tcpwrappers este implementat printr-o librarie proprie, fara a folosi libraria libwrap. In astfel de cazuri ldd ne poate induce in eroare, motiv pentru care putem folosi o a doua metoda de verificare si anume utilizarea comenzii strings. Comanda strings ne returneaza toate sirurile printabile mai lungi de patru caractere care sunt salvate in binarul studiat. Pornind de la premisa ca in cadrul binarului trebuie sa existe un text sugestiv daca exista suport pentru tcpwrappers, vom folosi comanda strings pentru a cauta in cadrul sirurilor de caractere printabile numele fisierelor folosite. Pentru exemplificare vom folosi binarul /usr/sbin/amd.

[root@server ~]# /usr/bin/strings /usr/sbin/amd | awk '/host.allow|hosts.deny/{print $1}'
        /etc/hosts.deny
[root@server ~]#

E posibil sa existe si alte metode pentru a determina implementarea tcpwrappers intr-o aplicatie, dar aceste doua metode sunt convins ca acopera majoritatea situatiilor.

Linux

Comments are closed.