
硬件防火墙可以实现 CIA 的机密性( Confidentiality )、完整性( Integrity )、可用性( Availability )这三种类型的对应策略。小企业会在局域网和互联网的边界部署防火墙。
防火墙可分为软件防火墙和硬件防火墙。软件防火墙又可分为个人防火墙和网关防火墙。
个人防火墙
杀毒软件产品厂家的个人防火墙一般包含在安全软件套件里。
网关防火墙
网关防火墙分为两种,一种是在 Windows 、Linux 等操作系统上安装并运行防火墙软件的软件网关防火墙,另一种是使用专用设备的硬件网关防火墙。
硬件防火墙
- 从客户端收到的请求报文、从服务器收到响应报文,代理服务器都会在应用层进行检查,如果有异常就放弃通信或发送出错信息。
- 由于代理服务器是会话的起点,对互联网的服务器来说,是看不到客户端的 IP 地址。
L1 ~ L3 模式是将防火墙进行串连,TAP 模式是防火墙进行旁挂。
- 窃听:通过窃听网络数据获取银行卡号、密码等重要信息
- 篡改:将网站主页、邮件等通信内容恶意修改
- 破坏:通过电脑病毒或DoS攻击等破坏系统的正常工作
- 冒充:冒充他人发送邮件,对接收方进行钓鱼、诈骗等行为
- 信息泄露:电脑或服务器上的重要信息或文档泄露
- 攻击跳板:作为病毒部署或DoS攻击的跳板
- 垃圾邮件:以营利为目的发送大量邮件
- 黑客( hacker ):是指精通计算机技术的人,并非特指网络攻击者。
- 破解者( cracker ):对网络进行非法访问、窃听信息、篡改等行为的人。
- 攻击者( attacker ):使用 DoS 等攻击系统,以造成系统宕机为目的的人。
- 妨碍者:发送大量垃圾邮件、在论坛粘贴大量广告、发布大量无意义信息的人。
- 普通用户:尽管不会主动攻击,但在病毒、蠕虫等感染电脑后,成为威胁网络安全的对象。
- 僵尸( bot ):作为攻击跳板的终端,被植入具有攻击程序的病毒,遭受感染的终端叫做僵尸,由大量僵尸程序组成的网络叫做僵尸网络。
- SYN 检查
- ACK 检查
- 重复数据段检查
- 窗口检查
- 数据段重组
-
防火墙收到报文后,首先检查会话表,确认是否有相同的会话。如果有相同会话,那么会禁止会话建立,确保会话都是唯一的。
-
如果是不同会话,那么检查报文,通常是查看路由表或 MAC 地址表来确定转发路径。如果可以转发,就确定对应的转发出接口和目的网段。如果不能转发,就丢弃这个数据。
-
报文检查目的地址是否需要进行 NAT 。如果需要,就先完成 NAT ,然后转发到相应出接口和目的网段。
-
对报文和目的信息进行安全策略检查,源信息是源接口、源区域和源地址,目的信息是目的接口、目的区域和目的地址。如果有匹配的安全策略,就根据策略进行处理,允许通信就进行转发,拒绝通信就进行丢弃。如果没有匹配的安全策略,就根据默认拒绝的策略丢弃数据。
-
当报文被允许通信时,防火墙的会话表中就会生成相应的会话信息。
通常两台防火墙会使用主备方式的冗余结构,对主防火墙和备防火墙的会话信息进行同步。主防火墙负责建立用户通信的会话,并把会话信息记录到会话表中,同时将信息转发到备防火墙。
为了防止非法报文的流入和流出,防火墙会对报文的头部和数据进行解析。常见的有:IP 头部解析、TCP 头部解析、UDP 头部解析。
IP 头部解析
数据帧和 IPv4 头部的解析内容如下:
TCP 头部的解析内容如下:
UDP 头部解析
UDP 头部的解析内容如下:
防火墙的主要功能是访问控制,也就是判断特定源和特定目的之间是否允许进行特定的通信。访问控制是通过规则来实现,每一条规则都指定了源、目的和通信内容等信息。这些访问控制规则的集合,在路由器中,叫做访问控制列表,而在防火墙中,叫做安全策略或安全规则。
通常一个规则是由多条访问控制列表组成,一条访问控制列表也叫做一个表项。一个表项由对象( object )、行为( action )、选型( option )这 3 个元素组成。
access-list 101 permit tcp host 10.1.1.2 host 172.16.1.1 eq telnet
Any 表示任何值都与策略匹配。如果是安全策略中,出现未定义的通信,比如从信任区到 DMZ 区域的通信,防火墙默认执行拒绝,这个策略叫做 “ 默认拒绝 ”( implicit deny )。
如果需要在防火墙没有匹配的情况下,执行 Allow ,可以在安全策略的最后一行设置对象为 Any ,行为为 Allow 的策略。
当然,防火墙的安全策略是会有上限,上限由产品规格决定。而且当表项越多时,设备性能也会随之下降。
防火墙不仅能够基于区域、IP 地址、端口号、应用程序等设置安全策略,还可以使用内容安全策略进行通信控制。内容安全策略包括反病毒、IPS(入侵防御系统)、URL 过滤、DLP(数据泄露防护)等基于内容的安全机制,能够拦截非法通信和避免不必要的通信流量。还可以对这些通信不进行拦截,而是记录到告警日志中后放行。
私有 IP 地址只能在内部网络通信,如果要访问外部网络(互联网),可以通过路由器或防火墙把私有 IP 地址转换为公网 IP 地址,这个过程叫做 NAT( Network Address Translator )。
静态 NAT
动态 NAT
虽然和静态 NAT 有点类似,私有地址和公网地址是一对一的映射关系,但不是指定的 NAT 转换后地址,而是动态分配的、在 IP 地址池中排序靠前的有效地址。
源 NAT
目的 NAT
互联网的客户端,想要通过网关访问内部网络的服务器时,由于公司内部服务器使用内网地址,无法直接从互联网访问到,需要进行目的 NAT 。网关作为内部服务器的代理,把服务器的内网地址映射到公网地址,收到外网客户端访问公网地址时,网关将报文的目的地址转换为内部服务器的私有地址,完成路由和访问。公司内的服务器通常放置在 DMZ 区域中,能够对外部网络屏蔽内部服务器的地址,从而避免内部网络受到攻击。
NAPT
这时,网关需要结合 TCP 或 UDP 端口号,完成多个私有地址映射成一个公网地址的转换,这种转换方式叫做 NAPT( Network Address Port Translation ,网络地址端口转换)。
常见的 VPN 网络拓扑有点对点 VPN 、中心型 VPN 、远程接入 VPN 。
- 点对点 VPN
- 中心型 VPN
- 远程接入 VPN
SA( Security Association ):IPsec 通信时建立的逻辑连接。
举个栗子:网络 A 与网络 B 通过 IPsec 隧道连接时,网络 A 的 PC1 想和网络 B 的 PC2 进行通信。
举个栗子:远程站点 A 、远程站点 B 和中央站点 VPN 设备 C 。A 的 PC1 和 B 的 PC2 进行通信。
举个栗子:站点 A 和站点 B 使用点对点 VPN 组成网络,其中站点 A 网络是 192.168.1.0/24 和 192.168.2.0/24 ,站点 B 网络是 192.168.3.0/24 和 192.168.4.0/24 。如果只有 192.168.1.0/24 和 192.168.3.0/24 进行加密通信,那么在站点 A 的 VPN 设备设置本地 proxyID 为 192.168.1.0/24 ,远程 proxyID 为 192.168.3.0/24 。在站点 B 的 VPN 设备设置本地 proxyID 为 192.168.3.0/24 ,远程 proxyID 为 192.168.1.0/24 。
IKE 协议完成密钥的交换。
IKE 阶段 2 负责生成 IPsec 通信使用的密钥,并建立 IPsec SA 。
端口转发,又叫做瘦客户端 SSL-VPN 。使用 ActiveX 或 Java applet 等浏览器插件来创建 PC 和服务器的 SSL 隧道。用户只要登录 Web 门户( SSL-VPN 网关),并完成认证,就能够下载相关插件。用户能够使用公司内网服务器上的特定应用程序,也能够使用端口固定且无需浏览器支持的 TCP 应用程序,比如 E-mail 。有些产品还能够支持端口号变动的应用和 UDP 应用程序等。
隧道方式是使用 SSL-VPN 客户端软件的方式。和 IPsec-VPN 一样,支持网络层以上协议的隧道传输。
支持主机检查( Host Checker )功能的 SSL-VPN ,在客户端与 SSL-VPN 设备连接时,能够对连接的客户端主机进行检查,检查信息如下图。
- DoS 攻击
- P2P 造成的信息泄露
- 运行蠕虫、特洛伊木马、键盘记录器等恶意软件
- 入侵局域网和入侵侦查行为
- 通知管理员,通过电子邮件或 SNMP 等方式
- 记录日志
- 拦截通信,向攻击方发送 TCP RST 报文
垃圾邮件是指骚扰邮件、广告邮件和诈骗邮件等,很多产品都有过滤这类垃圾邮件的反垃圾邮件功能,但是反垃圾邮件很容易引发误检。有可能出现正常邮件归档到骚扰软件中,误以为没收到邮件,这个需要注意。