IPTABLES linux系统中集成的一个防火墙系统,是我个人感觉它是linux中设置比较灵活而又难度较大的一个系统。下面是我在使用IPTABLES过程中积累的一些认识和知识的积累。如果您有更好的或者说更多的应用,请跟贴。好东西大家分享。

我始终相信 “技术无极限,沟通是关键”。 好东西大家支持。共同学习,共同进步。

向所有提供资料和跟贴的同仁表示感谢。


1、 先说说表

1Filter tables (过滤表) 包含 INPUTOUTPUTFORWARD 用于处理输入、输出和转发包。Filter表是缺省的表。

2Nat 包含PREROUTING(路由前)POSTROUTING(路由后)OUTPUT(输出) 用于处理网络地址翻译。

3mangle表(矫正表)

2、 简单的IPTABLES 命令

Iptables -F (清除所以规则)

Iptables -X (清除所有自定义规则)

Iptables –L (列出当前所以规则)

Iptables –P (改变内建规则表的默认策略)

Iptables –Z(将规则表计数器清零)

3、 IPTABLES 命令规则

Iptables –t filter –A INPUT –p tcp –dport 23 –j REJECT

红色部分定义使用的表

兰色部分定义匹配的规则

绿色部分定义采取的措施

采取的措施-『ACCEPT(接受,等于不进行过滤) / DROP(丢弃) / REJECT(弹回)

-s -根据源地址进行匹配的参数

-d -根据目的地址进行匹配的参数

在使用 “!”的时候,需要在两端加空格

根据协议进行匹配的-p 参数

Icmp tcpudp

4、 一些常用举例和说明

在调试iptables规则时,你也许需要反复修改你的脚本来实现某些特定的功能,这时建议在你的脚本里添加这样几行,以防止重复设置规则:

# 清除所有规则

iptables -F -t filter

iptables -X -t filter

iptables -Z -t filter

iptables -F -t nat

iptables -X -t nat

iptables -Z -t nat

# 设置内建规则表的默认策略

iptables -P INPUT ACCEPT

iptables -P OUTPUT ACCEPT

iptables -P FORWARD ACCEPT

iptables -t nat -P PREROUTING ACCEPT

iptables -t nat -P POSTROUTING ACCEPT

iptables -t nat -P OUTPUT ACCEPT

“-t”选项是“--table”的简写,它指明了你要对哪类规则表进行操作,默认的是指filter

以下为举例说明:

1.禁止/ 接受icmp协议-多用与ping [ iptables -A INPUT -p icmp -j DROP/ ACCEPT ]

2. 指定端口

指定数据包进入的接口 -i --in-interface
指定数据包送出的接口 -o --out-interface

INPUT规则表中只允许指定-i接口,OUTPUT规则表中只允许指定-o接口,FORWARD

表可以指定这两种接口。

允许从eth1进入的数据包――[ iptables -A INPUT -i eth1 -j ACCEPT ]

允许从eth0接口送出的数据包――[ iptables -A OUTPUT -o eth0 -j ACCEPT ]
转发从eth1进入,eth0送出的数据包 ―― [ iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT ]

3. TCP/UDP扩展
指定源端口 --sport 或 --source-port
指定目的端口 --dport 或 --destination-port
允许从eth0进入访问到目标端口为21的tcp/udp数据包 ――
[iptables -A INPUT -i eth0 -p tcp/udp --dport 21 -j ACCEPT ]

4. 启动外部对内部转址
凡对 210.0.2.55:80 连线者, 则转址至 192.168.1.2:80
iptables -t nat -A PREROUTING -i eth0 -p tcp -d 210.0.2.55 --dport 80 -j DNAT --to- destination 192.168.1.2:80

…….请跟贴

大家跟贴时,请不要把相同应用重复发帖。让我们共同完成一个IPTABLES 应用教程。