防火墙(Firewall)

防火墙技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术。 

硬件防火墙:通过硬件和软件的组合,基于硬件的防火墙保护整个内部网络安全。
软件防火墙:通过纯软件,单独使用软件系统来完成防火墙功能,保护安装它的系统。
 
另外:因为iptables是开源的,就安全系数来讲软件防火墙只能用于辅助硬件防火墙,无法做到真正的安全效果。此外软件防火墙也是需要占用硬件资源运行 

防火墙技术的功能主要在于及时发现并处理计算机网络运行时可能存在的安全风险、数据传输等问题,其中处理措施包括隔离与保护,同时可对计算机网络安全当中的各项操作实施记录与检测,以确保计算机网络运行的安全性,保障用户资料与信息的完整性,为用户提供更好、更安全的计算机网络使用体验。

Firewalld防火墙基础

  • 支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具
  • 支持IPv4、IPv6防火墙设置以及以太网桥
  • 支持服务或应用程序直接添加防火墙规则接口
  • 拥有两种配置模式:运行时配置、永久配置

firewalld与iptables 的区别

1、iptables主要是基于接口,来设置规则,从而判断网络的安全性。
firewalld是基于区域,根据不同的区域来设置不同的规则,从而保证网络的安全。与硬件防火墙的设置相类似。

2、iptables在/etc/ sysconfig/iptables中储存配置,
firewalld将配置储存在/etc/firewalld/ ( 优先加载)和/usr/lib/ firewalld/ ( 默认的配置文件)中的各种XML文件里。

3、使用iptables每一个单独更改意味着清除所有旧有的规则和从/etc/sysconfig/iptables里读取所有新的规则。
使用firewalld却不会再创建任何新的规则,仅仅运行规则中的不同之处。因此firewalld可以在运行时间内,改变设置而不丢失现行连接。

4、iptables防火墙类型为静态防火墙,firewalld防火墙类型为动态防火墙

netfilter

位于Linux内核中的包过滤功能体系

称为Linux防火墙的“内核态”

Firewalld/iptables

CentOS7默认的管理防火墙规则的工具

称为Linux防火墙的“用户态”

配置文件:/usr/lib/firewalld 、/etc/firewalld

对规则的修改:不需要全部刷新策略,不丢失现行连接

防火墙类型:动态防火墙

区域介绍:

firewalld为了简化管理,将所有网络流量分为多个区域(zone)。

然后根据数据包的源IP地址或传入的网络接口等条件将流量传入相应区域。每个区域都定义了自己打开或者关闭的端口 和服务列表。

firewalld防火墙9个区域

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

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

3、external(外部区域):允许与ssh预定义服务匹配的传入流量,其余均拒绝。默认将通过此区域转发的IPv4传出流 量将进行地址伪装

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

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

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

7、dmz(隔离区域也称为非军事区域):允许与ssh预定义服务匹配的传入流量,其余均拒绝。

8、block(限制区域):拒绝所有传入流量

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

预定义服务

ssh 远程连接协议

dhcpv6-client 通过与DHCPv6服务器进行报文交互,获取IPv6地址

ipp-client 编程语言交互java python

samba-client 共享资源打印

mdns 主机名解析为不包含本地名称服务器的小型网络中的IP地址。

firewall-cmd --list-all查看默认区域的所有配置

firewall-cmd --get-default-zone 查看默认区域

firewalld检查数据包的源地址规则:

1、若源地址关联到特定的区域(即源地址或接口绑定的区域有冲突),则执行该区域所制定的规则。

2、若源地址未关联到特定的区域(即源地址或接口的绑定的区域没有冲突),则使用传入网络接口的区域并执行该区 域的规则。

3、若网络接口也未关联到特定的区域(即源地址或接口都没有绑定特定的区域),则使用默认区域并执行该区域所制 定的规则。

区域优先级:

原地址绑定的区域>网卡绑定的区域>默认区域

firewall-cmd --set-default-zone=区域 更改区域

显示正在使用的区域和网卡接口:

firewall-cmd --get-active-zones

添加多个服务:firewall-cmd --add-service={....,.....}

firewall-cmd --add-service=.... --add-service=....

永久生效 :最后加--permanent 然后--reload

删除永久规则:firewalld-cmd --remove-service=... --zone=.... --permanent

端口管理:firewall-cmd --add-port=80/tcp firewall-cmd --add-port={22,80,24,23}/tcp

firewall-cmd --add-port=21-25/tcp

添加源地址: firewall-cmd --add-source=192.168.179.0/24 指定网段(添加多个再--add-source)