Linux 版 (精华区)

发信人: lofe (『故乡Θ梧桐树』), 信区: Linux
标  题: Linux 2.4有状态防火墙设计(一) 
发信站: 哈工大紫丁香 (2001年07月30日11:10:31 星期一), 站内信件

Linux 2.4有状态防火墙设计(一) 
2001-07-28 10:05 

发布者:netbull 阅读次数:340  

第一章 关于本教程 

我应该学习这门教程吗? 


本教程演示了如何使用 netfilter 来建立功能强大的 Linux 有状态防火墙。您需
要的只是使用 Linux 2.4 内核的现有 Linux 系统。安装了 Linux 2.4 内核的膝
上型计算机、工作站、路由器或服务器都符合要求。 

您应该相当熟悉标准网络术语,如 IP 地址、源和目标端口号、TCP、UDP 和 ICMP
 等。学完本教程后,您将会懂得如何创建 Linux 有状态防火墙,而且会有几个示
例配置可供您在自己的项目中使用。 

关于作者 


如果有关于本教程内容的技术问题,请通过 drobbins@gentoo.org 联系作者 
Daniel Robbins。 

Daniel Robbins 居住在新墨西哥州的 Albuquerque。他是 Gentoo Technologies,
 Inc. 的总裁兼 CEO,Gentoo Linux(用于 PC 的高级 Linux)和 Portage 系统
(Linux 的下一代移植系统)的创始人。他还是 Macmillan 书籍 Caldera 
OpenLinux Unleashed、SuSE Linux Unleashed 和 Samba Unleashed 的合作者。
Daniel 自二年级起就与计算机某些领域结下不解之缘,那时他首先接触的是 Logo
 程序语言,并沉溺于 Pac-Man 游戏中。这也许就是他至今仍担任 SONY 
Electronic Publishing/Psygnosis 的首席图形设计师的原因所在。Daniel 喜欢
与妻子 Mary 和新出生的女儿 Hadassah 一起共度时光。 


第二章 首要步骤 


定义目标 


在本教程中,我们将创建 Linux 有状态防火墙。此防火墙将会在 Linux 膝上型计
算机、工作站、服务器或路由器上运行;其主要目的是只允许某些类型的网络通信
流通过。为了增加安全性,我们将配置防火墙,使它删除或拒绝我们不感兴趣的通
信流,以及可能会造成安全性威胁的通信流。 

获取工具 


开始设计防火墙之前,需要做两件事。首先,需要确保 "iptables" 命令可用。作
为 root,输入 "iptables",查看它是否存在。如果不存在,那么需要先安装它。
以下是安装方法:访问 http://netfilter.samba.org,下载可以找到的 
iptables.tar.gz 的最新版本(目前是 iptables-1.1.2.tar.gz)。然后,输入以
下命令来安装它(为简便起见,省略了输出): 


# tar xzvf iptables-1.1.2.tar.gz 
# cd iptables-1.1.2 
# make 
# make install 

内核配置,第 1 部分 

安装之后,应该有一个 "iptables" 命令可供使用,还有一个方便的 iptables 帮
助页面("man iptables")。好;现在只需要确保已在内核中构建了必需的功能。
本教程假设您编译自己的内核。进入 /usr/src/linux,输入 "make 
menuconfig" 或 "make xconfig";我们将启用一些内核网络功能。 

内核配置,第 2 部分 


在 "Networking options" 部分中,确保至少启用了以下选项: 


<*> Packet socket 
[*] Network packet filtering (replaces ipchains) 
<*> Unix domain sockets 
[*] TCP/IP networking 
[*] IP: advanced router 
[*] IP: policy routing 
[*] IP: use netfilter MARK value as routing key 
[*] IP: fast network address translation 
[*] IP: use TOS value as routing key 

然后,在 "IP: Netfilter Configuration --->" 菜单中,启用每个选项,这样我
们就拥有了完整的 netfilter 功能。虽然我们不会使用所有 netfilter 功能,但
最好启用它们,这样您可以在以后进行一些实验。 


内核配置,第 3 部分 


"Networking options" 类别下有一个网络选项不应该启用:明确拥塞通知。让这
个选项保留禁用状态: 


[ ] IP: TCP Explicit Congestion Notification support 

如果启用了这个选项,那么 Linux 机器将不能继续与 8% 的因特网进行网络通信
。启用 ECN 时,Linux 机器发送出的一些包将会设置 ECN 位;不过,这个位会使
许多网际路由器感到困惑,因此一定要禁用 ECN。 

好,现在已根据我们的需要正确配置了内核,编译一个新的内核,安装它,然后重
新引导。现在开始使用 netfilter :) 


防火墙设计基础 


在创建防火墙时,"iptables" 命令是我们的朋友。我们使用它与内核中的网络包
过滤规则进行交互。我们将使用 "iptables" 命令来新建规则、列出现有规则、刷
新规则和设置缺省包处理策略。这就意味着要创建防火墙,需要输入一系列 
iptables 命令,这就是我们首先要讨论的内容(此时请别输入此命令!)…… 

# iptables -P INPUT DROP 

您现在看到的是一个几乎“完美”的防火墙。如果输入此命令,您将会得到难以置
信的完美保护,它可以防止任何形式的进入恶意攻击。那是因为此命令告诉内核删
除所有进入网络包。虽然这个防火墙非常安全,但它有点傻。但在继续讨论之前,
让我们研究一下此命令是如何执行操作的。 

设置链策略 

"iptables -P" 命令用于为包过滤规则链设置缺省策略。在本示例中,iptables 
-P 用于为 INPUT 链设置缺省策略,INPUT 是一个内置链,包括了应用于每个进入
包的规则。通过将缺省策略设置成 DROP,告诉内核应该删除(即,废弃)到达 
INPUT 规则链末端的任意包。而且,由于我们还没有对 INPUT 链添加任何规则,
因此所有包都会到达此链的末端,而且所有包都会被删除。 

再次声明,这个命令本身根本没有用。但是,它演示了一个很好的防火墙设计策略
。我们从缺省情况下删除所有包开始,然后逐步开放防火墙,这样它将会满足我们
的需要。这种做法可以确保防火墙会尽可能安全。 















 

来源:IBM developerWorks 中国  


--
伤离别,离别虽然在眼前
说再见,再见不会太遥远
若有缘,有缘就能期待明天
你和我重逢在灿烂的季节

朋友,珍重

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 172.16.7.88]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.286毫秒