firewalld

Firewalld

一.概述

firewalld防火墙是Centos7系统默认的防火墙管理工具,取代了之前的iptables防火墙,也是工作在网络层,属于包过滤防火墙。

二.配置文件

/etc/firewalld (优先加载)
/usr/lib/firewalld (默认配置)

三.firewalld 与 iptables 的区别

Firewalld iptables
配置文件 /etc/firewalld /usr/lib/firewalld /etc/sysconfig/iptables
对规则的修改 不需要全部刷新策略,不丢失现行链接 需要全部刷新策略,丢失链接
防火墙类型 动态防火墙 静态防火墙
1)
iptables主要是基于接口,来设置规则,从而判断网络的安全性。 
firewalld是基于区域,根据不同的区域来设置不同的规则,从而保证网络的安全。
2)
iptables 在 /etc/sysconfig/iptables 中储存配置。
firewalld 将配置储存在 /etc/firewalld/(优先加载)和 /usr/lib/firewalld/(默认的配置文件)中的各种 XML 文件里。
3)
使用 iptables 每一个单独更改意味着清除所有旧有的规则和从/etc/sysconfig/iptables 里读取所有新的规则
使用 firewalld 却不会再创建任何新的规则,仅仅运行规则中的不同之处。因此firewalld 可以在运行时间内,改变设置而不丢失
现行连接。

四.firewalld区域

firewalld防火墙为了简化管理,将所有网络流量分为多个区域(zone)。然后根据数据包的源IP地址或传入的网络接口等条件将流量传入相应区域。每个区域都定义了自己打开或者关闭的端口和服务列表。

firewalld防火墙预定义预定义九大区域

trusted(信任区域)允许所有的传入流量

public(公共区域) 允许与ssh或dhcpv6-client预定义服务匹配的传入流量,其余均拒绝。是新添加网络接口的默认区域。

external(外部区域) 允许与 ssh 预定义服务匹配的传入流量,其余均拒绝。 默认将通过此区域转发的IPv4传出流量将进行地址伪装,可用于为路由器启用了伪装功能的外部网络。

internal(内部区域) 默认值时与home区域相同

home(家庭区域) 允许与ssh、ipp-client、mdns、samba-client或dhcpv6-client预定义服务匹配的传入流量,其余均拒绝。

work(工作区域) 允许与 ssh、ipp-client、dhcpv6-client 预定义服务匹配的传入流量,其余均拒绝。

dmz(隔离区域) 允许与 ssh 预定义服务匹配的传入流量,其余均拒绝

block(限制区域) 拒绝所有传入流量。

drop(丢弃区域) 丢弃所有传入流量,并且不产生包含 ICMP的错误响应。

备注:
默认情况的默认区域为public(默认与所有网卡绑定)
激活某个区域,需要将区域与源地址或网卡绑定。

五.firewalld数据包处理规则

1)检查传入数据包的源地址,若源地址与特定区域绑定,则使用该区域的规则过滤数据包。
2)若源地址与特定区域没有绑定,且数据包传入网卡与特定网卡绑定,则使用绑定网卡的区域规则过滤数据包。
3)若源地址没有与特定区域绑定且数据包传入网卡也没有与特定区域绑定,则实验默认区域的过则过滤数据包。
一个区域可以对应多个网卡或源地址
一个网卡或源地址只能关联一个区域。

六.firewalld防火墙配置方法

1.使用firewall-cmd命令行工具
2.使用firewall-config图形工具

1.查询firewall的规则

firewall-cmd --get-default-zone  					#显示当前系统中的默认区域
firewall-cmd --get-active-zones  					#示当前正在使用的区域及其对应的网卡接口
firewall-cmd --list-all-zones  						#显示所有区域及其规则
firewall-cmd --list-all --zone=xxx  				#显示指定区域的所有规则
firewall-cmd --list-services --zone=xxx  			#显示指定区域内允许访问的所有服务
firewall-cmd --list-ports  --zone= 			#显示指定区域内允许访问的所有端口号
firewall-cmd --get-zone-of-interface=  	#显示指定接口绑定的区域

firewalld_第1张图片

2.增加firewall的规则

firewall-cmd --add-interface=xxx --zone=xxx   				 #为指定接口绑定区域
firewall-cmd --add-source=xxx --zone=xxx  					 #为指定源地址绑定区域
firewall-cmd --add-service={服务1,服务2..} --zone=xxx  		 #为指定区域设置允许访问的某项服务
firewall-cmd --add-port=端口/协议 --zone=xxx     			 #为指定区域设置允许访问的某个/某段端口号(包括协议名)
firewall-cmd --add-port=端口1-端口2/协议 --zone=xxx 		`	#为指定区域设置允许访问的连续端口号(包括协议名)
firewall-cmd --add-port={端口1,端口2...} --zone=xxx			#为指定区域设置允许访问的不连续端口号(包括协议名)

firewalld_第2张图片

3.删除firewall的规则

firewall-cmd --remove-interface=xxx --zone=xxx  	#在指定区域删除网卡
firewall-cmd --remove-source=xxx --zone=xxx    		#在指定区域删除源地址

firewalld_第3张图片

4.修改firewall的规则

firewall-cmd --set-default-zone=xxx  				#设置默认区域
firewall-cmd --change-interface=xxx --zone=xxx  	#在指定区域修改网卡
firewall-cmd --change-source=xxx --zone=xxx   		#在指定区域修改源地址

firewalld_第4张图片

七.firewall配置规则生效

1.永久配置(不会立即生效需要重新加载)

firewall-cmd .....  --permanent
firewall-cmd --reload    或   systemctl restart 

2.运行时配置(会立即生效,但firewalld服务重启后即失效)

firewall-cmd ....
firewall-cmd --runtime-to-permanent    #将之前的运行时配置都转换成永久配置

八.地址转换

1.SNAT

firewall-cmd --zone=public --direct --passthrough ipv4 -t nat -A POSTROUTING -s 192.168.111.0/24 -j SNAT --to-source 12.0.0.1

2.DNAT

firewall-cmd --zone=public --direct --passthrough ipv4 -t nat -A PREROUTING -d 12.0.0.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.111.10

你可能感兴趣的:(网络,服务器,linux)