Xtables-addons的模組清單可以參考這個網址: http://xtables-addons.sourceforge.net/modules.php
各個模組的使用方法可參考: man Xtables-addons
Xtables-addons安裝
Xtables-addons雖然不需要重新編譯Kernel,但不同版本的Xtables-addons各自有支援的kernel,因此在安裝前需要查看系統Kernel版本:
[root@jyc-blog ~]# uname -r
3.10.0-229.11.1.el7.x86_64
Xtables-addons與kernel版本的對應:
2.7與2.8版以上只支援Kernel 4+,因此我們下載2.6版 :
安裝前有一些相依套件要先安裝:
[root@jyc-blog xtables-addons-2.6]# yum install gcc gcc-c++ make automake unzip zip xz kernel-devel-`uname -r` iptables-devel perl-Text-CSV_XS -y
編譯:
[root@jyc-blog xtables-addons-2.6]# ./configure ; make ; make install
xt_geoip module
xt_geoip模組的功能是用來比對封包的來源或目的地的國家,它支援ipv4和ipv6。
它使用的資料庫是MaxMind GeoLite版,因為是免費的所以比較慢,更新時間為每個月的第一個星期二。
開始使用前我們要先下載geoip資料庫:
執行完後會多出兩個檔案:GeoIPCountryWhois.csv與GeoIPv6.csv。
xt_geoip_dl是xtables-addons內建的工具,還有另一個工具用來將CSV檔轉換成Binary格式:
xt_geoip Usage:
--src-cc, --source-country country[,country...]
它使用的資料庫是MaxMind GeoLite版,因為是免費的所以比較慢,更新時間為每個月的第一個星期二。
開始使用前我們要先下載geoip資料庫:
[root@jyc-blog xtables-addons-2.6]# cd geoip/
[root@jyc-blog geoip]# ./xt_geoip_dl
[root@jyc-blog geoip]# ./xt_geoip_dl
執行完後會多出兩個檔案:GeoIPCountryWhois.csv與GeoIPv6.csv。
xt_geoip_dl是xtables-addons內建的工具,還有另一個工具用來將CSV檔轉換成Binary格式:
[root@jyc-blog geoip]# ./xt_geoip_build GeoIPCountryWhois.csv GeoIPv6.csv
轉換後產生兩個資料夾BE和LE,要將這兩個資料夾搬到iptables搜尋的目錄:
[root@jyc-blog geoip]# mkdir -p /usr/share/xt_geoip
[root@jyc-blog geoip]# mv BE/ LE/ /usr/share/xt_geoip
也可以將指令簡化成:
[root@jyc-blog geoip]# ./xt_geoip_build -D /usr/share/xt_geoip *.csv
查看安裝是否成功:
[root@jyc-blog geoip]# lsmod | grep xt_geoip
xt_geoip 12775 3
xt_geoip 12775 3
xt_geoip Usage:
--src-cc, --source-country country[,country...]
--dst-cc, --destination-country country[,country...]
範例:
[root@jyc-blog ~]# iptables -N GEOIP_REJECT
[root@jyc-blog ~]# iptables -I GEOIP_REJECT -m geoip --src-cc CN,KR,KP -j DROP
[root@jyc-blog ~]# iptables -I INPUT -j GEOIP_REJECT
[root@jyc-blog ~]# iptables -I INPUT -m geoip --src-cc TW -j ACCEPT
xt_geoip的國碼是根據ISO-3166的格式,可以參考
定期更新geoip資料庫
[root@jyc-blog bin]# cat xt_geoip.sh
#!/bin/bash
XTABLE_PATH="/usr/local/src/xtables-addons-2.6"
cd ${XTABLE_PATH}/geoip
./xt_geoip_dl
./xt_geoip_build -D /usr/share/xt_geoip *.csv
修正SELinux權限
[root@jyc-blog ~]# chcon -vR --user=system_u /lib/modules/$(uname -r)/extra/*
[root@jyc-blog ~]# chcon -vR --type=lib_t /lib64/xtables/*
修正完後再手動將xt_geoip模組載入
[root@jyc-blog ~]# modprobe xt_geoip
沒有留言:
張貼留言