防火墙之iptables基本概念

1.iptables的概念理解

iptables全称的写法是Netfilter/iptables ,他们是信息包过滤系统的两个组件

Netfilter:是内核模块的实现,是linux核心中一个架构,运行在linux内核空间,作用是定义保存响应的规则。

iptables:是上层的一种操作工具,用来修改信息的过滤规则和其他配置,运行在用户空间

总结:若netfilter/iptables是一辆功能完整的汽车,netfilter就是汽车发动机以及车轮等部件,他可以让车发动行驶;iptables则是方向盘,刹车,油门,等控制汽车的行驶方向,速度。

表-链-规则

netfilter提供了一系列的表,每个表有若干个链组成,每条链有一条或多条规则组成。

三表五链四状态八动作

三表:

1.filter :这是netfilter默认的表,包含真正的防火墙过滤规则,内建了三条规则链:

INPUT:当一个数据包有内核中的路由计算确认为进入本机的包后,会通过INPUT链的检查

OUTPUT:应用于系统自身生成的数据包

FORWARD:应用与路由经过本地的数据包

2.nat :表包含源地址,目标地址,以及端口转换使用的规则。

内建的链有:

PREROUTING:用于修改目标地址(DNAT)

OUTPUT:路由之前修改本地产生的数据包

POSTROUTING:用于修改源地址(SNAT)

3.mangle:该表用在数据包的特殊变更操作,内建的链有:

PREROUTING ,INPUT,PORWARD,POSTROUTING,OUTPUT

五链

PREROUTING:数据包进入本机,进入路由表之前

INPUT:通过路由表,目的为本机

OUTPUT:由本机产生向外转发

FORWARD:通过路由表后目的不是本机

POSTROUTING:通过路由表发送到网卡接口前

四状态:

NEW:第一次发送链接请求的数据包的状态就是NEW

ESTABLISHED:建立连接后,继续通信的数据包

RELATED:和现有联机相关的新连接的数据包,如ftp用21端口传递命令,其它端口传递数据

INVALID:无效的数据包,或不能被识别属于哪个连接或没任何状态,这种状态的数据包一般会被丢弃

八动作:

ACCEPT:接受数据包

DROP:丢弃数据包

REDIRECT:将数据包重新转向到本机或另一台主机的某一端口

REJECT:拦截该数据包,并发回封包通知对方

SNAT:源地址转换,改变数据包的源地址在nat表的POSTROUTING链进行该动作

DNAT:目标地址转换,在nat表的PREROUTING链进行该动作

MASQUERADE:ip伪装

LOG:日志功能

iptables的工作流程:(只对nat表和filter表)

1.数据包进入防火墙后,先进入nat表的PREROUTING链;如有规则就进行目标地址的转换

2.数据包经过路由判断包是发送给本机还是向其它网络转发

3.如果是转发就发送给filter表的FORWARD链进行过滤,然后发给nat表的POSTROUTING链根据需要可能会进行网络地址转换,修改数据包的源地址,最后数据包发送给网卡,转发给外部网络

4.如果目的为本机,数据包进入filter表的INPUT链进行相应的操作;再进入nat的POSTROUTING链向外发送

详细语法

iptables [-t 表名] <-A|I|D|R>链名[规则号] [-i|o 网卡名称] [-p 协议类型] [-s  源ip地址|源子网] [--sport 源端口号] [-d 目标ip地址|目标子网] [--dport 目标端口号]  <-j 动作>

你可能感兴趣的:(linux,filter,防火墙,发动机,方向盘)