您现在的位置: 万盛学电脑网 >> 操作系统 >> FreeBSD介绍 >> 正文

FreeBSD实实在在的选择

作者:佚名    责任编辑:admin    更新时间:2022-06-22

Why FreeBSD ?
当谈到免费的Unix时,人们通常认为“就是Linux”。 当然,Linux应用十分广泛,而且(几乎)每个人都听说过它。新用户的数量一直在增长,媒体(不管是不是“专业”的)对它进行了很多宣传。一个主要的原因是Linux专门运行在使用最广泛的Intel兼容计算机上。当然,它还可以运行在许多其它处理器上,因为Unix的一个理念就是“我们不在意是什么处理器”。然而,如果Linux仅仅为一个特殊的处理器进行开发,它可能不会获得如此成功,或者,至少要艰难一些。
但免费的Unix并不是只有Linux:BSD家族也是。它有三个主要的分支:FreeBSD,NetBSD和OpenBSD。BSD是 “Berkeley Software Distribution”的缩写。如果你想了解更多的关于Unix历史的信息,你可以参考article 176。(经过考虑,那篇文章没有讨论关于BSD和System V之间的区别:那完全可以写一本书了。)
每个分支都有自己的特色:
NetBSD几乎可以在任何一种平台上运行,包括很多老计算机:姑且认为有30到40种不同的平台。NetBSD证明了我们前面提到的:Unix不在乎处理器。如果你在家里或者在工作中有一台相当老的“垃圾”,这是你很好的选择。我在Amiga和Intel机器上使用NetBSD很多年,并且我感觉不错。
OpenBSD是最安全的Unix之一。它是一个很理想的服务器平台,当然,它也可以在许多处理器上运行。它可能是Internet上最多的被用作服务器的系统之一。但它作为家用用途却不是很理想,不过,每个人根据自己喜好来做选择……
FreeBSD是上面两种BSD的“综合体”。它专注于Intel和Alpha处理器,并且从OpenBSD那里“继承”了一部分安全体系。跟 Linux一样,它运行于Intel处理器使它成为应用最广泛的BSD之一。它也是家庭用户的一个很好的选择。但这并不是说你不能在工作中使用它!
这里还有一些关于FreeBSD的事情:他们(译注:指FreeBSD Core Team成员)与Apple公司“共享”Mac OS X的自由软件部分。并且,我很喜欢OS X……顺便说说,不要困惑:虽然OS X是基于BSD,但是它的内核跟FreeBSD的却没有任何关系。它使用的是已经在NeXTstep中使用的Mach内核,OS X的“父亲”:很明显,当NeXTstep于80年代末问世以来,这个内核发展了不少。
现在,我们见到了……让我们进一步深入吧。
获得并安装FreeBSD
和大多数自由软件一样,FreeBSD可以从FreeBSD的web站点上下载。很明显,这需要很高的连接速度。不用担心:你可以在世界上的任何地方找到FreeBSD的CD。
目前(在写本文的时候)的最新发行版是4.6。本文讨论的是i386发行版。
从CD-ROM(或其它介质)上安装FreeBSD十分简单……虽然它并没有图形界面来完成安装!你将会使用伪图形界面。只需要按照提示做, FreeBSD就会被安装到你的硬盘上。和通常的情况一样,你需要将你的硬盘进行分区,配置一些东西,比如网络连接或者甚至是内核(可选)。下面,你将见到sysinstall,就像它的名字暗示的一样,它是一个很好的安装工具。你可以选择安装全部packages或者仅仅安装一部分。你可以在任何时候用任何方式添加它们。
它的包管理方式也很简单。你可以象在Solaris下一样使用pkg命令,或者你可以选择使用ports。简而言之,pkg命令就像Linux的rpm或者deb,而ports是一些需要通过make和make install进行编译的文件。换句话说:FreeBSD的操作跟Linux的没有什么大的不同或者有困难的地方。
让我们安装一个Linux兼容包——你应该安装它:它允许你在FreeBSD上编译和运行Linux的应用程序。
所有事情都是很简单的,并且为防万一,FreeBSD准备了一个很好的手册,它详细解释了每一个步骤。并且它有很多语言的版本(译注:在/usr/share/doc目录下可以看见以各个语言命名的目录,不同语言的手册就在相应的目录中)。
因此,没有必要在这上面花过多时间。
配置FreeBSD
再强调一次,我们的这篇文章不可能面面俱到。最重要的是知道核心文件在哪里。跟往常一样,你可以在/etc目录找到它们。它们被命名为rc.something并且可以管理很多不同的部分:常规配置、防火墙、网络、sysctl等。
rc.conf文件十分重要,正如它的名字一样,可以在这里调整系统配置。在这个文件中你可以告诉系统是否打开某些守护程序(sshd、sendmail 等),防火墙类型,你是否想激活内核级安全,你是否想激活IPv6等。在这里有很多选项,令人惊讶的是,你可以在被称作 /etc/defaults/rc.conf的默认文件中找到所有它们。不要误会,这个文件包括了默认设置,而不是范例。也就是说, /etc/rc.conf/etc/rc.conf是不考虑这些默认设定的。换句话说就是,不要将/etc/defaults/rc.conf复制到 /etc.rc.conf,也不要尝试修改/etc/defaults/rc.conf,应该在/etc/rc.conf中作更改。
在sysinstall所选择的项目将会被自动加入到/etc/rc.conf中(网卡配置,主机名,安全等级等)。
请格外注意:FreeBSD默认没有在/etc/inetd.conf中打开任何服务。这就是说,在第一次启动系统的时候,由inetd管理的守护程序(Daemon)默认应该是关闭的。以我的愚见,每个Unix系统都应该这样。无论如何,这是一个好主意!
另外的rc文件允许你配置防火墙或者sysctl,以及其他的东西。这理所当然的将我们引导到了调整FreeBSD的话题上。
调整FreeBSD
调整系统最好的工具之一是sysctl(在Linux下也一样)。你可以通过命令行来定义某些特殊值,或者(同时也建议你)写一个sysctl.conf文件,除非你使用命令行仅仅是来进行测试。
比如,如果你的机器被用作网关,通过命令sysctl -w net.inet.ip.forwarding=1可以使sysctl允许IP转发。如果想获得更高的安全性,你可以使用sysctl -w net.inet.ip.check_interface=1命令核对这些包是否到达目标IP所对应的网络界面。你可以通过使用sysctl来控制你的系统的大部分行为:请参见man page。明显地,如果你希望将这些写入sysctl.conf文件,只需要将这些变量加入进去就可以了,而不必加入sysctl命令本身。 sysctl.conf文件使用variable = value格式。上面的例子可写为: net.inet.ip.forwarding=1
net.inet.ip.check_interface=1
当然,你的sysctl.conf文件支持超过两行的文件,因此它几乎可以在内核级控制控制任何东西。
在本文的开头,我们讨论了安全级。有从-1到3四个不同的等级,3代表最高安全级。建议你在选择之前了解每个等级。使用除了-1或者0之外的其它等级有可能导致系统无法象你希望的那样运行。第一个缺点就是level 1将阻止你正常使用X服务器。你也不能加载或者卸载内核模块。
无论如何,高安全等级对于需要高安全性的特殊服务器来说是很有用的。作为一个家庭用户,你可以保持level 0,当然,这由你自己决定……
chflags命令也与安全等级有关。要想了解这个命令,请阅读man page:它是一个很有用的命令。
如果继续这个话题将把本文写成一个“安全配置FreeBSD”的文章,因此,让我们进入下一个章节。
升级FreeBSD
让我们假设你刚购买了FreeBSD 4.5CD。几天以后,FreeBSD 4.6就发布了。倒霉!
不必烦恼:FreeBSD有一个基于CVS的升级系统。你可以选择使用匿名CVS或者CVSup。前者比较容易使用,而后者更有效率。通过这些工具,你可以获得新的原码树(Source Tree),并且同步(Synchronize)它。
下面,你必须使用make buildworld命令编译所有新代码。如何进行编译在FreeBSD Handbook里已经十分详细的进行了阐述(译注:FreeBSD Handbook 1.73版中关于升级系统的部分Zer4tul已经完成了翻译工作,正在进行校对)。最重要的一点是它使你拥有一个紧跟升级步伐的崭新的系统。
但是,并不仅仅如此。跟通常情况一样,自由软件(Free Software)的弱点很快就会被发现,并且很快被修复。跟其它商业操作系统一个漏洞可以很久不被修复不同,自由软件社区的人们会以最快速度为你提供补丁。很明显,你的工作就是检查系统中有什么地方需要补丁。FreeBSD的Web站点上有一个安全公告区(Security Section)提供各发行版的安全公告。你可以从那里下载.asc文件(文本文件)来获得你所需要知道的信息:关于系统问题的系统问题的描述和解决的方法。其它Web站点为你提供的也是这些信息。比如linuxsecurity,CERT等。
这并不是说你必须升级你的系统。
更新FreeBSD
你并不想花过多的时间在了解系统漏洞上,是么?和其它免费Unix系统一样,FreeBSD为你提供了补丁。你可以直接获取这些补丁并且使用它们。对于 Linux用户来说,最大的不同就是你并非抓取一个修改过的包,而是一个补丁原码。这就是说你必须在打补丁之后重新编译内核,当然,这就意味着你的机器已经装上补丁了。在Linux下也可以这样,但是人们通常是下载修正过后的包,例如rpm包,至少对于应用程序是这样,有时也下载被打过补丁的内核rpm 包。
Linux和FreeBSD最大的不同是内核。FreeBSD是基于BSD 4.4,并且没有不像Linux一样有不同的内核版本。这就是说,它的内核都是稳定版本,当然,它也受益于可加载模块。缺点就是如果你想让你的系统尽可能安全的话,你必须比在Linux下更频繁的编译内核。
无论如何,相比Linux的体系,我更喜欢这样的方式,但这仅仅是我个人的意见。我并不认为三个不同的内核版本同时进行可以带来很好的稳定性。应用程序必须从一个版本的内核“移植”到另外一个版本,特别是在安全方面。另外一个例子就是系统包:三个不同的内核版本,三个不同的软件组合!当然还有其它问题。
我极为尊敬那些参与这个伟大工程的人们,但是这是否就是正确的方法呢?改进通常是必要的,但是这是否代表我们随时随刻都必须更改所有东西呢?不必担心!
很明显,你也可以编译一个更符合你要求的内核……并且在那时,就跟在Linux下一样。完成这项工作的方法在FreeBSD Handbook中已经很详细的阐明了,因此,让我们转入其它话题。