添加SMTP用户认证


添加SMTP用户认证

  • SMTP用户认证流程
    • 结合Cyrus SASL软件来实现
    • Simple Authentication and Security Layer

  • 发信时无需认证的邮件服务器,很容易造成大量垃圾邮件的产生,也给服务器带来了不必要的负担
  • SMTP发信认证的常见形式如下:当用户通过SMTP协议向外部邮件域发送邮件时,服务器会要求用户提供用户帐号和口令进行身份认证,只有成功通过身份认证的用户才被允许向外部发送邮件,否则将拒绝发信请求。
  • Cyrus SASL(Cyrus Simple Authentication and Security Layer,Cyrus简单认证安全层)
  • saslauthd 是Cyrus SASL软件中的一个程序

1.配置并启动saslauthd服务

建立配置文件:/usr/lib/sasl2/smtpd.conf 启动 saslauthd 服务

[root@mail ~]# cd  /usr/lib/sasl2/
[root@mail sasl2]# cp  Sendmail.conf  smtpd.conf
[root@mail sasl2]# vi  /usr/lib/sasl2/smtpd.conf
pwcheck_method: saslauthd
[root@mail sasl2]# service  saslauthd  start

smtpd.conf配置文件可参考“/usr/lib/sasl2/Sendmail.conf”的内容生成,注意“S”为大写

2.调整 main.cf 文件,以便支持认证

修改后要重载postfix服务:postfix reload

[root@mail ~]# vi /etc/postfix/main.cf
……
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
mynetworks = 127.0.0.1
smtpd_recipient_restrictions =
  permit_mynetworks,
  permit_sasl_authenticated,
  reject_unauth_destination
smtpd_sasl_auth_enable :启用SMTP认证
smtpd_sasl_security_options = noanonymous:禁止匿名登录
mynetworks:控制可以通过本服务器外发邮件的网络地址或IP地址,设为127.0.0.1是为了确保Webmail系统可正常发送邮件
smtpd_recipient_restrictions:设置收件人地址过滤规则,其匹配策略是:“从上至下逐条检测,有匹配即停止”。其中:
permit_mynetworks:允许IP为mynetworks的客户使用本邮件系统寄出邮件
permit_sasl_authenticated:允许通过SMTP认证的用户向外发送邮件
reject_unauth_destination:当收件人地址不包括在Postfix的授权网络内时,将拒绝发送该邮件。Postfix的授权网络包括由以下配置参数指定的域及其子域:mydestination、inet_interfaces、virtual_alias_maps、virtual_mailbox_maps、relay_domian

3.测试带验证的SMTP发信功能

获得测试用帐号、密码的 BASE64 加密字串 通过 telnet 方式连接,并执行测试

[root@mail ~]# printf  "xiaoqi" | openssl  base64
eGlhb3Fp
[root@mail ~]# printf  "123456" | openssl  base64
MTIzNDU2
[root@localhost ~]# telnet mail.benet.com 25
Trying 173.17.17.11...
Connected to 173.17.17.11 (173.17.17.11).
Escape character is '^]'.
220 mail.benet.com ESMTP Postfix
EHLO localhost
……
250-AUTH PLAIN LOGIN
……
……
AUTH LOGIN
334 VXNlcm5hbWU6
eGlhb3Fp
334 UGFzc3dvcmQ6
MTIzNDU2                                
235 2.0.0 Authentication successful
MAIL FROM: [email protected]
……
  • 启用SMTP用户认证后,登陆时将不能再使用明文的密码;默认的加密编码算法为BASE64
  • 通过“openssl base64”命令可以对指定的字符串进行转换,以获得BASE64编码的加密字符串
  • telnet测试时,对于支持认证的发信服务器(ESMTP),可以使用“EHLO”来宣告客户机地址,而不是“HELO”
  • 在发信之前需要先进行登录,通过输入 AUTH LOGIN 命令声明进行SMTP认证
  • 然后分别输入用户名、密码的BASE64编码,如果有“235 2.0.0 Authentication successful”的提示信息,则说明认证成功

用户别名与邮件群组

  • aliases 别名机制
    • 一般使用 /etc/aliases 文件
    • aliases文件的记录格式
      • 别名: 地址1, 地址2, 地址3, ……
    • 执行newaliases命令,以更新别名设置
[root@localhost ~]# vi /etc/postfix/main.cf
……
alias_maps = hash:/etc/aliases
[root@mail ~]# vi /etc/aliases
……
student: zhangsan, lisi, mike, john
[root@mail ~]# newaliases
/etc/aliases: 78 aliases, longest 10 bytes, 802 bytes total
  • 用户别名是邮件系统中的一个重要功能,主要用来实现邮件群发功能,邮件用户别名的实现依赖于aliases机制
  • 查询表保存了关键字(key)和一组值(value)间的简单对应关系,为postfix服务提供各式各样的转换与查询
  • 包括:改写邮件地址、判断客户端是否来自授权网络、设定别名……

results matching ""

    No results matching ""