Firewalld上有一些预定义区域,可分别进行自定义,下表介绍了这些初始区域配置
firewalld将所有传入流量划分成区域,每个区域都具有自己的一套规则
任何新网络接口默认区域都将设置为public区域
区域名称 | 默认配置 |
---|---|
trusted | 可信区域,防火墙放行一切流量,等同于关闭防火墙功能 |
home | 区全域内主动发起连接的流入回程数据包允许通过,默认放行ssh,mdns,ipp-client,samba-clent或dhcpv6-client服务 //别人不能连进来,但是区域内发起的请求,回程数据能进来 |
internal | 与home区域相同 |
work | 区域内主动发起连接的流入回程数据包允许通过,放行ssh,dhcpv6-client服务 |
external | 区域内主动发起连接的流入回程数据包允许通过,放行ssh服务匹配,开启地址伪装功能 |
dmz | 区域内主动发起连接的流入回程数据包允许通过,放行ssh服务匹配 |
block | 区域内主动发起连接的流入回程数据包允许通过 |
drop | 对进入该区域的所有数据包丢弃,并且不进行任何回包,区域内主动发起连接的流入回程数据包允许通过 |
public | 默认区域,拒绝除与出站有关的通信或预定义服务(ssh,dhcpv6-client)以外的所有进站通信 |
firewall-cmd --set-default-zone=drop //set 设置 设置默认区域为drop区域
firewall-cmd --reload //firewall重新生效
firewall-cmd --get-default-zone //get 查看 查看默认区域
firewall-cmd --list-all //查看放行了哪些服务
firewall-cmd命令行工具
参数 | 作用 |
---|---|
–get-default-zone | 查访默认的区域名称 |
–set-default-zone=(区域名称) | 设置默认的区域,使其永久生效 |
–list-all | 显示当前区域的网卡配置参数,资源,端口以及服务等信息 |
–list-all-zone | 显示所有区域的网卡配置参数,资源,端口以及服务等信息 |
–get-zones | 显示可用可用的区域 |
–get-active-zones | 显示当前正在使用的区域,来源地址和网卡名称 |
–add-source= | 将源自此IP或子网的流量导向指定的区域 |
–remove-source= | 不再将源自此IP或子网的流量导向这个区域 |
–change-source= | 将源自此IP或子网的流量导向指定到新的区域 |
firewall-cmd --add-source=172.25.250.11 --zone=drop //把源IP为172.25.250.11引入到drop区域
参数 | 作用 |
---|---|
–add-interface=(网卡名称) | 将源自该网卡的所有流量都导向某个指定区域 |
–change-interface=(网卡名称) | 将某个网卡与区域进行关联 |
–get-services | 显示预定义的服务 |
–add-service=(服务名) | 设置默认区域允许该服务的流量 |
–add-port=(端口号/协议) | 设置默认区域允许该端口的流量 |
–remove-service=(服务名) | 设置默认区域不再允许该服务的流量 |
–remove-port=(端口号/协议) | 设置默认区域不再允许该端口的流量 |
–permanent | 让配置永久生效 |
–reload | 让“永久生效”的配置规则立即生效,并覆盖当前的配置规则 |
firewall-cmd --change-interface=ens32 --zone=trusted //将ens32网卡该改变到trusted区域
firewall-cmd --remove-interface=ens32 --zone=trusted //把ens32网卡从trusted区域放出来
firewall-cmd --permanent --add-service=http //最好要加permanent 永久放行http服务
firewall-cmd --list-all //查看当前区域的所有规则
firewall-cmd --get-service //查看放行的服务
firewall-cmd --permanent --add-port=90/tcp //永久放行端口为tcp 90
放行nfs要放行三个服务
firewall-cmd --permanent --add-service=mountd
firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=rpc-bind
可以通过三种方式来管理firewalld
使用命令行工具firewall-cmd
运行时配置
永久时配置 --permanent
使用图形工具firewall-config
打开方式applications->sundry->firewall
使用/etc/firewalld/中的配置文件(不建议)
还有个web端的firewall
cockpit
systemctl start cockpik //开启cockpik服务
firewall有两种模式
runtime临时模式:修改规则马上生效,但如果重启服务则马上失效,测试建议
permanent持久模式:修改规则后需要reload重载服务才会生效,生产建议
firewall-cmd --add-service=http //默认runtime模式,放行80端口
firewall-cmd --permanent --add-service=http //permanent模式下放行80端口
firewall-cmd --reload //需要重启firewall服务
firewalld会对于一个接收到的请求具体使用哪个zone,firewalld通过三种方式来判断的:
? 1.source (来源地址)
? 2.interface (接收请求的网卡)
? 3.firewalld配置的默认区域(zone)