庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>操作系统>Linux>系统安全>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

Linux 2.4有状态防火墙设计(一)

 作者:本站收集   日期:2005-4-13
字号选择〖 〗/ 双击滚屏 单击停止   
第一章 关于本教程

我应该学习这门教程吗?


教程演示了如何使用 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 链添加任何规则,因此所有包都会到达此链的末端,而且所有包都会被删除。

再次声明,这个命令本身根本没有用。但是,它演示了一个很好的防火墙设计策略。我们从缺省情况下删除所有包开始,然后逐步开放防火墙,这样它将会满足我们的需要。这种做法可以确保防火墙会尽可能安全。
上一篇:Linux 网络安全问题及其对策    下一篇:Linux 2.4有状态防火墙设计(二)  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: 本站收集
信息来源: 网络 录入时间: 2005-4-13
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