系统管理指南:网络服务

设置邮件服务

如果站点不提供与公司外部的电子邮件服务的连接,或者公司位于单个域中,则您可以轻松设置邮件服务。

对于本地邮件,邮件需要两种类型的配置。有关这些配置的说明,请参阅仅本地邮件中的图 13–1。对于与域外部网络之间的通信,邮件需要两种以上的配置。有关这些配置的说明,请参阅硬件组件概述中的图 12–1,或本地邮件和远程连接中的图 13–2。可以在同一系统上合并这些配置,也可以在不同系统上提供这些配置。例如,如果邮件主机和邮件服务器功能位于同一系统上,请按照本节中的指示将该系统设置为邮件主机。然后,按照本节中的指示将同一系统设置为邮件服务器。


注 –

以下用于设置邮件服务器和邮件客户机的过程在邮箱挂载了 NFS 的情况下适用。但是,邮箱通常保存在本地挂载的 /var/mail 目录中,因此无需执行以下过程。


请参阅以下内容:

Procedure如何设置邮件服务器

设置仅为本地用户提供邮件服务的邮件服务器时,无需采取任何特殊步骤。在口令文件或名称空间中,必须包含用户项。另外,对于要传送的邮件,用户应具有用于检查 ~/.forward 文件的本地起始目录。为此,通常会将起始目录服务器设置为邮件服务器。有关邮件服务器的更多信息,请参阅第 14 章,邮件服务(参考)中的硬件组件

该邮件服务器可以路由许多邮件客户机的邮件。此类型的邮件服务器必须为客户机邮箱提供足够的假脱机空间。


注 –

首次传送消息时,mail.local 程序会自动在 /var/mail 目录中创建邮箱。因此,无需为邮件客户机创建单独的邮箱。

对于访问其邮箱的客户机,/var/mail 目录应可用于远程挂载。或者,可使用该服务器提供的邮局协议 (Post Office Protocol, POP) 或 Internet 消息访问协议 (Internet Message Access Protocol, IMAP) 等服务。以下任务说明了如何通过 /var/mail 目录设置邮件服务器。提供 POP 或 IMAP 配置指南超出了本文档范围。


对于以下任务,请确保 /etc/dfs/dfstab 文件会显示已导出 /var/mail 目录。

  1. 成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 停止 sendmail


    # svcadm -t disable network/smtp:sendmail
    
  3. 检查 /var/mail 目录是否可用于远程访问。


    # share
    

    如果列出了 /var/mail 目录,请转到步骤 5。

    如果未列出 /var/mail 目录或没有显示列表,请继续执行相应的子步骤。

    1. (可选的)如果未显示列表,请启动 NFS 服务。

      按照过程如何设置自动文件系统共享,使用 /var/mail 目录启动 NFS 服务。

    2. (可选的)如果列表中未包含 /var/mail 目录,请将该目录添加到 /etc/dfs/dfstab

      将以下命令行添加到 /etc/dfs/dfstab 文件中。


      share -F nfs -o rw /var/mail
      
  4. 使文件系统可进行挂载。


    # shareall
    
  5. 确保已启动名称服务。

    1. (可选的)如果运行的是 NIS,请使用以下命令。


      # ypwhich
      

      有关更多信息,请参阅 ypwhich(1) 手册页。

    2. (可选的)如果运行的是 NIS+,请使用以下命令。


      # nisls
      

      有关更多信息,请参阅 nisls(1) 手册页。

    3. (可选的)如果运行的是 DNS,请使用以下命令。


      # nslookup hostname
      
      hostname

      使用您的主机名。

      有关更多信息,请参阅 nslookup(1M) 手册页。

    4. (可选的)如果运行的是 LDAP,请使用以下命令。


      # ldaplist
      

      有关更多信息,请参阅 ldaplist(1) 手册页。

  6. 重新启动 sendmail


    # svcadm enable network/smtp:sendmail
    

Procedure如何设置邮件客户机

邮件客户机是一个在邮件服务器上具有邮箱的邮件服务用户。此外,邮件客户机在指向邮箱位置的 /etc/mail/aliases 文件中还具有邮件别名。


注 –

