Sockstat je všestranný nástroj příkazového řádku, který je součástí FreeBSD. Vidí obrovské využití při zkoumání síťových připojení a otevřených soketů. Ve FreeBSD obsahuje seznam jmen a stavu procesů na pozadí a v popředí, které způsobily odemčení síťového portu. Můžete jej dokonce přizpůsobit tak, aby uspořádal seznamy komunikačních soketů na stav připojení, verze IP, jaké porty jsou poslouchány konkrétními programy atd., a zjednodušit výsledky na základě vlastnictví soketu a deskriptorů komunikačních soketů. Pomocí Sockstatu můžete také zobrazit všechny složité podrobnosti o každé doménové zásuvce Unix / IPC. Výstižným krokem by byla integrace sockstatu s filtrem grep, aby se ztrojnásobila jeho funkčnost a bylo z ní vytěženo maximum.
Podívejme se na některé z úhledných věcí, které můžeme na SoBSstatu na FreeBSD vytáhnout.
Seznam funkčních portů na FreeBSD se Sockstatem
Příkaz Sockstat uvádí seznam všech soketů, které jsou aktuálně otevřeny v systému FreeBSD. Chcete-li zobrazit seznam otevřených soketů, zadejte příkaz sockstat bez použití jakéhokoli z příznaků nebo možností:
$ sockstat
Udělejme si chvilku a projdeme si, co znamená každý popisek sloupce ve výstupu. První sloupec zleva je označen jako UŽIVATELÉ a obsahuje seznam všech uživatelských účtů (root, mysql), ke kterým každá zásuvka patří. Záhlaví druhého sloupce je COMMAND a v tomto záhlaví sloupce jsou uvedeny všechny příkazy, které nastavily otevírání jednotlivých soketů. Sloupec PID a sloupce FD uvádějí ID procesu a deskriptory souborů soketů. Sloupec PROTO zobrazuje všechny transportní protokoly typů soketů spojené s každým otevřeným portem. Poslední dva sloupce jsou Místní adresa a Zahraniční adresa. První z těchto dvou uvádí místní IP adresu každé otevřené zásuvky. Zatímco druhá označuje, jaké adresy IP jsou propojeny s každou z těchto zásuvek.
Seznam konkrétních verzí otevřených portů ve FreeBSD
Chcete-li zobrazit seznam otevřených soketů pouze s konkrétní verzí protokolu, například s verzí Ipv4, přidejte na konec příkazu sockstat příznak -4:
$ sockstat -4
Můžete také nechat například zobrazit seznam dalších verzí
$ sockstat -6
Měly by se zobrazit všechny zásuvky s IPv6.
Seznam otevřených soketů na základě TCP / UDP ve FreeBSD
Přidejte příznak -P do příkazu sockstat, aby byl seznam otevřených soketů zobrazen na základě TCP nebo UDP. Do příkazu budete také muset přidat název argumentu protokolu, který můžete vyhledat tak, že přejdete do souboru / etc / protocols a zkontrolujete soubor tam. Chcete-li mít pouze sokety založené na protokolu TCP, zadejte následující příkaz:
$ sockstat -P tcpPodobně můžete vybrat užší seznam na základě UDP:
$ sockstat -P udpTyto dva lze spojit velmi jednoduše:
$ sockstat -P tcp, udp
Sockstat dosud nerozšiřuje svou podporu na protokol ICMP.
Zobrazit zásuvky se specifickými čísly portů
Chcete-li zobrazit všechny otevřené zásuvky, TCP i UDP, zatímco máte seznam uspořádaný na základě čísel portů (místních i jiných), zadejte příkaz sockstat s příslušnými příznaky:
$ sockstat -P tcp -p 443$ sockstat -P udp -p 53
$ sockstat -P tcp -p 443,53,80,21
Ve výše uvedených příkazech ukazuje první port TCP HTTPS, druhý porty UDP DNS, zatímco třetí zobrazuje oba.
Podívejte se na otevřené porty, které jsou poslouchány na FreeBSD
S příznakem -l přidaným do příkazu sockstat se vám zobrazí otevřený soket, který právě poslouchá prostřednictvím sady protokolů a všech otevřených soketů domény UNIX, stejně jako všechny pojmenované kanály.
$ sockstat -lSeznam portů aktivně naslouchajících v síti
Přidejte do příkazu sockstat příznaky -l a -s, aby byly otevřené porty TCP uspořádány podle jejich stavu naslouchání.
$ sockstat -46 -l -s
Nelze zobrazit UDP jako nesíťový protokol, takže si nezachováte žádná data o stavu naslouchání.
Uspořádejte otevřené porty pomocí aplikace / příkazu pomocí nich
Přichází část, kde se hodí párování příkazu Sockstat s nástrojem grep; s nástrojem grep můžete mít otevřené porty uvedeny podle aplikací, které jsou právě v procesu jejich používání.
Příkaz, který byste použili k vypsání otevřených portů spojených zejména se serverem ntpd, je:
$ sockstat -46 | grep ntpd
Výpis můžete zpřesnit tak, že zobrazíte pouze připojené zásuvky přidáním příznaku -c do výše uvedeného příkazu:
$ sockstat -46 -c | grep ntpd
Zobrazit všechny Unixové zásuvky
Přidáním příznaku u do příkazu sockstat můžete mít uvedeny všechny zásuvky domény Unix:
$ sockstat -u
To by mělo také zobrazit pojmenované kanály spolu se sokety Unix.
Uspořádejte otevřené porty pomocí HTTPS připojených protokolů
Chcete-li mít seznam zobrazený protokolem HTTPS pro každý soket, použijte následující příkaz:
$ sockstat -46 -s -P TCP -p 443 -c
Seznam vzdálených soketů HTTP
Můžete také zobrazit seznam všech vzdálených soketů, které aktuálně používají protokol HTTP. Spusťte jeden z následujících příkazů v terminálu:
$ sockstat -46 -c | egrep '80 | 443 '| awk 'print $ 7' | uniq -c | třídit -nr$ sockstat -46 -c -p 80 443 | grep -v ADRESA | awk 'tisk 7 $' |
uniq -c | třídit -nr
Zjistěte, kolikrát zaslala žádost IP adresa
Chcete-li zjistit, kolik požadavků na připojení bylo přijato z každé adresy IP, můžete spustit následující příkaz:
$ sockstat -46 -c | egrep '80 | 443 '| awk 'print $ 7' | cut -d: -f1 | uniq -c | třídit -n
Určením, zda existuje neobvykle vysoký počet požadavků na připojení odeslaných pomocí IP adresy, můžete zjistit, že existuje nějaký zákeřný záměr, a můžete pozitivně zadat žluté varování a přijmout příslušné bezpečnostní protokoly.
Odešlete dotaz DNS ze soketu TCP
Můžete odeslat dotaz DNS pomocí soketu TCP na konzole, za předpokladu, že v síti není žádný přenos DNS. Spusťte příkaz níže:
$ dig + tcp www.doména.com @ 127.0.0.1Balení
Dozvěděli jste se tedy hodně o používání příkazu sockstat a jeho variací s příznaky a přepínači. Také jste viděli, jak se používá různými způsoby k prezentaci diagnostiky sítě v různých předvolbách a pomocí těchto informací k provádění mnohostranného řešení potíží ve FreeBSD. To je samo o sobě spousta věcí, ale teď, když jste s těmito věcmi obeznámeni, měli byste zvážit začlenění příkazového řádku sockstat do několika výkonných nástrojů příkazového řádku, jako jsou netstat a Isof.