一、防火墙服务(firewalld)
1. 查看状态
systemctl status firewalld
2. 开启
systemctl start firewalld
3. 重启
systemctl restart firewalld.service
4. 关闭
systemctl stop firewalld
5. 禁用
systemctl disable firewalld
6. 设置开机启动
systemctl enable firewalld.service
二、防火墙进程(firewall-cmd)
1. 查看状态
firewall-cmd --state
2. 查看版本
firewall-cmd --version
3. Zone
(1) 查看所有zone
firewall-cmd --get-zones
(2) 查看默认zone
firewall-cmd --get-default-zone
(3) 设置默认zone
firewall-cmd --set-default-zone=work
4. 防火墙端口操作
(1) 查看规则
firewall-cmd --list-all
(2) 查询8080端口规则
firewall-cmd --query-port=8080/tcp
(3) 临时(重启无效)开放8080端口
firewall-cmd --add-port=8080/tcp
(4) 永久开放8080端口
firewall-cmd --permanent --add-port=8080/tcp
(5) 移除(永久)8080端口规则
firewall-cmd --permanent --remove-port=8080/tcp
(6) 重启防火墙
firewall-cmd --reload
三、端口转发
1. NAT (Network Address Translation),包括SNAT和DNAT:
(1) SNAT (source networkaddress translation)
又称为源地址转换,比如内网中有多台机器,各自有内网的IP(多数是192.168.x.x),访问web服务器的时候,路由器可以将报头中的内网IP替换成路由器的公网IP。
(2) DNAT(destination networkaddress translation)
又称为目的地址转换,比如集群内有多台服务器(网段为192.168.0.1 ~ 192.168.0.200),我们需要访问www.test.com, 它位于Server A(192.168.0.66),而www.test.com的公网IP为(8.8.8.8),这其实是www.test.com的网关地址。当对www.test.com的请求到达网关后,网关会将请求头中目的地IP变为Server A的内网地址192.168.0.66,然后再转发。
2. IP伪装
(1) 查看防火墙是否允许伪装IP
firewall-cmd --query-masquerade
(2) 允许防火墙伪装IP
firewall-cmd --add-masquerade --permanent
(3) 禁止防火墙伪装IP
firewall-cmd --remove-masquerade --permanent
四、其他
1. direct规则文件
通过firewall-cmd命令创建的防火墙direct规则都存储在:
/etc/firewalld/direct.xml
添加防火墙规则时,firewall-cmd不会对规则参数进行校验,而是会直接存到规则文件中,当运行firewall-cmd reload命令时会进行检验,如果配置有误就会报错,例如:
此时,你可以编辑规则文件,然后再执行reload命令。