upravit :I po letech pro to stále dostávám kladné hlasy. Prosím, nepoužívejte tuto odpověď, odpověď pomocí iptables
zde je podle mého názoru mnohem lepší.
tcpdump port 443 and '(tcp-syn|tcp-ack)!=0'
nebo pouze tcp-syn
, nebo pouze tcp-ack
(Můj odhad by to byl ten), v závislosti na tom, co potřebujete.
Můžete k tomu použít podporu iptables v jádře Linuxu. Výhodou je, že nevyžaduje žádný další software, aby byl středně užitečný. Nevýhodou je, že nastavení vyžaduje oprávnění root (ale vzhledem k tomu, že mluvíte o portu 443, což je privilegovaný port, pravděpodobně budete u většiny řešení potřebovat oprávnění root).
Přidejte pravidlo iptables s něčím jako:
sudo iptables -I INPUT -p tcp --dport 443 --syn -j LOG --log-prefix "HTTPS SYN: "
(Upravte -I INPUT
část podle vašeho vkusu.)
Když je pravidlo spuštěno, jádro vygeneruje záznam syslog. Například se vstupním pravidlem může záznam protokolu vypadat nějak takto:
5. prosince 09:10:56 název hostitele jádro:[1023963.185332] HTTPS SYN:IN=ifX OUT=MAC=80:80:80:80:80:80:80:80:80:80:80:80:08:00 SRC=A.B.C.D DST=W.X.Y.Z DÉLKA=52 TOS=0x00 PREC=0x20 TTL=119 ID=11901 DF PROTO=TCP SPT=37287 DPT=443 WINDOW=8192 RES=0x00 SYN URGP=0
Poté můžete použít jakýkoli zaběhnutý nástroj pro sledování protokolů a udělat s těmito informacemi něco užitečného. Pokud to vaše implementace syslog podporuje, můžete je dokonce nasměrovat do samostatného souboru protokolu, čímž efektivně splníte svůj požadavek zapsat data připojení do souboru s časovým razítkem na sekundu bez dalšího softwaru.
Všimněte si, že LOG
target je neukončující cíl, což znamená, že všechna pravidla následující za ním budou stále vyhodnocena a paket nebude odmítnut ani přijat samotným pravidlem LOG. Tím je LOG
cíl užitečný také pro ladění pravidel brány firewall.
Abyste předešli zahlcení vašeho protokolu, zvažte použití limit
modul ve spojení s tímto. Podrobnosti viz manuálová stránka iptables(8).
Mikrosekundové rozlišení
Ve výchozím nastavení bude nástroj tcpdump hlásit čas s rozlišením mikrosekund. Například:
$ sudo tcpdump -i any port 443
zobrazí výstup podobný následujícímu:
12:08:14.028945 IP localhost.33255> localhost.https:Flags [S], seq 1828376761, win 43690, možnosti [mss 65495,sackOK,TS val 108010971 ecr 0,nop, délka 0,nop
12:08:14.028959 IP localhost.https> localhost.33255:Flags [R.], seq 0, ack 1828376762, win 0, length 0
Viz tcpdump(8) pro úplný seznam voleb tcpdump a pcap-filter(7) pro úplnou syntaxi filtrů, které můžete použít.