firewall-cmd [选项 … ]
案例1.通用选项
-h, --help # 显示帮助信息;
[root@dsrw ~]# firewall-cmd -h
Usage: firewall-cmd [OPTIONS...]
General Options
-h, --help Prints a short help text and exists
-V, --version Print the version string of firewalld
-q, --quiet Do not print status messages
Status Options
--state Return and print firewalld state
--reload Reload firewall and keep state information
--complete-reload Reload firewall and lose state information
-V, --version # 显示版本信息. (这个选项不能与其他选项组合);
[root@dsrw ~]# firewall-cmd -V
0.6.3
-q, --quiet # 不打印状态消息
[root@dsrw ~]# firewall-cmd -q
案例2.状态选项
--state # 显示firewalld的状态;
[root@dsrw ~]# firewall-cmd --state
Running
--reload # 不中断服务的重新加载;
[root@dsrw ~]# firewall-cmd --reload
success
--complete-reload # 中断所有连接的重新加载;
[root@dsrw ~]# firewall-cmd --complete-reload
success
--runtime-to-permanent # 将当前防火墙的规则永久保存;
[root@dsrw ~]# firewall-cmd --runtime-to-permanent
success
--check-config # 检查配置正确性;
[root@dsrw ~]# firewall-cmd --check-config
success
案例3.日志选项
--get-log-denied # 获取记录被拒绝的日志;
[root@dsrw ~]# firewall-cmd --get-log-denied
off
--set-log-denied=<value> # 设置记录被拒绝的日志,只能为 'all','unicast','broadcast','multicast','off' 其中的一个;
[root@dsrw ~]# firewall-cmd --set-log-denied=all
success
[root@dsrw ~]# firewall-cmd --get-log-denied
all
案例4.zone区域相关命令
--get-zones:显示可用的区域
[root@dsrw ~]# firewall-cmd --get-zones
block dmz drop external home internal libvirt public trusted work
--get-default-zone:查询默认的区域名称
[root@dsrw ~]# firewall-cmd --get-default-zone
public
--set-default-zone=<区域名称>:设置默认的区域
[root@dsrw ~]# firewall-cmd --set-default-zone=public
Warning: ZONE_ALREADY_SET: public
success
--get-active-zones:显示当前正在使用的区域与网卡名称
[root@dsrw ~]# firewall-cmd --get-active-zones
libvirt
interfaces: virbr0
public
interfaces: ens160
--get-zone:网卡对应区域
[root@dsrw ~]# firewall-cmd --get-zone-of-interface=ens160
public
--list-all:显示当前区域的网卡配置参数、资源、端口以及服务等信息
[root@dsrw ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens160
sources:
services: cockpit dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
--list-all-zones:显示所有区域的网卡配置参数、资源、端口以及服务等信息
[root@dsrw ~]# firewall-cmd --list-all-zones
block
target: %%REJECT%%
......
dmz
target: default
......
drop
target: DROP
......
external
target: default
......
home
target: default
......
internal
target: default
......
libvirt (active)
target: ACCEPT
......
public (active)
target: default
......
trusted
target: ACCEPT
......
work
target: default
......
案例5.services服务相关命令
---get-services:列出服务列表中所有可管理的服务
[root@dsrw ~]# firewall-cmd --get-services
RH-Satellite-6 amanda-client amanda-k5-client amqp amqps apcupsd audit bacula bacula-client bgp bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc ceph ceph-mon cfengine cockpit ......
--add-service::设置默认区域允许该填加服务
[root@dsrw ~]# firewall-cmd --zone=public --add-service=http
Success
--list-services:显示当前区域服务信息
[root@dsrw ~]# firewall-cmd --zone=public --list-services
http
--permanent --add-service=https:#永久开放https
[root@dsrw ~]# firewall-cmd --permanent --add-service=https
success
--query-service=https #查看https服务是否放开
[root@dsrw ~]# firewall-cmd --query-service=https
yes
--remove-service=<服务名>:设置默认区域不再允许该服务的流量
[root@dsrw ~]# firewall-cmd --remove-service=https
success
[root@dsrw ~]# firewall-cmd --query-service=https
No
案例6.Port端口相关命令
--add-port:加一个端口到指定区域
[root@dsrw ~]# firewall-cmd --zone=public --add-port=8888/tcp
Success
--list-ports:显示指定区域端口
[root@dsrw ~]# firewall-cmd --zone=public --list-ports
8888/tcp
--remove-port:删除一个端口到指定区域
[root@dsrw ~]# firewall-cmd --remove-port=8888/tcp
Success
增加一组端口到指定区域
root@dsrw ~]# firewall-cmd --zone=public --add-port=8080-8085/tcp
Success
案例7.Interface网卡相关命令
--remove-interface=<网卡名称 >:设置默认区域删除端口
[root@dsrw ~]# firewall-cmd --zone=public --remove-interface=ens160
Success
--add-interface:设置默认区域填加端口
[root@dsrw ~]# firewall-cmd --zone=public --add-interface=ens160
success
–change-interface=<网卡名称>:将某个网卡与区域进行关联
[root@dsrw ~]# firewall-cmd --zone=dmz --change-interface=ens160
success
[root@dsrw ~]# firewall-cmd --get-zone-of-interface=ens160
dmz
案例8.伪装 IP
# 检查是否允许伪装IP
[root@dsrw ~]# firewall-cmd --query-masquerade
No
# 允许防火墙伪装IP
[root@dsrw ~]# firewall-cmd --add-masquerade
success
[root@dsrw ~]# firewall-cmd --query-masquerade
Yes
# 禁止防火墙伪装IP
[root@dsrw ~]# firewall-cmd --remove-masquerade
success
[root@dsrw ~]# firewall-cmd --query-masquerade
no
案例9.端口转发
命令格式:
firewall-cmd--permanent--zone=--add-forward-port=port=<源端口号>:proto=<协议>:toport=<目标端口号>:toaddr=<目标IP地址>
把原本访问本机8888端口的流量转发到22端口,要求长期有效。
[root@dsrw ~]#firewall-cmd --permanent --zone=public --add-forward-port=port=8888:proto=
tcp:toport=22 : toaddr=192.168.10.2
[root@dsrw ~]# firewall-cmd --reload
success
Linux服务器2访问:
[root@dsrw ~]# ssh -p 8888 192.168.10.2
root@192.168.10.2's password:
Activate the web console with: systemctl enable --now cockpit.socket
Last login: Sat Dec 17 11:00:28 2022
案例10.直接模式
--direct:例如拒绝linux服务器2访问linux服务器1的22端口
[root@dsrw ~]# firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -s 192.168.10.4 -p tcp --dport 22 -j REJECT
Success
Linux服务器2:
[root@dsrw ~]# ssh 192.168.10.2
ssh: connect to host 192.168.10.2 port 22: Connection refused
允许linux服务器2访问linux服务器1的22端口
[root@dsrw ~]# firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -s 192.168.10.4 -p tcp --dport 22 -j ACCEPT
success
Linux服务器2:
[root@dsrw ~]# ssh 192.168.10.2
root@192.168.10.2's password:
Activate the web console with: systemctl enable --now cockpit.socket
Last login: Fri Dec 16 21:52:25 2022 from 192.168.10.4
案例11.富规则的设置
富规则也叫复规则,表示更细致、更详细的防火墙策略配置,它可以针对系统服务、端口号、源地址和目标地址等诸多信息进行更有针对性的策略配置。它的优先级在所有的防火墙策略中也是最高的。
在指定的区域添加一条富语言规则:拒绝192.168.10.0/24网段的所有用户访问本机的ssh服务(22端口)
[root@dsrw ~]#firewall-cmd --permanent --zone=public --add-rich-rule=
"rule family="ipv4" source address="192.168.10.0/24" service name="ssh" reject"
Success
[root@dsrw ~]# firewall-cmd --reload
success
Linux服务器2测试
[root@dsrw ~]# ssh 192.168.10.2
ssh: connect to host 192.168.10.2 port 22: Connection refused
[root@dsrw ~]# firewall-cmd --zone=public --list-rich-rules
rule family="ipv4" source address="192.168.10.0/24" service name="ssh" reject
查询在指定的区删除一条富语言规则
[root@dsrw ~]# firewall-cmd --permanent --zone=public --query-rich-rule="rule family="ipv4" source address="192.168.10.0/24" service name="ssh" reject"
Yes
列出指定区里的所有富语言规则
[root@dsrw ~]# firewall-cmd --permanent --zone=public --list-rich-rules
rule family="ipv4" source address="192.168.10.0/24" service name="ssh" reject
删除在指定的区删除一条富语言规则
[root@dsrw ~]# firewall-cmd --permanent --zone=public --remove-rich-rule="rule family="ipv4" source address="192.168.10.0/24" service name="ssh" reject"
success
[root@dsrw ~]# firewall-cmd --reload
案例12.firewalld防火墙的紧急模式
--panic-on # 拒绝所有包,开启应急状况模式,紧急模式会切断一切网络连接,因此在远程管理服务器时,在按下回车键前一定要慎重。
[root@dsrw ~]# firewall-cmd --panic-on
success
--panic-off # 取消拒绝状态,关闭应急状况模式,关闭紧急模式只能本地登录关闭。
[root@dsrw ~]# firewall-cmd --panic-off
Success
--query-panic # 查看是否拒绝
[root@dsrw ~]# firewall-cmd --query-panic
no
案例13.防火墙规则的备份
所有针对public区域编写的永久添加的规则都会写入备份文件(–permanent) /etc/firewalld/zones/public.xml
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
请登录后查看评论内容