1、第一章 架设 WWW 服务器Internet 下最热的是 WWW 服务, 最常用的软件是 Apache 软件,Apache 的主要特征是: 可以运行上所有计算机平台; 支持最新的 HTTP 1.1 协议; 简单而强有力的基于文件的配置; 支持通用网关接口 CGI; 支持虚拟主机; 支持 HTTP 认证; 集成 Perl 脚本编程语言; 集成的代理服务器; 具有可定制的服务器日志; 支持服务器端包含命令(SSI) 支持安全 Socket 层(SSL) 用户会话过程的跟踪能力; 支持 FastCGI; 支持 Java Servlets。Orbita Linux 3.0(英文版) 自带的 Apach
2、e 软件包采用最新版本: 1.3.19-5。传统上 Apache 从三个文件中读取服务器运行配置,都存放在 /etc/httpd/conf 路径下,这三个文件是 access.conf、httpd.conf 和 srm.conf。由于 Orbita Linux 3.0(英文版)采用的是目前最稳定的 Apache 版本,服务器运行配置只存储在一个文件中-httpd.conf 文件。其他文件仍然存在,但是只包含注释,告诉用户该文件只是由于历史原因而保留,所有的配置已放入 httpd.conf 文件。首先,介绍一下 的用法。 在配置文件中处于一行的开头,表示该行为注释,不参与执行。如果你希望使用某个
3、被注释掉的参数,就必须将其行首的 去掉。编辑文件 httpd.conf,查看设置参数:(1)以下参数定义了 httpd 服务器的一般属性、端口号(port) 、执行者的身份等ServerType:有 standalone 和 inetd 两个值可供选择。这是要你选择你的 Server 是单独启动( standalone) ,还是借由互联网络伺服程序 inetd 来启动。一般我们默认使用单独启动就行了。如果你对 ARPA Berkeley Services 不是很了解的话,请不要随意更改。Port :分配给你的服务器的端口号。ServerType 为 standalone 时一般都设成 80。当
4、然,如果你需要也可以设置成其它的 port,但必须小于 1024。倘若你分配了一个大于 1024 的端口号给 Web Server,你就必须在你的 URL 后面跟上端口号才能访问到你的页面。比如你分配给你的服务器的端口号是 8080,那么你访问时需要输入 http:/yourdomain:8080。ServerAdmin:服务器管理员的 Email 地址,默认的是 rootlocalhost,你可以改为你自己的 Email 地址。ServerRoot:存放服务器的设置文件、出错文件和记录文件的目录。BindAddress:允许连接到你的服务器上的虚拟主机的 IP 地址。你可以设置为一个 IP
5、地址或用 来表示网络上的所有虚拟主机。ErrorLog :存放服务器出错信息的文件。TransferLog:用来存放已传输过的文件(只包含文件名)的记录文件。PidFile:指定存放 httpd 进程号的文件。ScoreBoardFile :记录进程信息的文件。ServerName:定义服务器的 hostname,比如 。如果你的机子没有固定的 IP,那就不用写了。Timeout :传输或接收的延时。大于这个时间服务器会自动断开链接。KeepAlive:是否让你的服务器支持断点续传功能,可以选 on 或者 off。MaxKeepAliveRequests:设置续传功能的数目。内置设成最多 1
6、00,如果设成 0 就是不支持续传功能。当然,数目设得越多就会浪费更多的硬盘空间。KeepAliveTimeout:等待下一个请求的时间,如果使用者超过这个时间还没有向你的服务器发出要求,则它就不能再续传了。同样的,秒数设得越大硬盘中的垃圾就会越多。MaxClients:允许的最大客户个数,默认的是 150。你不必担心设得过高会浪费 CPU、内存资源,因为 Apache 会周期性地检查目前 Server 的 load 状态,以调整目前应该运行几个 process。(2)以下参数主要是用来指定你的文档的位置DocumentRoot:指定你(root)存放 HTML 文件的路径,一般用默认值就行了
7、。比如,你设置的 DocumentRoot 是/home/httpd/html,服务器的地址是202.98.32.96,则在 URL 中输入 http:/202.202.98.96 所看到的文件就?. 械膇 ndex.html。UserDir:定义使用者存放 html 文件的路径。如果你有一个用户的主目录为 /home/wjq ,当在 URL 中输入 http:/yourdomain/wjq 时,系统就会.r 所指定的目录。DirectoryIndex:用来定义别人连入时所看到的第一个文件,一般都为 index.html。ScriptAlias:定义存放 CGI 的路径。比如你设置为 Scri
8、ptAlias /cgibin/ /home/httpd/cgibin/,那么当有人连到你的页面时,服务器就到/home/httpd/cgibin/路径下去找寻 CGI 然后执行,而其显示的路径却是 Alias 的路径/cgi bin/。AddHandler :用来定义 CGI 的格式,约定俗成以 .cgi 结尾的文件为 CGI 文件。如果你想运行更多格式的 HTML 文件,那就可以按需要把下面几个参数前的去掉。AddType text/html .shtml AddHandler Serverparsed.shtml :允许使用 Serverparsed HTML 格式的文件的文件(.sht
9、ml) 。AddHandler imapfile map :允许页面有 imagemap。AddHandler typemap var :允许运行 map 格式的 html 语法。(3)以下主要是设置目录的基本存取权限,以及规范远端机器是否能连接到你的 WWW 服务器的相关设置Options Indexes IncludesNOEXEC FollowSymLinksAllowOverride Noneorder allow,denyallow from all这部分是以开头,以结束的。其中开头的部分表示下面的设定是针对/home/httpd/html 目录的。 Options 用于定义在 Do
10、cumentRoot 里的文件所能执行的操作,这一命令有很多的参数,各参数的功能如下:None:表示页面除了看之外不能做任何事。All:允许进行除看动画、听音乐之外的任何操作。ExecCGI :开启执行 CGI 程序的功能。explicitly:允许看动画或是听音乐之类的操作。FollowSymLinks:开启一个动态的链接,当有客户访问到该目录时会自动的链接到另一个相关的目录中去。Indexes:如果在目录中没有找到 index.html 文件,就显示文件列表。而后是 AllowOverride 参数,该参数是设定访问控制的,其后可跟 Allow、None 、FileInfo、AuthCon
11、fig、Limit 等选项,不过一般都设为 None ,表示任何人都可以阅读 DocumentRoot 内的文件。order allow,deny 就是定义有 allow(允许)和 deny(不允许)两种命令模式,其后的 allow from all 表示允许网络上的所有计算机连接到这台服务器。同样的,你也可以做以下定义:order allow,denydeny from allallow from 202.98.32.96这就表示只有 202.98.32.96 的计算机允许连接到你的服务器。以此类推,我们还可以对其它目录进行设置。下面给出的就是对/home/httpd/cgibin 目录进行
12、设置的范例:AllowOverride NoneOptions ExecCGI它表示不能对/home/httpd/cgi bin 进行访问控制,但允许执行 CGI 程序,这就表明这是一个用来存放 CGI 程序的目录。通常,这三个配置文件的参数的默认值是不用更改的,但是如果你同时在一台机子上开了几个 Web Server 时就要注意:你必须给每一个 Web Server 分配一个不同的 port 号并分别指定他们的 errorlog 文件和 pidfile 文件。至此,我们已经配置完了 Apache 服务器,接下来就是要重新启动 httpd 了。重新启动 httpd,完成服务器的配置进入 Lin
13、ux 终端模式,执行/etc/rc.d/init.d/httpd stop 终止 httpd 进程,当然你也可以通过查看其 pid 号码将其 kill;然后执行/etc/rc.d/init.d/httpd start 重新启动刚才配置好的 httpd,再进入 X windows 并启动 Netscape,在 URL 中输入 localhost 或本机的 IP 地址,如果没有什么意外你应该看到一个关于 Apache 的页面。这时,你可以将自己的主页拷贝到/home/httpd/html/ 目录中,别人就可以通过浏览器访问到你的主页了。这样,一个功能强大的服务器就算架设完成了。第二章 架设 FTP
14、 和 TELNET 服务器Orbita Linux 3.0(英文版) 和以往的版本有一个明显的区别,就是用 xinetd.conf 代替原来的 inetd.conf,并且直接使用了 firewall 服务。出于系统整体安全性增强的考虑,Orbita Linux 3.0(英文版)在默认安装时没有启动老版本中大家比较熟悉的 ftp, telnet 等服务。xinetd 与 inetd 的区别:xinetd 的默认配置文件是/etc/xinetd.conf,它看起来尽管和老版本的/etc/inetd.conf 完全不同,其实只是 以一个脚本的形式将 inetd 中每一行指定的服务扩展为一个/etc/
15、xinetd.d/ 下的配置文件。其格式为:service service-nameSocket_type = xxx; /TCP/IP socket type,such as stream,dgram,raw,protocol = xxx; /服务使用的协议Server = xxx; /服务 daemon 的完整路径Server_args = xxx; /服务的参数Port = xxx; /指定服务的端口号Wait = xxx; /是否阻塞服务,即单线程或多线程User = xxx; /服务进程的 uidGroup = xxx; /gidREUSE = xxx; /可重用标志Disabled
16、 = yes/no; /是否禁用下面说说怎样使 FTP 服务与 TELNET 服务起来:其实很简单,找到/etc/xinetd.d/下与它们有关的文件,FTP 是 wu-ftpd 文件,TELNET 是 telnet 文件。编辑它们。把 Disabled = yes,改为 Disabled=no 即可。然后,重新启动服务/etc/rc.d/init.d/xinetd restart 或:#killall -HUP xinetd 。这时候,telnet localhost 和 ftp localhost 都应该没有问题了。但是,从局域网内的其他机器仍然可能使用不了 ftp 和 telnet 服务
17、。这是因为 firewall 在作祟。这次的 firewall 其实就是 ipchains,配置文件在/etc/sysconfig/ipchains:# Firewall configuration written by lokkit# Manual customization of this file is not recommended.# Note: ifup-post will punch the current nameservers through the# firewall; such entries will *not* be listed here.:input ACCEPT
18、:forward ACCEPTutput ACCEPT-A input -s 0/0 -d 0/0 -i lo -j ACCEPT-A input -p tcp -s 0/0 -d 0/0 0:1023 -y -j REJECT /*-A input -p tcp -s 0/0 -d 0/0 2049 -y -j REJECT-A input -p udp -s 0/0 -d 0/0 0:1023 -j REJECT /*-A input -p udp -s 0/0 -d 0/0 2049 -j REJECT-A input -p tcp -s 0/0 -d 0/0 6000:6009 -y
19、-j REJECT-A input -p tcp -s 0/0 -d 0/0 7100 -y -j REJECT出于安全,ipchains 把 0-1023 端口的入口全部封闭了。所以必须将它们打开。把上面尾部带*标记的行中的 REJECT 修改为 ACCEPT,然后重新启动计算机就行。(当然你也可以在防火墙的配置中设置-键入 setup 命令,选择 firewall configuration 选项)你可以在机器启动时就加入 FTP 服务与 TELNET 服务。 (setup 命令中修改)ftp 登录画面telnet 登录画面Ftp 服务是 Internet 上的标准服务之一,用来在网络上传
20、输文件。Orbita Linux 用 wu-ftpd.来实现该服务 . 提供三种 ftp 登录形式:1、anonymous ftp2、real ftp3、guest ftpFTP 服务程序由/etc/inetd.conf 文件进行控制,而且每当有人连接 ftp 端口时,它便自动调用(如,端口和 FTP 相关联) 。当检测到某个连接时,ftp 守护程序(/usr/sbin/in.ftpd)便被调用,从而开始会话。默认的 ftp 配置已是比较安全,我们还可以通过编辑一些 ftp 相关文件调整访问权限:/etc/ftpaccess/etc/ftpconversions/etc/ftphosts/va
21、r/log/xferlog利用这些文件,可以控制哪些人、在什么时间、从什么地点可以连接到服务器,并且可以建立一个审查跟踪文件,对他们连接后所做的工作进行检查。/etc/ftpaccess 文件是这些文件中最重要的一个,因为它包括大部分的配置选项;然而,错误地配置其它文件中的任何一个,都可能导致服务被拒绝。2 关于/etc/ftpaccess 的设置这个配置文件是 FTP 服务器上最重要的配置文件,它直接关系到你的 FTP 服务器能否正常工作,还有许多权限上的设置。下面是一个典型的配置实例。loginfails 3class local real *class remote anonymous
22、guest *limit remote 100 Any /etc/ftpd/toomany.msgmessage /etc/ftpd/welcome.msg logincompress yes local remotetar yes local remoteprivate yespasswd-check rfc822 warnlog commands reallog transfer anonymous guest inbound outboundlog transfer real inboundshutdown /etc/ftpd/shut.msgdelete no anonymous,gu
23、estoverwrite no anonymous,guestrename no anonymouschmod no anonymous,guestumask no anonymousupload /home/ftpd * noupload /home/ftpd /bin noupload /home/ftpd /etc noupload /home/ftpd /pub yes real 0644 dirsupload /home/ftpd /incoming yes real guest anonymous 0644 dirsalias in /incomingemail email den
24、y *.com.tw /etc/ftpd/deny.msg下面我们逐句进行讲解,并给出每条设置的含义,以便大家触类旁通,以便根据自己 FTP 服务器的具体情况进行合理的设置。1 格式:loginfails 次数功能:设定当用户登录到 FTP 服务器时,允许用户输错密码的次数。实例:loginfails 3:密码输入错误三次就切断连接。2 格式:class 类名 real/guest/anonymous IP 地址功能:这个指令的功能设定 FTP 服务器上用户的类别。并可对客户端的 IP 地址进行限制,允许某部分的 IP 地址或全部的 IP 地址访问。而在 FTP 服务器上的用户基本上可以分为以
25、下三类:real 在该 FTP 服务器有合法帐号的用户;guest 有记录的匿名用户;anonymous 权限最低的匿名用户实例:class local real *:定义一个名为 local 的类,它包含了在任何地方登录(*代表所有 IP 地址)的 real 用户。 class remote anonymous guest *:定义一个名为remote 的类,它包含了在任何地方登录的 anonymous 用户和 guest 用户。3 格式:limit 类别 人数 时间 文件名功能:这个指令的功能为设置指定的时间内指定的类别允许连接的指定人数上限。当达到人数上限的时候,显示指定文件的内容。实例
26、:limit remote 100 Any /etc/ftpd/toomany.msg:在任何时间内,remote 类的访问用户达到 100 人时,将不再允许无法产生新的连接,当第 101 位客户要连接时,连接将失败,并象用户出示文件/etc/ftpd/toomany.msg 的内容。4 格式:message 文件名称 指令功能:当用户执行所指定的指令时,系统将指定的文件内容显示出来。实例:message /etc/ftpd/welcome.msg login:当用户执行 login 命令时,也就是登录到 FTP 服务器上的时候,系统将显示文件/etc/ftpd/welcome.msg 的内容
27、。5 格式:compress yes/no 类别功能:设置哪一个类别的用户可以使用 compress(压缩)功能。实例:compress yes local remote :允许 local 和 remote 两个类别的用户都能使用 compress(压缩)功能。6 格式:tar yes/no 类别功能:设置哪一个类别的用户可以使用 tar(归档)功能。实例:tar yes local remote:允许 local 和 remote 两类的用户都能使用 tar 功能。7 格式:private yes/no功能:设定是否支持群组对文件的取用。实例:private yes :支持群组对文件的取用
28、。8 格式:passwd-check none/trivial/rfc822 enforce/warn功能:设定对匿名用户 anonymous 的密码使用方式。none 表示不做密码验证,任何密码都可以登录;trival 表示只要输入的密码中含有字?quot;“就可以登录;rfc822 表示密码一定要符合 RFC822 中所规定的 E-Mail 格式才能登录;enfore 表示输入的密码不符合以上指定的格式就不让登录;warn 表示密码不符合规定时只出现警告信息,仍然能够登录。实例:passwd-check rfc822 warn:希望能够得到符合规定的 E-Mail 作为密码,但如果不是,也
29、允许登录。9 格式:log command real/guest/anonymous功能:设置哪些用户登录后的操作记录在文件/usr/adm/xferlog 中。实例:log command real:当 real 用户登录后,将他的操作记录下来。由于其它用户权限较低,所以操作不会引起太大的安全隐患,所以一般只需记下 real 用户的操作就可以了。10 格式:log transfers real/guest/anonymous inbound/outbound功能:设置哪些用户的上载(inbound)和下载(outbound)操作做日志。实例:log transfer anonymous gu
30、est inbound outbound:对于匿名用户要更加的关注它们的文件操作,所以无论上载、下载都进行记录。log transfer real inbound:对于合法用户则只记录他的上载记录。11 格式:shutdown 文件名功能:FTP 服务器关闭的时间可以设置在后面所指定的文件中,当设置的时间一到,便无法登录 FTP 服务器了,要恢复的话只有将这个文件删掉。而这个文件必 须由指令/bin/ftpshut 来生成。实例:shutdown /etc/ftpd/shut.msg12 格式:delete yes/no real/anonymous/guest功能:设置是否允许指定用户使用
31、delete 命令删除文件。默认是允许。实例:delete no anonymous,guest:为了更好地管理 FTP 服务器,一般情况下,我们不允许匿名用户执行 delete 命令。13 格式:overwrite yes/no real/anonymous/guest功能:设置是否允许指定用户覆盖同名文件。默认是允许。实例:overwrite no anonymous,guest:为了更好地管理 FTP 服务器,一般情况下,我们不允许匿名用户覆盖同名文件。14 格式:rename yes/no real/anonymous/guest功能:设置是否允许指定用户使用 rename 命令来为文
32、件改名。默认是允许。实例:delete no anonymous:为了更好地管理 FTP 服务器,一般情况下,我们不允许匿名用户执行 rename 命令改变文件名。而对有记录的匿名用户则适当的放宽,允许他们使用改名命令。15 格式:chmod yes/no real/anonymous/guest功能:设置是否允许指定用户使用 chmod 命令更改文件权限。默认是允许。实例:delete no anonymous,guest:为了更好地管理 FTP 服务器,一般情况下,我们不允许匿名用户执行 chmod 命令更改文件权限。16 格式:umask yes/no real/anonymous/gu
33、est功能:设置是否允许指定用户使用 umask 命令。默认是允许。实例:delete no anonymous:为了更好地管理 FTP 服务器,一般情况下,我们不允许匿名用户执行 umask 命令。17 格式:upload 根目录 上载目录 yes/no 用户 权限 dirs/nodirs功能:对可以上载的目录进行更加详细的设置。实例:upload /home/ftpd * no:表示在子目录/home/ftpd 下不允许上载;upload /home/ftpd /bin no:表示在子目录/home/ftpd/bin 下不允许上载;upload /home/ftpd /etc no:表示在
34、子目录/home/ftpd/etc 下不允许上载;upload /home/ftpd /pub yes real 0644 dirs:允许用服务器上的合法用户在子目录/home/ftpd/pub 目录下能上载权限为 0644(也就是-rw-r-r-) 的文件,而且在这个目录下可以新建子目录。upload /home/ftpd /incoming yes real guest anonymous 0644 dirs:允许所有的用户在子目录/home/ftpd/incoming 下能上载权限为 0644 的文件,而且在这个目录下可以新建子目录。18 格式:alias 目录别名 目录名功能:给指定目
35、录设置一个别名,在切换目录时就可以使用较短的目录别名。实例:alias inc: /incoming:为子目录 incoming 设置一个别名 inc:。19 格式:email guest 的 E-Mail 地址功能:只要将某些 E-Mail 地址设置在这个地方,那么这些用户登录到 FTP 服务器时,他的身份将为 guest,一般权限比 real 低一些,比 anonymous 高。实例:email email :这里仅是一个示例,实际上可 以包含多个符合规范的 E-Mail 地址。20 格式:deny IP 地址/域名 说明文件功能:这个设置可以限制哪一些 IP 地址或域名的用户无法登入
36、FTP 服务器。实例:deny *.com.tw /etc/ftpd/deny.msg:设置凡是域名是以“.com.tw“结束的域名,都禁止其访问。而将/etc/ftpd/deny.msg 的内容显示给用户看。2 设置/etc/ftpuser , 禁止某些用户登录有时我们需要禁止一些用户使用 FTP 服务。其实这个设置是十分简单的,只需要将要禁止的用户帐号写入文件/etc/ftpuser 中。由于从系统的安全考虑,一般我们是不希望权限过大的用户和一些与命令名相同的用户进入 FTP 服务器。所以在缺省的配置中,一般以下用户已经被列入了“黑名单“。rootuucpnewsbinadmnobodyl
37、psyncshutdownhaltmail2 设置/etc/ftphosts禁止某些来自指定机器上的登录如果你需要拒绝来自某些主机的登录,一种方法就是在/etc/ftpaccess 中设置 deny 命令,另一种更加简单的方法就是在 /etc/ftphosts 中写入你要禁止的主机的 IP 地址或域名。2 使新的配置生效到此为止,我们已经能够根据自己的需要对 FTP 服务器配置进行必要的修改和调整。而让我们重新配置后,就必须使其生效。一般的,对/etc/ftpaccess 的配置是直接作用于设置后的下一次 FTP 服务进程。而其它的则要对 inetd 进程重新启动。第三章 架设 E-mail
38、服务器Sendmail 是由 Eric Allman 编写的程序,后来经过很多人的贡献,才成为现在的版本。目前几乎所有的 Unix/Linux 系统都使用 sendmail。sendmail 的功能非常强大,Orbita Linux 3.0(英文版)安装了 Sendmail 软件包版本为目前最新的 8.11.2-14。Sendmail 的强大在于它的灵活性,这种灵活性来源于它的配置文件sendmail.cf。Sendmail.cf 文件具有三方面的功能。第一、它可以为 sendmail 设置环境,从而把用户想要设置的选项以及 sendmail 需要使用的文件和数据库的位置通知给 sendmai
39、l。第二、配置文件可以定义 sendmail 用来确定把邮件发送到哪里的邮件发送器。第三、配置文件可以指定用来改写寄件人和收件人的地址以及选择邮件发送器的规则集。例如,号规则集用来选择邮件发送器。配置说明sendmail.cf 是 Sendmail 的配置文件,它全权决定了 Sendmail 的属性。这个文件定义邮件服务器为哪个域工作。其中的内容为特定宏,大多数人对它都抱有恐惧心理,因为文件中的宏代码实在是太多。sendmail.cf 通常是由一个以 mc 结尾的文件编译产生。如 Redhat 自带一个 redhat.mc,用户可以自己修改其中的一些设置,使之适合自己。sendmail.mc
40、文件内容如下:divert(-1)dnl This is the macro config file used to generate the /etc/sendmail.cfdnl file. If you modify thei file you will have to regenerate thednl /etc/sendmail.cf by running this macro config through the m4dnl preprocessor:dnl m4 /etc/sendmail.mc /etc/sendmail.cfdnl You will need to have
41、the Sendmail-cf package installed for this to work.include(/usr/lib/Sendmail-cf/m4/cf.m4)define(confDEF_USER_ID,8:12)OSTYPE(Linux)undefine(UUCP_RELAY)undefine(BITNET_RELAY)define(confAUTO_REBUILD)define(confTO_CONNECT, 1m)define(confTRY_NULL_MX_LIST,true)define(confDONT_PROBE_INTERFACES,true)define(
42、PROCMAIL_MAILER_PATH,/usr/bin/procmail)FEATURE(smrsh,/usr/sbin/smrsh)FEATURE(mailertable,hash -o /etc/mail/mailertable)FEATURE(virtusertable,hash -o /etc/mail/virtusertable)FEATURE(redirect)FEATURE(always_add_domain)FEATURE(use_cw_file)FEATURE(local_procmail)MAILER(smtp)MAILER(procmail)FEATURE(acces
43、s_db)FEATURE(blacklist_recipients)dnl We strongly recommend to comment this one out if you want to protectdnl yourself from spam. However, the laptop and users on computers that dodnl not hav 24x7 DNS do need this.FEATURE(accept_unresolvable_domains)dnl FEATURE(relay_based_on_MX)其中注释或删除 DAEMON_OPTIO
44、NS(Port=smtp,Addr=127.0.0.1, Name=MTA)行。编译 sendmail.mc 以产生需要的 sendmail.cf 文件:# m4 /etc/sendmail.mc /etc/mail/sendmail.cf。生成 sendmail.cf 以后,编辑 sendmail.cf。在文件中,查找 DS,在其后加入邮件服务器名、域名,这样可以保证当你以 或 发信时,用户都可以收到,如下所示:# Alias for this hostCw 然后,就可以启动 Sendmail 了:# /usr/sbin/Sendmail -bd -q20m。Sendmail 8.9.x
45、 以后的版本,在缺省情况下,都默认不对未验证的计算机进行转发 (Relay),所以如果要为本机以外的其他计算机进行邮件转发,这时,应该在相应的配置文件中明确告诉 Sendmail 要对哪几个主机进行转发。如果不考虑验证,对任何主机都进行转发的话,可以在 sedmail.mc 文件中加入一行:FEATURE(promiscuous_relay)。不过,如果你的计算机是放在公网上的话,建议你不要这样做,因为这样做了以后,任何人都可以使用你的计算机进行转发邮件了,特别是一些别有用心的人或一些兜售客(spammer,垃圾邮件制造者)会利用你的邮件服务器的转发功能乱发大量的垃圾邮件。通常情况下,Send
46、mail 不会为邮件服务 Relay 信息,这样可以防止一些有恶意的人利用别人的邮件服务器乱发邮件。缺省情况下,Sendmail 关闭了 Relay 功能。如果你要为别的服务器 Relay 邮件,可以进行如下设置-在 access 文件中加入要为其 Relay 信件的机器,格式为:hostname RELAYipaddress RELAY如果要为一个域内多个机器 Relay 信件,则可以在/etc/mail/access 文件中直接加入其子网 IP 或域名,如下所示:# Check the /usr/share/doc/sendmail-8.11.2/README.cf file for a
47、description# of the format of this file. (search for access_db in that file)# The /usr/share/doc/sendmail-8.11.2/README.cf is part of the sendmail-doc# package.# by default we allow relaying from localhost.localhost.localdomain RELAYlocalhost RELAY127.0.0.1 RELAY10.1.8.2 RELAY RELAY RELAY此文件惟一决定了哪些机
48、器、哪个域可以使用邮件服务器转发邮件。完成后需要进行编译:#makemap hash access.db # Password Level allows matching of _n_ characters of the password for# all combinations of upper and lower case.; password level = 8; username level = 8# You may wish to use password encryption. Please read# ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba documentation.# Do not enable this option unless you have read those documents; encrypt passwords = yes; smb passwd file = /etc/samba/smbpasswd# The following is nee