<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://jackxiang.com/post//</link>
<title><![CDATA[[安装笔记]sendmail + sasl2安装笔记]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Thu, 23 Aug 2007 09:22:19 +0000</pubDate> 
<guid>http://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	安装所需软件<br/>sendmail.8.12.10.tar.gz http://www.sendmail.org/<br/>cyrus-sasl-2.1.18.tar.gz http://asg.web.cmu.edu/cyrus/<br/><br/>安装步骤<br/>1、先安装cyrus-sasl-2.1.18.tar.gz，sendmail安装时要用到sasl（简单认证和安全层协议）的库文件的头文件。<br/>解压缩：<br/># tar -zxvf cyrus-sasl-2.1.18.tar.gz<br/>编译:<br/>进入刚解压的源码目录，运行以下命令完成安装。<br/>#./configure --prefix=/usr/local/sasl2 --enable-login<br/>一定要加--enable-login，因为SASL2默认不支持login这种验证方式，而OUTLOOK是通过login来进行SMTP验证的。<br/>#make # 编译<br/>#make install # 安装<br/>完成以上linux程序安装三步曲之后，就可以开始配置和测试了。<br/><br/>2、配置SASL<br/>为了把SASL应用于sendmail认证，还需进行一些配置工作。sendmail会到/usr/lib目录下去找SASL2库，而我们是把程序安装在 /usr/local/sasl2中，为什么不把软件安装在/usr/lib目录呢？这主要是为了好管理自已安装的软件啦。所以我们要在/usr/lib 目录下做一个链接:<br/># cd /usr/lib<br/># ln -s /usr/local/sasl2/lib/* .<br/>ok，接着要在/var/目录下建一个目录给saslauthd进程存在临时数据。<br/># cd /var<br/># mkdir state<br/># cd state<br/># mkdir saslauthd<br/>注：如果没有这些目录，运行saslauthd时，会提示出错。<br/>ok, 接着为确保CYRUS-SASL2函数库知道怎样验证所收来的SASL认证请求，必须创建一个SASL的配置文件来把MTA程序定义成一个SASL 应用。配置文件名为Sendmail.conf（注意是大写的S）,位于/usr/lib/sasl2目录中，也就是 /usr/local/sasl2/lib/sasl2这个目录，记得上面新建的链接了吗？在该文件中你定义你希望使用的认证数据库方法，以下这个例子使用saslauthd来验证认证请求。<br/># cd /usr/lib/sasl2<br/># echo 'pwcheck_method: saslauthd' > Sendmail.conf<br/><br/>3、测试<br/>ok,现在可以运行saslauthd了，并进行测试。<br/># cd /usr/local/sasl2/sbin<br/># ./saslauthd -a shadow<br/>用shadow的用户和密码进行验证<br/># ./testsaslauthd -u userid -p password<br/>0: OK "Success."<br/>如果出现以上信息，就说明saslauthd正常运行了。testsaslauthd程序默认是没有编译的，你需要在源码目录树的saslauthd子目录中运行 # make testsaslauthd命令生成。<br/><br/>4、sasl2安装完成后，就要开始安装sendmail了。<br/>先解压sendmail源码。<br/># tar -zxvf sendmail.8.12.10.tar.gz<br/>如果要sendmail支持SASL，需要修改源码的位置配置文件site.config.m4。site.config.m4位于源码目录树的devtools/Site。文件中应包含以下行：<br/>PREPENDDEF(`confMAPDEF', `-DMAP_REGEX')<br/>APPENDDEF(`confENVDEF', `-DTCPWRAPPERS -DSASL=2')<br/>APPENDDEF(`conf_sendmail_LIBS', `-lwrap -lsasl2')<br/>APPENDDEF(`confLIBDIRS', `-L/usr/local/sasl2/lib')<br/>APPENDDEF(`confINCDIRS', `-I/usr/local/sasl2/include')<br/>第一行配置正则表达式相关内容<br/>第二、三行配置表示在sendmail程序中支持sasl2和tcp_wrapper（可通过hosts.allow和hosts.deny控制访问）<br/>第四、五行配置指出sasl2的库文件和头文件的位置。<br/><br/>ok,接着在编译前要建立一些用户和目录，并确保有正确的权限。<br/>sendmail必须有一个set-group-id（默认是smmsp组）的程序来在一个组可写的目录中查询排队邮件。所以我们要建立一个smmsp用户和组。并建立如下目录并设置相应的权限，具体设置要求可查询源码目录树下sendmail/SECURITY文档。<br/># groupadd smmsp<br/># useradd smmsp -d /var/spool/clientmqueue -s /dev/null<br/># mkdir /var/spool/clientmqueue<br/># chown -R smmsp:smmsp /var/spool/clientmqueue<br/># chmod -R 770 /var/spool/clientmqueue<br/># mkdir /etc/mail<br/># mkdir /var/spool/mqueue<br/># chmod go-w / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue<br/># chown root / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue<br/><br/>ok,接下来就可以进入源码目录树开始编译了。<br/># ./Build -c<br/>-c选项能删除上次编译产生的文件。<br/># ./Build install<br/>编译完成后就可以进行安装。<br/><br/>5、sendmail配置<br/>要sendmail 正常运行，还需配置几个文件，首先最重要的就是sendmail.cf 文件了。它在源码目录树下的cf/cf目录下有很多例子可参考。你可以拷贝使用。由于sendmail.cf中的语法很复杂，所以不建议手工修改。我们可以以sendmail.mc文档配合sendmail-cf目录下的宏通过m4预处理器自动生成。m4预处理器用来从一组宏文件中创建sendmail配置文件。宏文件作为输入被读进来。宏被展开，然后写到一个输出文件。sendmail-cf目录一般放在/usr/share目录下。其实 sendmail-cf目录的内容和源码目录树下的cf目录的内容是一样的，所以，为了保证sendmail-cf目录的内容与安装版本同步，要把源码目录树下的cf目录的内容拷贝到/usr/share/sendmail-cf目录。<br/><br/>sendmail.mc配置文档内容如下：<br/>divert(-1)<br/>include(`/usr/share/sendmail-cf/m4/cf.m4')<br/>VERSIONID(`linux setup for Red Hat Linux')dnl<br/>OSTYPE(`linux')<br/>dnl Uncomment and edit the following line if your mail needs to be sent out<br/>dnl through an external mail server:<br/>dnl define(`SMART_HOST',`smtp.your.provider')<br/>define(`confDEF_USER_ID',``8:12'')dnl<br/>undefine(`UUCP_RELAY')dnl<br/>undefine(`BITNET_RELAY')dnl<br/>dnl define(`confAUTO_REBUILD')dnl<br/>define(`confTO_CONNECT', `1m')dnl<br/>define(`confTRY_NULL_MX_LIST',true)dnl<br/>define(`confDONT_PROBE_INTERFACES',true)dnl<br/>define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')dnl<br/>define(`ALIAS_FILE', `/etc/mail/aliases')dnl<br/>define(`STATUS_FILE', `/etc/mail/statistics')dnl<br/>define(`UUCP_MAILER_MAX', `2000000')dnl<br/>define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl<br/>define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl<br/>define(`confAUTH_OPTIONS', `A')dnl<br/>TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl<br/>define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl<br/>dnl define(`confCACERT_PATH',`/usr/share/ssl/certs')<br/>dnl define(`confCACERT',`/usr/share/ssl/certs/ca-bundle.crt')<br/>dnl define(`confSERVER_CERT',`/usr/share/ssl/certs/sendmail.pem')<br/>dnl define(`confSERVER_KEY',`/usr/share/ssl/certs/sendmail.pem')<br/>dnl define(`confTO_QUEUEWARN', `4h')dnl<br/>dnl define(`confTO_QUEUERETURN', `5d')dnl<br/>dnl define(`confQUEUE_LA', `12')dnl<br/>dnl define(`confREFUSE_LA', `18')dnl<br/>define(`confTO_IDENT', `0')dnl<br/>dnl FEATURE(delay_checks)dnl<br/>FEATURE(`no_default_msa',`dnl')dnl<br/>FEATURE(`smrsh',`/usr/sbin/smrsh')dnl<br/>FEATURE(`mailertable',`hash -o /etc/mail/mailertable.db')dnl<br/>FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl<br/>FEATURE(redirect)dnl<br/>FEATURE(always_add_domain)dnl<br/>FEATURE(use_cw_file)dnl<br/>FEATURE(use_ct_file)dnl<br/>dnl The '-t' option will retry delivery if e.g. the user runs over his quota. 
]]>
</description>
</item><item>
<link>http://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] [安装笔记]sendmail + sasl2安装笔记]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>