Merhaba Arkadaşlar,
Iptables kuralı ile TCP/UDP log’ları yakalamak için aşağıdaki kural kullanılabilir.
Girilen chain altındaki tüm paketleri log’lar.
Aşağıdaki INPUT chain ismi oluyor. Farklı chain’ler kullanıyorsanız hepsine uygulamanız gerekmektedir.
Ben tüm TCP/UDP paketlerini log’luyorum. Aşağıdaki rule değiştirilerek farklı log’lar alınabilir. Örneğin DENY alınan paketler veya tcp 443 vb gibi.
1 2 |
iptables -A INPUT -p tcp -j LOG --log-prefix "Log_TCP ==> " iptables -A INPUT -p udp -j LOG --log-prefix "Log_UDP ==> " |
Kural girildikten sonra /etc/rsyslog.d altında aşağıdaki tanımların yapılması gerekmektedir.
1 2 3 4 5 6 7 |
noroot@vmlinux:/etc/rsyslog.d$ cat 15-tcp.conf :msg, contains, "Log_TCP ==>" -/var/log/Log_TCP.log &~ noroot@vmlinux:/etc/rsyslog.d$ cat 15-udp.conf :msg, contains, "Log_UDP ==>" -/var/log/Log_UDP.log &~ |
Bu işlem sonrasında /etc/rsyslog.conf dosyası içinde ent alt kısma aşağıdaki satırı ekleyerek rsyslog servisini restart etmeniz yeterli olacaktır.
1 2 3 |
$IncludeConfig /etc/rsyslog.d/*.conf *.none /var/log/Log_TCP.log *.none /var/log/Log_UDP.log |
Örnek log çıktısı;
1 2 3 4 5 6 7 |
TCP Log; May 14 15:56:30 vmlinux kernel: [601996.874812] Log_TCP ==> IN=ens192 OUT=ens160 MAC=00:50:56:bf:a1:76:30:07:4d:a1:68:c5:08:00 SRC=10.10.243.228 DST=52.219.74.40 LEN=52 TOS=0x00 PREC=0x60 TTL=63 ID=57174 DF PROTO=TCP SPT=35804 DPT=443 WINDOW=3366 RES=0x00 ACK URGP=0 UDP Log; May 14 16:00:29 vmlinux kernel: [602236.186102] Log_UDP ===> IN=ens192 OUT=ens160 MAC=00:50:56:bf:a1:76:30:07:4d:a1:68:c5:08:00 SRC=10.10.243.228 DST=212.58.14.162 LEN=74 TOS=0x00 PREC=0x60 TTL=63 ID=47056 DF PROTO=UDP SPT=6026 DPT=53 LEN=54 |
Kolay Gelsin.