系统版本:CentOS 6.9 64位
ipset版本:ipset-7.3
1、下载ipset最新版本
ipset官网:http://ipset.netfilter.org/install.html
wget http://ipset.netfilter.org/ipset-7.3.tar.bz2
2、更新内核及依赖包(注意重启)
yum -y install kernel kernel-devel libmnl-devel
或者只安装依赖包:
yum -y install libmnl-devel
3、解压并安装
tar -xvf ipset-7.3.tar.bz2
cd ipset-7.3
./configure
make && make install
4、创建ipset链备份目录及文件
mkdir /usr/local/ipset
touch /usr/local/ipset/hangjia.ipset
5、创建ipset链,设定链名称,类型(支持子网掩码),哈希初始大小和最大大小,默认过期时间(单位秒,86400是24小时)
ipset create hangjia hash:net hashsize 4096 maxelem 200000 timeout 86400
ipset save hangjia -f /usr/local/ipset/hangjia.ipset
6、添加防火墙黑名单屏蔽规则并保存
#只对黑名单屏蔽80和443端口
iptables -I INPUT -m set –match-set hangjia src -p tcp –destination-port 80 -j DROP
iptables -I INPUT -m set –match-set hangjia src -p tcp –destination-port 443 -j DROP
iptables -I INPUT -m set –match-set bbs58cam src -p tcp –dport 80 -j ACCEPT
iptables -I INPUT -m set –match-set bbs58cam src -p tcp –destination-port 443 -j ACCEPT
#屏蔽黑名单IP的所有访问
iptables -I INPUT -m set –match-set hangjia src -j DROP
service iptables save
7、在ipset链中添加被屏蔽IP地址并保存到备份,支持网络号
#屏蔽单个IP
ipset add hangjia 8.8.8.8
#屏蔽网段
ipset add hangjia 8.8.8.8/24
#把当前配置保存到备份文件
ipset save hangjia -f /usr/local/ipset/hangjia.ipset
8、其它相关的命令
ipset list # 查看ipset配置
ipset add hangjia 8.8.8.8/24 # 添加IP地址段到黑名单
ipset destroy hangjia # 删除hangjia链
ipset del hangjia 8.8.8.8 # 删除黑名单中的IP地址
ipset flush hangjia #清空IP地址集合
ipset restore -f /usr/local/ipset/hangjia.ipset # 从备份中恢复ipset配置
ipset add hangjia 8.8.8.8 timeout 300 # 添加黑名单IP并单独指定过期时间,单位:秒
ipset -exist add hangjia 8.8.8.8 timeout 100 # 更新过期时间
9、设置开机从备份恢复ipset配置
echo /usr/local/sbin/ipset restore -f /usr/local/ipset/hangjia.ipset >> /etc/rc.d/rc.local
echo /etc/init.d/iptables start >> /etc/rc.d/rc.local