Linux 防火墙概念

Netfilter:是用来实现Linux内核中防火墙的Linux内核空间程序代码段,要么被直接编译进内核空间中,要么被包含在模块中。

iptables:是用来管理Netfilter防火墙的客户程序。

 

数据包的流向:

(1)(流入数据)PREFORWARDING——>FORWARDING(转发)——>POSTFORWARDING(流出数据包)

(2)PREFORWARDING——>INPUT——>本机OUTPUT——>POSTFORWARDING

 

iptables的三个表:

(1)filter,是默认的表,包含正真的防火墙过滤规则。内建的规则链包括:INPUT、OUTPUT、FORWARD

(2)nat,包含源和目的地址以及端口转换使用的规则,内建的规则链包含:PREROUTING、OUTPUT、POSTROUTING

(3)mangle,包含用于设置特殊的数据包路由标志的规则。这些规则随后被filter表中的规则检查。

                    内建的规则链包含:PREROUTING、INPUT、FORWARD、POSTROUTING、OUTPUT

链介绍:

(1)INPUT链:当一个数据包经内核中的路由计算确定为本地的Linux系统后,它会通过INPUT链的检查

(2)OUTPUT:保留给系统自身的数据包

(3)FORWARD:经过Linux系统路由的数据包(即当iptables防火墙用于链接两个网络是,两个网络间的数据包必须流经该防火墙)

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

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

 

iptables详细语法:

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

(1)默认策略:

iptables [-t 表名]  <-P> <链名> <动作>

[-t 表名]:默认是filter

<-P> :定义默认策略

<链名>:确定默认策略用于哪个链——INPUT、OUTPUT、FOREARD、PREROUTING、POSTROUTING

<动作>:处理数据包的动作——ACCEPT(接收)、DROP(丢弃)、REJECT(拦截,并发回封包通知对方)、SNAT、DNAT、LOG、REDIRECT

(2)查看:

iptables [-t 表名] -L [链名]

(3)增加、插入、删除、替换iptables规则

-A:增加

-I:插入,原本该位置上的规则会往后顺序移动,若没有制定规则编号,则在第一条前面插入

-D:删除

-R:替换某条规则,

posted @ 2012-12-09 22:38  Arya_yu  阅读(300)  评论(0编辑  收藏  举报