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

iptables命令详解

时间:2015-11-27 15:07:06      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:防火墙   iptables   规则   

防火墙是内核的配置,iptables是使用防火墙的工具


iptables语法:



iptables [-t 表名] 动作 链名 匹配条件 -j 目标动作或跳转



详解:


一、表名TABLE

1、raw表:确定是否对数据包进行状态跟踪(目标是关闭nat表上启用的连接追踪功能)。

2、mangle表:为数据包设置标记。

3、nat表:地址转换,修改数据包中的源、目标IP地址或端口;启用connection_track;SNAT,DNAT,PNAT

4、filter表:过滤,确定是否放行该数据包

默认为filter表



二、动作COMMAND

1、对于链的动作:

-F:flush, 清空规则链;

-N:new, 自建一条自定义链

-X: delete, 删除一条自定义的空链

-Z:zero,(数据包和流量)计数器归零

-P:policy,设置默认策略,对filter表来讲,默认规则为ACCEPT或DROP,不能为REJECT;

-E:重命名自定义链



2、对于链中规则的动作:

-A:向链中添加一条规则,默认插入所有规则的最后一条。

-I:向链中插入一条规则,默认插入所有规则的第一条。

iptables -I INPUT 2 ·····

即为在链中第2条规则前添加一条规则。 


-D:从链中删除一条规则。

-R:替换链中的一条规则。


3、查询动作:

-L

-n: 数字格式显示主机地址和端口;

-v: 详细格式,-vv, -vvv

--line-numbers: 显示规则编号

-x: exactly,不要对计数器的计数结果做单位换算,而显示其精确值



三、链名CHAIN

PREROUTING:路由前,进行路由选择前处理数据包

INPUT:到达本机内部的报文必经之路,处理入站数据包

FORWARD:由本机转发的报文必经之路,处理转发数据包

OUTPUT:由本机发出的报文的必经之路,处理出站数据包

POSTROUTING:路由后,进行路由选择后处理数据包



四、匹配条件CRETIRIA 

1、通用匹配

-s IP地址:指定报文源IP地址匹配的范围;可以是IP,也可以是网络地址;可使用!取反;

--src, --source

-d IP地址:指定报文目标IP地址匹配的范围;

--dst, --destination

-p 协议:指定匹配报文的协议类型,一般有三种tcp, udp和icmp;

-i 网络接口名: 数据报文流入的接口;PREROUTING, INPUT, FORWARD

-o 网络接口名: 数据报文流出的接口;OUTPUT, FORWARD, POSTROUITING


2、扩展匹配

(1)隐式扩展:当使用-p {tcp|udp|icmp}中的一种时,可以直接使用扩展专用选项;

-p tcp:

--sport 源端口号: 指定源端口

--dport 目标端口号: 指定目标端口

-p udp:

--sport 源端口号: 指定源端口

--dport 目标端口号: 指定目标端口

-p icmp [-m icmp]

--icmp-type

   0: echo-reply, ping响应

   8: echo-request, ping请求




(2)显式扩展:必须明确说明使用哪个模块进行扩展,而后才能使用其扩展专用选项;

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

用法:

        -m 扩展模块名称

-m state --state 

    例:匹配源mac地址

     -m mac --mac-source mac地址

模块:    

1】multiport: 多端口匹配,可用于匹配非连续或连续端口;最多指定15个端口;


专用选项:

--source-ports, --sports port[,port,port]

--destination-ports, --dports

--ports

例:iptables -I INPUT -d 172.16.100.7 -p tcp -m multiport --dports 22,80 -j ACCEPT

2】iprange: 匹配指定范围内的地址;匹配一段连续的地址而非整个网络时有用;


专用选项:

[!] --src-ragne IP[-IP]

[!] --dst-range


例:iptables -A INPUT -d 172.16.100.7 -p tcp --dport 23 -m iprange --src-range 172.16.100.1-172.16.100.100 -j ACCEPT

例:iptables -A OUTPUT -s 172.16.100.7 -p tcp --sport 23 -m iprange --dst-range 172.16.100.1-172.16.100.100 -j ACCEPT


3】string: 字符串匹配,能够检测报文应用层中的字符串

专用选项:

--string "STRING"

--hex-string "HEX_STRING": HEX_STRING为编码成16进制格式的字串;


例:iptables -I OUTPUT -m string --algo kmp --string "sex" -j DROP

4】time: 基于时间做访问控制

专用选项:

--datestart YYYY[-MM][-DD[Thh[:mm[:ss]]]]

--datestop 


--timestart hh:mm[:ss]

--timestop hh:mm[:ss]


--weekdays day[,day]

Mon, Tue,


例:iptables -I INPUT -d 172.16.100.7 -p tcp --dport 80 -m time --timestart 08:20 --timestop 18:40 --weekdays Mon,Tue,Thu,Fri -j REJECT


5】connlimit: 连接数限制,对每IP所能够发起并发连接数做限制;

专用选项:

[!] --connlimit-above [n] 


例:iptables -A INPUT -d 172.16.100.7 -p tcp --dport 22 -m connlimit --connlimit-above 2 -j DROP


6】limit: 速率限制

专用选项:

--limit n[/second|/minute|/hour|/day]

--limit-burst n


例:iptables -A INPUT -d 172.16.100.7 -p icmp --icmp-type 8 



五、目标动作TARGET

1、ACCEPT

2、DROP:丢弃数据包不予处理,进行完此处理后将不再对比其他规则,直接中断过滤程序。

3、REJECT:拦阻数据包,并返回数据包通知对方,可返回的数据包。

4、LOG:将iptables日志存储在/var/log/messages文件中。


[root@localhost log]# iptables -L -v#显示的参数简单解释

Chain:链

policy:默认策略

pkts:该规则处理数据包的个数

bytes:该规则处理数据包的大小(流量)

target:目标动作

prot:协议(条件)

opt:其他选项

source:源地址

destination:目标地址


以上均为理论知识点,以后遇到具体实例后回继续添加。


iptables命令详解

标签:防火墙   iptables   规则   

原文地址:http://littlehorse.blog.51cto.com/10066209/1717459

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