Linux教程(18)- Linux防火墙

时间:2024-04-10 13:59:23

防火墙(Firewall),也称防护墙,是由Check Point 创立者Gil Shwed 于1993 年发明并引入国际互联网

它是一种位于内部网络与外部网络之间的网络安全系统,它实际上是一种隔离技术

网络层防火墙–可视为一种 IP 封包过滤器

较新的防火墙能利用封包的多样属性来进行过滤,例如:来源IP 地址、来源端口号、目的 IP 地址或端口号、服务类型(如HTTP 或是 FTP)。也能经由通信协议、TTL 值、来源的网域名称或网段…等属性来进行过滤。

应用层防火墙

应用层防火墙可以拦截进出某应用程序的所有封包,并且*其他的封包

防火墙借由监测所有的封包并找出不符规则的内容,可以防范电脑蠕虫或是木马程序的快速蔓延。不过就实现而言,这个方法既烦且杂(软件有千千百百种啊),所以大部分的防火墙都不会考虑以这种方法设计。

根据侧重不同,可分为:包过滤型防火墙、应用层网关型防火墙、服务器型防火墙。

数据库防火墙
数据库防火墙是一款基于数据库协议分析与控制技术的数据库安全防护系统。基于主动防御机制,实现数据库的访问行为控制、危险操作阻断、可疑行为审计。

数据库防火墙通过SQL 协议分析,根据预定义的禁止和许可策略让合法的SQL 操作通过,阻断非法违规操作,形成数据库的外围防御圈,实现SQL 危险操作的主动预防、实时审计。

防火墙的基本特征
1)内部网络和外部网络之间的所有网络数据流都必须经过防火墙;
2)只有符合安全策略的数据流才能通过防火墙;
3)防火墙自身应具有非常强的抗攻击免疫力;
4)应用层防火墙具备更细致的防护能力;
5)数据库防火墙针对数据库恶意攻击的阻断能力;
6)防火墙能强化安全策略;
7)防火墙能有效地记录Internet 上的活动;
8)防火墙限制暴露用户点。
9)防火墙能够用来隔开网络中一个网段与另一个网段。这样,能够
防止影响一个网段的问题通过整个网络传播。
10)防火墙是一个安全策略的检查站。所有进出的信息都必须通过
防火墙,防火墙便成为安全问题的检查点,使可疑的访问被拒绝于
门外。

Linux中的防火墙-firewalld

Linux内核包含一个强大的网络过滤子系统:netfilter

Netfilter允许Linux对每个数据包进行检查。无论是进入,离开还是转发的数据包,在到达用户的组件之间,都会进行检查,修改,丢弃或者拒绝。他是Redhat 7中构建防火墙的主要模块

红帽7之前,iptables就是用来和netfilter沟通的程序,该工具比较低级,管理防火墙可能具有挑战性

Redhat 7以上使用了firewalld,之前只用的都是iptables。Firewalld中引入了域的概念

Firewalld.service和iptables.service以及ip6tables.service,ebtables.service服务彼此冲突。

Systemctl mask 服务d.service,用来屏蔽不需要的服务。

Firewall的是Redhat 7系统中默认的防火墙工具,可以支持临时和永久配置,支持区域功能。可以使用图形化工具firewall-config和命令工具firewall-cmd共同管理

Firewalld把网络流量分成多个区域,从而简化防火墙管理。

Firewalld根据数据包中的源IP地址,将流量转入相应区域。没有匹配到的流量,也会转入默认区域

大多数区域都会允许某些特点端口和协议(631/udp,ssh)。如果流量在某一个区域中没有被允许,则会拒绝。

Linux教程(18)- Linux防火墙
Linux教程(18)- Linux防火墙

图形化设置防火墙-firewall-config
执行firewall-config 命令即可看到firewalld 的防火墙图形化管理工具,真的很强大,可以完成很多复杂的工作。

Linux教程(18)- Linux防火墙
重新载入
Linux教程(18)- Linux防火墙
Linux教程(18)- Linux防火墙
Linux教程(18)- Linux防火墙
Linux教程(18)- Linux防火墙
Linux教程(18)- Linux防火墙
Linux教程(18)- Linux防火墙

命令行设置防火墙-firewall-cmd
–get-default-zone 查询默认的区域名称;
–set-default-zone=<区域名称> 设置默认的区域,永久生效;
–get-zones 显示可用的区域;
–get-services 显示预先定义的服务;
–get-active-zones 显示当前正在使用的区域;
–add-source= 将来源于此IP 或子网的流量导向指定的区域。
–remove-source= 不再将此IP 或子网的流量导向某个指定区域
–list-all 显示当前区域的网卡配置参数,资源,端口以及服务等信息;
–list-all-zones 显示所有区域的网卡配置参数,资源,端口以及服务等信息;
–add-service=<服务名> 设置默认区域允许该服务的流量。
–add-port=<端口号/协议> 允许默认区域允许该端口的流量。
–remove-service=<服务名> 设置默认区域不再允许该服务的流量。
–remove-port=<端口号/协议> 允许默认区域不再允许该端口
–reload 让“永久生效”的配置规则立即生效,覆盖当前的。
–query-service=<服务名>查询服务是否被允许
–permanent 配置永久生效

Linux教程(18)- Linux防火墙
Linux教程(18)- Linux防火墙

允许https 服务流量通过public 区域,要求立即生效且永久有
Linux教程(18)- Linux防火墙

不允许https 服务流量通过public 区域,要求立即生效且永久有效
Linux教程(18)- Linux防火墙

允许TCP的8080 与8081 端口流量通过public 区域,立即生效且永久生效,并且查看是否生效。
Linux教程(18)- Linux防火墙
Linux教程(18)- Linux防火墙
删除
Linux教程(18)- Linux防火墙

命令行设置防火墙-富规则
防火墙中的规则:标准规则,直接规则(不用),富规则。

firewalld 富规则为管理员提供了一种表达性语言,通过这种语言可表达firewalld 的基本语法中未涵盖的自定义的防火墙规则。比如允许某个域访问,同时拒绝某个域访问。

–add-rich-rule=’RULE’:向指定域中添加RULE;
–remove-rich-rule=’RULE’:从指定域中移除RULE
–query-rich-rule=’RULE’:查询RULE 是否已添加到指定域
若存在返回0,不存在返回1;
–list-rich-rule:输出指定域的所有富规则。

拒绝来自dmz 区域中IP 地址为192.168.0.11 的所有流量
firewall-cmd –permanent –zone=dmz –add-rich-rule=’rule family=ipv4 source address=192.168.0.11/32reject’

允许来自172.16.0.0/16 网段访问
firewall-cmd –permanent –add-rich-rule=’rule family=ipv4 source address=172.160.0/16 accept’

拒绝192.168.0.100 主机访问本地的samba 服务。
firewall-cmd –permanent –add-rich-rule=’rule family=ipv4 source address=192.168.0.100/24 service name=samba reject’