CentOS 防火墙 firewalld

一、防火墙服务(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命令。

原文地址:https://www.cnblogs.com/eagle6688/p/14355409.html