热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

sendmail安装过程记录

sendmail.8.12.10.tar.gzhttp://www.sendmail.org/cyrus-sasl-2.1.18.tar.gzhttp://asg.web.cmu.edu/cyrus/安装步骤1、先安装cyrus-sasl-2.1.18.tar.gz,sendmail安装时要用到sasl(简单认证和安全

  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

  编译完成后就可以进行安装。


推荐阅读
  • Hadoop MapReduce 实战案例:手机流量使用统计分析
    本文通过一个具体的Hadoop MapReduce案例,详细介绍了如何利用MapReduce框架来统计和分析手机用户的流量使用情况,包括上行和下行流量的计算以及总流量的汇总。 ... [详细]
  • 如何高效学习鸿蒙操作系统:开发者指南
    本文探讨了开发者如何更有效地学习鸿蒙操作系统,提供了来自行业专家的建议,包括系统化学习方法、职业规划建议以及具体的开发技巧。 ... [详细]
  • 本文详细探讨了如何根据不同的应用场景选择合适的PHP版本,包括多版本切换技巧、稳定性分析及针对WordPress等特定平台的版本建议。 ... [详细]
  • 汇总了2023年7月7日最新的网络安全新闻和技术更新,包括最新的漏洞披露、工具发布及安全事件。 ... [详细]
  • 本文分享了作者在使用LaTeX过程中的几点心得,涵盖了从文档编辑、代码高亮、图形绘制到3D模型展示等多个方面的内容。适合希望深入了解LaTeX高级功能的用户。 ... [详细]
  • 【MySQL】frm文件解析
    官网说明:http:dev.mysql.comdocinternalsenfrm-file-format.htmlfrm是MySQL表结构定义文件,通常frm文件是不会损坏的,但是如果 ... [详细]
  • Java虚拟机及其发展历程
    Java虚拟机(JVM)是每个Java开发者日常工作中不可或缺的一部分,但其背后的运作机制却往往显得神秘莫测。本文将探讨Java及其虚拟机的发展历程,帮助读者深入了解这一关键技术。 ... [详细]
  • 美团安全响应中心推出全新配送业务测试活动,带来双重福利,邀您共同参与! ... [详细]
  • 一家位于长沙的知名网络安全企业,现面向全国诚聘高级后端开发工程师,特别欢迎具有一线城市经验的技术精英回归故乡,共创辉煌。 ... [详细]
  • 随着Linux操作系统的广泛使用,确保用户账户及系统安全变得尤为重要。用户密码的复杂性直接关系到系统的整体安全性。本文将详细介绍如何在CentOS服务器上自定义密码规则,以增强系统的安全性。 ... [详细]
  • 黑客松获奖名单出炉、NFT艺术周圆满落幕 |Oasis周报 ... [详细]
  • 本文详细介绍了如何在 Ubuntu 14.04 系统上搭建仅使用 CPU 的 Caffe 深度学习框架,包括环境准备、依赖安装及编译过程。 ... [详细]
  • 吴石访谈:腾讯安全科恩实验室如何引领物联网安全研究
    腾讯安全科恩实验室曾两次成功破解特斯拉自动驾驶系统,并远程控制汽车,展示了其在汽车安全领域的强大实力。近日,该实验室负责人吴石接受了InfoQ的专访,详细介绍了团队未来的重点方向——物联网安全。 ... [详细]
  • 题目概述:Sereja 拥有一个由 n 个整数组成的数组 a1, a2, ..., an。他计划执行 m 项操作,这些操作包括更新数组中的特定元素、增加数组中所有元素的值,以及查询数组中的特定元素。 ... [详细]
  • 函子(Functor)是函数式编程中的一个重要概念,它不仅是一个特殊的容器,还提供了一种优雅的方式来处理值和函数。本文将详细介绍函子的基本概念及其在函数式编程中的应用,包括如何通过函子控制副作用、处理异常以及进行异步操作。 ... [详细]
author-avatar
peteryan
自我学习,提升,早日被动大于主动,实现自由
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有