首页 | 邮件资讯 | 技术教程 | 解决方案 | 产品评测 | 邮件人才 | 邮件博客 | 邮件系统论坛 | 软件下载 | 邮件周刊 | 热点专题 | 工具
网络技术 | 操作系统 | 邮件系统 | 客户端 | 电子邮箱 | 反垃圾邮件 | 邮件安全 | 邮件营销 | 移动电邮 | 邮件软件下载 | 电子书下载

邮件服务器

技术前沿 | Exchange | Domino | Sendmail | Postfix | Qmail | IMail | MDaemon | Foxmail | James | Kerio | JavaMail | WinMail | Winwebmail | Merak | CMailServer | 金笛 | 其它 | 邮件与开发 |
首页 > 邮件服务器 > Sendmail > Redhat 7.1下的Sendmail SASL认证的实现 > 正文
金笛邮件系统

Redhat 7.1下的Sendmail SASL认证的实现

出处:5DMail.Net收集整理 作者:Jephe Wu (吴阿亭) 时间:2007-1-29 11:11:37
简单三步解决企业垃圾邮件难题
一: 本文目的

利用RedHat 7.1中的默认配置方便地设置一台利用SASL库进行用户名和密码认证的SMTP服务器,
以允许外面的用户以用户名和密码认证来relay邮件。

二: 网络系统                               
                                   Redhat 7.1
                                   __________                                      
                                   |         |
                                   |  SMTP   |
                                   | Server  |smtp.domain.com
                  ________         |_________| (1.2.3.4)
     Intranet    |        |             |             ________
_________________|Firewall|_____________|____________| Router|____Internet
                 |        |                          |_______|
                 |________|                         

公司域名                    : domain.com
用来认证的SMTP服务器全称域名: smtp.domain.com

三: 为什么要这样用?

假设上面的公司有专线接入Internet, 且在其它城市有多个分支机构, 公司有统一的域名
domain.com,所有员工的邮件地址类似如staffname@domain.com。 但是分支机构大多数没
有专线接入,用ISDN或者普通拨号方式入网, 并且越来越多的ISP不允许以非ISP的邮件地址
域名后缀发送邮件, 即使你是他们的拨号用户。

还有一种情况是移动用户,经常地,公司派遣用户在外出差旅行期间,用户需要发送邮件,
则也同样需要一种认证方案去允许正确的用户relay邮件。

现在我们考虑做公司自己内部的邮件relay系统。

就是设置一台SMTP服务器在防火墙之外,安装Redhat 7.1,选择‘服务器系统’方式安装所有
需要的包,然后设置Sendmail,配置一台基于SASL的用户名和密码认证的邮件服务器,以relay
自己公司的员工的邮件。

四: 配置Sendmail

1. 选择‘服务器系统’安装Redhat 7.1

2. 进入目录 /usr/share/sendmail-cf/cf 。
   如果你没有该目录,说明你还没有安装sendmail-cf-8.11.2-14 RPM包,从你的安装CD中安装它。

3. 修改文件redhat.mc如下

