Chtěl bych shromažďovat protokoly veškeré síťové komunikace mezi mými domácími zařízeními (notebooky, telefony atd.) a vnějším světem v tomto formátu:
Timestamp / Device MAC Address / Source IP:Port / Destination IP:Port / Protocol (Internet/Transport Layers) / Amount of data in bytes
Cílem je nastavit fyzický linuxový box („Logging Server“) pouze pro protokolování a spustit tcpdump
na to:
Internet ⟺ Logging Server ⟺ Wi-Fi/Ethernet Switch ⟺ Devices
(box bude mít dvě ethernetová rozhraní — pro připojení k internetu a pro místní přepínač).
Za předpokladu, že se postarám o zpracování souborů protokolu (rotace, analýza, podávání do nástrojů pro vytváření zpráv), jak tcpdump
příkaz bude vypadat?
Aby bylo jasno, vím, že na tuto otázku lze s největší pravděpodobností odpovědět prostudováním manuálové stránky; Jen bych rád využil něčí rozsáhlé zkušenosti s tcpdump
ušetřit čas, vyhnout se běžným chybám atd.
P. S. Hlavním účelem je monitorovat/vyšetřovat potenciálně existující zadní vrátka nebo jinak nechtěnou/neočekávanou síťovou aktivitu.
Přijatá odpověď:
tcpdump -n -e -q -i any
S:
-n
:Nepřevádějte adresy na jména (to zabrání zejménatcpdump
z provádění zpětného vyhledávání DNS)-e
:Vytiskne záhlaví na úrovni odkazu na každý řádek výpisu (zejména mac adresu). Použijte toto v koordinaci s-i any
, budete to potřebovat k opětovnému určení příchozího/odchozího síťového rozhraní.-q
:Tiskne méně informací o protokolu, takže výstupní řádky jsou kratší-i any
:any
klíčové slovo lze použít k zachycení paketů ze všech rozhraní
Všimněte si, že délka daná výše uvedeným příkazem je délkou užitečného zatížení. Pokud chcete také délku paketu, odstraňte možnost „-q“.