初识iptables

是什么?

  Linux防火墙。用户可高度定制自己的防火墙策略,更可配置转发、路由、网关等。

 

技术支持及下载地址http://www.netfilter.org/projects/iptables/downloads.html

 

写在最前面——表、链和规则

  规则即用户自定义的访问控制规则。规则添加到链中,多条链组成表。链可以由用户自己创建,表由程序内置。

  iptables内置了filter,nat和mangle三张表。如果不指定表,则默认为filter表。        

  filter表负责过滤数据包,是最常用的表。包括的规则链有,INPUT,OUTPUT和FORWARD。 

  INPUT匹配目的IP是本机的数据包,OUTPUT匹配源IP是本机的数据包,FORWARD匹配流经本机的数据包。

 

命令格式(对大小写敏感)——iptables [-t 表名] 命令  [链名] [选项] [-j 策略]

范例:iptables -t filter -A INPUT -p tcp --dport 80 -j DROP

解析:

-t filter  //指定表名。如不指定则默认为filter表

-A  //命令。-A表示在链的末尾添加一条规则

INPUT  //链名。是命令操作的对象

-p tcp --dport 80  //选项。

-j DROP  //策略

 

常用命令:

-A -append

在所指定链的末尾添加规则。

-D -delete

从指定链中删除规则。有两种选择待删除规则的方式:一种是使用规则的序号;一种是列出规则的详情。

-R -replace

从指定链中取代一条规则。一般用规则的序号标识待取代的规则。

-I -insert

根据给出的规则序号向指定链中插入一规则。不指定序号时,默认在头部插入。

-L -list

显示所选链的所有规则。

-F -flush

清空所选链。这等于把所有规则一个个的删除。

--Z -zero

把所有链的包及字节的计数器清空。

-N -new-chain

根据给出的名称建立一个新的用户定义链。这必须保证没有同名的链存在。

-X -delete-chain

删除指定的用户自定义链。这个链必须没有被引用,如果被引用,在删除之前你必须删除或者替换与之有关的规则。如果没有指定链名,这条命令将试着删除每个非内建的链。

-P -policy

设置链的策略。即默认情况下的规则。

-E -rename-chain

根据用户给出的名字对指定链进行重命名。

-h Help.

帮助。给出当前命令语法非常简短的说明。

 

常用选项:

-p --proto

指定要匹配的协议 eg:-p tcp

-s

指定要匹配的源地址 eg:-s 192.168.0.10

--sport

指定要匹配的源端口 eg:--sport 22

-d

指定要匹配的目标地址

--dport

指定要匹配的目标端口 eg:--dport 80

 

常用策略:

ACCEPT 接受匹配到的包

DROP 丢弃匹配到的包

REJECT 拒绝匹配到的包,并通知发送方

 

ps:完整的命令、选项和策略可参见百度百科,后续也会有详细介绍

posted @ 2013-05-07 13:05  CodEgg  阅读(166)  评论(0编辑  收藏  举报