摘要:使用自由软件维护异构网络的安全
计算机网络安全很可能是21世纪几大技术挑战之一。
总之,象许多让人忧心的领域,每个人都谈论它,但是即使是应该感受最深的人也没有察觉到潜在灾难的规模是如此之大。”感受最深”指的是支撑软件或系统软件设计者。最好的例子一再被提到,来自于Redmond,在那里,安全可没有象市场那样运转的按步就班。
幸运地,在20世纪的最后2个10年里诞生了自由软件和随之而来的哲学。如果你想提高你的机器,你的系统,你的网络的安全的话,你就应该在这里多花些工夫。自由软件团体在安全方面的工作比所有的大公司合起来都多。
可以这么说,工具不能解决所有的问题,维护一个网络的安全是永久性的任务:因为总是会出现新的情况。
这意味着你不能说一个网络100%的安全。你能做到的是消除潜在的隐患。我们这里讨论的只是你能减少隐患的一小部分。读完这份特刊(作者注:你应该记住这篇文章是一本法国的Linux杂志关于安全的特刊),你会了解更多一些安全的知识,但是无论如何你不能说你的网络是安全的。在这里我预先警告过你一下。 当然象这样一篇文章不能穷尽所有问题。安全问题已经形成了许多自己的文化但是距离彻底的解决问题还很远。相应地,不要从这篇文章中揣测象操作系统,工具,配置等等事情。
作为导言的结束,在这篇文章中我们引用LinuxFocus的文章的几部分,不要担心,已经征得作者同意:已经证实他和本人是同一个人!
引言
首先,我们探讨有着很多不同系统的异构网络的结构,其中的系统或多多少已经地广泛传播。操作系统越多,系统越复杂,因为不是所有的系统在表现?上都是一致的。更进一步,作为服务器的机器在网络中有不同的功能:我们将拥有一个多样化的网络。
其次,我们将浏览一系列的对提高安全性有助益的工具。选择是很多的:我们不可能一一列举。很显然,我们会讲解如何使用这些工具来提高机器和网络的安全性。下一章节回顾不同系统在安全性方面的特点。 结论将解释安全过程的”相对性”,说明为什么安全性还有一条很长的路要走,而不是把它”划分” 到未来学里面去。
一个异构网络的例子
第一个有利的是地球上所有的操作系统都”讲”TCP/IP语言。有了这一点不同的系统可以相互通信。相应地作为探讨网络的一个例子,TCP/IP总是被提到。换而言之,其他专有的,不常见的和过时的协议不会提到。我们也不讨论物理结构,比如连接的形式,分类等等。
这样我们在这个网络里什么都放一些进去。当然会包括UNIX,无论专有的或免费的,比如,Solaris2.6,或SunOs 5.6,如果你原意也可以是Irix 6.5,Linux(RH 6.2)或MacOs X。我们可以加一些QNX,NeXTSTEP,NetBSD或OpenBSD。为了遵循”传统”,我们将包括那个叫Not Terminated 4.0的东西(不是,没有什么别的意思,只是它比你想像的更糟糕)。
这里呢,我们还包括OS2这个稍好一点的系统。最后我们加入一些”非传统”的OS,比如BeOS,AmigaOS(是的,它存在。不相信吗?)
当然有的人已经抱怨了:什么没有AIX,没有HP-UX?没有。如果你提到每一个UNIX,那会写一个10卷的文章。无论如何,基本的安全准则对所有的系统都是有效的。
现在,我们能叫它们做些什么呢?
举例来说,可以让Solaris作为应用服务器。Irix负责备份。NT作为另一个应用服务器。Linux作为网关。另一个Linux机器用做http服务器或者数据库服务器。其他所有的机器都是客户机。网络中大约30台机器使用密文认证。我们将选择比较复杂的认证方式: NIS (Yellow Pages),LDAP或者Kerberos...。为了让事情简单一点。我们不使用NFS,它也许有用并且安全性能有所改善,但是从安全着眼,你最好忘记它。在法国,有句老话,”最好不要把所有的鸡蛋放到一个篮子里”。不是”一定要”但最好是服务或者协议一个系统只使用一种。举例来说,一个ftp服务器,http服务器很适宜在各自的UNIX机器上。另一些UNIX机器可以用做SSH服务器,其他的做SSH的客户端。后面我们会提到SSH。我们将使用静态的IP:不要DHCP。换而言之,我们使用基本的功能即可。这个样子可以构成一个有50台机器的网络。机器再多那就会变成恶梦的。
安全工具和如何使用他们
一般来说,做一件事情总是有不止一种方法(TIMTOWDI)。理想的情况是一切从头来,安装机器建立网络。但是现实可不是演电影!相应地,我们的网络应该是用过一段时间了,机器从这里搬到哪里,旧的去新的来。因为CPU在Mhz上的”竟赛”,举例来说,今天的Intel 的机器不会持续很长的时间。大约3年以后,机器的零部件就很难买到了。你要不让你的机器废物利用做些轻便的工作要不就是干脆把它扔掉:无奈但是很现实。幸运的是,其他的系统持续时间长一些并且还可以继续提高。不要说这些跑了题:一个管理员总是要尽量利用现有的条件。
基本的东西
工作的第一步通常做我们称”一般性”的部分。那就是去掉每台机器中没有用到的东西:这可不是一件轻松的差使。每个操作系统,包括Unix在内,安装了数不清你用不到的服务,协议。主说:扔掉它。在Unix环境下,简单。。粗暴的方法是注释掉/etc/inetd.conf 文件中的每一个服务。这样就干掉了一些。 这好像有一点