การป้องกัน DDoS attack ของ apache ด้วย mod_evasive
2865 สัปดาห์ ที่แล้ว
- คนดู 6,274
รายละเอียด
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 3097DOSPageCount 2DOSSiteCount 40DOSPageInterval 1DOSSiteInterval 1DOSBlockingPeriod 3600DOSLogDir /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 3097DOSPageCount 2DOSSiteCount 40DOSPageInterval 1DOSSiteInterval 1DOSBlockingPeriod 3600DOSLogDir /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 ( หน่วยเป็น วินาที )