45fan.com - 路饭网

搜索: 您的位置主页 > 网络频道 > 阅读资讯:设置sendmail+SASL的方法

设置sendmail+SASL的方法

2016-09-09 03:28:11 来源:www.45fan.com 【

设置sendmail+SASL的方法

1、确认系统已安装相关软件。

#rpm -aq | grep sasl

#rpm -aq | grep imap

#rpm -aq | grep sendmail

#rpm -aq | grep m4

至少要保证有下列软件

imap-2001a-18.i286.rpm

sendmail-8.12.8-4.i386.rpm

m4-1.4.1-13.i386.rpm

cyrus-sasl-2.1.10-4.i386.rpm

cyrus-sasl-md5-2.1.10-4.i386.rpm

cyrus-sasl-plain-2.1.10-4.i386.rpm

cyrus-sasl-gssapi-2.1.10-4.i386.rpm

2、在DNS服务器上添加相应的MX记录

3、添加本地邮件域名

#vi /etc/mail/local-host-names

mydomain.com

#service sendmail restart

[显示更改后的w类配置]

#sendmail -bt

ADDRESS TEST MODE(ruleset 3 NOT automatically invoked)

Enter <ruleset> <address>

> $=w

mydomain.com

localhost.localdomain

localhost

[127.0.0.1]

//ctrl+d退出

4、使用/etc/mail/access数据库,可以定义MTS允许发送邮件的地址或用户,但使用SASL可以不用定义这

个文件。

access文件定义举例:

#vi /etc/mail/access

mydomain.comRELAY //允许域内用户发送

10.2.2RELAY //允许10.2.2.0网段发送

username@somedomain.comRELAY //允许特定邮件地址

username@RELAY //允许特定用户发送

参数说明:

OK无条件接受或发送

RELAY允许SMTP代理投递

REJECT拒绝接受并发送错误消息

DISCARD丢弃邮件,不发送错误消息

用access文件生成access.db

makemap hash access.db < access

5、可以选择在/etc/aliases文件,设定用户别名,邮件列表也是在这个文件中制作

此项文件路径在sendmail.mc文件中的define('ALIAS_FILE','/etc/aliases')dnl语句确定

格式:

alias: recipient [,recipieng,...]

6、可以选择使用/etc/mail/userdb文件,改变用户入站或出站地址

格式:

入站地址:maildrop 被改写的入站地址

出站地址:mailname 被改写的出站地址

应用:

makemap btree userdb.db < userdb

7、建立虚拟域

mc配置文件中FEATURE('virtusertable','hash -o /etc/mail/virtusertable.db')dnl定义了虚拟域配置

文件位置。

#vi /etc/mail/virtusertable

虚拟域地址真实地址

#makemap hash virtusertable.db < virtusertable

然后为虚拟域在DNS里添加MX记录

在local-host-names中添加虚拟域

如果未使用SASL,则需要在access文件里添加虚拟域

8、配置Pop3

运行:

# ntsysv

在系统服务列表中选中ipop3,选’OK’保存推出

重启xinetd服务,运行:

# service xinetd restart

运行netstat命令看smtp和pop3服务是否都已经启动

# netstat -l

9、配置SASL

在sendmail.mc中找到相关的行

A、添加

define(QUEUE_DIR, `/var/spool/mqueue/q*')

启动多邮件队列,获得更好的传输性能,与SASL无关。

另外在/var/spool/mqueue/下创建任意多个队列目录,运行:

# cd /var/spool/mqueue

# mkdir q1 q2 q3 q4 q5 q6

B、将如下两行的dnl去掉,取消注释。

TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl 作用是使sendmail不管access文

件中如何设置,都能 relay 那些通过EXTERNAL, LOGIN, PLAIN, CRAM-MD5或DIGEST-MD5等方式验证的邮

件。

define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl 作用是确

定系统的认证方式。Outlook Express支持的认证方式是LOGIN。

C、给下行加上dnl注释

dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl 让sendmail可以侦听所有网络设备,

为整个网络提供服务,而不仅仅只对本机提供服务。

D、在smtp的默认端口(25)上进行认证,而不是587端口。这样就强制所有使用该邮件服务器进行邮件转

发的用户在认证后才能发邮件了。

将dnl DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl 改为

DAEMON_OPTIONS(`Port=25, Name=MSA')dnl

最后,运行

# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

用m4重新生成sendmail.cf文件,重新启动sendmail服务。

检验认证是否开启:

可以通过telnet IP 25来验证sendmail服务是否已经正常启动,若登陆成功,则说明sendmail服务已经成

功启动。

# telnet localhost 25

Trying 127.0.0.1...

Connected to localhost.

Escape character is '^]'

220 localhost.localdomain ESMTP Sendmail 8.12.8/8.12.8; Wed, 12 May 2004 15:57:01 +0800

ehlo localhost

250-ENHANCEDSTATUSCODES

250-PIPELINING

250-8BITMIME

250-SIZE

250-DSN

250-AUTH GSSAPI LOGIN PLAIN

250-DELIVERBY

250-HELP

quit

#

在AUTH后面有LOGIN就基本上可以在OutlookExpress上认证了。

另外使用

sendmail -d0.1 -bv root | grep SASL

出现NETUNIX NEWDB NIS PIPELINING SASL SCANF STARTTLS TCPWRAPPERS则可说明SASL已启用。

 

本文地址:http://www.45fan.com/a/question/73794.html
Tags: 系统 确认 sendmail+SASL
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部