當你有機會遇到想要阻擋很多不同來源 IP 時,iptables 可能會幾百筆下到死,
且如果又發現其實它都是同一個國家來的,就可以用 xtables-addons,
xtables-addons 可以讓 iptables 搭配 geoip 根據國家名來作過濾,還真不錯
環境 :
- CentOS 6.4
- 2.6.32-358.0.1.el6.x86_64
- iptables v1.4.7
安裝相關套件
yum install gcc gcc-c++ make automake unzip zip xz kernel-devel-`uname -r` iptables-devel perl-Text-CSV_XS
安裝 xtables-addons
wget http://downloads.sourceforge.net/project/xtables-addons/Xtables-addons/1.37/xtables-addons-1.37.tar.xz tar xvf xtables-addons-1.37.tar.xz cd xtables-addons-1.37/ ./configure make make install
xtables-addons 本身提供 script,它會去處理好 GeoIP 等相關資料
./geoip/xt_geoip_dl ./geoip/xt_geoip_build GeoIPCountryWhois.csv mkdir -p /usr/share/xt_geoip/ cp -rp {BE,LE} /usr/share/xt_geoip/
這樣就可以測試用國家名當來源作阻擋了
iptables -I INPUT -m geoip --src-cc TW -j DROP
參考 :
留言
Q 當 make xtables-addons-1.47.1/extensions/compat_xtables.c:633: error: too few arguments to function 'ipv6_find_hdr' A 註解 /usr/src/kernels/$(uname -r)/include/linux/autoconf.h #define CONFIG_IP6_NF_IPTABLES_MODULE 1 to /* #define CONFIG_IP6_NF_IPTABLES_MODULE 1 */ 或 cd xtables-addons-1.47.1/extensions sed -i '/define WITH_IPV6/d' compat_xtables.c xt_psd.c xt_length2.c xt_TARPIT.c xt_SYSRQ.c xt_RAWNAT.c ref: https://it.megocollector.com/linux/one-way-to-compile-xtables-addons-without-error/
如果是自編 iptabels 到 /usr/local/iptables xtables-addons 編譯時要這麼作 export PKG_CONFIG_PATH=/usr/local/iptables/lib/pkgconfig ./configure –with-xtlibdir=/usr/local/iptables/libexec/xtables