一、防火墙服务(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命令时会进行检验,如果配置有误就会报错,例如:

CentOS 防火墙 firewalld

此时,你可以编辑规则文件,然后再执行reload命令。

相关文章: