Sockstat este un utilitar de linie de comandă care vine cu FreeBSD. Vede o utilizare imensă în examinarea conexiunilor de rețea și a prizelor deschise. În FreeBSD, listează numele și starea proceselor de fundal și prim-plan care au determinat deblocarea unui port de rețea. Puteți chiar să îl personalizați pentru a aranja listele de socket-uri de comunicare privind starea conexiunii, versiunile IP, ce porturi ascultă anumite programe etc., și simplificați rezultatele pe baza proprietății socket-ului și a descriptorilor pentru socket-urile de comunicare. Cu Sockstat, puteți vedea, de asemenea, toate detaliile complicate de pe fiecare socket / IPC de domeniu Unix. O mișcare potrivită ar fi integrarea sockstat cu filtrul grep pentru a-și tripla funcționalitatea și a profita la maximum de el.
Să ne uităm la câteva dintre lucrurile îngrijite pe care le putem trage cu Sockstat pe FreeBSD.
Enumerați porturile de lucru pe FreeBSD cu Sockstat
Comanda Sockstat listează toate soclurile care sunt deschise în prezent într-un sistem FreeBSD. Tastați comanda sockstat neaplicată cu oricare dintre steaguri sau opțiuni pentru a vedea lista de socketuri deschise:
$ sockstat
Să luăm un moment și să analizăm ce înseamnă fiecare dintre etichetele coloanei din ieșire. Prima coloană din stânga este etichetată cu UTILIZATORI și listează toate conturile de utilizator (rădăcini, mysql) cărora le aparține fiecare socket. Al doilea antet de coloană este COMMAND, iar acest antet de coloană listează toate comenzile care stabiliseră fiecare socket să se deschidă. Coloana PID și coloanele FD listează ID-urile procesului și respectiv descriptorii de fișiere ai soclurilor. Coloana PROTO afișează toate tipurile de socketuri de protocoale de transport legate de fiecare port deschis. Ultimele două coloane sunt Adresa locală și Adresa străină. Prima dintre aceste două listează adresa IP locală pentru fiecare socket deschis. În timp ce acesta din urmă indică ce adrese IP sunt legate de fiecare dintre aceste sockets.
Enumerați versiuni specifice de porturi deschise în FreeBSD
Pentru a lista socket-urile deschise numai cu o versiune specifică a protocolului, de exemplu, versiunea Ipv4, adăugați un semn -4 la sfârșitul comenzii sockstat:
$ sockstat -4
Puteți, de asemenea, să prezinte o listă cu alte versiuni în mod similar, de exemplu
$ sockstat -6
Ar trebui să afișeze toate soclurile cu IPv6.
Listează soclurile deschise pe baza TCP / UDP în FreeBSD
Adăugați semnalul -P la comanda sockstat pentru ca lista socketurilor deschise să fie prezentată pe baza TCP sau UDP. De asemenea, va trebui să adăugați numele argumentului protocolului la comandă, pe care îl puteți căuta trecând la fișierul / etc / protocols și verificând fișierul acolo. Pentru a avea numai socket-uri bazate pe TCP, tastați următoarea comandă:
$ sockstat -P tcpÎn mod similar, puteți selecta pe baza UDP:
$ sockstat -P udpAceste două pot fi legate între ele foarte simplu:
$ sockstat -P tcp, udp
Deocamdată, sockstat nu își extinde suportul la protocolul ICMP.
Afișați prize cu numere de port specifice
Pentru a vedea toate soclurile deschise, atât TCP, cât și UDP, în timp ce lista este aranjată pe baza numerelor de port (atât locale, cât și de altă natură), tastați comanda sockstat cu semnalizările corespunzătoare:
$ sockstat -P tcp -p 443$ sockstat -P udp -p 53
$ sockstat -P tcp -p 443,53,80,21
În comenzile de mai sus, prima arată portul TCP HTTPS, a doua porturile UDP DNS, în timp ce a treia arată ambele.
Vedeți porturile deschise care sunt ascultate pe FreeBSD
Cu steagul -l adăugat la comanda sockstat, veți fi prezentat socket deschis care ascultă în prezent prin suita de protocol și toate socketurile de domeniu UNIX deschise, precum și orice conducte numite.
$ sockstat -lEnumerați porturile care ascultă activ în rețea
Adăugați semnalizatoarele -l și -s la comanda sockstat pentru a avea porturile TCP deschise aranjate în funcție de starea lor de ascultare.
$ sockstat -46 -l -s
UDP nu poate fi afișat fiind un protocol care nu este de rețea, astfel nu păstrează date despre starea ascultării.
Aranjați porturile deschise de către aplicație / comandă folosindu-le
Aici vine partea în care împerecherea comenzii Sockstat cu utilitarul grep este utilă; cu utilitarul grep, puteți avea porturile deschise listate de aplicațiile aflate în prezent în proces de utilizare a acestora.
Comanda pe care ați folosi-o pentru a lista porturile deschise legate în special de serverul ntpd este:
$ sockstat -46 | grep ntpd
Puteți face listarea mai specifică dacă afișați soclurile conectate doar adăugând steagul -c la comanda de mai sus:
$ sockstat -46 -c | grep ntpd
Afișați toate soclurile Unix
Afișați toate socket-urile de domeniu Unix adăugând un flag u la comanda sockstat:
$ sockstat -u
Aceasta ar trebui, de asemenea, să afișeze conductele numite împreună cu soclurile Unix.
Aranjați porturile deschise prin protocoale conectate HTTPS
Pentru a afișa lista protocolului HTTPS pentru fiecare soclu, utilizați comanda de mai jos:
$ sockstat -46 -s -P TCP -p 443 -c
Listează socket-urile la distanță HTTP
De asemenea, puteți lista toate prizele de la distanță folosind în prezent protocolul HTTP. Rulați una dintre următoarele comenzi în terminal:
$ sockstat -46 -c | egrep '80 | 443 '| awk „print $ 7” | uniq -c | sort -nr$ sockstat -46 -c -p 80.443 | grep -v ADRESA | awk 'print $ 7' | |
uniq -c | sort -nr
Găsiți de câte ori a solicitat o adresă IP
Pentru a afla câte solicitări de conexiune au fost primite de la fiecare adresă IP, puteți rula următoarea comandă:
$ sockstat -46 -c | egrep '80 | 443 '| awk „print $ 7” | tăiat -d: -f1 | uniq -c | sortează -n
Determinând dacă există un număr neobișnuit de mare de solicitări de conexiune trimise de o adresă IP, puteți identifica că există o anumită intenție rău intenționată și că puteți introduce pozitiv alerta galbenă și puteți lua protocoalele de siguranță corespunzătoare.
Trimiteți o interogare DNS din socket TCP
Puteți trimite o interogare DNS utilizând soclul TCP de pe consolă, cu condiția ca rețeaua să fie liberă de orice trafic DNS. Rulați comanda de mai jos:
$ dig + tcp www.domeniu.com @ 127.0.0.1Înfășurându-se
Deci, ați învățat multe despre utilizarea comenzii sockstat și a variantelor sale cu steaguri și comutatoare. De asemenea, ați văzut cum se folosește în diferite moduri pentru a prezenta diagnosticarea rețelei în diferite preferințe și pentru a utiliza aceste informații pentru a efectua depanarea multifacetică în FreeBSD. Aceasta este o mulțime în sine, dar acum că sunteți familiarizat cu aceste lucruri, ar trebui să luați în considerare încorporarea liniei de comandă sockstat cu câteva instrumente puternice din linia de comandă, cum ar fi netstat și Isof.