iptables

定义

防火墙,是一种隔离工具,工作于主机或网络边缘,对于进出主机或网络的报文根据事先定义好的检查规则作匹配检测,对于能够被规则所匹配到的报文做出相应处理的组件。

Netfilter组件

1. 内核空间,集成在linux内核中
2. 扩展各种网络服务的结构化底层框架
3. 内核中选取五个位置放了五个hook(勾子) function(INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING),而这五个hook function向用户开放,用户可以通过一个命令工具(iptables)向其写入规
4. 由信息过滤表(table)组成,包含控制IP包处理的规则集(rules),规则被分组放在链(chain)上

iptables

命令行工具,工作在用户空间
用来编写规则,写好的规则被送往netfilter,告诉内核如何去处理信息包

iptables由四个表和五个链以及一些规则组成

四个表table:filter、nat、mangle、raw(优先级由高到低的顺序为:raw-->mangle-->nat-->filter)

Filter表:过滤规则表,根据预定义的规则过滤符合条件的数据包
NAT表:network address translation 地址转换规则表
Mangle:修改数据标记位规则表
Raw:关闭NAT表上启用的连接跟踪机制,加快封包穿越防火墙速度
注意:一般不要启动连接追踪功能,在头端负载很大的情况下,如果要启用,一定要把内存设置的足够大。

五个内置链chain

INPUT
OUTPUT
FORWARD
PREROUTING
POSTROUTING

Netfilter表和链对应关系

三种报文流向
流入:PERROUTING--> INPUT
流出:OUTPUT-->POSTROUTING
转发:PREROUTING-->FORWARD-->POSTROUTING
各功能的分别实现(iptables -t raw -L)
filter:INPUT, FORWARD, OUTPUT
nat:PREROUTING(DANT), OUTPUT, POSTROUTING(SANT)
mangle:PREROUTING(DANT), INPUT, FORWARD, OUTPUT, POSTROUTING(SANT)
raw:PREROUTING, OUTPUT 
路由发生的时刻
报文进入本机后:
    判断目标主机
报文发出之前:
    判断经由哪个接口送往下一跳
iptables:四表五链
添加规则时的考量点:
    1. 要实现哪种功能:判断添加在哪张表上
    2. 报文流经的路径:判断添加在哪个链上
链:链上规则的次序,即为检查的次序,因此隐含一定的法则
    1. 同类规则(控制同一种应用访问),匹配范围小的放上面:
    2. 不同类规则(访问不同应用),匹配到报文频率较大的放上面:
    3. 设置默认策略(白名单:默认拒绝,开放明确识别的;黑名单:默认允许,只拒绝认为危险的。白名单安全级别高,可以允许也可以拒绝)
    4.  将那些可以由一条规则描述的多个规则合并为一个
规则
组成部分:报文的匹配条件,匹配到之后处理动作
    匹配条件:根据协议报文特征指定
            基本匹配条件 
            扩展匹配条件
    处理动作:
            内建处理动作
            自定义处理机制
    注意:报文不会经过自定义链,只能在内置链上通过规则进行引用后生效。
posted @ 2018-06-28 22:25  Evan_Wolf  阅读(185)  评论(0编辑  收藏  举报