让Redhat 7.1支持加密发信

Author: 李红 Date: 2001年 36期

?牐犕渌鸏inux系统一样,Redhat 7.1下的sendmail是其邮件服务,能为用户提供完整的TCP/IP下的邮件支持。与其他网络服务器系统只安装SMTP服务器软件相比,Linux已经配置好了sendmail的大多数设置,通常情况下缺省配置就能良好运行,但不支持加密发信,如果你要想让sendmail支持starttls并使用ssl加密发邮件,可以使用下面的方法。
  ?牐牎?/etc/sendmail.cf文件说明▲
  ?牐?/etc/sendmail.cf是sendmail的主配置文件,其作用是控制sendmail运行时的配置,完整的sendmail配置应该包括下面7个部分:
  ?牐燣ocal Info(本地信息):这部分定义了本地主机的信息。
  ?牐燨ptions(选项):用来设置定义sendmail环境的选项。
  ?牐燤essage Precedence(消息的优先级):sendmail消息的优先级。
  ?牐燭rusted Users(信任用户):定义发送邮件时允许改变发送地址的用户。
  ?牐燜ormat of Headers(头格式):定义在sendmail中插入的邮件头信息。
  ?牐燫ewriting Rules(改写规则):这部分保存着改写邮件地址命令,使用该命令可以将邮件地址从用户邮件程序的地址形式改写为邮件发送程序所需要的地址形式。
  ?牐燤ailer Definition(邮寄者说明):定义发送邮件的程序,改写规则是邮件者使用的规则,在本部分定义。
  ?牐犚话憷唇才渲胹endmai时,要制作db库、设置邮件服务器名称、规定最小空闲块、指定用户一次最大发送的邮件大小、记录到日志文件的事件等级,最后需要执行touch  /etc/mail/aliases和touch  /etc/mail/majordomo来创建两个文件,然后重新启动sendmail,利用sendmail.cf里生成db库的配置来生成两个库文件aliases.db和majordomo.db,下面我们以rh7.1为例,介绍让sendmail支持ssl加密发邮件的方法。
  ?牐牎∠略夭?安装sfio ▲
  ?牐犑紫却油舷略豷fio(下载网址 http://www.research.att.com/sw/tools/sfio/),然后进行安装:
  ?牐爉kdir -p /usr/local/src/sfiomv sfio_1999.src.unix.cpio /usr/local/src/sfio
  ?牐燾d /usr/local/src/sfio
  ?牐燾pio -idv -F sfio_1999.src.unix.cpio
  ?牐燾d sfio/src/lib/sfio
  ?牐爒i sfputr.c
  ?牐犜谄渲性黾右恍谐绦颍础癷f(p == -1) return -1;”这一句:
  ?牐爁or(w = 0;*s || rc >= 0);) ??
  ?牐爗SFWPEEK(f,ps,p)??
  ?牐爄f(p == -1)return -1??
  ?牐爄f(p == 0 ||(f->flags&SF_WHOLE))
  ?牐牓? {n = strlen(s)
  ?牐爄f(p >= (n +(rc < 0 ﹖ 0 :1=)))
  ?牐犘薷耐瓿珊蟊4妫缓笾葱衜ake命令。
  ?牐牎“沧吧柚胹endmail ▲
  ?牐犗略豷endmail-8.11.3.tar.gz并把它安装到/usr/local/src
  ?牐爐ar zxvf sendmail-8.11.3.tar.gz
  ?牐燾d sendmail-8.11.3/devtools/OS
  ?牐爒i Linux
  ?牐犜谄渲性黾酉旅婕感校?
  ?牐燿efine(`confSTDIO_TYPE',`portable')
  ?牐燗PPENDDEF(`confENVDEF', `-DSFIO')
  ?牐燗PPENDDEF(`confLIBS',`-lsfio')
  ?牐燗PPENDDEF(`conf_sendmail_ENVDEF',`-DSTARTTLS')
  ?牐燗PPENDDEF(`conf_sendmail_LIBS', `-lssl -lcrypto')
  ?牐犕瓿尚薷暮蟊4妫?
  ?牐爉kdir -p /usr/local/src/sendmail-8.11.3/include/sfio
  ?牐爉kdir -p /usr/lib/sfio
  ?牐燾p /usr/local/src/sfio/include/*/usr/local/src/sendmail-8.11.3/include/sfio
  ?牐燾p /usr/local/src/sfio/lib/*/usr/lib/sfio
  ?牐牭秸飧龅胤剑柚霉ぷ髟菔苯崾詈蠼斜嘁氚沧啊?
  ?牐爏h Build
  ?牐犜谠诵衧endmail以前,需要先产生相关的sendmail.mc:
  ?牐燾d /usr/local/src/sendmail-8.11.3/cf/cf
  ?牐燾p /etc/mail/sendmail.mc sendmail.mc
  ?牐爒i sendmail.cf
  ?牐犜谄渲性黾右韵录感校?
  ?牐燿efine(`CERT_DIR', /usr/share/ssl/certs)dnl
  ?牐燿efine(`confCACERT_PATH',`CERT_DIR')dnl
  ?牐燿efine(`confCACERT',`CERT_DIR/stunnel.pem')dnl
  ?牐燿efine(`confSERVER_CERT',`CERT_DIR/stunnel.pem')dnl
  ?牐燿efine(`confSERVER_KEY',`CERT_DIR/stunnel.pem')dnl
  ?牐燿efine(`confCLIENT_CERT',`CERT_DIR/stunnel.pem')dnl
  ?牐燿efine(`confCLIENT_KEY',`CERT_DIR/stunnel.pem')dnl
  ?牐犕瓿尚薷囊院蟊4妫?
  ?牐爏h Build sendmail.cf
  ?牐爉v sendmail.cf /etc/mail
  ?牐牐煱凑漳愕南低吃ど韫娑ǖ膕endmail.cf目录修改??
  ?牐牪璧膕tunnel.pem文件??
  ?牐燾d /usr/share/ssl/certs
  ?牐爉ake stunnel.pem
  ?牐犑淙肽阕约夯鞯淖柿希突岵鷖tunnel.pem文件了。确定一切无误后,必须先备份原来sendmail程序及设置,然后再做以下的操作:
  ?牐爏h install
  ?牐牐ㄈ绻挥猩境傻膕endmail rpm文件,则会覆盖掉原来的sendmail程序及设置)
  ?牐犞匦略诵衧endmail (sendmail -bd -q30m)
  ?牐牎〔馐苑椒ā ?
  ?牐爐elnet localhost 25
  ?牐牸耄篹hlo localhost,如果看到有一行250-STARTTLS,就表示你已经设置成功了。
  ?牐牎】突Ф松柚谩 ?
  ?牐犠詈笤诳突Ф薕utlook 2000中,打开“工具/账号”,在Internet账号属性中,选择“邮件”选项卡,选择一个账号,打开“属性/高级”,在发送邮件部分有一个选项“此服务器需要安全连接(SSL)” 将它打钩选上,这样你就可以在Outlook 2000中,使用ssl加密发送邮件了。