服务器遭受ddos攻击,发现发部分IP来自国外……
IPSET安装
yum install ipset // 安装ipsetipset create china hash:net hashsize 10000 maxelem 1000000// 创建地址表 ipset add china 172.18.0.0/16 ipset list china
获取国内IP地址段并导入
vi ipset_china.sh
#!/bin/bashrm -rf cn.zonewget /ipblocks/data/countries/cn.zonefor i in `cat cn.zone`doipset add china $idone~
执行上面的脚本,将国内的ip段写进china
chmod 777 ipset_china.sh ./ipset_china.sh
可通过下面命令查看写入结果
ipset list china
检查目标ip是否在ipset集合中
ipset test china 1.1.1.1
删除条目
ipset del china 1.1.1.1
清空ipset中所有集合的ip条目(删条目,不删集合)
ipset flush china
删除ipset中的某个集合或者所有集合:ipset destroy
ipset destroy china
需要保存配置,不然重启会失效
保存ipset规则ipset save china -f /root/china.ipset导入ipset规则/sbin/ipset restore -f /root/china.ipset #写到/etc/rc.d/rc.local中给执行权限
iptables
-A INPUT -m set --match-set china src -p tcp -m tcp --dport 22 -j ACCEPT-A INPUT -m set --match-set china src -p tcp -m tcp --dport 3306 -j ACCEPT