##包转发
sysctl net.ipv4.ip_forward=1
firewall-cmd --permanent --add-masquerade
#端口转发必须开启IP伪装。使用下面显示的命令为external区域启用伪装。
# firewall-cmd --permanent --zone=external --add-masquerade
##要检查是否为区域启用了 IP 伪装,请运行以下命令:
# firewall-cmd --zone=external --query-masquerade
yes
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.94.38.210/32" accept"
firewall-cmd --reload
firewall-cmd --list-all-zones
##要将端口重定向到同一系统上的另一个端口,例如:将80端口的所有数据包重定向到8080端口:
# firewall-cmd --permanent --zone=external --add-forward-port=port=80:proto=tcp:toport=8080
success
##如果要将流量转发到另一台服务器,例如:将所有 80 端口的数据包重定向到 IP 为 10.0.0.75 的服务器上的 8080 端口:
# firewall-cmd --permanent --zone=external --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=10.0.0.75
success
##要允许来自特定源地址的流量,仅允许从特定子网连接到服务器,请运行以下命令:
# firewall-cmd --permanent --zone=home --add-source=192.168.1.0/24
success
要允许来自地址 192.168.0.0/24 的访问,请运行以下命令:
# firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.0.0/24" accept'
success
要允许来自地址 192.168.0.0/24 的连接访问 ssh 服务,请运行以下命令:
#firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.0.0/24" service name="ssh" log prefix="ssh" level="info" accept'
success
要拒绝来自192.168.10.0/24的流量访问ssh服务,请运行以下命令:
#firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.10.0/24" port port=22 protocol=tcp reject'
success
firewall-cmd --zone=public --list-all
public (active) 活动的区域
target: default 默认启动的区域
icmp-block-inversion: no
interfaces: ens33 ens34 列出这个区域上关联的接口
sources: 列出这个区域的源。现在这里什么都没有,如果这里有内容,它们应该是这样的格式 xxx.xxx.xxx.xxx/xx。
services: ssh dhcpv6-client 列出允许通过这个防火墙的服务。你可以通过运行
firewall-cmd --get-services
得到一个防火墙预定义服务的详细列表。
ports: 80/tcp 10050/tcp 10051/tcp 列出允许通过这个防火墙的目标端口。(即 需要对外开放的端口)
protocols: 协议值可以是一个协议 ID 数字,或者一个协议名
masquerade: no 表示这个区域是否允许 IP 伪装。如果允许,它将允许 IP 转发,它可以让你的计算机作为一个路由器。
forward-ports: 列出转发的端口
source-ports:
icmp-blocks: 阻塞的 icmp 流量的黑名单。
rich rules: 在一个区域中优先处理的高级配置。
注意:本文归作者所有,未经作者允许,不得转载
