
Bei einigen Befehlen ist es oft lästig, dass hier keine lesbare Zeitstempel in der Sophos CLI angezeigt werden (können). Dies ist für die Analyse oft sehr hilfreich.
Einleitung
In diesem Beitrag möchte ich Euch Möglichkeiten aufzeigen wie Ihr lesbare Zeitstempel in der Sophos CLI in die Ausgabe von Befehlen bekommen könnt. Nach und nach werde ich diesen Beitrag erweitern wenn ich neue Kommandos habe.
Befehle
Ping
Möchtet Ihr einen Ping auf der CLI mit einem Zeitstempel versehen, muss man bei der Eingabe des Kommandos ein wenig tricksen. Leider bietet das Ping Kommando keine Option für einen Zeitstempel an. Schade das Sophos solche einfachen und essentiellen Parameter gestrichen hat.
Mit der folgenden Befehlzeile bekommt Ihr vor jeden Ping in der advanced Shell einen Zeitstempel angezeigt:
ping web.de | while read pong; do echo "$(date '+%Y-%m-%d %H:%M:%S') - $pong"; done
Dann sieht die Ausgabe des Ping wie folgt aus
SFV4C6_VM01_SFOS 19.5.1 MR-1-Build278# ping web.de | while read pong; do echo "$(date '+%Y-%m-%d %H:%M:%S') - $pong"; done
2023-07-01 19:08:41 - PING web.de (82.165.229.138): 56 data bytes
2023-07-01 19:08:41 - 64 bytes from 82.165.229.138: seq=0 ttl=248 time=18.683 ms
2023-07-01 19:08:42 - 64 bytes from 82.165.229.138: seq=1 ttl=248 time=18.336 ms
2023-07-01 19:08:43 - 64 bytes from 82.165.229.138: seq=2 ttl=248 time=17.245 ms
conntrack
Der conntrack Befehl hat zumindest die Optionen "-o timestamp" um sich einen Linux Zeitstempel anzeigen zu lassen. Aber wer kann den schon lesen? 😉
Mit dem folgenden Kommando lässt sich der Zeitstempel in ein lesbares Format umwandeln. Und schon ist die Analyse deutlich einfacher!
conntrack -d 8.8.8.8 -E -o timestamp | awk -F "[\t]" '{ gsub(/(\[)/,"",$1) ;gsub(/(\])/,"",$1); print strftime("%c",$1) " " $2 }'
Die Ausgabe sieht dann zum Beispiel so aus. Die lesbare Zeit steht vorneweg.
Sat Jul 1 19:22:34 2023 [UPDATE] proto=udp proto-no=17 timeout=30 orig-src=10.168.10.1 orig-dst=8.8.8.8 orig-sport=10429 orig-dport=53 reply-src=8.8.8.8 reply-dst=10.168.10.1 reply-sport=53 reply-dport=10429 mark=0x8001 helper=dns id=2870412891 masterid=0 devin= devout=PortB nseid=0 ips=0 sslvpnid=0 webfltid=0 appfltid=0 icapid=0 policytype=0 fwid=0 natid=0 fw_action=0 bwid=0 appid=0 appcatid=0 hbappid=0 hbappcatid=0 dpioffload=0 sigoffload=0 inzone=0 outzone=0 devinindex=0 devoutindex=6 hb_src=0 hb_dst=0 flags0=0x200000 flags1=0x0 flagvalues=21 catid=0 user=0 luserid=0 usergp=0 hotspotuserid=0 hotspotid=0 dst_mac=00:0c:29:f6:a7:30 src_mac=44:4e:6d:e8:e5:dc startstamp=1688232154 microflow[0]=INVALID microflow[1]=INVALID hostrev[0]=0 hostrev[1]=0 ipspid=0 diffserv=0 loindex=0 tlsruleid=0 ips_nfqueue=0 sess_verdict=0 gwoff=0 cluster_node=0 current_state[0]=19373 current_state[1]=19373 vlan_id=0 inmark=0x0 brinindex=0 sessionid=89779 sessionidrev=60858 session_update_rev=0 dnat_done=0 upclass=0:0 dnclass=0:0 pbrid[0]=0 pbrid[1]=0 profileid[0]=0 profileid[1]=0 atomic_flags=0x0 conn_fp_id=NOT_OFFLOADED
tcpdump
tcpdump hat einen eingebauten Parameter der auch in der Sophos Firewall funktioniert. Die Hilfe von tcpdump zeigt ihn allerdings nicht an. Wer also kein tcpdump Krack ist, der kennt den Paramater dazu nicht: -tttt
tcpdump -ni any host 8.8.8.8 -tttt
Und schon steht die Zeit vor jeder Zeile:
2023-07-01 19:42:23.465008 PortB, OUT: IP 10.168.10.1 > 8.8.8.8: ICMP echo request, id 4, seq 3, length 192
2023-07-01 19:42:23.479260 PortB, IN: IP 8.8.8.8 > 10.168.10.1: ICMP echo reply, id 4, seq 3, length 76