目录
四、设置iptables(通过匹配ip可以有效缓解CC攻击)
ipset是iptables的扩展,它允许你创建 匹配整个地址集合的规则。而不像iptables只能匹配单个ip,避免维护的ip条目过多导致速度变慢。而ipset让ip集合存储在带索引的数据结构中,这种结构即时集合比较大也可以进行高效的查找,除了一些常用的情况,比如阻止一些危险主机访问本机,从而减少系统资源占用或网络拥塞,IPsets也具备一些新防火墙设计方法,并简化了配置。
yum install ipset-service
systemctl restart ipset
systemctl enable ipset
# 创建一个名字为blacklist的黑名单集合(默认可以存储65535个元素)
# ipset create blacklist hash:net maxelem 1000000 # 黑名单
# 查看已创建的ipset
# ipset list
# 把ip加入到黑名单
# ipset add blacklist 10.0.0.2
# 把ip从黑名单移除
# ipset del blacklist 10.0.0.2
# 添加重复的ip不会报错<- exist>
# ipset -exist add blacklist 192.168.1.1
# iptables -I INPUT -m set --match-set blacklist src -p tcp --destination-port 80 -j DROP
-m set # 指定集合模块
--match-set # 指定为blacklist的集合
ipset所有的设定都是运行在内存中,如果ipset服务或者服务器重启了就会失效,所以需要进行下面的操作
service ipset save
grep -E '^#|^$' -v /etc/sysconfig/ipset-config
--
IPSET_SAVE_ON_STOP="yes"
--
# 将ipset规则保存到文件
# ipset save blacklist -f blacklist.txt
# 删除ipset
# ipset destroy blacklist
# 导入ipset规则
# ipset restore -f blacklist.txt