服务器 频道

sendmail安装笔记上篇

  【IT168 服务器学院】安装所需软件
  sendmail.8.12.10.tar.gz   http://www.sendmail.org/
  cyrus-sasl-2.1.18.tar.gz  http://asg.web.cmu.edu/cyrus/

  安装步骤
  1、 先安装cyrus-sasl-2.1.18.tar.gz,sendmail安装时要用到sasl(简单认证和安全层协议)的
  2、 库文件的头文件。
   
  解压缩:
  # tar -zxvf cyrus-sasl-2.1.18.tar.gz

  编译:
  进入刚解压的源码目录,运行以下命令完成安装。
  #./configure --prefix=/usr/local/sasl2 --enable-login
  一定要加--enable-login,因为SASL2默认不支持login这种验证方式,而OUTLOOK是通过login来进行SMTP验证的。
  #make           # 编译
  #make install # 安装
  完成以上linux程序安装三步曲之后,就可以开始配置和测试了。

  2、配置SASL
  为了把SASL应用于sendmail认证,还需进行一些配置工作。sendmail会到/usr/lib目录下去找SASL2库,而我们是把程序安装在/usr/local/sasl2中,为什么不把软件安装在/usr/lib目录呢?这主要是为了好管理自已安装的软件啦。所以我们要在/usr/lib目录下做一个链接:
  # cd /usr/lib
  # ln -s /usr/local/sasl2/lib/* .
  ok,接着要在/var/目录下建一个目录给saslauthd进程存在临时数据。
  # cd /var
  # mkdir state
  # cd state
  # mkdir saslauthd
  注:如果没有这些目录,运行saslauthd时,会提示出错。
  ok,接着为确保CYRUS-SASL2函数库知道怎样验证所收来的SASL认证请求,必须创建一个SASL的配置文件来把MTA程序定义成一个SASL应用。配置文件名为Sendmail.conf(注意是大写的S),位于/usr/lib/sasl2目录中,也就是/usr/local/sasl2/lib/sasl2这个目录,记得上面新建的链接了吗?在该文件中你定义你希望使用的认证数据库方法,以下这个例子使用saslauthd来验证认证请求。
  # cd /usr/lib/sasl2
  # echo ''pwcheck_method: saslauthd'' > Sendmail.conf

  3、测试
  ok,现在可以运行saslauthd了,并进行测试。
  # cd /usr/local/sasl2/sbin
  # ./saslauthd -a shadow
  用shadow的用户和密码进行验证
  # ./testsaslauthd -u userid -p password
  0: OK "Success."
  如果出现以上信息,就说明saslauthd正常运行了。testsaslauthd程序默认是没有编译的,你需要在源码目录树的saslauthd子目录中运行     # make testsaslauthd命令生成。

  4、sasl2安装完成后,就要开始安装sendmail了。
  先解压sendmail源码。
  # tar -zxvf sendmail.8.12.10.tar.gz
  如果要sendmail支持SASL,需要修改源码的位置配置文件site.config.m4。site.config.m4位于源码目录树的devtools/Site。文件中应包含以下行:
  PREPENDDEF(`confMAPDEF'', `-DMAP_REGEX'')
  APPENDDEF(`confENVDEF'', `-DTCPWRAPPERS -DSASL=2'')
  APPENDDEF(`conf_sendmail_LIBS'', `-lwrap -lsasl2'')
  APPENDDEF(`confLIBDIRS'', `-L/usr/local/sasl2/lib'')
  APPENDDEF(`confINCDIRS'', `-I/usr/local/sasl2/include'')
  第一行配置正则表达式相关内容
  第二、三行配置表示在sendmail程序中支持sasl2和tcp_wrapper(可通过hosts.allow和hosts.deny控制访问)
  第四、五行配置指出sasl2的库文件和头文件的位置。

  ok,接着在编译前要建立一些用户和目录,并确保有正确的权限。
  sendmail必须有一个set-group-id(默认是smmsp组)的程序来在一个组可写的目录中查询排队邮件。所以我们要建立一个smmsp用户和组。并建立如下目录并设置相应的权限,具体设置要求可查询源码目录树下sendmail/SECURITY文档。
  # groupadd smmsp 
  # useradd smmsp -d /var/spool/clientmqueue -s /dev/null
  # mkdir /var/spool/clientmqueue
  # chown -R smmsp:smmsp /var/spool/clientmqueue  
  # chmod -R 770 /var/spool/clientmqueue  
  # mkdir /etc/mail
  # mkdir /var/spool/mqueue
  # chmod go-w / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue
  # chown root / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue

  ok,接下来就可以进入源码目录树开始编译了。
  # ./Build -c
  -c选项能删除上次编译产生的文件。
  # ./Build install
  编译完成后就可以进行安装。

0
相关文章