linux firewalld防火墙常用操作

系统操作

加入开机启动
systemctl enable firewalld

启、停
systemctl start firewalld
systemctl stop firewalld

重启、重载
systemctl restart firewalld
firewall-cmd --reload
firewalld 动态管理规则集,所以它不会破坏现有的连接和会话。

查看运行状态
systemctl status firewall-cmd

配置文件位置
/etc/firewalld/{services,zones}/.xml 优先级最高,permanent模式生效的策略会放到这里
/lib/firewalld/{services,zones}/
.xml 优先级要低些,是一些默认配置,可以当做模板使用

每个预定义的区域、服务等都有一个对应的文件:
/usr/lib/firewalld/{zones,services...}

查看

查看防火墙状态,是否是running
firewall-cmd --state

重新载入配置,比如添加规则之后,需要执行此命令
firewall-cmd --reload

列出支持的zone
firewall-cmd --get-zones

查看当前使用的区
firewall-cmd --get-default-zone

查看网卡所在区域:
firewall-cmd --get-zone-of-interface=eth0

查看正在活动的区域:
firewall-cmd --get-active-zones

查看所有规则明细:
firewall-cmd --list-all
firewall-cmd --list-all-zones

查看端口添加的规则
firewall-cmd --list-ports

查看ftp服务是否支持,返回yes或者no
firewall-cmd --query-service ftp

查看指定区域(public)的以端口方式添加的规则
firewall-cmd --zone=public --list-ports

查看指定区域(public)的以服务名添加的规则
firewall-cmd --zone=public --list-services

查看指定区域的所有规则
firewall-cmd --zone=public --list-all

查看firewalldl默认支持的所有服务名列表
firewall-cmd --get-services

查看只通过服务名添加的规则[默认当前激活的公共区域]
firewall-cmd --list-services

修改

添加放行两种方式
1 runtime 临时配置 修改规则马上生效 但是重启则丢失
例如:
firewall-cmd --add-service=ftp
2 permanent 持久配置 修改后需要reload 重载才生效
例如:
firewall-cmd --zone=public --add-port=80/tcp --permanent

添加放行端口
firewall-cmd --add-port=8080/tcp
firewall-cmd --add-port={8081,8082}/tcp
firewall-cmd --add-port={8090..8095}/tcp
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=4990-4999/udp #添加4990-4999 udp端口
#添加常用端口,不指定--zone,默认会添加到默认的区域

添加放行的服务 (服务名称进行放行 --> 本质还是对应的端口)
firewall-cmd --add-service=http
firewall-cmd --add-service=ftp #开放 ftp 服务规则
firewall-cmd --add-service=mysql # 开放mysql端口规则
firewall-cmd --add-service=ssh # 开放ssh端口规则

删除端口
firewall-cmd --remove-port={8090..8095}/tcp
firewall-cmd --zone=public --remove-port=80/tcp --permanent

端口转发-本地
firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8000 --permanent

将同一台服务器上80端口的流量转发至8080
firewall-cmd --list-forward-ports 查看转发
firewall-cmd --remove-forward-port=port=80:proto=tcp:toport=8000 --permanent
firewall-cmd --reload 重载生效

端口转发-ip
将端口转发到另外一台服务器上,在需要的区域中激活 masquerade
firewall-cmd --zone=public --add-masquerade

将本地的80端口的流量转发到IP地址为:10.0.10.15 的远程服务器上的8080端口
。。。。。。

伪装IP
firewall-cmd --query-masquerade # 检查是否允许伪装IP
firewall-cmd --add-masquerade # 允许防火墙伪装IP
firewall-cmd --remove-masquerade # 禁止防火墙伪装IP

自定义一个服务名称
cd /usr/lib/firewalld/services/
cp http.xml nginx.xml
firewall-cmd --reload
firewall-cmd --add-service=nginx

修改服务当前所使用区域:
firewall-cmd --get-default-zone=public
修改默认区
firewall-cmd --set-default-zone=internal

危险命令:[立即生效]
拒绝所有包:firewall-cmd --panic-on
取消拒绝状态: firewall-cmd --panic-off
查看是否拒绝: firewall-cmd --query-panic

posted @ 2022-02-11 10:14  tangshow  阅读(205)  评论(0)    收藏  举报