当前位置: 首页 > 工具软件 > firewall > 使用案例 >

firewall 防火墙

龙飞文
2023-12-01

firewall 防火墙

参数
–permanent 永久生效
–add-port= 允许访问的某个端口号(包括协议名)
–remove-port= 移除允许访问的端口号
–zone= 设置区域 (区域可选,也可以不打这个参数
–list-all 显示所有指定区域的所有规则(不是永久生效不显示
–reload 重新加载 (打完所有命令后记得打这个

放行8099端口
[root@wk ~]# firewall-cmd --permanent --add-port=8099/tcp
success
[root@wk ~]# firewall-cmd --reload //重新加载
success
[root@wk ~]# firewall-cmd --list-all //查看
public (active)
target: default
icmp-block-inversion: no
interfaces: ens32
sources:
services: cockpit dhcpv6-client ssh
ports: 8099/tcp //这个就是添加的端口
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:

富规则
先更新一下帮助手册(man
更新帮助手册
[root@localhost ~]# mandb
man -k 检索帮助
[root@localhost ~]# man -k firewall

[root@localhost ~]# man firewalld.richlanguage
/EX 就可以查看了
最常用的是3

Example 3
Allow new IPv4 connections from address 192.168.0.0/24 for service tftp
and log 1 per minutes using syslog

       rule family="ipv4" source address="192.168.0.0/24" service name="tftp

" log prefix=“tftp” level=“info” limit value=“1/m” accept

设置富规则
案例一
放行192.168.109.0/24 通过 http 服务
[root@localhost sky]# firewall-cmd --permanent --add-rich-rule=‘rule family=“ipv4” source address=“192.168.109.0/24” service name=“http” accept’
success

[root@localhost sky]# firewall-cmd --reload //重新加载
success

[root@localhost sky]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens160
sources:
services: cockpit dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
rule family=“ipv4” source address=“192.168.109.0/24” service name=“http” accept

案例二
在server0上部署httpd服务,通过添加富规则,只允许172.25.0.10/32访问,并且记录日志,日志级别为notice,日志前缀为"NEW HTTP ",限制每秒最多3个并发 ,要求持久化生效

[root@localhost ~]# firewall-cmd --permanent --add-rich-rule=‘rule family=“ipv4” source address=“172.25.0.10/32” service name=“http” log prefix=“NEW HTTP” level=“notice” limit value=“3/s” accept’
success

[root@localhost ~]# firewall-cmd --reload
success

[root@localhost ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens160
sources:
services: cockpit dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
rule family=“ipv4” source address=“192.168.109.0/24” service name=“http” accept
rule family=“ipv4” source address=“172.25.0.10/32” service name=“http” log prefix=“NEW HTTP” level=“notice” limit value=“3/s” accept

区域
1.trusted(信任区域):允许所有的传入流量
2.public(公共区域):允许与ssh或dhcpv6-client预定义服务匹配的传入流量,其余均拒接。是新添加网络接口的默认区域
3.external(外部区域):允许与ssh预定义服务匹配的传入流量,其余均拒绝。默认将通过此区域转发的ipv4传出流量将进行地址伪装,可用于为路由器启动伪装功能的外部网络。
4.home(家庭区域):允许与ssh、mdns、samba-client或dhcpv6-client预定义服务匹配的流入流量,其余均拒绝。
5.internal(内部区域):默认值时与home区域相同。
6.work(工作区域):允许与ssh、dhcpv6-client预定义服务匹配的传入流量,其余均拒绝
7.dmz(隔离区域也称为非军事区域):允许与ssh预定义服务匹配的传入流量,其余均拒绝
8.block(限制区域):拒绝所有传入流量
9.drop(丢弃区域):丢弃所有传入流量,并且不产生包含ICMP的错误响应。

案例
1.允许TCP的443端口到internal区域
firewall-cmd --add-port=443/tcp --zone=internal

2.从internal区域将tcp的443号端口移除
firewall-cmd --remove-port=443/tcp --zone=internal

 类似资料: