实现过程
下面的命令将配置192.168.1.0/24整个网段的IP允许访问服务器的22端口
// 先移除默认开启的没有访问限制的ssh服务
# firewall-cmd --permanent --remove-service=ssh
// 添加复杂规则,只允许指定IP段访问22端口
# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="22" accept'
// 使上面配置生效
# firewall-cmd --reload
// 查看当前配置信息
# firewall-cmd --list-all
备注:
source address也可以设置为单个IP地址,例如192.168.1.1
port可以为单个端口或端口范围,例如1-10000
其他常用命令
删除之前的复杂规则,这里的内容需要与之前添加时的rule内容完全一致,可以复制粘贴过来
firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="22" accept'
手动开放指定端口
firewall-cmd --permanent --add-port=3306/tcp
删除开放的端口
firewall-cmd --permanent --remove-port=3306/tcp
开放指定服务(系统内置的)
firewall-cmd --permanent --add-service=http
删除服务
firewall-cmd --permanent --remove-service=http
添加白名单地址(单IP)
firewall-cmd --permanent --add-source=192.168.1.100
注: 白名单中的IP可以任意访问所有服务器可用的端口 这个白名单的作用不是这样的,有待继续研究
添加白名单地址(指定网络段CIDR格式)
firewall-cmd --permanent --add-source=192.168.1.0/24
删除白名单地址
firewall-cmd --permanent --remove-source=192.168.1.100
屏蔽指定IP地址
firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.100' reject"
屏蔽IP地址段
firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.0/24' reject"
手动编辑xml配置文件
除了上面的命令添加规则外,还可以直接编辑/etc/firewalld/zones/public.xml文件(改完后记得执行firewall-cmd --reload生效)
参考文档(写的很详细)
https://www.liquidweb.com/kb/an-introduction-to-firewalld/