设为首页收藏本站
开启辅助访问

创星网络[分享知识 传递快乐]

 找回密码
 立即注册

QQ登录

只需一步,快速开始

用新浪微博登录

只需一步,快速搞定

搜索

sendmail邮件服务器搭载smtp和pop3认证的配置方法 && SMTP测试方法 ... ...

2012-8-7 21:59| 发布者: cryinglily| 查看: 313| 评论: 0|原作者: luinstein

摘要: 折腾了好多天sendmail、smtp,终于发现了这片好文章,对应我的sendmail8.13版本,操作系统Redflag 2.6.18 。虽然找不到原版在哪里,还是十分感谢这片文章的作者!! ====================================分割线==== ...
折腾了好多天sendmail、smtp,终于发现了这片好文章,对应我的sendmail8.13版本,操作系统Redflag 2.6.18 。虽然找不到原版在哪里,还是十分感谢这片文章的作者!!
  ====================================分割线======================================
            sendmail邮件服务器搭载smtp和pop3认证的配置方法
    网上介绍sendmail的文章千百种,很少有跟着做下来一次成功的。多少都有些说的不准确的地方。我给大家共享一下我经过实验环境测试,完全可行的方法。
  1.软件准备
  操作系统:centos5.0
  我选择centos5,最新的操作系统,不要再用redhat9了,很久没有更新了,企业里用有风险的。更新换代吧。
  以下软件,centos5全部自带,无需另外下载。
  邮件系统:
               sendmail8.13
               sendmail-cf-8.13
               m4-1.4
  pop3认证:dovecot-1.0
  smtp认证:
          cyrus-sasl-2.1
          cyrus-sasl-md5-2.1
          cyrus-sasl-plain-2.1
           cyrus-sasl-lib-2.1
  sasl这里,我要说一句,网上有人说“sendmail-8.13已经包含cyrus-sasl的功能,所没必要再安装cyrus-sasl”
大哥大姐们,没有cyrus-sasl用什么做认证.....sendmail官方只是说,sendmail的rpm包默认已经支持了cyrus-sasl 认证方式,也就是说,sendmail会在cyrus-sasl的工作目录下自动创建相关认证配置文件,并监听25号端口,就不用你去手动自己建立配置文件和监听端口了。当有请求进入25号端口的时候,sendmail会自动找到/usr/lib/sasl2/Sendmail.conf读取认证方法。下面我会详细解释。
  2.安装软件
  rpm -ivh把上面软件全装上,都在光盘里呢,好装。
  3.认证配置
  pop3:
  网上说修改/etc/dovecot.conf文件,将第17行的:#protocols = imap imaps pop3 pop3s的#去掉。其实不用,它默认已经启用了这些服务,除非你只想用dovecot-auth的认证,你可以改成protocols = none,否则不用改。
  smtp:
注意,smtp稍微麻烦一下。
  我讲下原理:
  当用户请求进入 25号端口后,sendmail调用cyrus-sasl的saslauthd进程,saslauthd要求对方输入本地系统用户的用户名和密码,当用户输入好后,saslauthd会去查找系统的/etc/shadow文件,密码确认无误,放行,告诉sendmail,这个用户合法,可以使用邮件服务来发邮件。
  这时候你去/usr/lib/sasl2/下看看,sendmail已经做好了一个sendmail.conf文件,里面指明了:pwcheck_method=saslauthd,说明sendmail认证时就要调用saslauthd
所以要实现上述功能,就要设置cyrus-sasl的saslauthd,给它指定认证方式。
首先,进入/etc/sysconfig/,打开saslauthd的脚本,找到第7行的:
  MECH=
  等号后面不管写什么,我们都要改成:
  MECH=shadow
  保存
  这样saslauthd才会去找shadow文件给用户做认证。
  
其实saslauthd还可以用自己的用户名和密码数据库做验证,但这样不方便,还要另外创建用户,不如直接用系统自身存在的用户名和密码。
   
  
4.Sendmail配置.
  配置邮件服务器名称:
  打开/etc/mail/local-host-names
加入你 @后面的邮箱地址。比如我这里是otto@linuxedentest.com
那么,你要在local-host-names文件里的第二行添加:
linuxedentest.com
保存
  当然
local-host-names还可以设置邮箱别名,这个不多说,大家查文档看看。
  改好后还要去你的dns服务器上,打上mx标志,添加A标记,用来解析dns名和地址。具体方法就要查查bind的设置方法了,或者win2003的dns设置方法。
  
配置sendmail.mc:
  打开/etc/mail/sendmail.mc文件,
  找到:
  dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN\')dnl
