企业Web安全防御:防火墙概述

防火墙概念:

  • 网络安全设备(系统)
  • 用于加强网络间的访问控制
  • 防止外部用户非法使用内部网的资源
  • 保护内部用户的设备不被破坏
  • 防止内部网络的敏感数据被窃取
  • 能根据网络安全策略控制(允许、拒绝、检测)出入网络的信息流,且本身具有较强的抗攻击能力。

防火墙是用于将信任网络和非信任网络隔离的一种技术,它通过制定相应的安全策略,可检测、限制、更改跨越防火墙的数据流,来保护信任网络以防止发生不可预测的、具有潜在破坏性的侵入。

  • 防火墙一般位于网络数据流的必经节点
  • 一般位于路由器的后面,交换机前面
  • 防火墙与网络是串联关系

防火墙的三种工作模式:

  • 路由模式

当防火墙位于内部网络和外部网络之间时,需要将防火墙和内部网络、外部网络以及DMZ(两个防火墙之间的空间)三个区域相连的接口分别配置成不同网段的IP地址,重新规划原有的网络拓扑,此时相当于一台路由器。

企业Web安全防御:防火墙概述_第1张图片

采用路由模式时,可以完成ACL 包(用来控制端口进出的数据包)过滤、ASPF (aspf能够检测试图通过防火墙的应用层协议会话信息,阻止不符合规则的数据报文穿过。针对应用层的包过滤)动态过滤、NAT 转换等功能。然而,路由模式需要对网络拓扑进行修改(内部网络用户需要更改网关、路由器需要更改路由配置等)

  • 透明模式(桥接)

如果防火墙采用透明模式进行工作,则可以避免改变拓扑结构造成的麻烦,此时防火墙对于子网用户和路由器来说是完全透明的。也就是说,用户完全感觉不到防火墙的存在。

采用透明模式时,只需要在网络中像放置网桥(交换机)一样插入该防火墙设备即可,无需修改任何已有的配置。与路由模式相同,IP 报文同样经过相关的过滤检查(但是IP 报文中的源或目的地址不会改变),内部网络用户依旧受到防火墙的保护。

  • 混合模式

如果防火墙既存在工作在路由模式的接口(接口具有IP 地址),又存在工作在透明模式的接口(接口无IP 地址),则防火墙工作在混合模式下。混合模式主要用于透明模式作双机备份的情况,此时启动VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)功能的接口需要配置IP 地址,其它接口不配置IP地址。

企业Web安全防御:防火墙概述_第2张图片

防火墙的典型功能:

  • 访问控制
  • 传输安全(VPN)
  • 路由功能
  • 地址转换
  • 用户认证
  • 服务代理
  • 攻击检测和防御

访问控制机制:

自主访问控制:

  • 主体访问控制:特权、口令
  • 客体访问控制:ACL、ACE

强制访问控制(MAC)

防火墙实现监视和控制:

服务控制:确定哪些服务可以被访问

方向控制:对于特定的服务,可以确定允许哪个方向能够通过防火墙

用户控制:根据用户来控制对服务的访问

行为控制:控制一个特定的服务的行为。

访问控制与审核:

记录进出流量,可作为审核入侵检测系统、系统日志的有效补充。

内容监控与过滤:

应用层防护:

支持常见协议、基于误用的自定义规则、大都支持碎片重组。

URL过滤:

利用黑名单、白名单、自定义区分URL

对网页挂马、钓鱼网站有很好的效果

 

传输安全(VPN)

目前VPN主要采用四项技术来保证安全,这四项技术分别是隧道技术(Tunneling)、加解密技术(Encryption & Decryption)、密钥管理技术(Key Management)、使用者与设备身份认证技术(Authentication)。

1.隧道技术:

隧道技术是VPN的基本技术类似于点对点连接技术,它在公用网建立一条数据通道(隧道),让数据包通过这条隧道传输。隧道是由隧道协议形成的,分为第二、 三层隧道协议。第二层隧道协议是先把各种网络协议封装到PPP中,再把整个数据包装入隧道协议中。这种双层封装方法形成的数据包靠第二层协议进行传输。第 二层隧道协议有L2F、PPTP、L2TP等。L2TP协议是目前IETF的标准,由IETF融合PPTP与L2F而形成。

第三层隧道协议是把各种网络协议直接装入隧道协议中,形成的数据包依靠第三层协议进行传输。第三层隧道协议有VTP、IPSec等。IPSec(IP Security)是由一组RFC文档组成,定义了一个系统来提供安全协议选择、安全算法,确定服务所使用密钥等服务,从而在IP层提供安全保障。

