Firewall

选项
-h, --help # 显示帮助信息;
-V, --version # 显示版本信息. (这个选项不能与其他选项组合);
-q, --quiet # 不打印状态消息;
状态
--state # 显示firewalld的状态;
--reload # 不中断服务的重新加载;
--complete-reload # 中断所有连接的重新加载;
--runtime-to-permanent # 将当前防火墙的规则永久保存;
--check-config # 检查配置正确性;
日志
--get-log-denied # 获取记录被拒绝的日志;
--set-log-denied=<value> # 设置记录被拒绝的日志,只能为 'all','unicast','broadcast','multicast','off' 其中的一个;
# 查看设置
firewall-cmd --version # 查看版本
firewall-cmd --help # 查看帮助
firewall-cmd --state # 显示状态
firewall-cmd --get-active-zones # 查看区域信息
firewall-cmd --get-zone-of-interface=eth0 # 查看指定接口所属区域
firewall-cmd --panic-on # 拒绝所有包
firewall-cmd --panic-off # 取消拒绝状态
firewall-cmd --query-panic # 查看是否拒绝
firewall-cmd --reload # 更新防火墙规则
示例
# 将接口添加到区域,默认接口都在public
firewall-cmd --zone=public --add-interface=eth0
# 设置默认接口区域,立即生效无需重启
firewall-cmd --set-default-zone=public
# 查看所有打开的端口:
firewall-cmd --zone=dmz --list-ports
# 加入一个端口到区域:
firewall-cmd --zone=dmz --add-port=8080/tcp
# 显示支持的区域列表
firewall-cmd --get-zones
# 设置为家区域
firewall-cmd --set-default-zone=home
# 查看当前区域
firewall-cmd --get-active-zones
# 显示当前区域的接口
firewall-cmd --get-zone-of-interface=enp03s
# 显示所有公共区域(public)
firewall-cmd --zone=public --list-all
# 临时修改网络接口(enp0s3)为内部区域(internal)
firewall-cmd --zone=internal --change-interface=enp03s
# 永久修改网络接口enp03s为内部区域(internal)
firewall-cmd --permanent --zone=internal --change-interface=enp03s
服务管理
# 显示服务列表 Amanda, ftp, Samba和tftp等最重要的服务已经被FirewallD提供相应的服务,可以使用如下命令查看:
firewall-cmd --get-services
# 允许ssh服务通过(注:在 0.9.4 版本的firewalld上,不存在--enable 或 --disable 参数来开关服务。 )
firewall-cmd --enable service=ssh
# 禁止SSH服务通过
firewall-cmd --disable service=ssh
# 打开TCP的8080端口
firewall-cmd --enable ports=8080/tcp
# 临时允许Samba服务通过600秒
firewall-cmd --enable service=samba --timeout=600
# 显示当前服务
firewall-cmd --list-services
# 添加HTTP服务到内部区域(internal)
firewall-cmd --permanent --zone=internal --add-service=http 
# 在不改变状态的条件下重新加载防火墙
firewall-cmd --reload
端口管理
# 打开443/TCP端口
firewall-cmd --add-port=443/tcp
# 阻止443/tcp开放
firewall-cmd --remove-port=443/tcp
# 永久打开3690/TCP端口 --permanent
firewall-cmd --add-port=3690/tcp --permanent 
# 永久打开端口需要reload一下,临时打开不用,如果用了reload,临时打开的端口将失效。
# 查看防火墙添加的端口
firewall-cmd --list-all
IP伪装
firewall-cmd --query-masquerade #检查是否允许伪装IP
firewall-cmd --add-masquerade #允许防火墙伪装IP
firewall-cmd --remove-masquerade #禁止防火墙伪装IP
端口转发
端口转发可以将指定地址访问指定的端口时,将流量转发至指定地址的指定端口。转发的目的如果不指定ip的话就默认为本机,如果指定了ip却没指定端口,则默认使用来源端口。
如果配置好端口转发之后不能用,可以检查:1.比如我将 80 端口转发至8080端口,首先检查本地的80端口和目标的8080端口是否开放监听了;2.其次检查是否允许伪装IP,没允许的话要开启伪装IP。
# 将80端口的流量转发至8080
firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080 
# 将80端口的流量转发至192.168.0.1
firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.0.1 
# 将80端口的流量转发至192.168.0.1的8080端口
firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.0.1:toport=8080 
>当我们想把某个端口隐藏起来的时候,就可以在防火墙上阻止那个端口访问,然后再开一个不规则的端口,之后配置防火墙的端口转发,将流量转发过去。
>端口转发还可以做流量分发,一个防火墙拖着好多台运行着不同服务的机器,然后用防火墙将不同端口的流量转发至不同机器。
结束。
posted @ 2023-01-13 10:57  巴州夜雨  阅读(59)  评论(0编辑  收藏  举报