频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

Solaris2.6上安装配置Sendmail V8

来源: 作者: 出处:巧巧读书 2007-10-09 进入讨论组

我们下面的操作是在Solaris2.6上, 用的编译器是GCC2.8.1。

一、获取Sendmail

最新的Sendmail V8 可以从 Sendmail Consortium 主页获取。北京大学匿名FTP上也有。目前最新版本是Sendmail8.9.3

二、解开Sendmail

安装Sendmail必须有超级用户(root)权限。取来的Sendmail通常是 .tar.gz 格式的包,你需用下面命令进行解包:

# gzip -cd sendmail.8.9.3.tar.gz | tar xvf -

解开的包放在sendmail-8.9.3下。

三、 编译并生成sendmail

你的系统上必须有C编译器或GNU的gcc编译器。你可以从北大FTP上获取Solaris2.5/2.6上的编译好的GCC包

在编译Sendmail之前, 我们还需要新的Berkeley DB包, Sendmail通过利用该数据库的功能, 才能有效的抵挡邮件攻击。最新的Berkeley DB可从http://www.sleepycat.com/获取。在北大FTP上你可获得目前最新的2.7.3版本。安装Berkeley DB的步骤如下:

a.解包:

# gzip -cd db.2.7.3.tar.gz| tar xvf -

# cd db-2.7.3

b.编译并安装

# cd dist

如果你是用gcc, 做下一步:

# vi configure

在 configure中加入一行:

CC=gcc

# ./configure

# make

# make install (需要超级用户权限)

缺省情况下, Berkeley DB被安装在 /usr/local/BerkeleyDB/ 目录下,你可以通过修改Makefile中的prefix参数来重新定义这个目录。该目录要记住, 下面编译Sendmail时要用到。现在我们回到Sendmail所在的目录:

# cd sendmail-8.9.3

再进到BuildTools/Site目录下,创建 site.config.m4

# cd BuildTools/Site

# vi site.config.m4

在site.config.m4 输入下面两行:

define(`confINCDIRS',`-I/usr/local/BerkeleyDB/include')

define(`confLIBDIRS',`-L/usr/local/BerkeleyDB/lib')

这是为了告诉Build到哪去找DB的头文件和库。再回到sendmail-8.9.3目录下,执行下面命令:

#cd ../../sendmail-8.9.3

#make

编译完后,你需要创建 /usr/share/man/cat1,cat5,cat8三个目录,再执行安装程序;否则会出错退出。

#make install (需要超级用户权限)

当你执行完以上命令后,系统将sendmail,mailq安装在目录/usr/lib/下, makemap 安装在 /usr/sbin/ 下,这是生成数据库映像的工具;smrsh安装在 /usr/lib下,这是sendmail专用的Shell。

下面我们要来生成Sendmail的配置文件 sendmail.cf。

四、生成sendmail.cf

Sendmail的配置文件是通过m4命令生成的。首先进入~/sendmail-8.9.3/cf/目录:

1.#cd ~/sendmail-8.9.3/cf

2.#cd cf

3.#cp generic-solaris2.mc sendmail.mc

4.编辑 sendmail.mc 如下:

diver(0)dnl

VERSIONID(`@(#)sendmail.mc 8.30')

OSTYPE(solaris2)dnl

DOMAIN(generic)dnl

define(`confCOPY_ERRORS_TO',`Postmaster’)dnl

define(`confPRIVACY_FLAGS’,``authwarnings,noexpn,novrfy'')dnl

FEATURE(relay_entire_domain)

FEATURE(virtusertable)dnl

FEATURE(access_db)dnl

FEATURE(blacklist_recipients)

FEATURE(rbl)

FEATURE(smrsh)

MAILER(local)dnl

MAILER(smtp)dnl

5. 生成 sendmail.cf:

# m4 ../m4/cf.m4 sendmail.mc > sendmail.cf

 

将 sendmail.cf拷贝到 /etc目录下。

Sendmail的配置文件就生成好了。

六、生成其他相关文件

在 /etc/mail下主要生成下面几个文件:sendmail.cw,aliases, access, relay-domains, 和 /etc/virtusertable(你可通过改sendmail.cf文件将virtusertalbe放到/etc/mail下。

1. Sendmail.cw中放置所有你希望该服务器接收的主机名。如果你希望域名做主机名,也可加入其中。比如,你在该文件中放 pku.edu.cn, 那么,该服务器接收地址为 user@pku.edu.cn邮件。

  1. Aliases 别名文件是系统安装sendmail时生成的。第一次运行sendmail之前,必须先运行 /usr/lib/newaliases 命令来生成 aliases数据库文件。以后每次修改aliases文件后,都要运行该命令修改才有效。
  2. Relay-domains中放置允许邮件中继的域名,如 pku.edu.cn。
  3. Access文件是用来控制邮件中继和邮件轰炸(Spamming)的。具体如何设置,参看文章《如何防止邮件攻击》。
  4. Virtusertable 是用来支持所谓的虚拟用户别名的。它和aliases文件主要不同是:aliases中别名指向的用户必须是本地用户,virtusertable中的别名指向的用户可以是其他服务器上的用户或别名,这样大大增加了别名设置的灵活性,特别是你希望这台SMTP服务器做mail hub 或 smart host,专们处理非本地的邮件中转时。

/etc/mail/virtusertable 文件的内容格式和/etc/mail/aliases基本一样,举例如下:

Kai.Wang@pku.edu.cn kaiw@mailserver

Jianw@pku.edu.cn jianw@csmailsvr

……

Virtusertable 也需要用makemap来生成它的数据库文件。命令如下:

# makemap hash virtusertable.db < virtusertable

八、测试sendmail

首先,启动sendmail后台进程

# /usr/lib/sendmail -bd -q1h

# ps -ef|grep sendmail /* 查看进程是否运行。

然后,分别从本地和远地给服务器上的某一用户发邮件,看是否能收到。在 /var/log/syslog 文件中你可以看到Sendmail的日志信息。 你也可以通过下面命令对sendmail发送邮件进行跟踪:

#/usr/lib/sendmail -d -v user@host.domain

总之, Sendmail是一个较复杂的软件,这篇文章只是一些最基本的介绍。你可以从sendmail正式站点找到更多的信息。另外,我们将上面编译好的sendmail和相应的配置文件放在北大FTP上,需要的话可从这里下载。

Web: http://www.qqread.com/solaris/f347032.html 更多文章 更多内容请看Windows操作系统安装电脑配置手册服务器配置专栏专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章