查看当前iptables规则
sudo iptables -L -n -v
添加IP到黑名单
sudo iptables -A INPUT -s 恶意IP地址 -j DROP
批量添加多个IP
sudo iptables -A INPUT -s 192.168.1.100 -j DROP
sudo iptables -A INPUT -s 10.0.0.5 -j DROP
添加IP段
sudo iptables -A INPUT -s 192.168.1.0/24 -j DROP
保存iptables规则
sudo service iptables save # CentOS 6
sudo iptables-save > /etc/sysconfig/iptables # CentOS 7+
添加IP到黑名单
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="恶意IP地址" reject'
重新加载firewalld
sudo firewall-cmd --reload
查看当前黑名单
sudo firewall-cmd --list-rich-rules
编辑hosts.deny文件
sudo vi /etc/hosts.deny
添加要阻止的IP
sshd: 恶意IP地址
ALL: 另一个恶意IP地址
安装Fail2Ban
sudo yum install epel-release
sudo yum install fail2ban
配置Fail2Ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo vi /etc/fail2ban/jail.local
启动并启用Fail2Ban
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
创建IPSet集合
sudo ipset create blacklist hash:ip
添加IP到集合
sudo ipset add blacklist 恶意IP地址
将IPSet与iptables关联
sudo iptables -I INPUT -m set --match-set blacklist src -j DROP
保存IPSet规则
sudo ipset save blacklist -f /etc/ipset.conf
如果需要解除某个IP的封锁:
# iptables
sudo iptables -D INPUT -s 被封IP地址 -j DROP
# firewalld
sudo firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="被封IP地址" reject'
sudo firewall-cmd --reload
# ipset
sudo ipset del blacklist 被封IP地址