码迷,mamicode.com
首页 > 其他好文 > 详细

iptables基础知识

时间:2015-06-01 14:53:44      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:iptables

iptables基础知识


1、四表五链

   filter表:主要用来对数据包进行过滤,包含INPUT、FORWARD、OUTPUT等三个规则链

   nat表:主要用修改数据包IP地址、端口号等信息。包含PREROUTING、POSTROUTING、OUTPUT等三个规则链。

   mangle表:主要用来修改数据包的TOS,TTL值,或者为数据包设置Mark标记

   raw表:主要用来决定是否对数据包进行状态跟踪。包含OUTPUT、PREROUTING两个规则链。

其中:在iptables规则表中,filter表和nat表用的最多


   INPUT链:处理入站数据包。

   OUTPUT链:处理出站数据包。

   FORWARD链:处理转发数据包。

   POSTROUTING链:在进行路由选择后处理数据包。

   PREROUTING链:在进行路由选择前处理数据包。 

   

2、数据包过滤匹配流程 ,详见 数据包过滤匹配流程.JPG 图片


3、规则之间的顺序(即优先级)

当数据包抵达防火墙时,

将依次应用raw,mangle,net和filter表中对应链内的规则(如果有的话)。


4、规则链之间的顺序。

入站数据流向:来自外界的数据包到达防火墙后,首先被PREROUTING链处理,然后进行路由选择,

如果数据的目标地址是防火墙本机,那么内核将其传递给INPUT链进行处理,

通过处理后再交给上层应用程序。


转发数据流向:来自外界的数据包到达防火墙,首先被PREROUTING链处理,然后再进行路由选择,

如果数据包的目标地址是其他外部地址,则内核将其传递给FORWARD链处理,

最后交给POSTROUTING链进行处理。


出站数据流向:防火墙向外部地址发送数据包,首相被OUTPUT链进行处理,然后进进行路由选择,

再交给POSTROUTING链进行处理。  


5、规则链内部各条防火墙规则之间的顺序。

当数据包经过规则链时,依次按照第一条规则,第二条规则......的顺序进行匹配和处理,

链内的过滤遵循“匹配即停止”的原则,一旦找到一条匹配的规则,则不在检查本链中后续的规则。


6、iptables基本的命令的格式

   iptables [-t 表名] 管理选项 [链名] [匹配条件] [-j 控制类型]

   -t:用来指定表名,默认是filter表。

   表名,链名:用来指定iptables命令所操作的表和链。

   管理选项:表示iptables规则的方式,如:插入,追加,删除,查看等。

   匹配条件:用来指定要处理的处理数据包的特征,不符合指定条件的将不会处理。

   控制类型:指的是数据包的处理方式,如:允许,拒绝,丢弃等。

eg:

-A 在链的末尾追加一条规则

-I 在链的开头插入一条规则

-L 列出所有规则条目

-D 删除链内指定序号的一条规则

-F 清空所有规则


常见的控制类型:

ACCEPT:允许数据包通过。

DROP:直接丢弃数据包,不给出任何回应信息。

REJECT:拒绝数据包通过,必要时会给数据包发送端一个响应信息。

LOG:在/var/log/messages文件中记录日志信息,然后将数据包传递给下一条规则。


7、iptables规则的匹配条件

-p 协议名

编写iptables拒绝通过icmp的数据包

iptables -A INPUT -p icmp -j DROP


-s源地址 或 -d目标地址

编写iptables拒绝转发192.168.1.0/24到202.106.123.0/24的数据包

iptables -A FORWARD -s 192.168.1.0/24 -d 202.106.123.0/24 -j DROP


-i 接口名和-o 接口名 (入站网卡(--in-interface),出站网卡(--out-interface))

拒绝从防火墙的eth1网卡接口ping防火墙主机。

iptables -A INPUT -i eth1 -p icmp -j DROP


-m multiport --dport 端口列表 或 -m multiport --sport 端口列表 的形式,多端口之间以逗号进行分隔

若允许本机开放25,80,110,143等端口

iptables -A INPUT -p tcp -m multiport --dport 25,80,110,143 -j ACCEPT


-m iprange --src-range IP范围,-m -iprange --dst-range IP地址范围

若要允许转发源地址IP位于192.168.4.21与192.168.4.28之间的TCP数据包

iptables -A FORWARD -p tcp -m iprange --src-range 192.168.4.21-192.168.4.28 -j ACCEPT


-m mac --mac-source MAC地址

若要根据MAC地址封锁主机,禁止其访问本机的任何应用

iptables -A INPUT -m mac --mac-source 00:0c:29:c0:55:3f -j DROP


-m state --state 连接状态

常见的连接状态包括NEW(如任何连接无关的),ESTABLISHED(相应请求或者已建立连接的),

RELATED(与已有连接有相关性的,如FTP数据连接)。

只开放本机的80端口服务,对于发送给本机的TCP应答数据包给予放行,其他入站数据包均拒绝

iptables -A INPUT -p tcp -m multiport --dport 80 -j ACCEPT

iptables -A INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT


service iptables save

service iptables restart

参考链接:

http://www.111cn.net/sys/linux/54609.htm  规则命令

http://blog.csdn.net/a351945755/article/details/22831775  基础知识


本文出自 “青春邓勇” 博客,请务必保留此出处http://dengyong.blog.51cto.com/8409869/1657068

iptables基础知识

标签:iptables

原文地址:http://dengyong.blog.51cto.com/8409869/1657068

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!