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

[经验分享] Debian+Postfix-SASL认证配置全解

[复制链接]

尚未签到

发表于 2015-11-24 12:36:26 | 显示全部楼层 |阅读模式
目录
1 所需套件
2 Mail Relay
简介
3
Postfix 支援 Cyrus-SASL? V2 认证:(Debian Sarge
4
检测方式

所需套件
postfix-tls sasl2-bin libsasl2-modules
apt-get install  postfix-tls sasl2-bin libsasl2-modules

Mail Relay
简介
所谓的 Mail Relay,指的就是 Mail Server 会不会替使用者将信转寄到外部去。

比如说,我将信寄给 tetralet@pchome.com.tw,如果 tetralet@pchome.com.tw 这个信箱并不是位于本机上,那么这封信将会转给PCHome Mail Server,而这个将邮件转寄的动作就是 Mail Relay

Open Relay
就是不设限地完全开放 Mail Relay 的功能,它会替所有的人进行邮件转寄。

架设 Mail Server 的第一件事,就是防止不速之客利用您的 Mail Server 来乱发邮件,也就是关掉 Open Relay 这个功能。(基本上,几乎所有的 Mail Server 预设上都已把 Open Relay 给关掉了)取而代之的,是使用 SMTP 认证 (SMTP AUTH) 来验证使用者可否进行 Mail Relay

在这里所要介绍的,是如何使用 Cyrus-SASL? V2 来实作 SMTP 认证的功能。其中的 SASL (Simple Authentication and Security Layer) 就是用来提供符合 RFC 2222 标准的各种认证机制的 Daemon

Postfix 支援 Cyrus-SASL? V2 认证:(Debian Sarge
修改 /etc/default/saslauthd,设定 START=yes
# This needs to be uncommented before saslauthd will be run automatically
START=yes

# You must specify the authentication mechanisms you wish to use.
# This defaults to "pam" for PAM support, but may also include
# "shadow" or "sasldb", like this:
# MECHANISMS="pam shadow"

MECHANISMS="pam"
修改 /etc/postfix/sasl/smtpd.conf,设定 PostFix 使用 Saslauthd
mkdir -p /etc/postfix/sasl
echo "pwcheck_method: saslauthd" > /etc/postfix/sasl/smtpd.conf
postfix 加入 sasl 群组中
addgroup postfix sasl
修改 /etc/postfix/main.cf,使其使用 SMTP AUTH SASL Authenticate
(上略)

# Enable SASL Auth

#
设定 Postfix 使用 SASL 认证。
smtpd_sasl_auth_enable = yes

#
设定 SASL 支持非标准 E-mail Client 的认证动作。
broken_sasl_auth_clients = yes

#
不使用 ANONYMOUS 这个认证。
smtpd_sasl_security_options = noanonymous

#
设定 SASL 的认证方法
# permit_sasl_authenticated
如果客户端可通过 SASL 认证则可 Relay Mail
# permit_mynetworks
如果客户端的地址为 $mynetworks 则可 Relay Mail
# check_relay_domains
# reject_unauth_destination
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, check_relay_domains, reject_unauth_destination

smtpd_client_restrictions = permit_sasl_authenticated
修改 /etc/postfix/master.cf,让 Postfix 不要以 chroot 启动。
后面的 -v 参数可以用来 Debug,但正式上线时最好拿掉,以免系统被 Log 塞爆了。
(上略)

# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
# ==========================================================================
smtp      inet  n       -       n       -       -       smtpd -v

(下略)
或者是新增一个 listen smtps (port 465) 上的 service

# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
# ==========================================================================
smtps     inet  n       -       n       -       -       smtpd                                                     
        # 强迫 tls 联机 (?)
        -o smtpd_tls_wrappermode=yes
        # 使用 sasl auth (如果在 main.cf 已经设定了,这行可以省略)
        -o smtpd_sasl_auth_enable=yes
        # 所有联机到这里的都必须通过 sasl auth
        -o smtpd_client_restrictions=permit_sasl_authenticated,reject                                             
重新启动 SASL Daemon
/etc/init.d/saslauthd restart
跑起来后,可以用

testsaslauthd -u username -p password
来测试 saslauthd 是否有正常运作

重新启动 Postfix
/etc/init.d/postfix restart
[编辑]检测方式
首先把账号及密码转换成 base64 的编码:(可能需要安装 libmime-base64-perl 套件)

perl -MMIME::Base64 -e 'print encode_base64("/0username/0password");'
登入 Postfix

$ telnet 127.0.0.1 25(在该用户的环境变量下)
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
220 Virtual ESMTP Postfix (Debian/GNU)
EHLO qemu (这里要输入的是 HostName)
250-Virtual
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-XVERP
250 8BITMIME
auth plain AHXXXXXXXXXXXXXXXXXXXX8/ (刚才 perl 指令计算的结果)
235 Authentication successful
quit
221 Bye
Connection closed by foreign host.
如果认证成功即表示 SASL 已经正确启动了。

运维网声明 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-143068-1-1.html 上篇帖子: Postfix Expression Evaluator 下篇帖子: POSTFIX邮局系统搭建全过程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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