dnl define(`confAUTH_MECHANISMS\', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN\')dnl
  把前面的dnl注释去掉,变成:
  TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN\')dnl
define(`confAUTH_MECHANISMS\', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN\')dnl
  上面两句的意思是:
  放行那些通过EXTERNAL, LOGIN, PLAIN, CRAM-MD5或DIGEST-MD5等方式验证的邮件用户,无视access文件中的设置。
  confAUTH_MECHANISMS,确定系统支持的认证方式。LOGIN PLAIN 方式下,outlook用的多。
  
还不算完,找到:
  dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, )dnl
  改成:
  DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, )dnl
  这样所有ip地址都可以通过smtp端口使用我们的邮件服务器了。
  
-----------------------------------------------------------
这里要说一句,不要改
  dnl DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea\')dnl
  这句话!保持注释状态。
  上面那句话,网上好多文章都说把Port=submission,改成Port=25,说是强制所有用户在25端口上做认证。
  我不知道sendmail以前的版本是怎么样设置smtp认证的。sendmail8.13不用这么设置,这句话人家sendmail的意思是:取消注释后,一旦当25号端口被重定向或者被屏蔽,或者在25号端口打不开的情况下,马上使用587备用端口给用户做认证。
  本来人家sendmail就已经打开了25端口(Port=smtp了已经),你却在这里还Port=25,把备用端口也改成25,这不是让sendmail的sm-client认
  证进程和sendmail的主进程抢端口么....
  -----------------------------------------------------------
  
到此为止,保存sendmail.mc
    
用m4重新生成sendmail.cf文件
  
# m4 /etc/mail/sendmail.mc > /etc/sendmail.cf
  
启动dovecot进程:
/etc/init.d/dovecot start
   
  启动saslauthd进程:
/etc/init.d/saslauthd start
   
  启动sendmail进程:
/etc/init.d/sendmail start
  
把这些进程加入到启动脚本中去:
chkconfig dovecot on
chkconfig saslauthd on
chkconfig sendmail on
  
ok,所有设置全部完成,可以正常认证和收发邮件了。
  本文如有不准确的地方,请各位海批~~~
  
=============================分割线==============================================
  
                            smtp测试方法:
  以下sh#表示在shell上输入;C 为客户端输入, S为服务器端返回信息 。
  
sh# telnet   
  S : 220 localhost.localdomain ESMTP Sendmail 8.13.8/8.13.8; Sun, 18 May 2008 01:55:03 +0800
  C : ehlo  (不带认证功能的是helo +名字)
  S : 250-localhost.localdomain Hello zhangzb.nec-as.nec.com.cn [172.28.90.9], pleased to meet you
S : 250-ENHANCEDSTATUSCODES
S : 250-PIPELINING
S : 250-8BITMIME
S : 250-SIZE
S : 250-DSN
S : 250-ETRN
S : 250-AUTH GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN
S : 250-DELIVERBY
S : 250 HELP
  C : auth login
  S : 334 VXNlcm5hbWU6
  注:{  下面先输入username后passwd,两者需要输入encode base64码,转换方法:
sh# perl -MMIME::Base64 -e \'print encode_base64(\"username\")\'
(注意print前后 是单引号,username 处替换成你需要的单词)
}
  C : MQ==  (这是我的用户名:1)
  S : 334 UGFzc3dvcmQ6
  C : MQ==   (密码,也是1)
  S : 235 2.0.0 OK Authenticated
  C : MAIL FROM:<a href=\"mailto:XXXX@XXXX\"XXXX@XXXX/a> (部分服务器设置后,需要真实的邮箱后缀名,具体方法不详)
   
S : 250 2.1.0 <a href=\"mailto:XXXX@XXXX\"XXXX@XXXX/a>... Sender ok
   
C : RCPT TO:<a href=\"mailto:XXXX@XXXX\"XXXX@XXXX/a>   (目标邮箱)
   
S : 250 2.1.5 <a href=\"mailto:XXXX@XXXX\"XXXX@XXXX/a>... Recipient ok
   
C : DATA
   
S : 354 Enter mail, end with \".\" on a line by itself
  C : 〈这里添邮件内容〉
C :.  (点)
  S : 250 2.0.0 m4HHt3Sj005640 Message accepted for delivery

C: quit  
〈mail send successful〉
  
  
文章出处:http://www.diybl.com/course/6_system/linux/Linuxjs/2008618/126266.html

鲜花

握手

雷人

路过

鸡蛋

相关分类

QQ|Archiver|手机版|小黑屋|创星网络 ( 苏ICP备11027519号|网站地图  

GMT+8, 2025-2-23 00:37 , Processed in 0.055658 second(s), 16 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

返回顶部