2.加解密技术:

加解密技术是数据通信中一项较成熟的技术,VPN可直接利用现有技术。

3.密钥管理技术:

密钥管理技术的主要任务是如何在公用数据网上安全地传递密钥而不被窃取。现行密钥管理技术又分为SKIP与ISAKMP/OAKLEY两种。SKIP主要 是利用Diffie-Hellman的演算法则,在网络上传输密钥;在ISAKMP中,双方都有两把密钥,分别用于公用、私用。

4.使用者与设备身份认证技术:

使用者与设备身份认证技术最常用的是使用者名称与密码或卡片式认证等方式。

 

防火墙分类:

  • 软件防火墙
  • 硬件防火墙
  • 芯片防火墙

防火墙的局限

  • 防火墙不能防止内部网络攻击
  • 不能防止拨号攻击
  • 不能防止数据驱动式攻击
  • 不能防范利用服务器漏洞或者通信协议的缺陷进行的攻击
  • 一般不提供对网络滥用的防范
  • 不能防范内部用户主动泄密的行为
  • 防火墙策略配置不当或者自身漏洞会导致安全隐患

防火墙评估参数:

  • 吞吐量
  • 时延
  • 丢包率
  • 并发连接数
  • 工作模式
  • 配置和管理方式
  • 接口的数量和类型
  • 日志和审计功能
  • 可用性参数以及其他参数

 

Linux防火墙架构:

 

Iptables防火墙架构:

Iptables其实不是真正的防火墙,我们可以把它理解成一个客户端代理,用户通过iptables这个代理将用户的安全设定执行到对应的“安全框架”中,这个安全框架才是真正的防火墙,叫netfilter

netfilter是防火墙真正的安全框架,位于内核空间,Iptables是一个命令行工具,位于用户空间,我们用这个工具来操作真正的框架。

netfilter/iptables组成Linux下的包过滤防火墙,他可以完成封包过滤、封包重定向、和网络地址转换(NAT)等功能

netfilter是Linux核心层内部的一个数据包处理模块,他可以NAT、数据包内容修改、数据包过滤的防火墙功能。

所以说,虽然我们使用service iptables start启动iptables"服务",但是其实准确的来说,iptables并没有一个守护进程,所以并不能算是真正意义上的服务,而应该算是内核提供的功能。

 

Iptables:

当客户端访问服务器的web服务时,客户端发送报文到网卡,而tcp/ip协议栈是属于内核的一部分,所以,客户端的信息会通过内核的TCP协议传输到用户空间中的web服务中,而此时,客户端报文的目标终点为web服务所监听的套接字(IP:Port)上,当web服务需要响应客户端请求时,web服务发出的响应报文的目标终点则为客户端,这个时候,web服务所监听的IP与端口反而变成了原点,我们说过,netfilter才是真正的防火墙,它是内核的一部分,所以,如果我们想要防火墙能够达到"防火"的目的,则需要在内核中设置关卡,所有进出的报文都要通过这些关卡,经过检查后,符合放行条件的才能放行,符合阻拦条件的则需要被阻止,于是,就出现了input关卡output关卡,只不过在iptables中不叫“关卡“而叫“链”。

企业Web安全防御:防火墙概述_第3张图片

其实我们上面描述的场景并不完善,因为客户端发来的报文访问的目标地址可能并不是本机,而是其他服务器,当本机的内核支持IP_FORWARD时,我们可以将报文转发给其他服务器,所以,这个时候,我们就会提到iptables中的其他"链",他们就是  "路由前"、"转发"、"路由后",他们的英文名是PREROUTINGFORWARDPOSTROUTING

也就是说,当我们启用了防火墙功能时,报文需要经过如下关卡,也就是说,根据实际情况的不同,报文经过"链"可能不同。如果报文需要转发,那么报文则不会经过input链发往用户空间,而是直接在内核空间中经过forward链和postrouting链转发出去的。

企业Web安全防御:防火墙概述_第4张图片

 到本机某进程的报文:PREROUTING --> INPUT

由本机转发的报文:PREROUTING --> FORWARD --> POSTROUTING

由本机的某进程发出报文(通常为响应报文):OUTPUT --> POSTROUTING

 

这些"关卡"在iptables中为什么被称作"链"呢?

