Wyszukiwanie w witrynie

15 przydatnych „Przykładów poleceń Sockstat” do wyszukiwania otwartych portów we FreeBSD


Sockstat to wszechstronne narzędzie wiersza poleceń używane do wyświetlania otwartych gniazd sieciowych i systemowych we FreeBSD. Zasadniczo polecenie skarpetki jest instalowane domyślnie we FreeBSD i jest powszechnie używane do wyświetlania nazw procesów, które otworzyły określony port sieciowy w systemie FreeBSD.

Jednak sockstat może również wyświetlić listę otwartych gniazd w oparciu o wersję protokołu (obie wersje IP), stan połączenia oraz porty, do których łączy się demon lub program i nasłuchuje.

Przeczytaj także: 20 przydatnych przykładów poleceń „netstat” do sprawdzania połączeń sieciowych

Może także wyświetlać gniazda komunikacji między procesami, zwykle znane jako gniazda domeny Unix lub IPC. Polecenie Sockstat w połączeniu z filtrem grep lub potokiem za pośrednictwem narzędzia awk okazuje się potężnym narzędziem dla stosu sieci lokalnej.

Może zawęzić wyniki dla otwartego połączenia w oparciu o użytkownika będącego właścicielem gniazda, deskryptor pliku gniazda sieciowego lub PID procesu, który otworzył gniazdo.

W tym przewodniku wymienimy kilka typowych przykładów wykorzystania, ale także bardzo potężnych, narzędzia sieciowego wiersza poleceń Socksstat we FreeBSD.

Wymagania

  1. Przewodnik instalacji FreeBSD 11.1

1. Wyświetl listę wszystkich otwartych portów we FreeBSD

Po prostu wykonane bez żadnych opcji i przełączników, polecenie skarpetki wyświetli wszystkie otwarte gniazda w systemie FreeBSD, jak pokazano na poniższym zrzucie ekranu.

sockstat

Wartości wyświetlane na wyjściu sockstat są opisane jako:

  • USER: właściciel (konto użytkownika) gniazda.
  • COMMAND: Polecenie, które otwiera gniazdo.
  • PID: Identyfikator procesu polecenia będącego właścicielem gniazda.
  • FD: numer deskryptora pliku gniazda.
  • PROTO : Protokół transportowy (zwykle TCP/UDP) powiązany z otwartym gniazdem lub typem gniazda w przypadku gniazd domeny unixowej (datagram, strumień lub seqpac) dla gniazd UNIX.
  • ADRES LOKALNY: reprezentuje lokalny adres IP dla gniazd opartych na protokole IP. W przypadku gniazd uniksowych reprezentuje nazwę pliku punktu końcowego dołączonego do gniazda. „?? Notacja oznacza, że nie można rozpoznać ani ustalić punktu końcowego gniazda.
  • ADRES ZAGRANICZNY: zdalny adres IP, do którego podłączone jest gniazdo.

2. Wyświetl listę nasłuchujących lub otwartych portów we FreeBSD

Wykonane z flagą -l polecenie socksstat wyświetli wszystkie otwarte gniazda nasłuchujące na stosie sieciowym oraz wszystkie otwarte gniazda domeny unixowej lub nazwane potoki zaangażowane w jakiś rodzaj lokalnego przetwarzania danych w systemie.

sockstat -l

3. Wyświetl listę otwartych portów IPv4 we FreeBSD

Aby wyświetlić wszystkie otwarte gniazda tylko dla protokołu IPv4, wydaj polecenie z flagą -4, jak sugeruje poniższy przykład.

sockstat -4

4. Wyświetl listę otwartych portów IPv6 we FreeBSD

Podobnie jak w wersji IPv4, możesz także wyświetlić otwarte gniazda sieciowe tylko dla IPv6, wydając polecenie jak pokazano poniżej.

sockstat -6

5. Wyświetl listę otwartych portów TCP lub UDP we FreeBSD

Aby wyświetlić gniazda sieciowe oparte wyłącznie na określonym protokole sieciowym, takim jak TCP lub UDP, należy użyć flagi -P, po której następuje nazwa argumentu protokołu.

Nazwy protokołów można znaleźć sprawdzając zawartość pliku /etc/protocols. Obecnie protokół ICMP nie jest obsługiwany przez narzędzie Socksstat.

Pokaż tylko gniazda TCP
sockstat -P tcp

Pokaż tylko gniazda UDP
sockstat -P udp

Połącz oba protokoły w łańcuch.

sockstat –P tcp,udp

6. Wyświetl numery portów TCP i UDP

Jeśli chcesz wyświetlić wszystkie otwarte gniazda TCP lub UDP IP, w oparciu o numer portu lokalnego lub zdalnego, użyj poniższych flag poleceń i składni, jak pokazano na poniższym zrzucie ekranu.

sockstat -P tcp -p 443             [Show TCP HTTPS Port]
sockstat -P udp -p 53              [Show UDP DNS Port] 
sockstat -P tcp -p 443,53,80,21    [Show Both TCP and UDP]

