当前位置:Linux教程 - Linux资讯 - 一些网络中流传的 iptables 脚本的误区

一些网络中流传的 iptables 脚本的误区

  经常看到一些网络中流传的 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  网上流传的东西未必就都是正确的,针对上面一些误区,我来做一下详细说明 (上面第二个出自鸟哥的脚本,我们只讨论技术,没有得罪的意思 ^_^) 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)
[1] [2] [3] 下一页 

md                     44480   2  [raid1] 因此,脚本里不用写 modprobe ip_tables[/color] 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 [color=red]因此,脚本里不用写 modprobe ip_conntrack[/color] 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)
上一页 [1] [2] [3] 下一页 

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_ftp4、iptables -P OUTPUT DROP 除非你明白 filter 中 OUTPUT 链的作用,除非你想限制 Linux 本机上网 否则,不要 iptables -P OUTPUT DROP!5、先设置规则,还是先设置默认策略 不少脚本都是这样写的 iptables -F xxxiptables -Xiptables -P INPUT DROPmodprobe ip_nat_ftp之后才是具体规则 iptables -P INPUT DROP 是什么意思? 设置默认规则为 DROP,也就是说如果数据包没有被链中规则匹配,则默认按默认规则处理 试想,假如你在远程调试一个脚本,当前 filter 表的 INPUT 链默认规则是 DROP,iptables -F 后意味着什么? 因此,我建议大家 [color=red] 先设置默认规则为 ACCEPT 然后添加具体链的规则 最后设置默认规则为 DROP 若用基于 RedHat(CentOS) 的发行版,可以用 service iptables stop 来卸载内核中与 iptables 和 netfilter 有关的东西

(出处:http://www.sheup.com)


上一页 [1] [2] [3] 

(出处:http://www.sheup.com)


上一页 [1] [2] [3] [4] 

(出处:http://www.sheup.com/)


上一页 [1] [2] [3] [4] [5]