DDOSMON Kullanımı¶
DDOSMON aracı ile sunucu üzerine gelen trafik içerisinde aşağıdaki tiplerde saldırı tipleri monitor edilebilir.
- SYN Flood
- UDP Flood
- ICMP Flood
DDOSMON Kurulum ve Ayarları¶
DDOSMON paketi kurulur.
apt install ddosmon mysql mysql-client
Eğer mysql server aynı cihazda olmayacak ise sadece mysql-client kurulur. Aynı cihazda olacak ise mysql kurulması yeterlidir.
Ayrıca mysql-client’i ipblock script’i kullanıyor. Eğer ipblock script’i kullanılmayacak ise mysql-client’in kurulmasına da gerek yok.
Mysql DB import edilir
mysql -u root -p < /usr/share/doc/ddosmon/ddosmon_db.sql
Ayar dosyası oluşturulur
cp /etc/ddosmon/example.lua cp /etc/ddosmon/config.lua
Aşağıdaki ayar dosyası istenilen değerlere göre düzenlenir.
Interface kısmı ayarlanarak hangi interface üzerinde çalışacağı belirlenir.
interface = "eth0"
global_traffic_threshold = 900000
global_packets_threshold = 30
ip_traffic_threshold = 500000
ip_packets_threshold = 125000
notification_traffic_threshold = 20000
notification_packets_threshold = 30
ipblock_retry_ticks = 5*3600*1000
notification_command = "/usr/sbin/notificate \"%1%\" \"%2%\" &"
onblockip_command = "/usr/sbin/ipblock block %1% &"
onunblockip_command = "/usr/sbin/ipblock unblock %1% &"
network_uncompromise_ticks = 30
onnetwork_compromise_command = "/usr/sbin/networkcompromise compromised &"
onnetwork_uncompromise_command = "/usr/sbin/networkcompromise uncompromised &"
log="/var/log/ddosmon/ddosmon.log"
watchedips="/etc/ddosmon/example_watchedips.xml"
notificationsubject="DDOS Monitor on server1 notification"
Ayar dosyasında belirlenen watchedips dosyasında hangi IP adreslerine gelen trafiği montior edeceği bilirlenir.
/etc/ddosmon/example_watchedips.xml
<?xml version="1.0"?>
<watchedips>
<ip interface="eth0" ip="169.254.2.254"/>
</watchedips>
Veri tabanı ayarları
/etc/ddosmon/ip_block.conf
#Database configurations
MYSQL_HOST="localhost"
MYSQL_PORT="3306"
MYSQL_USER="root"
MYSQL_PASSWORD=""
MYSQL_DATABASE="ddosmon"
WATCHEDIPS_XML="/etc/ddosmon/*.xml"
Servis başlatılır
systemctl start ddosmon
Test¶
Test için aynı cihaz üzerinde nginx kurulabilir.
apt install nginx
Saldırı yapılacak sistem üzerinde hping3 kurulur.
Aşağıdaki komut ile faklı bir sistem üzerinden atak başlatılır. (apt install hping3)
hping3 -S --flood -V -p 80 hedef_ip_address
Loglar aşağıdaki dosyadan izlenebilir.
tail -f /var/log/ddosmon/ddosmon.log
Sistem Attak algıladığında config.lua içinde belirtilen onblockip_command ile tanımlanmış script’i çağırır. Bu script ile istenilen engelleme yapılabilir.
Hali hazırda tanımlı olan onblockip_command (ipblcok) script’i sadece mysql’e kayıt ekler, herhangi bir engelleme yapmaz.
Önemli Not: Normal şartlarda onblockip_command ile tanımlanan script’e saldırıyı yapan ip adresini vermesi gerekiyorken saldırılan hedef ip adresini yani watchedips.xml içinde tanımlı olan ip adresini vererek kendisinin engellenmesine sebep olabiliyor. Bunun bir BUG olduğu değerlendirildi. Projenin çok eskide kaldığı ve geliştirilmediği göz önüne alındığında çok verimli bir sonuç elde edilemeyeceği görülüyor. En son commit 2013 yılında yapılmış. Ancak bu commit de projenin github’a yüklendiği tarih olarak gözüküyor.
github sayfasında yazan aşağıdaki mesajda kodun çok daha eski olduğu görülüyor. “Another old project that I’ve found lost in an old HD, DDOS Monitor”