免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2525 | 回复: 8
打印 上一主题 下一主题

关于Windows ADS + RHEL5U2 Postfix + Dovecot [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-01-20 21:40 |只看该作者 |倒序浏览
比人最近在做一个有关于Windows ADS域认证RHEL5U2 Postfix和dovecot用户的实验。

大概思路是:postfix/dovecot --> saslauthd --> pam --> samba (winbind) --> windows ADS

现在我已经将RHEL5U2加入到了Windows ADS域内,然后也配置了postfix和dovecot。现在的问题是如果用一个ADS内的域用户发信到RHEL5U2本地用户账号可以成功,但是如果从本地用户发信到Windows ADS域用户则失败。

这个试验是参照这几个文章做的:
http://www.chmhome.com/plus/view.php?aid=84531
http://www.5dmail.net/bbs/thread-176925-1-1.html

但是我参照这个之后就是出现刚才提到的问题。我将具体的配置和信息拿过来,有经验的哥们帮忙看看。

我的Windows域控制器和DNS都是192.168.10.100,邮件服务器RHEL5U2安装postfix和dovecot,ip地址是192.168.10.200。
现在RHEL5U2已经加入了域内,有下面信息为证,所以samba和winbind和基本网络配置都应该没有问题。
[root@server ~]# wbinfo -t
checking the trust secret via RPC calls succeeded

[root@server ~]# wbinfo -u
JERRYWJL/administrator
JERRYWJL/guest
JERRYWJL/krbtgt
JERRYWJL/tom

[root@server ~]# getent passwd
JERRYWJL/tom:*:100003:100000:tom chen:/home/JERRYWJL/tom:/bin/bash

西面是postfix和dovecot的配置:
[root@server ~]# cat /etc/postfix/main.cf
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
mail_owner = postfix
myhostname = mail.jerrywjl.com
mydomain = jerrywjl.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost,$mydomain
unknown_local_recipient_reject_code = 550
mynetworks_style = subnet
mynetworks = 192.168.10.0/24,127.0.0.0/8
relay_domains = $mydestination
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mail_spool_directory = /var/mail
debug_peer_level = 2
debugger_command =
   PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
   xxgdb $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.2.10/samples
readme_directory = /usr/share/doc/postfix-2.2.10/README_FILES
smtpd_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $mydomain
smtp_sasl_auth_enable = yes

[root@server ~]# cat /etc/dovecot.conf
protocols = imap pop3
listen = *
disable_plaintext_auth = no
log_timestamp = "%Y-%m-%d %H:%M:%S "
login_dir = /var/run/dovecot/login
mail_location =maildir:~/Maildir
# mail_extra_groups = mail
protocol imap {
}
protocol pop3 {
  pop3_uidl_format = %08Xu%08Xv
}
auth default {
  mechanisms = plain
  passdb pam {
  }
  userdb passwd {
  }
  user = root
  socket listen {
    client {
      mode = 0660
      user = postfix
      group = postfix
    }
  }
}

这是pam的配置,在里面修改的是:
auth          sufficient   pam_winbind.so
account     sufficient   pam_winbind.so
password  sufficient   pam_winbind.so
如下(不过这不是关键问题),因为不管有没有这些pam配置效果都一样。

[root@server ~]# cat /etc/pam.d/login
#%PAM-1.0
auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
auth       include      system-auth
# auth       sufficient   pam_winbind.so
account    required     pam_nologin.so
account    include      system-auth
# auth       sufficient   pam_winbind.so
password   include      system-auth
# password   sufficient   pam_winbind.so use_authtok
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    include      system-auth
session    required     pam_loginuid.so
session    optional     pam_console.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session    required     pam_selinux.so open
session    optional     pam_keyinit.so force revoke
[root@server ~]# cat /etc/pam.d/smtp
#%PAM-1.0
auth       include      system-auth
# auth       sufficient   pam_winbind.so
account    include      system-auth
# account    sufficient   pam_winbind.so
# password   sufficient   pam_winbind.so use_authok
[root@server ~]# cat /etc/pam.d/dovecot
#%PAM-1.0
auth       required     pam_nologin.so
auth       include      system-auth
# auth       sufficient   pam_winbind.so
account    include      system-auth
# account    sufficient   pam_winbind.so
# password   sufficient   pam_winbind.so use_authok
session    include      system-auth

之后就是一些小处的修改:
[root@server ~]# cat /etc/init.d/saslauthd
将MECH=shadow改为MECH=pam

然后:
[root@server ~]# ln -s /usr/lib/sasl2/smtp.conf /usr/local/lib/smtp.conf
vi /usr/local/lib/smtp.conf,内容如下
pwcheck_method: saslauthd
log_level:2
mech_listLAIN LOGIN

重启服务:
[root@server ~]# service postfix start
[root@server ~]# service dovecot start
[root@server ~]# service saslauthd start

评分

参与人数 1可用积分 +6 收起 理由
kns1024wh + 6 好文

查看全部评分

论坛徽章:
0
2 [报告]
发表于 2009-01-20 21:51 |只看该作者
这是测试过程和日志,其中mail.jerrywj.com就是RHEL5U2邮件服务器,JERRYWJL/tom是在windows ads上添加的域内用户:
[root@server ~]# telnet mail.jerrywjl.com 25
Trying 192.168.10.200...
Connected to mail.jerrywjl.com (192.168.10.200).
Escape character is '^]'.
220 mail.jerrywjl.com ESMTP Postfix
mail from:root@jerrywjl.com
250 2.1.0 Ok
rcpt to:JERRYWJL/tom@jerrywjl.com
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
testmail000001
.
250 2.0.0 Ok: queued as 01BC114058B
quit
221 2.0.0 Bye
Connection closed by foreign host.

从日志显示,邮件发出,但是会进入到mbox中,在/var/spool/mail/jerrywjl/tom中有邮件信息:
From root@jerrywjl.com  Wed Jan 21 13:33:13 2009
Return-Path: <root@jerrywjl.com>
X-Original-To: JERRYWJL/tom@jerrywjl.com
Delivered-To: JERRYWJL/tom@jerrywjl.com
Received: from server.jerrywjl.com (server.jerrywjl.com [192.168.10.200])
        by mail.jerrywjl.com (Postfix) with SMTP id 01BC114058B
        for <JERRYWJL/tom@jerrywjl.com>; Wed, 21 Jan 2009 13:33:07 +0800 (CST)
Message-Id: <20090121053311.01BC114058B@mail.jerrywjl.com>
Date: Wed, 21 Jan 2009 13:33:07 +0800 (CST)
From: root@jerrywjl.com
To: undisclosed-recipients:;

testmail000001

但是最终邮件无法到达该用户的邮箱。
[root@server ~]# tail -f /var/log/maillog
Jan 21 13:33:01 server postfix/smtpd[5273]: connect from server.jerrywjl.com[192.168.10.200]
Jan 21 13:33:11 server postfix/smtpd[5273]: 01BC114058B: client=server.jerrywjl.com[192.168.10.200]
Jan 21 13:33:13 server postfix/cleanup[5279]: 01BC114058B: message-id=<20090121053311.01BC114058B@mail.jerrywjl.com>
Jan 21 13:33:13 server postfix/qmgr[5271]: 01BC114058B: from=<root@jerrywjl.com>, size=384, nrcpt=1 (queue active)
Jan 21 13:33:13 server postfix/local[5280]: 01BC114058B: to=<JERRYWJL/tom@jerrywjl.com>, relay=local, delay=6.1, delays=6/0.03/0/0.11, dsn=2.0.0, status=sent (delivered to mailbox)
Jan 21 13:33:13 server postfix/qmgr[5271]: 01BC114058B: removed
Jan 21 13:33:14 server postfix/smtpd[5273]: disconnect from server.jerrywjl.com[192.168.10.200]

论坛徽章:
0
3 [报告]
发表于 2009-01-20 21:51 |只看该作者
做过的高手麻烦支个招!谢谢!

论坛徽章:
0
4 [报告]
发表于 2009-01-20 22:08 |只看该作者
原帖由 jerrywjl 于 2009-1-20 21:40 发表
比人最近在做一个有关于Windows ADS域认证RHEL5U2 Postfix和dovecot用户的实验。

大概思路是:postfix/dovecot --> saslauthd --> pam --> samba (winbind) --> windows ADS

现在我已经将RHEL5U2加入到了 ...

收下,
这个对于欧美企业是很好的选择

论坛徽章:
0
5 [报告]
发表于 2009-01-20 22:22 |只看该作者
原帖由 kns1024wh 于 2009-1-20 22:08 发表

收下,
这个对于欧美企业是很好的选择



拜托哥们,能发动你周围的高手给我提供一点有用的技术支持吗!?

论坛徽章:
0
6 [报告]
发表于 2009-01-21 17:29 |只看该作者
一天不来,十页以后。顶上来。

论坛徽章:
0
7 [报告]
发表于 2009-01-21 23:17 |只看该作者
三小时不来,5页以后,继续顶。

论坛徽章:
0
8 [报告]
发表于 2009-01-22 23:41 |只看该作者
又是一日,十三页以后。

论坛徽章:
0
9 [报告]
发表于 2009-01-23 21:18 |只看该作者
再顶起来!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP