防火墙( Firewall )是防止火灾发生时,火势烧到其它区域,使用由防火材料砌的墙。
后来这个词语引入到了网络中,把从外向内的网络入侵行为看做是火灾,防止这种入侵的策略叫做防火墙。后来,防火墙不但用于防范外网,例如:对企业内网的 DoS 攻击或非法访问等,也开始防范从内部网络向互联网泄露信息、把内部网络作为攻击跳板等行为。
硬件防火墙可以实现 CIA 的机密性( Confidentiality )、完整性( Integrity )、可用性( Availability )这三种类型的对应策略。小企业会在局域网和互联网的边界部署防火墙。
2、防火墙有哪些类型?
防火墙可分为软件防火墙和硬件防火墙。软件防火墙又可分为个人防火墙和网关防火墙。
个人防火墙
个人防火墙运行在 PC 上,用于监控 PC 和外网的通信信息。在 Windows 操作系统中集成了 Windows 防火墙。
杀毒软件产品厂家的个人防火墙一般包含在安全软件套件里。
网关防火墙
在网络中的网关上配置防火墙的功能,能对网络中的流量进行策略控制,这就是网关防火墙。
网关防火墙分为两种,一种是在 Windows 、Linux 等操作系统上安装并运行防火墙软件的软件网关防火墙,另一种是使用专用设备的硬件网关防火墙。
个人防火墙主要监控 PC 的通信流量,网关防火墙是监控网络中所有终端的通信流量,在网关处进行策略控制。
硬件防火墙
动态 NAT( Dynamic NAT )是在网关配置一个 IP 地址池( IP address pool ),地址池里面包含多个 IP 地址。在 NAT 建立会话时,在地址池内的 IP 地址按顺序分配一个转换后的 IP 地址。由于地址范围能够手动进行设置和更改,因此这种方式应用的比较多。
虽然和静态 NAT 有点类似,私有地址和公网地址是一对一的映射关系,但不是指定的 NAT 转换后地址,而是动态分配的、在 IP 地址池中排序靠前的有效地址。
源 NAT
源 NAT( Source NAT )是对发送方的源 IP 地址进行 NAT 转换。在公司内部网络的客户端,要访问互联网的服务器,客户端的私有地址作为发送源,把数据发送到网关时,必须将私有 IP 地址转换成公网 IP 地址才行。
要和互联网上的服务器进行通信,必须使用公网 IP 地址,但是 IPv4 地址有限,无法为每台客户端都分配一个公网地址。大部分情况下,源 NAT 能够通过动态 NAT 方式节约公网地址资源。在网关上设置地址池,或在网关的接口使用 NAPT ,可以实现私有网络访问互联网的功能。
外部网络只能看到公网地址信息,源 NAT 能够隐藏客户端实际使用的 IP 地址,从而降低受到外部网络攻击的风险。
目的 NAT
中心型 VPN( hub and spoke VPN )是星型拓扑结构,也就是一个中心站点的设备,连接多个远程站点的设备,形成的网络结构。中心站点( center site )位于总部的网络,也就是数据中心,成为整个结构的核心站点。一般是电信供应商提供的 VPN 业务,以电信供应商的基础设施为中心站点,通过 VPN 连接其它站点。
远程接入 VPN
在家里,或出差在外时,通过互联网使用 PC 上的软件,与公司的 VPN 设备建立 IPsec 隧道,能够访问公司内部网络的拓扑结构,叫做远程接入 VPN 。
远程接入的 IPsec-VPN 需要在 PC 上安装 VPN 客户端软件,而 SSL-VPN 是通过 Web 浏览器,使用 SSL 连接到公司的 VPN ,通过 SSL( HTTPS )和公司的内部网络进行连接。
27、IPsec VPN 有哪些专用名词?
举个栗子:网络 A 与网络 B 通过 IPsec 隧道连接时,网络 A 的 PC1 想和网络 B 的 PC2 进行通信。
PC1 发送请求,到达网络 A 的网关,也就是 VPN 设备 A ,这时的报文还未加密,是明文状态。VPN 设备 A 对报文进行加密,并添加 ESP 头部和在隧道中使用的 IP 头部(叫做外层 IP 地址),再通过 IPsec 隧道发送出去。
网络 B 的 VPN 设备 B 通过 IPsec 隧道收到加密的报文,会检查 ESP 头部和 AH 头部。如果 ESP 序列号不正确,VPN 设备 B 就会认为是重放攻击,并输出错误信息,SPI 值不正确,会输出 “ Bad SPI ” 的错误通知信息。
如果加密报文正常,就进行解密操作,去除外部 IP 、ESP 、AH 等头部,并对原来 IP 头部的目的地址进行路由,从而到达 PC2 。
PC2 向 PC1 回复消息时,由 VPN 设备 B 进行加密处理,由 VPN 设备 A 进行解密处理。
中心型 VPN 的远程站点客户端和中央站点服务器的 VPN 通信也是这种处理流程。
29、远程站点之间的通信过程是什么样的?
举个栗子:远程站点 A 、远程站点 B 和中央站点 VPN 设备 C 。A 的 PC1 和 B 的 PC2 进行通信。
报文通过 VPN 设备 A 和 VPN 设备 C 的 IPsec 隧道,再经过 VPN 设备 C 和 VPN 设备 B 的 IPsec 隧道,最终到达 PC2 。
如果中央站点是路由器或 VPN 设备,一般只会解密、加密和路由选择处理。如果中央站点是防火墙,就会在报文解密后进行检查,只对安全的报文进行加密,然后再向远程站点发送。
30、什么是基于策略的 VPN ?
隧道方式是使用 SSL-VPN 客户端软件的方式。和 IPsec-VPN 一样,支持网络层以上协议的隧道传输。
用户通过浏览器访问 SSL-VPN 设备,并完成认证,就可以下载应用程序,并安装在用户的 PC 上。接下来就是通过客户端软件建立 PC 和 SSL-VPN 设备的隧道。由于使用了客户端软件,还是会不可避免的受到操作系统的限制。
38、什么是主机检查?
支持主机检查( Host Checker )功能的 SSL-VPN ,在客户端与 SSL-VPN 设备连接时,能够对连接的客户端主机进行检查,检查信息如下图。
如果主机检查结果 OK ,就允许客户端的 SSL-VPN 连接,就能够从外部网络访问公司内网。如果结果是 NO ,就拒绝客户端的 SSL-VPN 连接,或只能进行软件升级等特定范围的访问操作。
39、什么是 DoS 攻击?
DoS 全称是 Denial of Service ,也就是无法继续提供服务的意思。这里的服务是指服务器的应用程序服务,比如客户端发起 HTTP 请求时,服务器能够发出 HTTP 响应就说明完成了 HTTP 服务。DoS 攻击是针对服务器和网络设备发起的攻击,制造远超预先设计的访问量,让服务器和网络设备无法正常的回复响应报文,导致被攻击的系统无法提供服务。DoS 攻击也可以利用操作系统或程序的安全漏洞等,以少量流量使系统发生异常。在 DoS 中,通过僵尸网络的多个跳板,对服务器发起攻击的方式叫做 DDoS( Distributed Denial of Service )攻击。
40、DoS 攻击有哪些类型?防火墙有什么防范措施?
Syn Flood :发送大量 TCP SYN 报文,导致服务器资源消耗过度,一段时间内无法提供服务的状态。在防火墙内,定义每秒允许通过的 SYN 报文数量,当网络中的 SYN 报文超过这个值时,就会执行 SYN Cookie 的策略。SYN Cookie 策略是当服务器收到客户端的 SYN 报文时,不建立 TCP 连接,而是将 TCP 头部内容的散列值当做序列号放入 SYN-ACK 报文中返回。之后收到包含正确响应编号的 ACK 报文时,才将会话信息存储在内存中,有效防止攻击对服务器内存的消耗。 ICMP Flood :也叫做 ping flood ,发送大量的 ICMP echo request 报文来消耗服务器内存,让服务器暂时无法提供服务。防火墙通过定义一秒内允许的最大 ICMP 报文数量,对超过这个值的 ICMP 报文暂时不处理。 UDP Flood :发送大量的 UDP 报文来消耗服务器的内存,使得服务器暂时无法提供服务。防火墙通过定义一秒内允许的最大 UDP 报文数量,对超过这个值的 UDP 报文暂时不处理。 IP Flood :发送大量的 IP 报文来消耗服务器的内存,使得服务器暂时无法提供服务。防火墙通过定义一秒内允许的最大 IP 报文数量,对超过这个值的 IP 报文暂时不处理。 Land :发送源地址和目的地址相同的报文。受到这种攻击、又有安全漏洞的设备,会不断向自己转发数据而导致宕机。防火墙对于这类报文,一律丢弃。 Tear Drop :发送伪造的、含有 offset 的非法 IP 分片报文。这类攻击对于有安全漏洞的设备而言,会发生无法重新生成报文的现象发生,导致宕机。防火墙对于这类报文,一律丢弃。 Ping of Death :发送超过 IP 报文最大长度 65535 的 ping 。这类攻击对于有安全漏洞的设备而言,会导致无法运行的情况发生。防火墙对于这类报文,一律丢弃。 Smurf :把攻击对象的地址设置成源地址,并广播发送 ICMP echo request 报文,使得攻击对象收到大量 ICMP echo reply 报文而消耗带宽资源。 Fraggle : 同 Smurf 类似,UDP 替代 ICMP 发起攻击,同时利用 echo 、Chargen 、daytime 、qotd 等多种端口。防火墙一般关闭这类端口,或使用安全策略进行拦截。 Connection Flood :反复生成大量长时间为 open 状态的连接,占据攻击对象的 socket 资源。如果服务器端没有最大连接数目的限制,就会发生系统崩溃。 Reload :在 Web 浏览器中连续按下 F5 键,让 Web 页面反复执行刷新操作,也叫做 F5 攻击。在 Web 通信量大时,会让服务器负载加重。
41、如何防御 DoS ?
防御 DoS 就是限制异常高速通信流量,一般通过设置区域、网络接口、网络等单位来实现。
DoS 防御也可以拦截含有非法内容或安全性低的报文,这类报文让防火墙或路由器处理的话,会导致资源的浪费,因此需要使用专门的 DoS 防御功能来阻挡这类攻击。
42、什么是端口扫描?
IP 地址欺骗( IP Spoofing ):为了通过防火墙,避免被监控日志记录,伪造 IP 头部中源 IP 地址的攻击方式。 分片报文:分片的 IP 报文,由于安全性弱,常用于攻击,因此防火墙会有拦截分片报文的功能。如果报文和通信链路的 MTU 大小一致,就不会发送分片,这个功能也不会影响正常的通信。 ICMP 分片:跟 IP 分片报文类似,防火墙也有拦截 ICMP 分片报文的功能。 巨型 ICMP 报文:防火墙通过拦截一定大小以上的 ICMP 报文,就能避免 Ping of Death 攻击。 非法 ICMP 报文:如果接收的 ICMP 报文中,头部出现未定义的值时,需要进行额外的异常处理。防火墙会对这类非法的 ICMP 报文进行拦截。 SYN 以外的 TCP 报文控制:TCP 会话开始前,会发送 SYN 报文。如果在未确认的 TCP 会话中,收到了除 SYN 以外的字段位是 1 的 TCP 报文,很有可能就是端口扫描等攻击,就需要通过防火墙拦截这类报文。
45、什么是 IDS/IPS ?
IDS ,全称 Intrusion Detection System ,即入侵检测系统。IPS ,全称 Intrusion Prevention System ,即入侵防御系统,合称为 IDS/IPS 。
IDS 负责检测非法入侵,并告知系统管理员,而 IPS 是通过设置对非法入侵使用的协议和应用程序进行拦截。
IDS/IPS 能够检测的威胁有:
DoS 攻击
P2P 造成的信息泄露
运行蠕虫、特洛伊木马、键盘记录器等恶意软件
入侵局域网和入侵侦查行为
当 IDS/IPS 检测到入侵行为后,会进行相应处理:
通知管理员,通过电子邮件或 SNMP 等方式
记录日志
拦截通信,向攻击方发送 TCP RST 报文
46、什么是 Deep Inspection ?
防火墙的 Deep Inspection 功能,能够针对特定的应用层协议,重组应用程序数据流的 TCP 数据段,检测其中是否包含了非法应用程序参数。
47、IDS/IPS 和 Deep Inspection 能够检测和拦截哪些类型的攻击?
信息泄露:攻击者利用带有恶意脚本的邮件,或附带恶意软件的 URL 地址发起的攻击。攻击成功的话,能够获取对方的机密信息。 执行代码:向服务器发送非法数据,让服务器接受并执行远端的代码。 DoS 攻击:发送大量报文,让服务器的 CPU 、内存使用率上升,妨碍服务器正常提供服务的攻击。 缓存溢出( Buffer Overflow ):通过恶意程序诱导服务器运行内存超过上限,导致缓存溢出的攻击。 SQL 注入:针对 Web 应用程序,使用数据库 SQL 语言,对数据库进行非法操作的攻击。 暴力破解( Brute Force Attack ):也叫循环攻击,使用密码字典等工具,反复尝试管理员密码的攻击。为了防止这类攻击,需要执行输错 3 次密码就切断会话的类似策略。 跨站脚本攻击( Cross-site Scripting ):简称 CSS 或 XSS 。利用 Web 应用程序的漏洞,在提交页面表单时,通过服务器执行携带 HTML 标签的脚本,到达劫持会话或钓鱼的目的。 exploit 攻击:利用软件安全漏洞发起的攻击中使用的程序或脚本。 浏览器劫持:通过操作携带恶意软件的浏览器,在用户浏览 Web 页面时,篡改显示的页面形式和内容。一般会导致持续弹出广告栏、自动添加 URL 连接、跳转其它网页失败的情况。 钓鱼:使用伪造官方网站站点 URL 连接的邮件或网站,骗取用户的个人信用卡和银行账号信息。 僵尸网络:通过僵尸程序感染多台 PC ,并根据攻击方命令,同时发送垃圾和实施 DoS 等攻击。主要通过使用 IRC 对僵尸下达攻击命令。
48、什么是 CVE ?