当报文经过这些关卡的时候,则必须匹配这个关卡上的规则,但是,这个关卡上可能不止有一条规则,而是有很多条规则,当我们把这些规则串到一个链条上的时候,就形成了"链",每个经过这个"关卡"的报文,都要将这条"链"上的所有规则匹配一遍,如果有符合条件的规则,则执行规则对应的动作。企业Web安全防御:防火墙概述_第5张图片

 

我们把具有相同功能的规则的集合叫做"表",所以说,不同功能的规则,我们可以放置在不同的表中进行管理,而iptables已经为我们定义了4种表,每种表对应了不同的功能,而我们定义的规则也都逃脱不了这4种功能的范围。

链是数据包传输的路径,表示功能的集合。

filter表:负责过滤功能,防火墙;内核模块:iptables_filter

nat表:network address translation,网络地址转换功能;内核模块:iptable_nat

mangle表:拆解报文,做出修改,并重新封装 的功能;内核模块:iptable_mangle

raw表:关闭nat表上启用的连接追踪机制;内核模块:iptable_raw

表和链的关系:

raw表中的规则可以被哪些链使用:PREROUTING、OUTPUT

mangle表中的规则可以被哪些链使用:PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING

nat表中的规则可以被哪些链使用:PREROUTING、OUTPUT、FORWARD(centos7中还有INPUT,centos6中没有)

filter表中的规则可以被哪些链使用:INPUT、FORWARD、OUTPUT

四个表中的规则处于同一条链的目前只有output链,他就是传说中的神圣万能关卡。

其实我们还需要注意一点,因为数据包经过一个"链"的时候,会将当前链的所有规则都匹配一遍,但是匹配时总归要有顺序,我们应该一条一条的去匹配,而且我们说过,相同功能类型的规则会汇聚在一张"表"中,那么,哪些"表"中的规则会放在"链"的最前面执行呢,这时候就需要有一个优先级的问题。

优先级:raw---->mangle---->nat---->filter

数据经过防火墙的流程:

企业Web安全防御:防火墙概述_第6张图片

 

处理动作(target):

  • ACCEPT:允许数据包通过。
  • DROP:直接丢弃数据包,不给任何回应信息,这时候客户端会感觉自己的请求泥牛入海了,过了超时时间才会有反应。
  • REJECT:拒绝数据包通过,必要时会给数据发送端一个响应的信息,客户端刚请求就会收到拒绝的信息。
  • SNAT:源地址转换,解决内网用户用同一个公网地址上网的问题。
  • MASQUERADE:是SNAT的一种特殊形式,适用于动态的、临时会变的ip上。
  • DNAT:目标地址转换。
  • REDIRECT:在本机做端口映射。
  • LOG:在/var/log/messages文件中记录日志信息,然后将数据包传递给下一条规则,也就是说除了记录以外不对数据包做任何其他操作,仍然让下一条规则去匹配。

Iptables指令:

命令格式:

企业Web安全防御:防火墙概述_第7张图片

iptables [-t table] command chain-name [match][target/jump]
iptables -P chain-name DROP/ACCEPT/REJECT

  -t 参数用来指定规则表,内建的规则表有三个,分别是:natmangle 和 filter

          当未指定规则表时,则一律视为是 filter

COMMAND:

-P :定义默认策略。

-L:查看iptables规则列表

-A:在规则列表的最后添加一条规则

-I:在指定的位置插入一条规则

-D:从规则列表中删除一条规则

-R:替换规则列表中的某条规则

-F:删除表中的所有规则

-Z:数据包计数器和流量计数器归零。

-X:删除自定义链


 匹配参数(match)

-i (后跟网络接口号):指定数据包流入的网络接口

-o(后跟网络接口号) :指定数据包流入的网络接口

-p:指定匹配的协议,如TCP/UDP/ICMP等

-s:指定数据包匹配的源地址(或子网)

--tcp-flags TCP连接标记:指定对TCP连接的标记进行匹配

--sport(后跟源端口号):指定数据包匹配的源端口号

--dport(后跟目的端口号):指定数据包匹配的目的端口号

 -j:指定了当前的条件都满足时,iptables执行的动作。

-m(后跟匹配的模块):指定数据包规则所使用的过滤模块

常见-m模块有:

state:状态模块

xt_mac.ko:硬件地址

 

--state:一些数据包的状态主要有:INVALID:无效的数据包,比如资料破损的数据包状态。

ESTABLISHED:已经连线成功的连线状态。

NEW:想要新建立连线的数据包状态。

RELATED:表示这个数据包是与我们主机发送出去的数据包有关。

 

 

 

你可能感兴趣的:(企业安全,企业web安全,防火墙,iptables)