第八章用 Li nux构建 Intranet Linux是 Internet/Intranet上一个重要的服务器平台。 Intranet指将 nternet技术应 用在组织内部,主要目的是发布和整合公司内部的信息。通过 Linux可以对 Internet/Intranet提供的服务如下 电子邮件服务 网页(web)服务 FTP服务 网络新闻(news)服务 域名系统(DNS)服务 DHCP、boop通信协议 网络信息服务(NIS) ●认证服务 等等,本章后续内容将做详细介绍。 8.1 Apache服务器的安装与设置 Apache服务器是由Apache软件基金(htp/www.apache.org)开发的一个功能 强大的web服务器,在当前因特网上, Apache是应用最广泛的web服务器。根据美 国的 Netcraft在不久前的一份调查结果显示: Apache占据了互联网web服务器市场 份额的5951%,而 Microsoft lis只占据2746% 近年来,在开放源代码的鼓励下,再加上IBM公司承诺支持 Apache,人们对 Apache的兴趣越来越广泛。1999年 Apache软件基金会( Apache Software Foundation) 组成了一家非赢利的公司,这家公司为几个不同的开放式源代码软件开发项目(包 括 Apache Web服务器项目)提供基金 Redhat linux90带有最新的 Apache2.0服务器软件,但因为 Apache的版本更新 速度往往快于 Redhat,可以从 Apache Web站点下载最新的 Apache服务器源代码。 8.1.1安装 Apache服务器 在 Redhat linux安装程序中可以选择安装 Apache服务器,如果没有选择,则 需要重新安装 Apache服务器。安装 Apache服务器有两种方法:一种是通过rpm包 ( redhat package manage,一种 Li nux安装包)安装,另一种是通过源代码生成 Apace 如果要安装 Apache的一个新版本,在安装之前应关掉正在运行的 Apache服务 器,这样才能确保安装过程中不出现任何问题。关闭 Apache服务器的方法参考后面 的介绍。 1.通过pm包安装 Apache 156
第八章 用 Linux 构建 Intranet Linux 是 Internet/Intranet 上一个重要的服务器平台。Intranet 指将 Internet 技术应 用在组织内部,主要目的是发布和整合公司内部的信息。通过 Linux 可以对 Internet/Intranet 提供的服务如下: z 电子邮件服务 z 网页(web)服务 z FTP 服务 z 网络新闻(news)服务 z 域名系统(DNS)服务 z DHCP、bootp 通信协议 z 网络信息服务(NIS) z 认证服务 等等,本章后续内容将做详细介绍。 8.1 Apache 服务器的安装与设置 Apache 服务器是由 Apache 软件基金(http://www.apache.org)开发的一个功能 强大的 web 服务器,在当前因特网上,Apache 是应用最广泛的 web 服务器。根据美 国的 NetCraft 在不久前的一份调查结果显示:Apache 占据了互联网 Web 服务器市场 份额的 59.51%,而 Microsoft IIS 只占据 27.46%。 近年来,在开放源代码的鼓励下,再加上 IBM 公司承诺支持 Apache,人们对 Apache 的兴趣越来越广泛。1999 年 Apache 软件基金会(Apache Software Foundation) 组成了一家非赢利的公司,这家公司为几个不同的开放式源代码软件开发项目(包 括 Apache Web 服务器项目)提供基金。 RedHat Linux9.0 带有最新的 Apache2.0 服务器软件,但因为 Apache 的版本更新 速度往往快于 RedHat,可以从 Apache Web 站点下载最新的 Apache 服务器源代码。 8.1.1 安装 Apache 服务器 在 RedHat Linux 安装程序中可以选择安装 Apache 服务器,如果没有选择,则 需要重新安装 Apache 服务器。安装 Apache 服务器有两种方法:一种是通过 rpm 包 (redhat package manage,一种 Linux 安装包)安装,另一种是通过源代码生成 Apache。 如果要安装 Apache 的一个新版本,在安装之前应关掉正在运行的 Apache 服务 器,这样才能确保安装过程中不出现任何问题。关闭 Apache 服务器的方法参考后面 的介绍。 1.通过 rpm 包安装 Apache 156
第八章用 Linux构建 Intranet 在 Redhat Linux90安装光盘上可以找到 Apache的rpm包,或者到 RedHat的 FTP服务器和其镜像站点找到Apache的rpm包,在fp/updatesredhat.com的FTP 站点也可以找到 Apache最新版本的rpm包。 在得到一个 Apache的rpm以后,可以通过下面的命令来进行rpm方式的安装 rpm-Uvh apache x x.x. rpm 其中xxx为 Apache的版本号,在 Redhat linux90里是2040 安装 Apache的rpm包,将把文件安装在以下目录中 ·/etc/httpd/conf目录包含Apache的所有配置文件,其中包括httpdconf和 httd- mailman. conf,这些配置文件将在以后介绍。 etc/rcd目录中包含系统的启动脚本。 Apache rpm安装了用于web服务器 的整套脚本,可以使用这些脚本以命令行启动和关闭这个服务器,同样它 们也会在计算机被异常终止、启动或者重新引导时自动启动和关闭服务器。 / ar/wwwRPM安装有默认的服务器图标、CGI程序和HTML文件。可以 通过改变 Apache的配置文件而采取其他方式来保存这些内容 /var/wwww/html// manua在安装了 Apache-manual rpm软件包时,这里有 份 Apache的说明文档,可以使用浏览器访问 Apache服务器提供的web服 务找到这些文档 usr/share./ manRPM包含有rpm的手册页 / usr/bin可执行文件放在该目录下,包含可执行的服务器本身以及其他应 用程序 № usr/bin一些来自于 Apache软件包的实用程序被放置在该目录下,如 httpasswd程序,这个文件用来产生验证口令文件 var/log/httpd用来存放服务器日志的目录。默认情况下,有两个非常重要 的日志文件 access log和 error log还可以通过自定义记录不同信息的日 志文件,这将在后面介绍 2.编译源代码生成 Apache 获得 Apache的源代码有几种不同的方法。 Redhat的发布版本包含有 Apache源 代码的SRPM软件包,另外还可以在f/ /updates. redhat. com中找到最新的版本,也 可以从htp:/www.apache.org/下载Apache的源代码。 目前最新的 Apache源代码包的版本是httd20targ,获取该压缩包之后, 将其解压缩到某个适当的目录中,方法如下: #tarzxvfhttpd-2.0.44.tar.gz 解压缩之后创建一个httd20.44的目录,进入该目录。 #cdhttpd-2.0.44 编译 Apache服务器源代码,方法很简单,只要执行刚才创建目录中的/ configure, 可以给命令提供一个 prefix参数,指定安装目录 # /configure-prefix=/data/apache 该命令将在/ usr/src子目录下创建一个名为 Configuration的文件,产生用于编译 157
第八章 用 Linux 构建 Intranet 在 RedHat Linux9.0 安装光盘上可以找到 Apache 的 rpm 包,或者到 RedHat 的 FTP 服务器和其镜像站点找到 Apache 的 rpm 包,在 ftp://updates.redhat.com 的 FTP 站点也可以找到 Apache 最新版本的 rpm 包。 在得到一个 Apache 的 rpm 以后,可以通过下面的命令来进行 rpm 方式的安装: # rpm –Uvh apache.x.x.x.rpm 其中 x.x.x 为 Apache 的版本号,在 RedHat Linux9.0 里是 2.0.40。 安装 Apache 的 rpm 包,将把文件安装在以下目录中: z /etc/httpd/conf 目录包含 Apache 的所有配置文件,其中包括 httpd.conf 和 httpd-mailman.conf,这些配置文件将在以后介绍。 z /etc/rc.d 目录中包含系统的启动脚本。Apache rpm 安装了用于 web 服务器 的整套脚本,可以使用这些脚本以命令行启动和关闭这个服务器,同样它 们也会在计算机被异常终止、启动或者重新引导时自动启动和关闭服务器。 z /var/wwwRPM 安装有默认的服务器图标、CGI 程序和 HTML 文件。可以 通过改变 Apache 的配置文件而采取其他方式来保存这些内容。 z /var/wwww/html/manual 在安装了 Apache-manual rpm 软件包时,这里有一 份 Apache 的说明文档,可以使用浏览器访问 Apache 服务器提供的 web 服 务找到这些文档。 z /usr/share/manRPM 包含有 rpm 的手册页。 z /usr/bin 可执行文件放在该目录下,包含可执行的服务器本身以及其他应 用程序。 z /usr/bin 一些来自于 Apache 软件包的实用程序被放置在该目录下,如 httpasswd 程序,这个文件用来产生验证口令文件。 z /var/log/httpd 用来存放服务器日志的目录。默认情况下,有两个非常重要 的日志文件 access_log 和 error_log。还可以通过自定义记录不同信息的日 志文件,这将在后面介绍。 2.编译源代码生成 Apache 获得 Apache 的源代码有几种不同的方法。RedHat 的发布版本包含有 Apache 源 代码的 SRPM 软件包,另外还可以在 ftp://updates.redhat.com 中找到最新的版本,也 可以从 http://www.apache.org/ 下载 Apache 的源代码。 目前最新的 Apache 源代码包的版本是 httpd-2.0.44.tar.gz,获取该压缩包之后, 将其解压缩到某个适当的目录中,方法如下: # tar zxvf httpd-2.0.44.tar.gz 解压缩之后创建一个 httpd-2.0.44 的目录,进入该目录。 #cd httpd-2.0.44 编译Apache服务器源代码,方法很简单,只要执行刚才创建目录中的./configure, 可以给命令提供一个 prefix 参数,指定安装目录。 #./configure –prefix=/data/apache 该命令将在/usr/src 子目录下创建一个名为 Configuration 的文件,产生用于编译 157
算机网络技术及应用 服务器代码的 Makefile编译文件。 旦编译完成,可编译服务器代码 #f make 开始编译服务器代码,这一步可能需要几分钟,编译完成后可以安装 Apache 服务器: #f make install 到这一步, Apache服务器完成安装 手工安装完成之后,所有的文件都放置在目录/ data/apache下(用 prefix指定的 目录)的各个子目录中。下面是 Apache使用的目录所组成的列表 data/apache/conf目录包含了Apache的所有配置文件,包括httpdconf, highperformanceconfhighperformance-std.confFlhttpd-std.confo data/apache的cgi-bin, Icons和 htdocs目录下包含了CGI程序、默认图标 和默认的HIML文档。 data/ apache/bin可执行程序的存放目录 data/apache/logs服务器日志目录 Apache服务器安装成功并且可以运行,但若要服务器按照某些要求运行,则要 配置这个服务器。 8.1.2配置 Apache服务器 Apache的配置文件是/etc/httpd/config/httpdconf,该文件的默认配置在大多数情 况下能正常工作,但是在一些特定环境下则需要对它进行适当的修改,所以需要熟 悉httpdconf的配置选项。 在需要配置Apache服务器时,首先编辑httpdconf文件,然后使用reload,restart, stop和sat等参数重新启动htpd进程使得该配置文件生效。如: #/etc/rc.d/init.d/httpdreload #/etc/rc.d/init.d/httpdstop 为了安全起见,在编辑httpd.conf文件之前,最好将原始的配置文件做备份。创 建一个备份之后,在编辑配置文件过程中出现故障时可以用备份文件覆盖被编辑的 文件以更正错误。 下面给出httpd.conf文件中常用的语法规范。 ServerRoot指定包含服务器的所有文件的最高目录。一般情况,该选项往 往被赋值为“//etc/httpd”。 PidFile命名记录服务器进程I的文件名。默认状态下,web服务器记录 自己的进程I在/ar/run/httpd.pid文件中 Timeout以秒为单位定义服务器在通信过程中等待接收和传输的时间。在 大多数情况下, Timeout被设置为300秒 KeepAlive设置服务器是否允许每个连接提出多个请求。 KeepAlive可以 被用来防止一个客户消耗过多的服务器资源,在默认状态下, KeepAlive 158
计算机网络技术及应用 服务器代码的 Makefile 编译文件。 一旦编译完成,可编译服务器代码: # make 开始编译服务器代码,这一步可能需要几分钟,编译完成后可以安装 Apache 服务器: # make install 到这一步,Apache 服务器完成安装。 手工安装完成之后,所有的文件都放置在目录/data/apache 下(用-prefix 指定的 目录)的各个子目录中。下面是 Apache 使用的目录所组成的列表: z /data/apache/conf 目录包含了 Apache 的所有配置文件,包括 httpd.conf, highperformance.conf,highperformance-std.conf 和 httpd-std.conf。 z /data/apache 的 cgi-bin,icons 和 htdocs 目录下包含了 CGI 程序、默认图标 和默认的 HTML 文档。 z /data/apache/bin 可执行程序的存放目录。 z /data/apache/logs 服务器日志目录。 Apache 服务器安装成功并且可以运行,但若要服务器按照某些要求运行,则要 配置这个服务器。 8.1.2 配置 Apache 服务器 Apache 的配置文件是/etc/httpd/config/httpd.conf,该文件的默认配置在大多数情 况下能正常工作,但是在一些特定环境下则需要对它进行适当的修改,所以需要熟 悉 httpd.conf 的配置选项。 在需要配置 Apache 服务器时,首先编辑 httpd.conf 文件,然后使用 reload,restart, stop 和 start 等参数重新启动 httpd 进程使得该配置文件生效。如: # /etc/rc.d/init.d/httpd reload # /etc/rc.d/init.d/httpd stop 为了安全起见,在编辑 httpd.conf 文件之前,最好将原始的配置文件做备份。创 建一个备份之后,在编辑配置文件过程中出现故障时可以用备份文件覆盖被编辑的 文件以更正错误。 下面给出 httpd.conf 文件中常用的语法规范。 z ServerRoot 指定包含服务器的所有文件的最高目录。一般情况,该选项往 往被赋值为“/etc/httpd”。 z PidFile 命名记录服务器进程 ID 的文件名。默认状态下,Web 服务器记录 自己的进程 ID 在/var/run/httpd.pid 文件中。 z Timeout 以秒为单位定义服务器在通信过程中等待接收和传输的时间。在 大多数情况下,Timeout 被设置为 300 秒。 z KeepAlive 设置服务器是否允许每个连接提出多个请求。KeepAlive 可以 被用来防止一个客户消耗过多的服务器资源,在默认状态下,KeepAlive 158
第八章用 Linux构建 Intranet 设置为关闭。如果 KeepAlive被设置为打开,服务器将会变得非常繁忙, 而且很有可能崩溃。 MaxKeepAliveRequests设置每个永久连接所允许的最大请求数。 Apache 组织推荐设置一个较大的数,这样能有效地提高服务器的性能。默认状态 下, MaxKeepAliveRequests被设置为100 · KeepAliveTimeout设置在一个请求已经被服务之后,服务器等待多久才关 闭这个连接。一旦在等待期间服务器收到一个连接, Timeout选项将取代该 参数 MinSpareServers和 MaxSpareServers使 Apache动态地改变服务器进程数 目。服务器检査等候连接的服务器进程,如果空闲的服务器进程的数量超 过 MaxSpare Servers值,则杀掉一些进程;反之,如果等候的空闲服务器进 程小于 MinSpare Servers值,则创建进程。在默认配置情况下, MinSpare Servers的值为5, MaxSpareServers的值为20 Start servers设置在启动时创建的服务器进程的数量。既然服务器基于网 络流量的负荷来杀掉或创建服务器进程,所以可以不用改动该参数 ● Max clients设置服务器在运行时创建服务器进程的最大数目限制,也可以 说是客户连接的最大数目。默认状态下,该值为150。 · MaxRequests PerChild设置每个子服务器进程在死掉之前所能处理的最大 数目。设置 MaxRequests Per Child的主要原因是避免生存期过长的进程出现 内存泄漏,默认值为1000 ● Listen确定服务器将监听那个端口,并从该端口接收连接请求。web服务 器在没有安全通信保障的情况下设置为监听80端口,反之则监听443端口。 Include允许服务器运行时包含其他的配置文件。 Load Module用来装载动态共享对象(DSO)模块。 User和Goup设置用户I和组⑩,服务器将使用它们来处理请求。最 常用的是把User设置成 nobody,把 Group设置成 nogroup Server Admin选项被设置为管理服务器的web管理员的地址,它应该有一 个有效的E-mail地址,例如webmaster(@zei.neto把这个值设置为一个有 效的地址非常重要,当服务器出现问题时,可以把这个邮件地址返回给访 问者 Server name选项用来设置服务器的主机名和端口号。 ServerName必须是 个合法的且能够使用的DNS域名。如果指定一个 ServerName,要确保 其IP地址和服务器名称都包含在/ etc/hosts文件中 DocumentRoot指定文档目录树的绝对路径,该路径是 Apache提供文件的 顶级目录,其下包含了服务器用来处理请求的所有HIML文件。在默认状 态下, DocumentRoot被设置成为/ ar/www/htm目录 Alow和Deny前者指定请求者可以访问一个给定的目录,可以为alP 地址、域名以及网络地址。 Allow被配置成为l意味着任何人都可以访问 159
第八章 用 Linux 构建 Intranet 设置为关闭。如果 KeepAlive 被设置为打开,服务器将会变得非常繁忙, 而且很有可能崩溃。 z MaxKeepAliveRequests 设置每个永久连接所允许的最大请求数。Apache 组织推荐设置一个较大的数,这样能有效地提高服务器的性能。默认状态 下,MaxKeepAliveRequests 被设置为 100。 z KeepAliveTimeout 设置在一个请求已经被服务之后,服务器等待多久才关 闭这个连接。一旦在等待期间服务器收到一个连接,Timeout 选项将取代该 参数。 z MinSpareServers 和 MaxSpareServers 使 Apache 动态地改变服务器进程数 目。服务器检查等候连接的服务器进程,如果空闲的服务器进程的数量超 过 MaxSpareServers 值,则杀掉一些进程;反之,如果等候的空闲服务器进 程 小 于 MinSpareServers 值,则创建 进程。在默认配置情况下 , MinSpareServers 的值为 5,MaxSpareServers 的值为 20。 z StartServers 设置在启动时创建的服务器进程的数量。既然服务器基于网 络流量的负荷来杀掉或创建服务器进程,所以可以不用改动该参数。 z MaxClients 设置服务器在运行时创建服务器进程的最大数目限制,也可以 说是客户连接的最大数目。默认状态下,该值为 150。 z MaxRequestsPerChild 设置每个子服务器进程在死掉之前所能处理的最大 数目。设置 MaxRequestsPerChild 的主要原因是避免生存期过长的进程出现 内存泄漏,默认值为 1000。 z Listen 确定服务器将监听那个端口,并从该端口接收连接请求。Web 服务 器在没有安全通信保障的情况下设置为监听 80 端口,反之则监听 443 端口。 z Include 允许服务器运行时包含其他的配置文件。 z LoadModule 用来装载动态共享对象(DSO)模块。 z User 和 Group 设置用户 ID 和组 ID,服务器将使用它们来处理请求。最 常用的是把 User 设置成 nobody,把 Group 设置成 nogroup。 z ServerAdmin 选项被设置为管理服务器的 Web 管理员的地址,它应该有一 个有效的 E-mail 地址,例如 webmaster@zzei.net。把这个值设置为一个有 效的地址非常重要,当服务器出现问题时,可以把这个邮件地址返回给访 问者。 z Server Name 选项用来设置服务器的主机名和端口号。ServerName 必须是 一个合法的且能够使用的 DNS 域名。如果指定一个 ServerName,要确保 其 IP 地址和服务器名称都包含在/etc/hosts 文件中。 z DocumentRoot 指定文档目录树的绝对路径,该路径是 Apache 提供文件的 顶级目录,其下包含了服务器用来处理请求的所有 HTML 文件。在默认状 态下,DocumentRoot 被设置成为/var/www/html 目录。 z Allow 和 Deny 前者指定请求者可以访问一个给定的目录,可以为 all、IP 地址、域名以及网络地址。Allow 被配置成为 all 意味着任何人都可以访问 159
算机网络技术及应用 DocumentRoot指定的目录中的文件。而Deny正好相反 UsedIn定义与本地用户的主目录相对应的子目录,可以将个人的HTML 文档放入该目录。在默认状态下,子目录是 public html Directorylndex指定哪一个文件应该被作为目录的索引。在默认状态下 DirectoryIndex是 index htm和 index html var,服务器试图找到上面文件之 并返回找到的第一个。 以上是httpd.conf配置文件的一些常用的语法规范,若需要更详细的了解可以到 htt/www.apache.org查阅 8.1.3启动和关闭 Apache服务器 Apache服务器软件包httpdRpm创建了/etc/rc.d/init.d/httpd启动脚本。通过 /sbin/ Service命令可以操作该启动脚本启动 Apache服务器。用root用户登录系统, 执行如下命令: #/sbin/servicehttpdstart 上面的命令启动 Apache服务器,并且在每次系统重新启动时, Apache服务器 都被启动。 关闭 Apache服务器,采用如下的命令: #/sbin/servicehttpdstop 命令 restart则用来先关闭服务器,然后再启动服务器,命令如下: #/sbin/servicehttpdrestart 如果编辑了httpdconf配置文件,若要配置文件中的配置得以执行,又不想重新 启动服务器,可以使用 reload命令: #/sbin/servicehttpdreload Apache作为目前使用最为广泛的web服务器之一。有关 Apache的模块化,虚 拟主机(基于P地址的虚拟主机和基于名字的虚拟主机),实现SSL协议,动态内 容(CGI和PIHP等)等,可以参考有关资料。 8.2FTP服务器的安装与设置 FTP的功能是从一台计算机将文件传送到另一台计算机,它与这两台计算机所 处的位置、联系方式以及使用的操作系统无关,只要这两台计算机支持FTP协议 并能访问因特网。FIP在互联网中是一个非常重要的应用,通过它极大地方便了网 络资源的共享,同时也为很多网络服务提供了便利。 FTP服务器提供两类服务:一种是要求提供用户名和密码进行身份验证的帐号 型;另一种是以 anonymous为用户名,以邮件地址为密码即可登录的“匿名FIP服 务”。 本节介绍如何在 Redhat linux9.0系统中架设FIP服务器 160
计算机网络技术及应用 DocumentRoot 指定的目录中的文件。而 Deny 正好相反。 z UserDir 定义与本地用户的主目录相对应的子目录,可以将个人的 HTML 文档放入该目录。在默认状态下,子目录是 public_html。 z DirectoryIndex 指定哪一个文件应该被作为目录的索引。在默认状态下 DirectoryIndex 是 index.html 和 index.html.var,服务器试图找到上面文件之 一,并返回找到的第一个。 以上是 httpd.conf 配置文件的一些常用的语法规范,若需要更详细的了解可以到 http://www.apache.org 查阅。 8.1.3 启动和关闭 Apache 服务器 Apache 服务器软件包 httpd RPM 创建了/etc/rc.d/init.d/httpd 启动脚本。通过 /sbin/service 命令可以操作该启动脚本启动 Apache 服务器。用 root 用户登录系统, 执行如下命令: # /sbin/service httpd start 上面的命令启动 Apache 服务器,并且在每次系统重新启动时,Apache 服务器 都被启动。 关闭 Apache 服务器,采用如下的命令: # /sbin/service httpd stop 命令 restart 则用来先关闭服务器,然后再启动服务器,命令如下: # /sbin/service httpd restart 如果编辑了 httpd.conf 配置文件,若要配置文件中的配置得以执行,又不想重新 启动服务器,可以使用 reload 命令: # /sbin/service httpd reload Apache 作为目前使用最为广泛的 web 服务器之一。有关 Apache 的模块化,虚 拟主机(基于 IP 地址的虚拟主机和基于名字的虚拟主机),实现 SSL 协议,动态内 容(CGI 和 PHP 等)等,可以参考有关资料。 8.2 FTP 服务器的安装与设置 FTP 的功能是从一台计算机将文件传送到另一台计算机,它与这两台计算机所 处的位置、联系方式以及使用的操作系统无关,只要这两台计算机支持 FTP 协议, 并能访问因特网。FTP 在互联网中是一个非常重要的应用,通过它极大地方便了网 络资源的共享,同时也为很多网络服务提供了便利。 FTP 服务器提供两类服务:一种是要求提供用户名和密码进行身份验证的帐号 型;另一种是以 anonymous 为用户名,以邮件地址为密码即可登录的“匿名 FTP 服 务”。 本节介绍如何在 RedHat Linux 9.0 系统中架设 FTP 服务器。 160
第八章用 Linux构建 Intranet 82.1安装 vsftpd服务器 Vsftpd是目前 Linux最好的FTP服务器工具之一,其中的vs就是“ very secure” (很安全)的缩写,可见它的最大特点是安全,除此之外,它还具有体积小,可定 制性强,效率高等优点 如果选择完全安装 Redhat linux9.0,则系统就默认安装 vsftpd服务器。可以 在终端命令窗口输入以下命令进行验证 rpm -ga grep vsftpd 如果结果显示为“ vsftpd-1.1.3-8”,则说明系统己经安装了 vsftpd服务器。 如果安装 Redhat linux9.0时没有选择 vsftpd服务器,则可以在图形窗口下单 击【主菜单】|【系统设置】|【添加删除应用程序】菜单项,在出现的【软件包管 理】对话框里选中“FTP服务器”选项,然后单击【更新】按钮,插入第三张安装 光盘,按照屏幕提示完成安装。 也可以直接插入第三张安装光盘,定位到/ RedHat/RPMS下的 vsftpd-1.1.3-8.i386.rpm安装包,然后在终端命令窗口执行以下命令即可开始安 装。 rpm -ivh vsftpd-1. 1.3-8. 1386. rpm 82.2配置 vsftpd服务器 在 Redhat linux90中, vsftpd共有3个配置文件,它们是 vsftpd. ftpusers位于/etc目录下。指定哪些用户帐号不能访问FIP服务器。 vsftpd. usr list位于ltc目录下。该文件里的用户帐号在默认情况下也不能访问 FTP服务器,仅当 vsftpd. conf配置文件里启用 userlist enable=No选项时才允许访问 sftpd. conf位于/ /etc/vsftpd目录下。它是一个文本文件,可以用Kate、v等文 本编辑工具对它进行修改,该文件定义用户登录控制、用户权限控制、超时设置、 服务功能选项、服务器性能选项、服务器响应消息等FIP服务器的配置 (1)用户登录控制 anonymousenable=YES,允许匿名用户登录。 no_ anon password=YES,匿名用户登录时不需要输入密码。 local enable=YES,允许本地用户登录 deny email enable=YES,可以创建一个文件保存某些匿名电子邮件的黑名单, 以防止这些人使用Dos攻击。 (2)用户权限控制 write enable=YES,开启全局上传权限。 anon upload enable=YES,允许匿名用户具有上传权限,很明显,必须启用 write enable=YES,才可以使用此项。 anon mkdir wirte enable=YES,允许匿名用户有创建目录的权利 chown uploads=YES,启用此项,匿名上传文件的属主用户将改为别的用户帐 号,注意,这里建议不要指定root帐号为匿名上传文件的属主用户! 161
第八章 用 Linux 构建 Intranet 8.2.1 安装 vsftpd 服务器 Vsftpd 是目前 Linux 最好的 FTP 服务器工具之一,其中的 vs 就是“very secure” (很安全)的缩写,可见它的最大特点是安全,除此之外,它还具有体积小,可定 制性强,效率高等优点。 如果选择完全安装 RedHat Linux9.0,则系统就默认安装 vsftpd 服务器。可以 在终端命令窗口输入以下命令进行验证: # rpm –qa | grep vsftpd 如果结果显示为“vsftpd-1.1.3-8”,则说明系统已经安装了 vsftpd 服务器。 如果安装 RedHat Linux9.0 时没有选择 vsftpd 服务器,则可以在图形窗口下单 击【主菜单】|【系统设置】|【添加删除应用程序】菜单项,在出现的【软件包管 理】对话框里选中“FTP 服务器”选项,然后单击【更新】按钮,插入第三张安装 光盘,按照屏幕提示完成安装。 也可以直接 插入第三张安装光 盘,定位到 /RedHat/RPMS 下 的 vsftpd-1.1.3-8.i386.rpm 安装包,然后在终端命令窗口执行以下命令即可开始安 装。 # rpm –ivh vsftpd-1.1.3-8.i386.rpm 8.2.2 配置 vsftpd 服务器 在 RedHat Linux9.0 中,vsftpd 共有 3 个配置文件,它们是: vsftpd.ftpusers 位于/etc 目录下。指定哪些用户帐号不能访问 FTP 服务器。 vsftpd.usr_list 位于/etc 目录下。该文件里的用户帐号在默认情况下也不能访问 FTP 服务器,仅当 vsftpd.conf 配置文件里启用 userlist_enable=No 选项时才允许访问。 vsftpd.conf 位于/etc/vsftpd 目录下。它是一个文本文件,可以用 Kate、vi 等文 本编辑工具对它进行修改,该文件定义用户登录控制、用户权限控制、超时设置、 服务功能选项、服务器性能选项、服务器响应消息等 FTP 服务器的配置。 (1)用户登录控制 anonymous.enable=YES,允许匿名用户登录。 no_anon_password=YES,匿名用户登录时不需要输入密码。 local_enable=YES,允许本地用户登录。 deny_email_enable=YES,可以创建一个文件保存某些匿名电子邮件的黑名单, 以防止这些人使用 Dos 攻击。 (2)用户权限控制 write_enable=YES,开启全局上传权限。 anon_upload_enable=YES,允许匿名用户具有上传权限,很明显,必须启用 write_enable=YES,才可以使用此项。 anon_mkdir_wirte_enable=YES,允许匿名用户有创建目录的权利。 chown_uploads=YES,启用此项,匿名上传文件的属主用户将改为别的用户帐 号,注意,这里建议不要指定 root 帐号为匿名上传文件的属主用户! 161
算机网络技术及应用 chown username= whoever,当启用 chown uploads=YES时,所指定的属主用户 帐号,此处的 whoever用合法的用户帐号来代替 chroot list enable=YES,用一个列表限定哪些本地用户只能在自己目录下活动, 如果 chroot local user=YES,那么这个列表里指定的用户是不受限制的 hroot list file=/ etc/vsftpd chroot list,如果 chroot local user=YES,则指定该列 表( chroot local user)的保存路径(默认是/ etc/vsftpd chroot list)。 cii upload enable=YES; ascii download enable=YES,默认情况下服务器假装 接受ASCI模式请求但实际上是忽略这样的请求,启用上述的两个选项可以让服务 器真正实现ASCI模式的传输 注意:启用 ascii download enable选项会让恶意远程用户在ASCI模式下用 “SIZE/big/fle”这样的指令大量消耗FTP服务器的O资源。 (3)用户连接和超时选项 idle session timeout=600,设定默认的空闲超时时间,用户超过这段时间不动作 将被服务器踢 data connection timeout=120,设定默认的数据连接超时时间 (4)服务器日志和欢迎信息 dirmessage enable=YES,允许为目录配置显示信息,显示每个目录下面的 message file文件的内容 ftpd banner= Welcome to ftp service,自定义FTP用户登录到服务器所看到的欢 迎信息。 xferlog enable=YES,启用记录上传/下载活动日志功能。 xferlog file=var/ log/vsftpd log,自定义日志文件的保存路径和文件名,默认是 /var/log/vsftpd. log. 8.2.3启动/重新启动/停止 vsftpd服务 在终端命令窗口执行以下命令启动/重新启动/停止 vsftpd服务: 启动 vsftpd服务: /etc/rc. d/init. d/vsftpd start 重新启动 vsftpd服务: # /etc/rc. d/init. d/vsftpd restart 关闭 vsftpd服务 # /etc/rc. d/init. d/vsftpd stop 确认 vsftpd服务已经启动后,可以在任意一台 Windows主机的DOS命令窗口 里输入“ ftp FTPAddress”"(用实际的FTP服务器P地址或者域名代替 FTPAddress), 注意用户名、密码都是fp(fp是匿名用户的映射用户帐号),例如: F:\ Peter ftp FTPAddress Connected to ftpaddress 220( vsFTPd1.3)/stpd的响应请求 162
计算机网络技术及应用 chown_username=whoever,当启用 chown_uploads=YES 时,所指定的属主用户 帐号,此处的 whoever 用合法的用户帐号来代替。 chroot_list_enable=YES,用一个列表限定哪些本地用户只能在自己目录下活动, 如果 chroot_local_user=YES,那么这个列表里指定的用户是不受限制的。 chroot_list_file=/etc/vsftpd.chroot_list,如果 chroot_local_user=YES,则指定该列 表(chroot_local_user)的保存路径(默认是/etc/vsftpd.chroot_list)。 ascii_upload_enable=YES;ascii_download_enable=YES,默认情况下服务器假装 接受 ASCII 模式请求但实际上是忽略这样的请求,启用上述的两个选项可以让服务 器真正实现 ASCII 模式的传输。 注意:启用 ascii_download_enable 选项会让恶意远程用户在 ASCII 模式下用 “SIZE/big/file”这样的指令大量消耗 FTP 服务器的 I/O 资源。 (3)用户连接和超时选项 idle_session_timeout=600,设定默认的空闲超时时间,用户超过这段时间不动作 将被服务器踢出。 data_connection_timeout=120,设定默认的数据连接超时时间。 (4)服务器日志和欢迎信息 dirmessage_enable=YES,允许为目录配置显示信息,显示每个目录下面的 message_file 文件的内容。 ftpd_banner=Welcome to FTP service,自定义 FTP 用户登录到服务器所看到的欢 迎信息。 xferlog_enable=YES,启用记录上传/下载活动日志功能。 xferlog_file=/var/log/vsftpd.log,自定义日志文件的保存路径和文件名,默认是 /var/log/vsftpd.log。 8.2.3 启动/重新启动/停止 vsftpd 服务 在终端命令窗口执行以下命令启动/重新启动/停止 vsftpd 服务: 启动 vsftpd 服务: # /etc/rc.d/init.d/vsftpd start 重新启动 vsftpd 服务: # /etc/rc.d/init.d/vsftpd restart 关闭 vsftpd 服务: # /etc/rc.d/init.d/vsftpd stop 确认 vsftpd 服务已经启动后,可以在任意一台 Windows 主机的 DOS 命令窗口 里输入“ftp FTPAddress”(用实际的 FTP 服务器 IP 地址或者域名代替 FTPAddress), 注意用户名、密码都是 ftp(ftp 是匿名用户的映射用户帐号),例如: F: \ Peter > ftp FTPAddress Connected to FTPAddress 220(vsFTPd1.1.3) //vsftpd 的响应请求 162
第八章用 Linux构建 Intrane User( FTPAddress(mone)fp输入用户帐号tp 331 Please specify the password Password/输入密码fp 230 Login successful. Have fun Linux系统下的FTP服务器软件除了 vsftpd外,wu-fpd、 proftpd、 pureftpd等也 很出名,其中有不少支持数据库用户以及带宽和线程控制等功能,可以参考专门的 资料来完成各种功能的FTP服务器的配置。 8.3DHCP服务器的安装与设置 DHCP是动态主机配置协议的简称,它由 BOOTP协议演化而来,它们同属于 TCPP协议族,是目前以太网上使用较多的自动进行客户机TCPP配置的协议 每个基于 TCP/IP协议的网络主机都需要一个唯一确定的32位P地址来与网络 通信,如果每台主机的P地址都用手工设定的话,工作量将是不可想象的,能不能 让主机在启动时就被自动配置IP地址?这正是DHCP协议设计的初衷。一台配置了 DHCP的主机启动时强制发送一个有限地址广播(32位全为1的IP地址即 255255255255)。当本地网络中的DHCP服务器收到广播后,根据收到的物理地址 在服务器上查找相应配置,并从IP地址池中发送某个P地址及附加选项(如租用到 期时间等)给客户机 8.3.1DHCP服务器工作的前提条件 为了使DHCP服务器为 windows主机服务,需要创建一个到地址255255255255 的路由,加这条路由命令到etc/ rc. d/rc. local使每次启动时自动执行 #f route add -host 255.255.255.255 dev eth0 如果报告错误消息:255255255255: Unkown host试着加下面的入口到 etc/ hosts文件 #route add -host dhcp dev etho 8.3.2安装DHCP服务器软件 在 RedHa Linux90中,默认情况下并没有安装DHCP服务器软件,可以在终 端窗口下用如下命令安装: mount/mnt/cdrom rpm-ivh/mnt/edrom/RedHat/RPMS/dhcp-3.0pll-231386rpm 8.3.3配置DHCP服务器 DHCP服务器的配置文件是etc/ dhcpd. conf,下面给出一个DHCP配置文件的例 163
第八章 用 Linux 构建 Intranet User(FTPAddress:(none)):ftp //输入用户帐号 ftp 331 Please specify the password. Password: //输入密码 ftp 230 Login successful. Have fun. ftp > Linux 系统下的 FTP 服务器软件除了 vsftpd 外,wu-ftpd、proftpd、pureftpd 等也 很出名,其中有不少支持数据库用户以及带宽和线程控制等功能,可以参考专门的 资料来完成各种功能的 FTP 服务器的配置。 8.3 DHCP 服务器的安装与设置 DHCP 是动态主机配置协议的简称,它由 BOOTP 协议演化而来,它们同属于 TCP/IP 协议族,是目前以太网上使用较多的自动进行客户机 TCP/IP 配置的协议。 每个基于 TCP/IP 协议的网络主机都需要一个唯一确定的 32 位 IP 地址来与网络 通信,如果每台主机的 IP 地址都用手工设定的话,工作量将是不可想象的,能不能 让主机在启动时就被自动配置 IP 地址?这正是 DHCP 协议设计的初衷。一台配置了 DHCP 的主机启动时强制发送一个有限地址广播(32 位全为 1 的 IP 地址即 255.255.255.255)。当本地网络中的 DHCP 服务器收到广播后,根据收到的物理地址 在服务器上查找相应配置,并从 IP 地址池中发送某个 IP 地址及附加选项(如租用到 期时间等)给客户机。 8.3.1 DHCP 服务器工作的前提条件 为了使DHCP服务器为windows主机服务,需要创建一个到地址255.255.255.255 的路由,加这条路由命令到/etc/rc.d/rc.local 使每次启动时自动执行。 # route add -host 255.255.255.255 dev eth0 如果报告错误消息:255.255.255.255:Unkown host 试着加下面的入口到 /etc/hosts 文件: #route add -host dhcp dev eth0 8.3.2 安装 DHCP 服务器软件 在 RedHad Linux9.0 中,默认情况下并没有安装 DHCP 服务器软件,可以在终 端窗口下用如下命令安装: # mount /mnt/cdrom # rpm -ivh /mnt/cdrom/RedHat/RPMS/dhcp-3.0pl1-23.i386.rpm 8.3.3 配置 DHCP 服务器 DHCP 服务器的配置文件是/etc/dhcpd.conf,下面给出一个 DHCP 配置文件的例 163
算机网络技术及应用 子 default-lease-time 1200 max-lease-time 9200 option broadcast-address 192.168.1.255 option domain-name-servers 192.168.1.1, 192. 168.1.2 subnet192168.1.0 netmask255255.255.0{ range192168.1.150192.168.1.200; 将允许DHCP服务器分配两段P地址范围给客户192.168.1.10-100和 192168.1.150-200,如果客户不继续请求DHCP地址,则1200秒后释放IP地址,否 则最大允许租用的时间为9200秒。服务器发送下面的参数给DHCP客户机:用 255255.2550作为子网掩码,用192.168.1255作为广播地址,用192.168.1.254作为 默认网关,用192.168.1.1和192.168.1.2作为DNS服务器 可以为某块网卡指定固定的IP地址。无论何时,这块网卡将总是从DHCP服务 器获得固定的IP地址,加下面的语句到 /etc/dhcpd. con host haagen hardware ethernet 08: 00: 2b: 4 c: 59: 23 fixed-address 192.168.1. 222 8.3.4启动DHCP服务器 启动DHCP服务器,可以在终端命令窗口输入 或者用# ntsysv把DHCP服务自动启动 如果想在eth设备上启动 dhcpd,则 #/usr/sbin/dhcpd ethI 如果为了调试DHCP,则用 #/usr/sbin/dhcpd-d-f 8.3.5测试DHCP服务 选择一台客户机,启动 windows,将P地址选择为自动获得,重新启动计算机 后,执行 ipconfig/all命令检查DCP服务是否设置正确。 164
计算机网络技术及应用 子: Sample /etc/dhcpd.conf default-lease-time 1200; max-lease-time 9200; option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.255; option routers 192.168.1.254; option domain-name-servers 192.168.1.1,192.168.1.2; option domain-name "zzei.net"; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.10 192.168.1.100; range 192.168.1.150 192.168.1.200; } 将允许 DHCP 服务器分配两段 IP 地址范围给客户 192.168.1.10-100 和 192.168.1.150-200,如果客户不继续请求 DHCP 地址,则 1200 秒后释放 IP 地址,否 则最大允许租用的时间为 9200 秒。服务器发送下面的参数给 DHCP 客户机:用 255.255.255.0 作为子网掩码,用 192.168.1.255 作为广播地址,用 192.168.1.254 作为 默认网关,用 192.168.1.1 和 192.168.1.2 作为 DNS 服务器。 可以为某块网卡指定固定的 IP 地址。无论何时,这块网卡将总是从 DHCP 服务 器获得固定的 IP 地址,加下面的语句到/etc/dhcpd.conf: host haagen { hardware ethernet 08:00:2b:4c:59:23; fixed-address 192.168.1.222; } 8.3.4 启动 DHCP 服务器 启动 DHCP 服务器,可以在终端命令窗口输入: # /usr/sbin/dhcpd 或者用# ntsysv 把 DHCP 服务自动启动。 如果想在 eth1 设备上启动 dhcpd,则: # /usr/sbin/dhcpd eth1 如果为了调试 DHCP,则用: #/usr/sbin/dhcpd -d -f 8.3.5 测试 DHCP 服务 选择一台客户机,启动 windows,将 IP 地址选择为自动获得,重新启动计算机 后,执行 ipconfig/all 命令检查 DHCP 服务是否设置正确。 164
第八章用 Linux构建 Intranet 8.4DNS服务器的安装与设置 8.4.1DNS的实现机制 域名服务(DNS, Domain Name server)在因特网上占有极其重要的地位。如 果没有DNS,因特网将非常难以使用,因为因特网用户只有记住提供服务的主机P 地址才能访问它们,但这些数字十分难记。 DNS实际上是一个分布式的数据库系统,通常由两种实现机制:一种是用主机 表,另一种是采用域名服务器 1.主机表机制 在互联网发展的初期,当时的主机数量不多,名字服务器是通过一张大型的主 机表来完成。这张表被称为NC注册主机表,它保存所有已经注册的网站的主机名 和对应的P地址。在 Linux中,这个文件就是/etc/ hosts,下面是一个 letc/hosts的例 127.0.0.1 localhost localdomain localhost 192.168.100.1 ns ns. zzei net 第一列(如1270.0.1)是IP地址,下面的是对应的主机名 2.域名服务器系统 域名服务器系统一般采用域名服务器来实现域名到IP地址之间的转换,目前常 用的服务程序是BIND( Berkeley Internet Name Domain,伯克利网间名字域) DNS用域的层次结构来组织主机名。一个域是在某些方面相关站点的集合,因 为这些特定的主机组成了特定的网络(如校园网)。名字空间类似于一棵树,这棵树 的入口用一个点表示,称为根域。根据在层次结构中的位置,一个域可以分为顶级 域、第二级域、第三级域。 使用名字服务器的守护进程来实现IP地址同域名之间转换的功能 DNS服务器可以被配置成3种形式:主名字服务器( master name server)、从名 字服务器( secondary name server)和缓存名字服务器( catching-only name server) 主名字服务器存储指定名字空间最初的和权威的域名解析信息,回答其 他名字服务器对该名字空间内名字解析的请求。 从名字服务器也响应其他名字服务器的请求,不过必须在该名字服务器 认为是权威的名字空间范围之内。 ●缓存名字服务器只提供域名到P地址的解析,并且解析不具有权威性 8.4.2安装BND服务器 1.安装前的准备工作 在 RedHat linux90光盘的RPMS目录下有一个bind-921-9386pm包,执行 如下命令: rpm-iVh bind-9.2. 1-9. 1386. rpm 165
第八章 用 Linux 构建 Intranet 8.4 DNS 服务器的安装与设置 8.4.1 DNS 的实现机制 域名服务(DNS,Domain Name Server)在因特网上占有极其重要的地位。如 果没有 DNS,因特网将非常难以使用,因为因特网用户只有记住提供服务的主机 IP 地址才能访问它们,但这些数字十分难记。 DNS 实际上是一个分布式的数据库系统,通常由两种实现机制:一种是用主机 表,另一种是采用域名服务器。 1.主机表机制 在互联网发展的初期,当时的主机数量不多,名字服务器是通过一张大型的主 机表来完成。这张表被称为 NIC 注册主机表,它保存所有已经注册的网站的主机名 和对应的 IP 地址。在 Linux 中,这个文件就是/etc/hosts,下面是一个/etc/hosts 的例 子。 127.0.0.1 localhost.localdomain localhost 192.168.100.1 ns ns.zzei.net 第一列(如 127.0.0.1)是 IP 地址,下面的是对应的主机名。 2.域名服务器系统 域名服务器系统一般采用域名服务器来实现域名到 IP 地址之间的转换,目前常 用的服务程序是 BIND(Berkeley Internet Name Domain,伯克利网间名字域)。 DNS 用域的层次结构来组织主机名。一个域是在某些方面相关站点的集合,因 为这些特定的主机组成了特定的网络(如校园网)。名字空间类似于一棵树,这棵树 的入口用一个点表示,称为根域。根据在层次结构中的位置,一个域可以分为顶级 域、第二级域、第三级域。 使用名字服务器的守护进程来实现 IP 地址同域名之间转换的功能。 DNS 服务器可以被配置成 3 种形式:主名字服务器(master name server)、从名 字服务器(secondary name server)和缓存名字服务器(catching-only name server)。 z 主名字服务器 存储指定名字空间最初的和权威的域名解析信息,回答其 他名字服务器对该名字空间内名字解析的请求。 z 从名字服务器 也响应其他名字服务器的请求,不过必须在该名字服务器 认为是权威的名字空间范围之内。 z 缓存名字服务器 只提供域名到 IP 地址的解析,并且解析不具有权威性。 8.4.2 安装 BIND 服务器 1.安装前的准备工作 在 RedHat Linux 9.0 光盘的 RPMS 目录下有一个 bind-9.2.1-9.i386.rpm 包,执行 如下命令: # rpm –ivh bind-9.2.1-9.i386.rpm 165