Linux下sendmail的配置详解3之带认证配置篇
时间:2007-01-31 来源:wanghui912
(三)配置带认证的sendmail邮件服务器
在网上看了许多的文章,还是觉得说的的不清楚,可以说也走了一些弯路.最后还是搞定了.
首先我们先要了解一下sendmail的工作原理:(建议先看一下)
sendmail的工作方法是根据用户的电子邮件的地址,为用户的邮件选择一条到达适当的目的传输程序的路由.它接受来自一个MUA的的邮件,解释其邮件地址,将该地址重新改写成合适下一个传输程序的格式,然后引导邮件到达正确的传输程序.sendmail将最终用户与这些细节隔离.如果邮件地址正确,sendmail就认为其可以正确的发送并进行传输.同样对于一个进入的邮件,sendmai将先解释其地址,然后将邮件传送到用户的邮件程序或发送到另一个系统.
我们为什么要配置带认证的sendmail.道理很简单:
为了让合法或允许的用户采用通过我们配置的sendmail邮件服务器进行接发邮件.
而其他一些非法,匿名,或无正确密码的用户不能通过它来接发邮件.
我们首先来看一下我们在没有配置带认证的sendmail 是什么情况,我们在配置outlook的时候,不勾选"我的服务器需要身份验证",我们发现:一个非法用户,没有输入密码的情况下,依然可以正常收发邮件.这些我都做过了测试.这是我们不愿看到的.
可以说现在我的目的已经很明确了.
好,现在开始吧
在配置前,你要确定一下你的sasl(SASL的英文全称是Simple Authentication and Security Layer,简单验证和安全层。SMTP协议并没有提供用户验证功能,很容易匿名中转邮件。即使限制了可以转发的网段,也不安全。他的定义是: a method for adding authentication support to connection-based protocols,为基于连接的协议提供认证功能。)是否安装.
[root@tpwb mail]# rpm -qa | grep sasl
cyrus-sasl-ntlm-2.1.19-5.EL4
cyrus-sasl-2.1.19-5.EL4
cyrus-sasl-gssapi-2.1.19-5.EL4
cyrus-sasl-plain-2.1.19-5.EL4
cyrus-sasl-md5-2.1.19-5.EL4
cyrus-sasl-devel-2.1.19-5.EL4
cyrus-sasl-sql-2.1.19-5.EL4
我的是默认安装的,版本可能不一样.在这里我不讲如何安装 好,我们依然要编辑sendmail.mc这个文件 [root@tpwb mail]# vi sendmail.mc ....
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
TRUST_AUTH_MECH”的作用是使sendmail不管access文件中如何设置,都能 relay 那些通过EXTERNAL, LOGIN, PLAIN, CRAM-MD5或DIGEST-MD5等方式验证的邮件,” confAUTH_MECHANISMS" 的作用是确定系统的认证方式。Outlook Express支持的认证方式是LOGIN。 ....
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl (让sendmail监听所有网段)
....
DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl .... 我只做了四处更改,去掉前面的#,dnl(红色部分). 至于蓝色部分,有的文章说改成: DAEMON_OPTIONS(`Port=25, Name=MSA')dnl 但经我测试,把端口该成25后,不能进行正常的发送邮件,总是提示25端口错误的信息.所以我没有做更改. 只需去掉前名的#,dnl. 修改后,保存. [root@tpwb mail]# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf 删掉我们前面对access的修改,把所有的修改都删除。和我的一样。 [root@tpwb mail]# vi /etc/mail/access # package.
#
# by default we allow relaying from localhost...
~
~
~
[root@tpwb mail]# makemap hash access.db < access [root@tpwb mail]# service sendmail restart
Shutting down sendmail: [ OK ]
Shutting down sm-client: [ OK ]
Starting sendmail: [ OK ]
Starting sm-client: [ OK ] [root@tpwb mail]# service dovecot restart Stopping Dovecot Imap: [ OK ]
Starting Dovecot Imap: [ OK 配置到这里,你可以通过Outlook设置: 工具---账户---属性---服务器, 把我的服务器要求身份验证选项选上 但你会发现它会反复提示你输入密码(即使是正确的密码) 所以要在把SASL开启 [root@tpwb mail]# service saslauthd status
saslauthd is stopped
[root@tpwb mail]# service saslauthd start
Starting saslauthd: [ OK ] 在来试一下,是不是已经好了,只有正确的用户和密码才可以进行邮件的接受. 我们这里的合法用户就是linux系统的用户和密码. 下一篇文章:Linux下sendmail的配置详解4之优化篇
cyrus-sasl-ntlm-2.1.19-5.EL4
cyrus-sasl-2.1.19-5.EL4
cyrus-sasl-gssapi-2.1.19-5.EL4
cyrus-sasl-plain-2.1.19-5.EL4
cyrus-sasl-md5-2.1.19-5.EL4
cyrus-sasl-devel-2.1.19-5.EL4
cyrus-sasl-sql-2.1.19-5.EL4
我的是默认安装的,版本可能不一样.在这里我不讲如何安装 好,我们依然要编辑sendmail.mc这个文件 [root@tpwb mail]# vi sendmail.mc ....
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
TRUST_AUTH_MECH”的作用是使sendmail不管access文件中如何设置,都能 relay 那些通过EXTERNAL, LOGIN, PLAIN, CRAM-MD5或DIGEST-MD5等方式验证的邮件,” confAUTH_MECHANISMS" 的作用是确定系统的认证方式。Outlook Express支持的认证方式是LOGIN。 ....
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl (让sendmail监听所有网段)
....
DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl .... 我只做了四处更改,去掉前面的#,dnl(红色部分). 至于蓝色部分,有的文章说改成: DAEMON_OPTIONS(`Port=25, Name=MSA')dnl 但经我测试,把端口该成25后,不能进行正常的发送邮件,总是提示25端口错误的信息.所以我没有做更改. 只需去掉前名的#,dnl. 修改后,保存. [root@tpwb mail]# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf 删掉我们前面对access的修改,把所有的修改都删除。和我的一样。 [root@tpwb mail]# vi /etc/mail/access # package.
#
# by default we allow relaying from localhost...
~
~
~
[root@tpwb mail]# makemap hash access.db < access [root@tpwb mail]# service sendmail restart
Shutting down sendmail: [ OK ]
Shutting down sm-client: [ OK ]
Starting sendmail: [ OK ]
Starting sm-client: [ OK ] [root@tpwb mail]# service dovecot restart Stopping Dovecot Imap: [ OK ]
Starting Dovecot Imap: [ OK 配置到这里,你可以通过Outlook设置: 工具---账户---属性---服务器, 把我的服务器要求身份验证选项选上 但你会发现它会反复提示你输入密码(即使是正确的密码) 所以要在把SASL开启 [root@tpwb mail]# service saslauthd status
saslauthd is stopped
[root@tpwb mail]# service saslauthd start
Starting saslauthd: [ OK ] 在来试一下,是不是已经好了,只有正确的用户和密码才可以进行邮件的接受. 我们这里的合法用户就是linux系统的用户和密码. 下一篇文章:Linux下sendmail的配置详解4之优化篇
相关阅读 更多 +
排行榜 更多 +