LInux防火墙firewall的常用规则
一、firewall服务的启用和停止
1、开启firewall服务
systemctl start firewalld
2、关闭firewall服务
systemctl stop firewalld
3、重启firewall服务
systemctl restart firewalld
4、查看防火墙状态
systemctl status firewalld
active表示防火墙开启,inacative表示防火墙关闭
二、firewall防火墙规则的添加
1、查看当前默认防火墙域:(默认情况下返回public)
firewall-cmd --get-default-zone
2、查看所有区域
[root@x ~]# firewall-cmd --get-zones
block dmz drop external home internal public trusted work
[root@ ~]#
关于区域概念与作用简介(对外来数据包通过的信任等级由高到低):
域 | 效果 |
---|---|
trusted | 表示绝对的信任,允许接受所有进入的数据包。 |
home | 拒绝流入的数据包,除非与输出流量数据包相关或是 ssh,mdns,ipp-client,samba-client 与 dhcpv6-client 服务则允许。 |
internal | 拒绝流入的数据包,除非与输出流量数据包相关或是 ssh,mdns,ipp-client,samba-client 与 dhcpv6-client 服务则允许。 |
work | 拒绝流入的数据包,除非与输出流量数据包相关或是 ssh,ipp-client 与 dhcpv6-client 服务则允许。 |
public | 拒绝流入的数据包,除非与输出流量数据包相关或是 ssh,dhcpv6-client 服务则允许。 (默认) |
external | 拒绝流入的数据包,除非与输出流量数据包相关或是 ssh 服务则允许。 |
dmz | 拒绝流入的数据包,除非与输出流量数据包相关或是 ssh 服务则允许。 |
block | 拒绝流入的数据包,除非与输出流量数据包相关。 |
drop | 表示绝对的不信任,拒绝流入的数据包,除非与输出流量数据包相关。 |
firewall-cmd --set-default-zone=public #zone=<想要让防火墙对收到数据包采取什么态度,取决于选择的域>
4、查看当前默认域的规则
[root@ ~]# firewall-cmd --list-all
public (active) //开启的域
target: default
icmp-block-inversion: no
interfaces: ens33 //与该防火墙捆绑的网卡
sources:
services: dhcpv6-client ssh //对外允许的服务
ports: //对外开放的端口
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules: //添加的命令行格式规则
查询端口是否开放
firewall-cmd --query-port=8080/tcp
开放80端口
firewall-cmd --permanent --add-port=80/tcp
移除端口
firewall-cmd --permanent --remove-port=8080/tcp
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload
参数解释
1、firwall-cmd:是Linux提供的操作firewall的一个工具;
2、–permanent:表示设置为持久;
3、–add-port:标识添加的端口;