2.防火墙--规则链与规则表(iptables)
2.1规则链
规则链是防火墙规则(策略)的集合。
默认的5种规则链
INPUT:处理入站数据包
OUTPUT:处理出站数据包
FORWARD:处理转发数据包
POSTROUTING:在进行路由选择后处理数据包
PREROUTING:在进行路由选择前处理数据包
2.2规则表
规则表是规则链的集合。
(1)默认的4个规则表
raw表:确定是否对该数据包进行状态跟踪。
mangle表:修改IP数据包头(如TTL值),同时也用于为数据包设置标记。
nat表:处理网络地址转换,以及修改数据包中的源、目标IP地址或端口等。
filter表:过滤数据,确定是否放行该数据包。
(2)规则表间的优先顺序
依次为:raw、mangle、nat、filter
(3)规则链间的匹配顺序
入站数据:PREROUTING、INPUT
出站数据:OUTPUT、POSTROUTING
转发数据:PREROUTING、FORWARD、POSTROUTING
(4)规则链内的匹配顺序
按顺序依次进行检查,找到相匹配的规则即停止(LOG策略会有例外)
若在该链内找不到相匹配的规则,则按该链的默认策略处理。
(5)数据包通过防火墙时的处理流程
入站数据流向:
来自外界的数据包到达防火墙后,首先被PREROUTING规则链处理(是否修改数据包地址等),之后会进行路由选择(判断该数据包应该发往何处),如果数据包的目标地址是防火墙本机(如Internet用户访问防火墙主机中Web服务的数据包),那么内核将其传递给INPUT链进行处理(决定是否允许通过等),通过以后再交给系统上层的应用程序(如httpd服务器)进行响应。
转发数据流向:
来自外界的数据包到达防火墙后,首先被PREROUTING规则链处理,之后会进行路由选择,如果数据包的目标地址是其他外部地址(如局域网用户通过网关访问QQ站点的数据包),则内核将其传递给FORWARD链进行处理(是否转发或拦截),然后再交给POSTROUTING规则链(是否修改数据包的地址等)进行处理。
出站数据流向:
防火墙本机向外部地址发送的数据包,首先被OUTPUT规则链处理,之后进行路由选择,然后传递给POSTTOUTING规则链(是否修改数据包的地址等)进行处理。