通过邮局协议 (Post Office Protocol, POP) 或 Internet 消息访问协议 (Internet Message Access Protocol, IMAP) 等服务,还可以执行邮件客户机设置任务。但是,提供 POP 或 IMAP 配置指南超出了本文档范围。


  1. 成为邮件客户机系统的超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 停止 sendmail


    # svcadm -t disable network/smtp:sendmail
    
  3. 确保邮件客户机系统上存在 /var/mail 挂载点。

    该挂载点应已在安装过程中创建。您可以使用 ls 来确保此文件系统存在。以下示例显示了在未创建此文件系统时收到的响应。


    # ls -l /var/mail
    
    /var/mail not found
  4. 确保 /var/mail 目录中没有任何文件。

    如果此目录中存在邮件文件,则应移动这些文件,以便在通过服务器挂载 /var/mail 目录时不会覆盖它们。

  5. 通过邮件服务器挂载 /var/mail 目录。

    您可以自动挂载或在引导时挂载该邮件目录。

    1. (可选的)自动挂载 /var/mail

      将如下所示的项添加到 /etc/auto_direct 文件中。


      /var/mail -rw,hard,actimeo=0 server:/var/mail
      server

      使用指定的服务器名。

    2. (可选的)在引导时挂载 /var/mail

      将以下项添加到 /etc/vfstab 文件中。此项允许指定的邮件服务器中的 /var/mail 目录挂载本地 /var/mail 目录。


      server:/var/mail - /var/mail nfs - no rw,hard,actimeo=0

      重新引导系统时,会自动挂载客户机邮箱。如果不重新引导系统,请键入以下命令挂载客户机邮箱。


      # mountall
      

      注意 – 注意 –

      为正常使用邮箱锁定和邮箱访问,必须在从 NFS 服务器挂载邮件时包含 actimeo=0 选项。


  6. 更新 /etc/hosts

    编辑 /etc/hosts 文件,并为邮件服务器添加项。如果使用名称服务,则无需此步骤。


    # cat /etc/hosts
    
    #
    
    # Internet host table
    
    #
    
    ..
    
    IP_address     mailhost  mailhost  mailhost.example.com
    
    IP_address

    使用指定的 IP 地址。

    example.com

    使用指定的域。

    mailhost

    使用指定的邮件主机。

    有关更多信息,请参阅 hosts(4) 手册页。

  7. 将客户机项添加到其中一个别名文件。

    有关管理邮件别名文件的任务列表,请参阅管理邮件别名文件(任务列表)。请注意,首次传送消息时,mail.local 程序会自动在 /var/mail 目录中创建邮箱。因此,无需为邮件客户机创建单独的邮箱。

  8. 重新启动 sendmail


    # svcadm enable network/smtp:sendmail
    

Procedure如何设置邮件主机

邮件主机用于解析电子邮件地址并在域内重新路由邮件。合适的邮件主机候选系统是可为网络提供远程连接或将网络连接到父域的系统。以下过程说明了如何设置邮件主机。

  1. 成为邮件主机系统的超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 停止 sendmail


    # svcadm -t disable network/smtp:sendmail
    
  3. 验证主机名配置。

    运行 check-hostname 脚本,验证 sendmail 是否可以识别此服务器的全限定主机名。


    % /usr/sbin/check-hostname
    
    hostname phoenix OK: fully qualified as phoenix.example.com

    如果此脚本无法成功识别全限定主机名,则需要将该全限定主机名作为主机的第一个别名添加到 /etc/hosts 中。

  4. 更新 /etc/hosts 文件

    选择适合您的步骤。

    1. (可选的)如果使用的是 NIS 或 NIS+,请在要作为新邮件主机的系统上编辑 /etc/hosts

      在 IP 地址和邮件主机系统的系统名之后,添加单词 mailhostmailhost.domain


      IP_address mailhost mailhost mailhost.domain loghost
      IP_address

      使用指定的 IP 地址。

      mailhost

      使用邮件主机系统的系统名。

      domain

      使用扩展的域名。

      现在,系统即被指定为邮件主机。domain 应与以下命令输出中指定为子域名的字符串相同。


      % /usr/lib/sendmail -bt -d0 </dev/null
      
      Version 8.13.1+Sun
      
       Compiled with: LDAPMAP MAP_REGEX LOG MATCHGECOS MIME7TO8 MIME8TO7
      
                      NAMED_BIND NDBM NETINET NETINET6 NETUNIX NEWDB NIS
      
                      NISPLUS QUEUE SCANF SMTP USERDB XDEBUG
      
      
      
      ============ SYSTEM IDENTITY (after readcf) ============
      
            (short domain name) $w = phoenix
      
        (canonical domain name) $j = phoenix.example.com
      
               (subdomain name) $m = example.com
      
                    (node name) $k = phoenix
      
      ========================================================

      有关 hosts 文件应如何检查这些更改,请参见以下示例。


      # cat /etc/hosts
      
      #
      
      # Internet host table
      
      #
      
      172.31.255.255   localhost        
      
      192.168.255.255  phoenix mailhost mailhost.example.com loghost
    2. (可选的)如果未使用 NIS 或 NIS+,请在网络中的所有系统上编辑 /etc/hosts 文件。创建以下项。


      IP_address mailhost mailhost mailhost.domain loghost
  5. 重新启动 sendmail


    # svcadm enable network/smtp:sendmail
    
  6. 测试邮件配置。

    有关说明,请参见如何测试邮件配置


    注 –

    有关邮件主机的详细信息,请参见第 14 章,邮件服务(参考)中的硬件组件


