赛迪网 > IT技术 Linux > 最新更新
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

纠正一些流传的iptables 脚本的误区

发布时间:2006.07.25 07:09     来源:chinaunix    作者:platinum

经常看到一些网络中流传的 iptables 脚本在开头的位置大多是如下内容

#!/bin/sh

#

modprobe ipt_MASQUERADE

modprobe ip_conntrack_ftp

modprobe ip_nat_ftp

iptables -F

iptables -t nat -F

iptables -X

iptables -t nat -X

iptables -P INPUT DROP

摘自 http://bbs.chinaunix.net/viewthread.php?tid=712506

有的是这样的

# 2.0 载入模组

PATH=/sbin:/bin:/usr/sbin:/usr/bin

export PATH EXTIF INIF INNET

modprobe ip_tables > /dev/null 2>&1

modprobe iptable_nat > /dev/null 2>&1

modprobe ip_nat_ftp > /dev/null 2>&1

modprobe ip_nat_irc > /dev/null 2>&1

modprobe ip_conntrack > /dev/null 2>&1

modprobe ip_conntrack_ftp > /dev/null 2>&1

modprobe ip_conntrack_irc > /dev/null 2>&1

摘自 http://linux.vbird.org/linux_server/0250simple_firewall.php#simple_firewall_script

网上流传的东西未必就都是正确的,针对上面一些误区,我来做一下详细说明

1、modprobe ip_tables

当 iptables 对 filter、nat、mangle 任意一个表进行操作的时候,会自动加载 ip_tables 模块

另外,iptable_filter、iptable_nat、iptable_mangle 模块也会自动加载,情形例如

# lsmod

Module Size Used by Not tainted

iptable_mangle 2136 0 (autoclean) (unused)

iptable_filter 1708 0 (autoclean) (unused)

ip_tables 12832 2 [iptable_mangle iptable_filter]

8139too 13704 1

mii 2544 0 [8139too]

reiserfs 183376 2 (autoclean)

raid1 13068 1 (autoclean)

md 44480 2 [raid1]

因此,脚本里不用写 modprobe ip_tables

2、modprobe ip_conntrack

ip_conntrack 是状态检测机制,state 模块要用到

当 iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 时,ip_conntrack 自动加载,例如

# lsmod

Module Size Used by Not tainted

ipt_state 536 1 (autoclean)

ip_conntrack 25096 0 (autoclean) [ipt_state]

iptable_filter 1708 1 (autoclean)

ip_tables 12832 2 [ipt_state iptable_filter]

8139too 13704 1

mii 2544 0 [8139too]

reiserfs 183376 2 (autoclean)

raid1 13068 1 (autoclean)

md 44480 2 [raid1]

另外,modprobe ip_conntrack_ftp 时也会自动加载 ip_conntrack

3、modprobe ip_conntrack_ftp

ip_conntrack_ftp 是本机做 FTP 时用的

ip_nat_ftp 是通过本机的 FTP 需要用到的(若你的系统不需要路由转发,没必要用这个)

当 modprobe ip_nat_ftp 时,系统自动会加载 ip_conntrack_ftp 模块,例如

# lsmod

Module Size Used by Not tainted

ip_nat_ftp 2736 0 (unused)

iptable_nat 18040 4 [ip_nat_ftp]

ip_tables 12544 12 [iptable_filter iptable_nat]

ip_conntrack_ftp 3856 1

ip_conntrack 20268 3 [ip_nat_ftp iptable_nat ip_conntrack_ftp]

8139too 13704 1

mii 2544 0 [8139too]

reiserfs 183376 2 (autoclean)

raid1 13068 1 (autoclean)

md 44480 2 [raid1]

因此,当需要用到 ip_nat_ftp 时,脚本里不用写 modprbe ip_conntrack 和 modprobe ip_conntrack_ftp

4、iptables -P OUTPUT DROP

除非你明白 filter 中 OUTPUT 链的作用,除非你想限制 Linux 本机上网

否则,不要 iptables -P OUTPUT DROP!

5、先设置规则,还是先设置默认策略

不少脚本都是这样写的

iptables -F xxx

iptables -X

iptables -P INPUT DROP

modprobe ip_nat_ftp

之后才是具体规则

iptables -P INPUT DROP 是什么意思?

设置默认规则为 DROP,也就是说如果数据包没有被链中规则匹配,则默认按默认规则处理

试想,假如你在远程调试一个脚本,当前 filter 表的 INPUT 链默认规则是 DROP,iptables -F 后意味着什么?

因此,我建议大家

先设置默认规则为 ACCEPT

然后添加具体链的规则

最后设置默认规则为 DROP

若用基于 RedHat(CentOS) 的发行版,可以用 service iptables stop 来卸载内核中与 iptables 和 netfilter 有关的东西


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· DB2 个人版在 Linux 下的安装过程简介 (07-24) · Fedora Core 5 中内核的变动及重要信息 (07-21)
· 用GRUB(包括WINGRUB)命令行模式引导安装Lin (07-21) · 详述用WinGrub来引导Fedora Core Linux的安装 (07-21)
· 服务器架设入门:Apache完全安装指南 (07-21) · Linux 下宽带设置使局域网连接互联网 (07-20)
· 浅谈Linux优化及安全配置个人体会总结 (07-20) · Linux下添加新硬盘及分区格式化要点 (07-20)
· RedHat Enterprise Linux 4新安全机制 (07-20) · 新手必学 Linux系统安全命令详解 (07-20)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
[政务][电信][金融][农业][制造业][中小企业]
[CIO][ERP][协同][IT管理][中间件][电子商务]
[政策][地方][专家][评估][辞典][博客][社区]
· 专题:一路畅通构想曲——让出行不再遭遇堵车
· CIO工作亲历:企业ERP选型不能忽视"选人关"
· 综述:信息化建设给中国监狱带来的各种变化
· 金融业风险管理和法规遵从有五点需考虑的因素
· 保险业CIO关注:该如何建立统一高效的CRM体系
· 调查显示:多数CIO对IT规划仍存在困惑和误解
  博客·论坛 ·曾剑秋·项立刚·Java学习·网管