การ block IP ประเทศใดๆ อันนี้ดูเป็นวิธีที่ห่ามแล้วก็ดูเหมือนกับเป็นวิธีที่ค่อนข้างใช้จริงไม่ค่อยได้นะครับ เนื่องด้วยการกระทำแบบนี้เป็นการไม่สนใจเลยว่าต้นทางจะอยู่ใน Blacklist IP หรือไม่เลยทีเดียว ซึ่งทำให้การใช้งานปกติอาจจะถูก block ไปด้วยนั่นเอง แต่เอาเป็นว่ามาลองดูกันครับว่าทำยังไงครับ
1. ติดตั้ง requirement package
1 |
apt-get install libtext-csv-xs-perl xtables-addons-common |
2. Download IP database ของ Maxmind โดยใช้คำสั่ง
1 2 |
cd /usr/src/xtables-addons-2.6/geoip/ ./xt_geoip_dl |
3. จากนั้นสร้าง list จาก folder ดังกล่าวโดยใช้คำสั่ง
1 2 |
mkdir -p /usr/share/xt_geoip ./xt_geoip_build -D /usr/share/xt_geoip *.csv |
4. จากนั้นสร้าง IPTABLES สำหรับการ block IP ใดๆได้เลย โดยในตัวอย่างจะเป็นการ block การเข้าถึงจากประเทศ China, Hongkong, Russia, South Korea
1 2 3 4 |
iptables -A INPUT -m geoip --src-cc CN -j DROP iptables -A INPUT -m geoip --src-cc HK -j DROP iptables -A INPUT -m geoip --src-cc RU -j DROP iptables -A INPUT -m geoip --src-cc KR -j DROP |
5. ทำ script สำหรับการ update IP โดยสร้าง update_ip.sh ขึ้นมา
1 2 3 4 5 6 7 |
#!/bin/bash rm -f /usr/src/xtables-addons-2.6/geoip/*.csv rm -rf /usr/share/xt_geoip/* cd /usr/src/xtables-addons-2.6/geoip/ ./xt_geoip_dl ./xt_geoip_build -D /usr/share/xt_geoip *.csv |
6. กำหนดให้ update เดือนละครั้ง
1 2 |
chmod +x update_ip.sh mv update.ip.sh /etc/cron.monthly/ |
Source:: Room362