分类: LINUX
2009-03-23 11:36:34
IPTABLES 是linux系统中集成的一个防火墙系统,是我个人感觉它是linux中设置比较灵活而又难度较大的一个系统。下面是我在使用IPTABLES过程中积累的一些认识和知识的积累。如果您有更好的或者说更多的应用,请跟贴。好东西大家分享。
我始终相信 “技术无极限,沟通是关键”。 好东西大家支持。共同学习,共同进步。
向所有提供资料和跟贴的同仁表示感谢。
1、 先说说表
(1)Filter tables (过滤表) - 包含 INPUT、OUTPUT、FORWARD 用于处理输入、输出和转发包。Filter表是缺省的表。
(2)Nat 表 - 包含PREROUTING(路由前)、POSTROUTING(路由后)、OUTPUT(输出) 用于处理网络地址翻译。
(3)mangle表(矫正表)
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 、tcp、udp
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 应用教程。