防火墙
概念
防火墙是在两个网络之间执行访问控制策略地一个或一组安全系统,广泛被应用在内部网络和外部网络之间,内部与外部之间地通信都要通过防火墙。
功能
-
过滤掉来自外网地攻击性信息
如禁止
telnet
、ftp
协议对内网的访问,这些协议都是攻击者比较容易利用的协议,比较常见的有利用telnet
和ftp proxy
来探测目标主机端口,另外ftp
服务器的主动模式还可以被攻击者利用,将其作为跳板对内网中的服务器进行攻击 -
防止内部敏感信息的泄露
防火墙的向外的方向可以屏蔽泄露网络内部细节的服务,如
finger
服务,DNS
服务。finger
服务显示了主机的所有用户的注册名、真名、最后登陆时间(这个现在大部分站点都不用这个协议了),以及shell
类型等敏感信息,内网的DNS
可能暴漏内部主机的域名和IP
地址信息
防火墙的分类
网络防火墙/包过滤
特点
工作在网络层和传输层,根据数据包的源地址、目的地址、端口号、协议类型对数据包进行过滤
包过滤防火墙
过滤规则是包过滤防火墙原理的核心,工作时根据防火墙的过滤规则检测数据包的包头信息,然后决定是不是通过这个数据包。防火墙将包头的信息与存在规则逐条进行比较,直到找到一个相符的规则,如果没有找到的话,就执行默认规则。
默认规则一般有两种:
- 拒绝访问未予特许的服务(限制性原则)
- 允许访问未被特别拒绝的服务(连通性原则)
状态检测防火墙
状态检测技术根据连接的“状态”进行检查。当一个连接初次到达防火墙,防火墙会首先根据一些基本的规则对报文进行检查,如果符合规则的话,就将这个连接信息记录在连接表中,之后就允许这个连接的数据通过,包括向外和向内。当通信结束、释放该连接以后,防火墙就会自动删除连接表中的这条记录。
一条状态检测防火墙记录的例子:
可以看到状态检测防火墙对连接的状态做了一定的检查,如上图中,可以看到对TCP
连接状态进行了记录,可以抵挡一些更复杂的攻击,如SYN-Flood
攻击。
应用级防火墙/应用网关
特点
工作在OSI
的最高层应用层,特点是完全阻隔了网络通信流(不同于包过滤防火墙,因为其可能知识过滤一部分报文),代理内部网络用户与外部网络服务器进行信息交换的程序。
一张原理图:
可以看到应用级代理在应用层上的对数据包进行检查,不仅检查包头信息,并且还要对包的内容载荷进行检查,一般web
应用的防火墙类似于这种应用级代理,一定程度上检测数据库注入,命令执行等攻击行为。