iptables系列之基础原理

Linux网络防火墙

,netfilter:帧过滤,内核中的过滤框架,规则生效的位置框架

,,,, iptables:附加在netfilter上,生成防火墙规则,真正实现数据报文过滤,NAT,损坏等规则生成的工具


防火墙:工作在主机或者网络的边缘,对于进出的报文进行检查监控,并根据事先定义好的规则(其中有匹配标准和处理办法),一旦符合标准,对这个报文进行相应的处理规则的组件称为防火墙


iptables的实现实际上是基于报文的过滤,实例如下:

1。IP:源地址,目标地址

TCP:源端口,目标端口

UDP:源端口,目标端口

ICMP: ICMP报文类型


发展历程:

linux2.0

andy downs表示/防火墙linux2.2

ipchain/防火墙linux2.4

iptables/netfilter



netfilter的过滤有下面五个规则链

,,,, PREROUTING

,,,,输入

,,,,向前

,,,,输出

,,,, POSTROUTING)


四种表

过滤器,过滤表

输入,输出,提出了


nat,地址转换表

PREROUTING,输出,POSTROUTING)


损坏(拆分,修改,封装),表

PREROUTING,转发,输出,POSTROUTING)


原始表

PREROUTING,输出



iptables:

500条规则

能否使用自定义链?

可以使用自定义链,但是只在被调用的时候才能发挥作用,而且如果没有自定义链中的任何规则匹配,还应该有返回机制


*用户可以删除自定义空链

*默认链无法删除


每个规则都有两个内置的计数器

被匹配的报文个数

被匹配的报文大之和


规则内包含:匹配标准,处理动作

匹配标准:

,,1.通用匹配

,,,,,,,,, s - src,源地址

,,,,,,,,, - d - dst,目标地址

,,,,,,,, - p (tcp, udp, icmp)指定协议

,,,,,,,我接口指定数据报文流入的接口(ethX)

,,,,,,,,,,,,,,可用于定义标准的链,PREROUTING,输入,提出

,,,,,,,, - o接口指定数据报文流出的接口

,,,,,,,,,,,,,,可用于标准定义的链,输出,POSTROUTING,向前,

,,2 .扩展匹配

,,,,一。隐含扩展:不用特别指明哪个模块进行的扩展,因为此时使用- p (tcp/udp/icmp)

,,,,- p tcp,指定目标端口,源端口

,,,,,,,,,,,,, tcp-flags面具comp:只检查面具指定的标志位,是逗号分隔的标志位列表;comp:此列表中出现的标记位必须为1,排版中没出现,而面具中出现的,必须为0,

,,,,可根据ACK,鳍,RST SYN等标志位的值来盘端报文的类型,例如当SYN=1,其余为0,则这个报文时TCP/IP的第一次握手

,,,-p-icmp

,,,,,,,,,,,,, icmp-type 8被ping通

,,,,,,,,,,,,, icmp-type 1能够发出平报文

,,,,-p-udp

,,,,,,,,,,,,指定目标端口以及源端口


,,b。显示扩展:必须指明由哪个模块进行的扩展,在iptables会用- m选项即可完成功能

,,,,,,,,使用额外的匹配机制

,,,,,,,,,,- m EXTENSTION——spe-opt

,,,,,,,,,,,,,,,,,状态:状态扩展,,,,,,null

iptables系列之基础原理