Procedure如何设置邮件网关

邮件网关用于管理与域外部网络之间的通信。发送邮件网关中的邮件程序可以与接收系统中的邮件程序匹配。

适合作为邮件网关的系统是指连接到以太网和电话线的系统,此外,还可以是配置为 Internet 路由器的系统。可以将邮件主机或其他系统配置为邮件网关。您可能会选择为域配置多个邮件网关。如果使用 UNIX 对 UNIX 复制程序 (UNIX-to-UNIX Copy Program, UUCP) 连接,则应将采用 UUCP 连接的系统配置为邮件网关。

  1. 成为邮件网关的超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 停止 sendmail


    # svcadm -t disable network/smtp:sendmail
    
  3. 验证主机名配置。

    运行 check-hostname 脚本,验证 sendmail 是否可以识别此服务器的全限定主机名。


    # /usr/sbin/check-hostname
    
    hostname phoenix OK: fully qualified as phoenix.example.com

    如果此脚本无法成功识别全限定主机名,则需要将该全限定主机名作为主机的第一个别名添加到 /etc/hosts 中。如果需要有关此步骤的帮助,请参阅如何设置邮件主机中的步骤 4

  4. 确保已启动名称服务。

    1. (可选的)如果运行的是 NIS,请使用以下命令。


      # ypwhich
      

      有关更多信息,请参阅 ypwhich(1) 手册页。

    2. (可选的)如果运行的是 NIS+,请使用以下命令。


      # nisls
      

      有关更多信息,请参阅 nisls(1) 手册页。

    3. (可选的)如果运行的是 DNS,请使用以下命令。


      # nslookup hostname
      
      hostname

      使用您的主机名。

      有关更多信息,请参阅 nslookup(1M) 手册页。

    4. (可选的)如果运行的是 LDAP,请使用以下命令。


      # ldaplist
      

      有关更多信息,请参阅 ldaplist(1) 手册页。

  5. 重新启动 sendmail


    # svcadm enable network/smtp:sendmail
    
  6. 测试邮件配置。

    有关说明,请参见如何测试邮件配置


    注 –

    有关邮件网关的更多信息,请参阅第 14 章,邮件服务(参考)中的硬件组件


Procedure如何使用 DNS 和sendmail

DNS 名称服务不支持单个别名。此名称服务支持使用邮件交换器 (Mail Exchanger, MX) 记录和 CNAME 记录的主机或域的别名。您可以在 DNS 数据库中指定主机名、域名或同时指定这两个名称。有关 sendmail 和 DNS 的更多信息,请参见第 14 章,邮件服务(参考) 中的sendmail 与名称服务的交互 或参见《系统管理指南:名称和目录服务(DNS、NIS 和 LDAP)》

  1. 成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 启用 DNS 主机查找(仅限 NIS+)。

    编辑 /etc/nsswitch.conf 文件,并从包含 dns 标志的 hosts 定义中删除 #。如下例所示,主机项必须包含 dns 标志,以便使用 DNS 主机别名。


    # grep hosts /etc/nsswitch.conf
    
    #hosts:     nisplus [NOTFOUND=return] files
    
    hosts:      dns nisplus [NOTFOUND=return] files
  3. 检查 mailhostmailhost.domain 项。

    使用 nslookup 确保 DNS 数据库中存在 mailhostmailhost.domain 项。有关更多信息,请参阅 nslookup(1M) 手册页。

设置虚拟主机

如果需要为主机指定多个 IP 地址,请参见以下 Web 站点:http://www.sendmail.org/virtual-hosting.html。此站点完整介绍了如何使用 sendmail 设置虚拟主机。但是,在“Sendmail 配置”部分中,不会执行步骤 3b,如以下所示。


# cd sendmail-VERSION/cf/cf

# ./Build mailserver.cf

# cp mailserver.cf /etc/mail/sendmail.cf

相反,对于 Solaris 操作系统,会执行以下步骤。


# cd /etc/mail/cf/cf

# /usr/ccs/bin/make mailserver.cf

# cp mailserver.cf /etc/mail/sendmail.cf
mailserver

使用 .cf 文件的名称。

生成 sendmail.cf 配置文件中将这相同的三个步骤作为生成过程的一部分进行了概述。

生成 /etc/mail/sendmail.cf 文件后,可以继续执行以下步骤创建虚拟用户表。