打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
纠正一些流传的iptables 脚本的误区 — IT技术 - 赛迪网
userphoto

2010.09.02

关注

纠正一些流传的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


摘自 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 有关的东西
 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
ftp connect: No route to host 解决方案
淺談 iptables - 3個應用
iptables的备份、恢复及防火墙脚本的基本使用
iptables详解
Iptables作网关时一种简单的NAT使用方式
iptables应用汇总
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服