iptables入门

By | 2011/09/14

工作太安逸了,就不思进取!给自己列了一个学习列表,开始学点新东西。就从shell脚本编程和iptables开始!现在开始学习iptables的基本知识。

如图,iptables分为filter、nat、mangle(数据报处理)三部分,相互之间是独立的模块。绿色部分则为相应模块需要挂载的系统钩子。

iptables的一般语法为:iptables [-t table] command [match] [target] 

[-t table] 选项允许使用标准表(filter)以外的任何表,可选项有:filter nat mangle。

command 命令是iptable中最重要的部分,告诉iptables 命令要做什么,例如,插入规则、将规则添加到链的末尾或删除规则。

match 指定信息包与规则匹配所应具有的特征(如源和目的地地址、协议等)。匹配分为两大类:通用匹配和特定于协议的匹配。这里,将研究可用于采用任何协议的信息包的通用匹配。

target 目标是由规则指定的操作,对与那些规则匹配的信息包执行这些操作。除了允许用户定义的目标之外,还有许多可用的目标选项。

iptables命令说明【command】:
-A 或–append 该命令将一条规则附加到链的末尾
-I  或–insert该命令将插入一条规则附加到链
-D 或–delete 通过用-D 指定要匹配的规则或者指定规则在链中的位置编号,该命令从链中删除该规则
-P 或–policy 该命令设置链的默认目标,即策略。所有与链中任何规则都不匹配的信息包都将被强制使用此链的策略
-N 或–newchain 用命令中所指定的名称创建一个新链
-F 或–flush 如果指定链名,该命令删除链中的所有规则,如果未指定链名,该命令删除所有链中的所有规则。此参数用于快速清除
-L 或–list 列出指定链中的所有规则
-R 或–replace 替换指定链中一条匹配的规则
-X 或–deletechain 删除指定用户的的定义链,若没有指定链,则删除所有的用户链
-C 或–check 检查数据包是否与指定链的规则相匹配
-Z 或–zero 将指定链中所有规则的byte 计数器清零

通用匹配【match】:
-p 或–protocol 该通用协议匹配用于检查某些特定协议。协议示例有TCP、UDP、ICMP、用逗号分隔的任何这三种协议的组合列表以及ALL(用于所有协议)。ALL 是默认匹配。可以使用! 符号表示不与该项匹配
– s 或–source 该源匹配用于根据信息包的源IP 地址来与它们匹配。该匹配还允许对某一范围内的IP 地址进行匹配,可以使用! 符号,表示不与该项匹配。默认源匹配与所有IP地址匹配
– d 或– destination 该目的地匹配用于根据信息包的目的地IP地址来与它们匹配。该匹配还允许对某一范围内IP 地址进行匹配,可以使用! 符号表示不与该项匹配
–sport 指定匹配规则的源端口或端口范围
–dport 指定匹配规则的目的端口或端口范围
-i 匹配单独的网络接口或某种类型的接口设置过滤规则

目标项说明【target】:
ACCEPT 当信息包与具有ACCEPT 目标的规则完全匹配时,会被接受(允许它前往目的地)
DROP 当信息包与具有DROP 目标的规则完全匹配时,会阻塞该信息包,并且不对它做进一步处理。该目标被指定为-j DROP
REJECT 该目标的工作方式与DROP 目标相同,但它比DROP 好。和DROP 不同,REJECT 不会在服务器和客户机上留下死套接字。另外,REJECT 将错误消息发回给信息包的发送方。该目标被指定为-j REJECT
RETURN 在规则中设置的RETURN 目标让与该规则匹配的信息包停止遍历包含该规则的链。如果链是如INPUT 之类的主链,则使用该链的默认策略处理信息包。它被指定为-jump RETURN
LOG 表示将包的有关信息记录入日志
TOS 表示改写数据包的TOS 值

ps:工作以后,发现自己很少再学习新的东西了,一直在吃老本。当然这也不怨工作了以后更忙了,混社会毕竟跟在学校不一样,没那么无忧无虑,年龄大了考虑的东西越来越多,学习的时间也就少了。很佩服那些工作了还拿出时间提升自己的人!

2 thoughts on “iptables入门

发表评论

电子邮件地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据