#!/bin/sh
#
modprobeipt_MASQUERADE
modprobeip_conntrack_ftp
modprobeip_nat_ftp
iptables-F
iptables-tnat-F
iptables-X
iptables-tnat-X
iptables-PINPUTDROP
摘自http://bbs.chinaunix.net/viewthread.php?tid=712506
有的是这样的
#2.0载入模组
PATH=/sbin:/bin:/usr/sbin:/usr/bin
exportPATHEXTIFINIFINNET
modprobeip_tables>/dev/null2>&1
modprobeiptable_nat>/dev/null2>&1
modprobeip_nat_ftp>/dev/null2>&1
modprobeip_nat_irc>/dev/null2>&1
modprobeip_conntrack>/dev/null2>&1
modprobeip_conntrack_ftp>/dev/null2>&1
modprobeip_conntrack_irc>/dev/null2>&1
网上流传的东西未必就都是正确的,针对上面一些误区,我来做一下详细说明
(上面第二个出自鸟哥的脚本,我们只讨论技术,没有得罪的意思^_^)
1、modprobeip_tables
当iptables对filter、nat、mangle任意一个表进行操作的时候,会自动加载ip_tables模块
另外,iptable_filter、iptable_nat、iptable_mangle模块也会自动加载,情形例如
#lsmod
ModuleSizeUsedbyNottainted
iptable_mangle21360(autoclean)(unused)
iptable_filter17080(autoclean)(unused)
ip_tables128322[iptable_mangleiptable_filter]
8139too137041
mii25440[8139too]
reiserfs1833762(autoclean)
raid1130681(autoclean)
md444802[raid1]
因此,脚本里不用写modprobeip_tables[/color]
2、modprobeip_conntrack
ip_conntrack是状态检测机制,state模块要用到
当iptables-AINPUT-mstate--stateRELATED,ESTABLISHED-jACCEPT时,
ip_conntrack自动加载,例如
#lsmod
ModuleSizeUsedbyNottainted
ipt_state5361(autoclean)
ip_conntrack250960(autoclean)[ipt_state]
iptable_filter17081(autoclean)
ip_tables128322[ipt_stateiptable_filter]
8139too137041
mii25440[8139too]
reiserfs1833762(autoclean)
raid1130681(autoclean)
md444802[raid1]
另外,modprobeip_conntrack_ftp时也会自动加载ip_conntrack
[color=red]因此,脚本里不用写modprobeip_conntrack[/color]
3、modprobeip_conntrack_ftp
ip_conntrack_ftp是本机做FTP时用的
ip_nat_ftp是通过本机的FTP需要用到的(若你的系统不需要转发,没必要用这个)
当modprobeip_nat_ftp时,系统自动会加载ip_conntrack_ftp模块,例如
#lsmod
ModuleSizeUsedbyNottainted
ip_nat_ftp27360(unused)
iptable_nat180404[ip_nat_ftp]
ip_tables1254412[iptable_filteriptable_nat]
ip_conntrack_ftp38561
ip_conntrack202683[ip_nat_ftpiptable_natip_conntrack_ftp]
8139too137041
mii25440[8139too]
reiserfs1833762(autoclean)
raid1130681(autoclean)
md444802[raid1]
因此,当需要用到ip_nat_ftp时,脚本里不用写modprbeip_conntrack和modprobeip_conntrack_ftp
4、iptables-POUTPUTDROP
除非你明白filter中OUTPUT链的作用,除非你想限制Linux本机上网
否则,不要iptables-POUTPUTDROP!
5、先设置规则,还是先设置默认策略
不少脚本都是这样写的
iptables-Fxxx
iptables-X
iptables-PINPUTDROP
modprobeip_nat_ftp
之后才是具体规则
iptables-PINPUTDROP是什么意思?
设置默认规则为DROP,也就是说如果数据包没有被链中规则匹配,则默认按默认规则处理
试想,假如你在远程调试一个脚本,当前filter表的INPUT链默认规则是DROP,iptables-F后意味着什么?
因此,我建议大家
[color=red]
先设置默认规则为ACCEPT
然后添加具体链的规则
最后设置默认规则为DROP
若用基于RedHat(CentOS)的发行版,可以用serviceiptablesstop来卸载内核中与iptables和netfilter有关的东西
最新评论