divert(-1)
dnl This is the sendmail macro config file. If you make changes to this file,
dnl you need the sendmail-cf rpm installed and then have to generate a
dnl new /etc/sendmail.cf by running the following command:
dnl
dnl        m4 /etc/mail/sendmail.mc > /etc/sendmail.cf
dnl
include(`../m4/cf.m4')
VERSIONID(`linux setup for Red Hat Linux')dnl
OSTYPE(`linux')
define(`confDEF_USER_ID',``8:12'')dnl
undefine(`UUCP_RELAY')dnl
undefine(`BITNET_RELAY')dnl
define(`confAUTO_REBUILD')dnl
define(`confTO_CONNECT', `1m')dnl
define(`confTRY_NULL_MX_LIST',true)dnl
define(`confDONT_PROBE_INTERFACES',true)dnl
define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')dnl
define(`ALIAS_FILE', `/etc/aliases')dnl
define(`STATUS_FILE', `/var/log/sendmail.st')dnl
define(`UUCP_MAILER_MAX', `2000000')dnl
define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl
define(`confAUTH_OPTIONS', `A')dnl
define(QUEUE_DIR,`/var/spool/mqueue/q*')         
TRUST_AUTH_MECH(`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
DAEMON_OPTIONS(`Port=25,Name=MTA')dnl
DAEMON_OPTIONS(`Port=587,Name=MSA,M=Ea')dnl
dnl define(`confTO_QUEUEWARN', `4h')dnl
dnl define(`confTO_QUEUERETURN', `5d')dnl
dnl define(`confQUEUE_LA', `12')dnl
dnl define(`confREFUSE_LA', `18')dnl
dnl FEATURE(delay_checks)dnl
FEATURE(`no_default_msa',`dnl')dnl
FEATURE(`smrsh',`/usr/sbin/smrsh')dnl
FEATURE(`mailertable',`hash -o /etc/mail/mailertable')dnl
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable')dnl
FEATURE(redirect)dnl
FEATURE(always_add_domain)dnl
FEATURE(use_cw_file)dnl
FEATURE(use_ct_file)dnl
FEATURE(local_procmail)dnl
FEATURE(`access_db')dnl
FEATURE(`blacklist_recipients')dnl
EXPOSED_USER(`root')dnl
dnl This changes sendmail to only listen on the loopback device 127.0.0.1
dnl and not on any other network devices. Comment this out if you want
dnl to accept email over the network.
dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')
dnl We strongly recommend to comment this one out if you want to protect
dnl yourself from spam. However, the laptop and users on computers that do
dnl not have 24x7 DNS do need this.
dnl FEATURE(`accept_unresolvable_domains')dnl
dnl FEATURE(`relay_based_on_MX')dnl
MAILER(smtp)dnl
MAILER(procmail)dnl

其中,我加了下面的行:

1. define(QUEUE_DIR,`/var/spool/mqueue/q*')         
2. TRUST_AUTH_MECH(`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
3. define(`confAUTH_MECHANISMS', `DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
4. DAEMON_OPTIONS(`Port=25,Name=MTA')dnl
5. DAEMON_OPTIONS(`Port=587,Name=MSA,M=Ea')dnl

注:

第1行    我启动了多个邮件队列,希望得到更好的队列处理和性能改进。
第2,3行  移走前面的注释,打开相应的各种认证机制。
第4,5行  设置相应的MTA和MSA所在的端口号。


且注释出了
1. dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')
2. dnl FEATURE(`accept_unresolvable_domains')dnl

第1行   允许通过网络连接Sendmail。
第2行   禁止不可解析的域名relay邮件

最后运行

#m4 /etc/mail/sendmail.mc > /etc/sendmail.cf
写到/etc/sendmail.cf文件中


既然我们打开了多个队列,现在我们在/var/spool/mqueue/下创建任意多个队列目录如

#cd /var/spool/mqueue
#mkdir q1 q2 q3 q4 q5 q6

这样Sendmail将会使用这六个目录做为队列目录,增加了性能。

五: 设置SASL认证方案

1. 运行下面的命令,确保SASL被编译进Sendmail.

#/usr/sbin/sendmail -d0.1 -bv root |grep SASL

输出应该类似如下面:

NETUNIX NEWDB QUEUE SASL SCANF SMTP USERDB XDEBUG

确保你能看见上面的文本中的 SASL

2.  测试端口25,确保输出AUTH提示行。

#telnet localhost 25
Trying 127.0.0.1...
Connected to smtp.domain.com.
Escape character is '^]'.
220  smtp.domain.com ESMTP Sendmail 8.11.2/8.11.2; Sun, 1 July 2001 17:56:54 -0800
EHLO localhost
250-smtp.domain.com Hello IDENT:root@smtp.domain.com [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-EXPN
250-VERB
250-8BITMIME
250-SIZE
250-DSN
250-ONEX
250-ETRN
250-XUSR
250-AUTH LOGIN PLAIN DIGEST-MD5 CRAM-MD5
250 HELP
quit
221 2.0.0 smtp.domain.com closing connection
Connection closed by foreign host.

你需要至少看见AUTH行中有LOGIN PLAIN在那里,否则不能relay mail。

3. 增加SASL用户且更改密码

#/usr/sbin/saslpasswd jephe
Password: *******
Again (for verification): *******

#/usr/sbin/sasldblistusers
user: jephe realm: smtp.domain.com mech: DIGEST-MD5
user: jephe realm: smtp.domain.com mech: PLAIN
user: jephe realm: smtp.domain.com mech: CRAM-MD5

用户的密码DB文件在/etc/sasldb,用下面的命令确保正确的许可权设置。

特别注意: 在下面的windows的Outlook Express中设置用户名和密码时
并不是简单地使用用户名jephe,而是用象“user@realm”的用户名,
在这里是 jephe@smtp.domain.com作为用户名。

#chmod 400 /etc/sasldb

可以用/usr/sbin/saslpasswd加更多的用户,用/usr/sbin/sasldblistusers检查用户已经加入。


4. 更改默认的Redhat 7.1密码认证方法

默认地,Redhat 7.1中的Sendmail用PAM方法检查密码,这意味着用户必须是系统用户,为了
增强安全性,我们改用/etc/sasldb中的用户,改下面的文件中的pam为sasldb。

#vi /usr/lib/sasl/Sendmail.conf 更改pwcheck_method行象下面

pwcheck_method:sasldb


5. 最后,运行/etc/rc.d/init.d/sendmail restart重新启动Sendmail。


六: 设置Windows的Outlook Express。

1. Outlook Express仅仅使用 PLAIN LOGIN 认证机制,确保上面的telnet localhost 25中
   的AUTH行输出PLAIN LOGIN即可。

2. 在‘工具’-‘帐号’-‘属性’-‘服务器‘-
   ’发送邮件服务器’中选中‘我的服务器需要认证’
  
   然后在‘登录用户帐号’上填上
  
“你的用户名@你的realm冒号后面的服务器全称域名”

如:本文的情况是 jephe@smtp.domain.com

密码为你在前面输入的密码。

注意: 用户名绝不是简单地 jephe,必须跟上realm:后面的域名。

3. 现在测试,发一封信给自己,检查tail -f /var/log/maillog有无任何错误
   然后在收到自己发出的信之后检查邮件头,你能发现被服务器接收后有个(authenticated)
   在后面表示是通    过允许的认证机制relay的邮件。

七:  FAQ。

1. 如果你没有命令saslpasswd,sasldblistusers在/usr/sbin/目录下面。

答: 你需要安装cyrus-sasl-1.5.24-17 RPM包。

2. 如果不想用SASL认证,就用默认的Redhat 的PAM方法。

答: 忽略上面的SASL设置的部分,默认地 Redhat 7.1的 /usr/lib/sasl/Sendmail.conf文件里面为
     pwcheck_method:pam
     则你就简单地用useradd增加一个系统用户并更改密码即可。

     然后在Outlook Express中设置用户名时则只用如“jephe”即可,不需要跟全称域名。

附加部分:

对前面两篇文章
VI的常见使用技巧 和 如何设置一个基本的OpenLDAP Server 的补充:

1.  用 %s/string1/string2/gc 提示你在遇到每个string1时是否改变为string2
2.  在用VI打开一个现有的文件后想不退出该文件而编辑另一个文件用
    e filename 和 e #在两个文件间切换。

---------------
4) 如何记录LDAP查询Log且方便调试?

你可以在/etc/syslog.conf中加入
 
local4.*   /var/log/openldap.log

然后每一次LDAP请求将会被记录进该文件,你也可根据该文件中的信息调试问题。
相关文章 热门文章
  • Sendmail特点和不足
  • 18.12 安全与sendmail
  • Sendmail邮件服务器升级技巧速成
  • Sendmail服务器安全配置技巧
  • SENDMAIL邮件服务器的安装与设置
  • AIX上的Sendmail邮件服务器的配置及常见问题
  • 如何阻止对sendmail邮件服务器的relay恶意攻击
  • 如何在sendmail环境中检测是否存在邮件代理
  • Linux 上使用Sendmail群集的高可用/可伸缩的Sendmail
  • 如何阻止对AIX Sendmail服务器的垃圾邮件攻击
  • Sendmail配置终极指南
  • 如何选择替换Sendmail的邮件服务器软件
  • Sendmail8.12.9+RedHat 8.0建构邮件服务器
  • sendmail大全
  • Sendmail邮件服务器快速指南
  • SendMail上手指南
  • 用Sendmail配置你的第一台e-mail服务器
  • RedHatLinux AS3中SendMail的配置
  • 企业Sendmail邮件服务器的创建
  • Sendmail环境下对抗垃圾邮件的处理方法
  • Sendmail的邮件用户与系统用户分离
  • 我的qmail安装历程
  • 带SMTP认证功能的sendmail配置
  • Sendmail的relay用法汇总
  • 自由广告区
     
     
    WINMAIL 让您轻松架设邮件系统
    eqmail
    最新软件下载
  • ORF Enterprise Edition 4.2 正式版
  • WinWebMail 3.7.7.3 标准版
  • WinWebMail 3.7.7.3 企业版
  • BMail祺邮
  • Merak Email Server for Windows 9.3.1..
  • Merak Email Server for Linux 9.3.1 ..
  • Merak Email Server 9.3.1 For Windwos..
  • AXIGEN Mail Server 6.1.1 for Windows
  • AXIGEN Mail Server 6.1.0 for Linux
  • ADModify.NET下载
  • symantec10.1基本安装及配置视频教程
  • Backup Exec System Recovery之备份视..
  • 今日邮件技术文章
  • 美大学生侵入佩林州长个人邮件账户被逮捕
  • 思科IronPort发布新电子邮件安全设备
  • 深耕"软件+服务" 微软300城市巡展睿邮
  • 从黑客常用攻击手段看WEB应用防护
  • 消息人士透露雅虎与AOL合并细节将于本..
  • 谷歌提供的电子邮件存档时间延长为十年
  • 雅虎将在邮箱服务中整合新版在线日历
  • 9月垃圾邮件总量减少 与ISP倒闭有关
  • 垃圾邮件发展的四大趋势
  • 韩国议员称中国黑客冒充青瓦台发送病..
  • Vista难成气候 Windows XP寿命被延长
  • 赛门铁克升级DLP产品及反垃圾邮件网关
  • 最新专题
  • Sendmail 邮件系统配置
  • 组建Exchange 2003邮件系统
  • Windows Server 2008 专题
  • ORF 反垃圾邮件系统
  • Exchange Server 2007 专题
  • ISA Server 2006 教程专题
  • Windows Vista 技术专题
  • “黑莓”(BlackBerry)专题
  • 移动电子邮件专题
  • Apache James 专题
  • IMail Server 操作指南
  • ISA Server 2004 使用专题
  • 分类导航
    邮件新闻资讯:
    IT业界 | 邮件服务器 | 邮件趣闻 | 移动电邮
    电子邮箱 | 反垃圾邮件|邮件客户端|网络安全
    行业数据 | 邮件人物 | 网站公告 | 行业法规
    网络技术:
    邮件原理 | 网络协议 | 网络管理 | 传输介质
    线路接入 | 路由接口 | 邮件存储 | 华为3Com
    CISCO技术 | 网络与服务器硬件
    操作系统:
    Windows 9X | Linux&Uinx | Windows NT
    Windows Vista | FreeBSD | 其它操作系统
    邮件服务器:
    程序与开发 | Exchange | Qmail | Postfix
    Sendmail | MDaemon | Domino | Foxmail
    KerioMail | JavaMail | Winwebmail |James
    Merak&VisNetic | CMailServer | WinMail
    金笛邮件系统 | 其它 |
    反垃圾邮件:
    综述| 客户端反垃圾邮件|服务器端反垃圾邮件
    邮件客户端软件:
    Outlook | Foxmail | DreamMail| KooMail
    The bat | 雷鸟 | Eudora |Becky! |Pegasus
    IncrediMail |其它
    电子邮箱: 个人邮箱 | 企业邮箱 |Gmail
    移动电子邮件:服务器 | 客户端 | 技术前沿
    邮件网络安全:
    软件漏洞 | 安全知识 | 病毒公告 |防火墙
    攻防技术 | 病毒查杀| ISA | 数字签名
    邮件营销:
    Email营销 | 网络营销 | 营销技巧 |营销案例
    邮件人才:招聘 | 职场 | 培训 | 指南 | 职场
    解决方案:
    邮件系统|反垃圾邮件 |安全 |移动电邮 |招标
    产品评测:
    邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端
    广告联系 | 合作联系 | 关于我们 | 联系我们 | 繁體中文
    版权所有:邮件技术资讯网©2003-2007 www.5dmail.net, All Rights Reserved
    www.5Dmail.net Web Team   粤ICP备05009143号