辛星解读iptables的常用参数及其值

iptables是采用规则对战的方式来进行过滤,当一个封包进入网卡,先检查prerouting,然后检查目的IP判断是否需要转送除去,然后就会跳到input或者forward进行过滤,如果封包需要转送处理则检查postrouting,如果是来自本机封包,则检查output以及postrouting。过程中如果符合某条骨子额将会进行处理,处理动作除了ACCEPT、REJECT、DROP、REDIRECT和MASQUERADE之外,还会有LOG、ULOG、DNAT、SNAT、MIRROR、QUEUE、RETURN、TOS、TTL、MARK等等,,其中有些处理动作不会中断过滤过程,但是某些处理动作则会中断同一规则链的过滤,并且依照前述流程继续进行下一个规则链的过滤,直到堆栈的规则检查完毕为止。

通过这种机制,我们可以进行复杂、多重的封包过滤,简单来说,iptables可以进行纵横交错式的过滤,也就是tables的,而不是链状的过滤,也就是chains。

注意ACCEPT将封包放行,进行完此处理动作之后,将不再比对其他规则,直接跳往下一个规则链。

这里我们看一个iptables的基本配置格式:iptables [-t 表] -命令 匹配 操作

这里的-t 表示指定命令应用于哪个iptables内置表。

下面是常用的命令:

-P –policy 链名 定义默认策略

-L –list 链名 查看iptables规则列表

-A –append 链名 在规则列表的最后增加1条规则

-I –insert 链名 在指定的位置插入1条规则

-D –delete 链名 从规则列表中删除1条规则

-R –replace 链名 替换规则列表中的某条规则

-F –flush 链名 删除表中的所有规则

-Z –zero 链名 将表中数据包计数器和流量计数器归零

-X –delete-chain 链名 删除自定义链

-V –verbose 链名 与-L其他命令一起使用显示更多更详细的信息

下面是常用的匹配规则:

-i –in-interface 网络接口名 指定数据包从哪个网络接口进入

-o –out-interface 网络接口名 指定数据包从哪个网络接口输出

-p –proto协议类型 指定数据包匹配的谢意,比如tcp、udp或icmp等等

-s –source 原地址或者子网 指定数据包匹配的源地址

–sport 源端口号 指定数据包匹配的源端口号

–dport 目的端口号 指定数据包匹配的目的端口号

-m –match 匹配的模块 指定数据包规则所使用的过滤模块

iptables执行规则时,是从规则表从上至下执行的,如果没有遇到匹配的规则,就一条一条往下执行,如果遇到匹配的规则后,那么就执行本规则,执行后根据本规则的动作(accept,reject,log,drop等等),决定下一步执行的情况。

后续执行一般分为三种情况:①继续执行当前规则队列内的下一条规则,比如执行过Filter队列内的LOG后,还会执行Filter队列的下一条规则。②中止当前规则队列的执行,转到下一条规则队列。比如从执行过ACCEPT后就中断Filter队列内其他规则,跳到NAT队列规则去执行。③中止所有规则队列的执行。

画龙画虎难画骨,知人知面不知心。

辛星解读iptables的常用参数及其值

相关文章:

你感兴趣的文章:

标签云: