规则状态
- runtime(运行时)
修改规则马上生效,但是临时生效 - permanent(持久配置)
修改后需要reload重载后才会生效
服务基本操作
-
查看防火墙状态
systemctl status firewalld
-
关闭防火墙
systemctl stop firewalld
-
开启防火墙
systemctl start firewalld
-
永久开启防火墙
systemctl enable firewalld
-
永久关闭防火墙
systemctl disable firewalld
-
重载防火墙规则
firewall-cmd --reload
-
查看防火墙状态
firewall-cmd --state
-
查看版本
firewall-cmd --version
-
查看帮助
firewall-cmd --help
-
查看所有配置信息
firewall-cmd --list-all
-
查看所有开放的端口
所有区域firewall-cmd --list-ports
指定区域
firewall-cmd --zone=public --list-ports
-
查看所有允许的服务
firewall-cmd --list-services
-
获取所有支持的服务
firewall-cmd --get-services
-
禁用传统防火墙服务
systemctl mask iptables systemctl mask ip6tables systemctl mask ebtables
-
备份firewall的相关配置文件
cp -r /etc/firewalld/ /etc/firewalld_bak_20191210
firewall-cmd命令分类
zone区域相关指令
参数 | 作用 |
---|---|
–get-default-zone | 查询默认的区域名称 |
–set-default-zone=<zone> | 设置默认的区域,使其永久生效 |
–get-active-zones | 显示当前正在使用的区域与网卡名称 |
–get-zones | 显示总共可用的区域 |
–new-zone=<zone> | 新增区域 |
service服务相关指令
参数 | 作用 |
---|---|
–get-services | 显示预先定义的服务 |
–add-service=<service> | 设置默认区域允许该服务的流量 |
–remove-service=<service> | 设置默认区域不再允许该服务的流量 |
port端口相关指令
参数 | 作用 |
---|---|
–add-port=<端口号/协议> | 设置默认区域允许该端口的流量 |
–remove-port=<端口号/协议> | 设置默认区域不再允许该端口的流量 |
interface网卡相关指令
参数 | 作用 |
---|---|
–add-interface=<网卡名称> | 将源自该网卡的所有流量都导向某个指定区域 |
–change-interface=<网卡名称> | 将某个网卡与区域进行关联 |
其他相关指令
参数 | 作用 |
---|---|
–reload | 显示当前区域的网卡配置参数,资源,端口以及服务等信息 |
–list-all | 重载当前的配置规则 |
操作案例
区域切换及白名单添加
- 将网络接口关联至drop区域
firewall-cmd --permanent --change-interface=eth0 --zone=drop firewall-cmd --reload
- 添加网段白名单
#对192.168.47网段生效 firewall-cmd --permanent --add-source=192.168.47.0/24 --zone=trusted #对192.168.47.101地址生效 firewall-cmd --permanent --add-source=192.168.47.101/32 --zone=trusted firewall-cmd --reload
端口开放/移除
-
开放指定端口
firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --reload
添加多个端口
firewall-cmd --permanent --zone=public --add-port=8080-8083/tcp
-
移除开放的端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent firewall-cmd --reload
服务开放/移除
-
允许访问http,https服务
firewall-cmd --permanent --add-service=http --add-service=https firewall-cmd --reload
-
移除开放访问的服务
firewall-cmd --permanent --remove-service=http firewall-cmd --reload
-
SSH修改端口后,加入服务后无法访问
修改firewalld中SSH服务的默认端口22–>修改后的ssh端口vim /usr/lib/firewalld/services/ssh.xml <service> <short>SSH</short> <description>Secure Shell (SSH) </description> <port protocol="tcp" port="11122"/> </service>
端口转发策略
- 流量转发命令
firewall-cmd --permanent --zone=<区域> --add-forward-port=port=<源端口>:proto=<协议>:toport=<目的端口>:toaddr=<目的地址>
- 将本机2222/tcp端口转发至192.168.47.111:22端口
开启IP伪装
配置端口转发规则firewall-cmd --permanent --add-masquerade
firewall-cmd --permanent --zone=public --add-forward-port=port=2222:proto=tcp:toport=22:toaddr=192.168.47.111
- 删除端口转发规则
重载防火墙firewall-cmd --permanent --zone=public --remove-forward-port=port=2222:proto=tcp:toport=22:toaddr=192.168.47.111
firewall-cmd --reload
富规则策略
-
富规则帮助手册
man firewalld.richlanguage
-
仅允许192.168.47.111访问8080端口
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=192.168.47.111/32 port port=8080 protocol=tcp accept'
-
将192.168.47.111加入白名单
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.47.111" accept"
-
删除配置的富规则
firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="192.168.47.111/32" port port="8080" protocol="tcp" accept'
firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.47.111" accept"
-
拒绝192.168.47.111访问ssh服务
firewall-cmd --permanent --zone=public --add-rich-rule='rule family=ipv4 source address=192.168.47.111/32 service name=ssh drop'
-
将远程192.168.47.1主机请求firewalld的3333端口转发至本机22端口
firewall-cmd --permanent --zone=public --add-rich-rule='rule family=ipv4 source address=192.168.47.1/32 forward-port port=3333 protocol=tcp to-port=22'
-
将远程192.168.47.1主机请求firewalld的4444端口转发至192.168.47.111的22端口
firewall-cmd --permanent --add-masquerade firewall-cmd --permanent --zone=public --add-rich-rule='rule family=ipv4 source address=192.168.47.1/32 forward-port port=4444 protocol=tcp to-port=22 to-addr=192.168.47.111'
-
重载防火墙
firewall-cmd --reload
来源:CSDN
作者:silly8543
链接:https://blog.csdn.net/cen50958/article/details/103466659