7. Wyświetl listę otwartych i podłączonych portów we FreeBSD

Aby wyświetlić wszystkie otwarte i podłączone gniazda należy użyć flagi -c. Jak pokazano w poniższych przykładach, możesz wyświetlić listę wszystkich podłączonych gniazd HTTPS lub wszystkich gniazd podłączonych za pomocą protokołu TCP, wydając polecenia.

sockstat -P tcp -p 443 -c
sockstat -P tcp -c

8. Wyświetl listę portów nasłuchiwania sieci we FreeBSD

Aby wyświetlić listę wszystkich otwartych gniazd TCP w stanie nasłuchiwania, dołącz flagi -l i -s, jak pokazano w poniższym przykładzie. Będąc protokołem bezpołączeniowym, UDP nie przechowuje żadnych informacji o stanie połączenia.

Otwartych gniazd UDP nie można wyświetlić na podstawie ich stanu, ponieważ protokół udp wykorzystuje datagramy do wysyłania/odbierania danych i nie ma wbudowanego mechanizmu określającego stan połączenia.

sockstat -46 -l -s

9. Wyświetl listę gniazd Unixowych i nazwanych potoków

Gniazda domeny Unix, a także inne formy lokalnej komunikacji między procesami, takie jak nazwane potoki, można wyświetlić za pomocą komendy socksstat przy użyciu flagi -u, jak pokazano na poniższym obrazku.

sockstat -u

10. Wyświetl listę portów otwartych przez aplikację we FreeBSD

Dane wyjściowe polecenia Sockstat można filtrować za pomocą narzędzia grep w celu wyświetlenia listy portów otwartych przez określoną aplikację lub polecenie.

Załóżmy, że chcesz wyświetlić listę wszystkich gniazd powiązanych z serwerem internetowym Nginx, możesz wydać następujące polecenie, aby wykonać to zadanie.

sockstat -46 | grep nginx

Aby wyświetlić tylko podłączone gniazda powiązane z serwerem WWW Nginx, wydaj następujące polecenie.

sockstat -46 -c| grep nginx

11. Wyświetl listę połączonych protokołów HTTPS

Możesz wyświetlić listę wszystkich podłączonych gniazd powiązanych z protokołem HTTPS wraz ze stanem każdego połączenia, uruchamiając poniższe polecenie.

sockstat -46 -s -P TCP -p 443 -c

12. Wyświetl listę zdalnych gniazd HTTP

Aby wyświetlić listę wszystkich zdalnych gniazd powiązanych z protokołem HTTP, możesz uruchomić jedną z następujących kombinacji poleceń.

sockstat -46 -c | egrep '80|443' | awk '{print $7}' | uniq -c | sort -nr
sockstat -46 -c -p 80,443 | grep -v ADDRESS|awk '{print $7}' | uniq -c | sort -nr

13. Znajdź najwyższe żądania HTTP według adresów IP

Jeśli chcesz sprawdzić, ile połączeń HTTP żąda każdy zdalny adres IP, wydaj poniższe polecenie. To polecenie może być bardzo przydatne, jeśli chcesz ustalić, czy Twój serwer WWW jest celem jakiegoś ataku DDOS. W przypadku podejrzeń należy sprawdzić adresy IP z największą liczbą żądań.

sockstat -46 -c | egrep '80|443' | awk '{print $7}' | cut -d: -f1 | uniq -c | sort –nr

14. Wyświetl listę otwartych gniazd DNS

Jeśli skonfigurowałeś w swojej firmie serwer DNS buforujący i przekazujący dalej do obsługi klientów wewnętrznych za pośrednictwem protokołu transportowego TCP i chcesz wyświetlić listę wszystkich gniazd
otwierane przez resolwer, wraz ze stanem każdego połączenia z gniazdem, wykonaj następujące polecenie.

sockstat -46 -P tcp –p 53 -s

15. Zapytaj DNS protokołu TCP w domenie lokalnej

Jeśli w sieci nie ma ruchu DNS, możesz ręcznie uruchomić zapytanie DNS w gnieździe TCP z konsoli komputera lokalnego, uruchamiając następujące polecenie dig. Następnie wydaj powyższe polecenie, aby wyświetlić listę wszystkich gniazd modułu rozpoznawania nazw.

dig +tcp  www.domain.com  @127.0.0.1

To wszystko! Wraz z narzędziami wiersza poleceń netstat i lsof, wiersz poleceń skarpetki jest potężnym narzędziem używanym do uzyskiwania informacji o sieci i rozwiązywania problemów z wieloma aspektami stosu sieciowego FreeBSD oraz procesów i usług związanych z siecią.

Odpowiednik polecenia skarpetki FreeBSD w systemie Linux jest reprezentowany przez polecenie netstat lub nowe polecenie ss. Wierzcie lub nie, ale bazując na narzędziu SockStat, można znaleźć podobną aplikację opracowaną dla systemu operacyjnego Android o nazwie SockStat – Simple Netstat GUI.