Tcpdump Saldırı Tespit

TCPDUMP network bağlantınızdaki tüm paketleri/trafiği kayıt edip izlemenize yarıyacak bir araçtır. Bu konumuzda auto olarak bir servis oluşturup saldırı anında pcap alan bir sistemi sizinle paylaşıcağım.

Peki nasıl olucak bu işlem?

Çok fazla tekrarlayan flood şeklinde bir paket akışı varsa saldırı olma ihtimali vardır sizlere vericeğim kısa betik bu ve bunun gibi durumlarda “/var/logs/ddoslog” dizinine tarih ve saat şekilde pcap dosyasını oluşturur;

Logları görüntülemek için ssh üzerinden;

$ ls /var/logs/ddoslog

Komutunu kullanabilirsiniz.

Kurulum için altta vericeğim betiği “install.sh” olarak kayıt edip sunucunuz üzerinde,

$ chmod +x install.sh
$ ./install.sh

Olarak kurulumunu yapabilirsiniz otomatik olarak “ddoslog-layerweb” servis koşmaya başlıyacaktır.

Betik:

cat >> /var/ddoslog-layerweb.sh <<'EOF'
#!/bin/bash
if [ $(id -u) != 0 ]
then
    echo -e "Hata: Betik Sadece Root Kullanicida Calisir!"
    exit 1
fi

if [ ! -d /var/logs/ddoslog ]
then
    mkdir -p /var/logs/ddoslog
fi

while true
do
    ip=$(hostname -I | cut -d " " -f 1)
    interface=$(ip addr | grep $ip | cut -d " " -f 12)
    eski=$(grep "$interface:" /proc/net/dev | cut -d ":"  -f2 | awk '{ print $2 }') && sleep 1
    yeni=$(grep "$interface:" /proc/net/dev | cut -d ":"  -f2 | awk '{ print $2 }')
    pkt=$(( $yeni - $eski ))
    
    ### Debug
    #echo "$pkt"

    if [ $pkt -gt 10000 ]
    then
        name=$(date +"%Y-%m-%d--%H-%M-%S")
        tcpdump -i $interface -Z root -c 10000 -w /var/logs/ddoslog/$name.pcap
    fi
done
EOF
cat >> /lib/systemd/system/ddoslog-layerweb.service <<'EOF'
[Unit]
Description=DDoS Detector
After=multi-user.target
[Service]
ExecStart=/var/ddoslog-layerweb.sh
SyslogIdentifier=DDOS-DUMP
Type=idle
Restart=always
RestartSec=15
RestartPreventExitStatus=0
[Install]
WantedBy=multi-user.target
EOF
chmod +x /var/ddoslog-layerweb.sh
systemctl enable ddoslog-layerweb
systemctl start ddoslog-layerweb

Manuel pcap almak için ise:

$ tcpdump -i eth0 -c 10000 -w log.pcap

“eth0” yerine “ifconfig” yazarak sunucunun internet e çıkışı olan interface i öğrenip onu belirtin default olarak genelde eth0 olduğu için komutu onun üzerinden verdim.

Güvenle Kalın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir