firewalld封禁IP或IP段

1、firewalld直接封禁某一个ip或ip段

1.1封禁单个ip

$ firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='x.x.x.x' reject"

#1.2 封禁IP段

$ firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='x.x.0.0/16' reject"

$ firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='x.x.x.0/24' reject"

使用上面没什么问题,只不过一旦大量ip需要拉黑,管理上就会很混乱。因此这里介绍firewalld配置ipset来实现。

2、firewalld配置ipse封禁某一个ip或ip段

2.1 创建ipset

$ firewall-cmd --permanent --zone=public --new-ipset=blacklist --type=hash:net

创建一个名为blacklist的库,执行完命令可在/etc/firewalld/ipsets路径下看到生成的blacklist.xml文件。

2.2 添加/删除要禁止的ip或ip段

#添加ip

$ firewall-cmd --permanent --zone=public --ipset=blacklist --add-entry=x.x.x.x

#添加ip段

$firewall-cmd --permanent --zone=public --ipset=blacklist --add-entry=x.x.x.0/24

#删除ip

$firewall-cmd --permanent --zone=public --ipset=blacklist --remove-entry=x.x.x.x

#删除ip段

$firewall-cmd --permanent --zone=public --ipset=blacklist --remove-entry=x.x.x.0/24

备注: --permanent参数表示永久生效,内容会写入blacklist.xml文件且需要重启防火墙;

firewall-cmd --reload生效,如果不加该参数,则立即生效,内容不会写入blacklist.xml文件,服务重启则规则失效。

2.3封禁名为blacklist的ipset

$ firewall-cmd --permanent --zone=public --add-rich-rule='rule source ipset=blacklist drop'

前面只是创建了名为blacklist的ipset,而且也往里面增加了内容,最后一步即防火墙封禁该ipset即可,这样的好处是防火墙只是一条规则就封禁了文件里管理的大量ip。

2.4重新载入防火墙即可生效:

firewall-cmd --reload

2.5查看当前防火墙状态:

firewall-cmd --list-all

2.6单独查看当前ipset封禁了哪些ip:

ipset list blacklist

相关推荐
大丈夫立于天地间3 小时前
ISIS协议中的数据库同步
运维·网络·信息与通信
cg50173 小时前
Spring Boot 的配置文件
java·linux·spring boot
Dream Algorithm3 小时前
路由器的 WAN(广域网)口 和 LAN(局域网)口
网络·智能路由器
IT猿手4 小时前
基于CNN-LSTM的深度Q网络(Deep Q-Network,DQN)求解移动机器人路径规划,MATLAB代码
网络·cnn·lstm
暮云星影4 小时前
三、FFmpeg学习笔记
linux·ffmpeg
吴盐煮_4 小时前
使用UDP建立连接,会存在什么问题?
网络·网络协议·udp
rainFFrain4 小时前
单例模式与线程安全
linux·运维·服务器·vscode·单例模式
GalaxyPokemon4 小时前
Muduo网络库实现 [九] - EventLoopThread模块
linux·服务器·c++
hyshhhh4 小时前
【算法岗面试题】深度学习中如何防止过拟合?
网络·人工智能·深度学习·神经网络·算法·计算机视觉
mingqian_chu5 小时前
ubuntu中使用安卓模拟器
android·linux·ubuntu