设为首页 收藏本站
查看: 1732|回复: 0

[经验分享] RadHat8.0下配置Sendmail

[复制链接]

尚未签到

发表于 2015-11-25 14:20:23 | 显示全部楼层 |阅读模式
  环境:Redhat8.0
         sendmail(自带)
  域名              : zzw.com
SMTP服务器: mail.zzw.com
POP3服务器: mail.zzw.com
(DNS都已经设好)
  =======================================
  一: 配置Sendmail
  
    1. 进入目录 /usr/share/sendmail-cf/cf
        如果你没有该目录,说明你还没有安装sendmail-cf-8.11.2-14 RPM包,从你的安装CD(3)中安装     它。
  

    2. 修改 /etc/mail/sendmail.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  mail.zzw.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@mail.zzw.com [192.168.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 mail.zzw.com closing connection
Connection closed by foreign host.

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

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

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

#/usr/sbin/sasldblistusers
user: wayne realm: mail.zzw.com mech: DIGEST-MD5
user: wayne realm: mail.zzw.com mech: PLAIN
user: wayne realm: mail.zzw.com mech: CRAM-MD5

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

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

#chmod 400 /etc/sasldb

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


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

默认地,Redhat 8中的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。
  
6. 启动POP3的110端口
  /etc/xinetd.d/ipop2

默认:disable=yes 改为:disable=no

/etc/xinetd.d/ipop3

默认:disable=yes 改为:disable=no

/etc/xinetd.d/ipop3

默认:disable=yes 改为:disable=no

/etc/xinetd.d/pops

默认:disable=yes 改为:disable=no


最后:

#/etc/rc.d/init.d/xinetd restart      重启xinetd
  #chkconfig xinetd                 把xinetd加入启动
  
  
  三: 设置Windows的Outlook Express。

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

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

如:本文的情况是 wayne@mail.zzw.com

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

注意: 用户名绝不是简单地 wayne,必须跟上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中设置用户名时则只用如“wayne”即可,不需要跟全称域名。

附加部分:

对前面两篇文章
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请求将会被记录进该文件,你也可根据该文件中的信息调试问题。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-143481-1-1.html 上篇帖子: Sendmail配置终极指南 下篇帖子: RHCE Sendmail 邮件服务器配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表