随手笔记:linux-CentOS ipset + iptable 屏蔽IP及IP组

任务总览

  1. 屏蔽占用大量带宽的discuz灌水机器人
  2. 屏蔽尝试扫描网站上传文件的机器人
  3. 重启后自动重新配置屏蔽条件,不会丢失

开始任务

安装 ipset

yum install ipset

配置规则

ipset create discuz_rebort hash:net
ipset create scan_upload_package hash:net

# CIDR
ipset add scan_upload_package 180.97.106.0/24

# IP
ipset add discuz_rebort 46.118.158.40
ipset add discuz_rebort 46.118.125.133
ipset add discuz_rebort 134.249.55.141
ipset add discuz_rebort 178.137.161.254
ipset add discuz_rebort 185.234.216.41
ipset add discuz_rebort 173.239.236.63

# 保存规则
iptables -I INPUT -m set --match-set discuz_rebort src -p tcp -j DROP
iptables -I INPUT -m set --match-set scan_upload_package src -p tcp -j DROP

# 删除单个规则
iptables -D INPUT -m set --match-set discuz_rebort src -p tcp -j DROP

论坛屏蔽IP列表参考:http://www.stopforumspam.com/stats

保存配置

yum install iptables-services

# 创建文件夹
mkdir /etc/iptables.d
mkdir /etc/ipset.d

# 保存 iptables 规则
service iptables save
service iptables restart

# 保存 ipset 规则
ipset save -f /etc/ipset.d/forbiden.sh

重启自动配置

重新配置 ipset 需要的脚本

vim /etc/ipset.d/onboot.sh

/etc/ipset.d/onboot.sh 写入如下内容

ipset restore -f /etc/ipset.d/forbiden.sh

重新配置 iptables 需要的脚本

# 重新 ipset 配置需要的脚本
vim /etc/iptables.d/onboot.sh

/etc/ipset.d/onboot.sh 写入如下内容

/etc/ipset.d/./onboot.sh
service iptables restart

配置系统启动自动运行

vim /etc/rc.d/rc.local

/etc/rc.d/rc.local 追加如下内容

/etc/iptables.d/./onboot.sh

赋予运行权限

chmod +x /etc/ipset.d/onboot.sh
chmod +x /etc/iptables.d/onboot.sh
chmod +x /etc/rc.d/rc.local

备注

CentOS 7 后新增firewalld,性能在iptables之上,有待进一步学习。可能的学习资料:
4.5. 使用防火墙 - Red Hat Customer Portal

你可能感兴趣的:(Linux)