การป้องกัน DDoS attack ของ apache ด้วย mod_evasive

2652 สัปดาห์ ที่แล้ว - คนดู 5,928
  • การป้องกัน DDoS attack ของ apache ด้วย mod_evasive รูปที่ 1
รายละเอียด
Distributed denial-of-service attack (DDoS attack) คือ การพยายามก่อกวนระบบเครือข่ายหรือ Server ซึ่งอาจเป็นการส่งคำร้อง (request ) มายัง service ของเรา เป็นจำนวนมาก จนทำให้เครื่อง Server ทำงานหนัก จนไม่สามารถทำงานได้ตามปรกติ ( server ล่ม )
 
Mod_evasive คือ module เสริม ชนิดหนึ่งของ apache ซึ่งทำหน้าที่ ตรวจจับ การ request ผ่าน service apache โดย มีขั้นตอนการทำงาน คือ ถ้า IP ใด มีการ request เข้ามาขอบริการ เป็นจำนวนมาก ผิดปรกติ แล้ว mod ตัวนี้ จะทำการ ban IP ดังกล่าว ซึ่งจะเป็นการช่วยป้องกันการ DDoS attack ผ่าน apache ได้
 
Requirement
- Apache 2.x
 
 
ขั้นตอนการติดตั้ง install Mod_evasive ผ่าน Freebsd Port
 
cd /usr/ports
cd /usr/ports/www/mod_evasive
make install clean
mkdir /var/log/mod_evasive
chmod -R 777 /var/log/mod_evasive
vi /usr/local/etc/apache22/httpd.conf
 
เพิ่ม ประโยค นี้ไว้ท้ายบรรทัด
  
<IfModule mod_evasive20.c>
    DOSHashTableSize    3097
    DOSPageCount        2
    DOSSiteCount        40
    DOSPageInterval     1
    DOSSiteInterval     1
    DOSBlockingPeriod   3600
    DOSLogDir           /var/log/mod_evasive
</IfModule>  
 
/usr/local/etc/rc.d/apache22 restart
 
 
 
ขั้นตอนการติดตั้ง install Mod_evasive ผ่านระบบ Direct admin
 
cd /usr/local/directadmin/custombuild
wget http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz
tar xvfz mod_evasive_1.10.1.tar.gz
cd mod_evasive
apxs -cia mod_evasive20.c
mkdir /var/log/mod_evasive
chmod -R 777 /var/log/mod_evasive
vi /etc/httpd/conf/httpd.conf
 
เพิ่ม ประโยค นี้ไว้ท้ายบรรทัด
 
<IfModule mod_evasive20.c>
    DOSHashTableSize    3097
    DOSPageCount        2
    DOSSiteCount        40
    DOSPageInterval     1
    DOSSiteInterval     1
    DOSBlockingPeriod   3600
    DOSLogDir           /var/log/mod_evasive
</IfModule>
 
/usr/local/etc/rc.d/httpd restart
 
 
เสร็จสิ้น การติดตั้ง แล้ว ท่านสามารถ เข้าไปดู Folder /var/log/mod_evasive ได้ ว่ามี IP ไหน โดน backlist ของ mod_evasive บ้าง ดังรูปนี้
 
 
 
ซึ่งการ Ban IP นั้นจะเป็น การ ban แบบชั่วคราว ตามเวลา  DOSBlockingPeriod   3600 ( หน่วยเป็น วินาที )