postfix使用dovecot的sasl认证服务

我的服务器使用postfix搭建smtp服务,使用dovecot搭建imap服务。当初图方便,只给postfix配置了允许relay的域名(relay_domains),同时增加了黑白名单(smtpd_recipient_restrictions)。
大部分时间是没有问题的,然而最近发现日志多了很多relay记录(不是跟我自己相关的),明显是服务器被探测到了。看来,不得不把sasl服务配置上去。但是,在网上搜索了一圈,没有发现可以正确限制的配置。不得不去看官方文档:
http://www.postfix.org/SASL_README.html

这里先简单介绍一下sasl服务,协议的描述:
https://tools.ietf.org/html/rfc4422
sasl是简单的认证服务。说简单点,类似我们使用dovecot时,需要登录账号的功能。

postfix默认是不限制转发的,即任何连接的客户端,都可以通过服务器给任意用户发送邮件。这个对于友好的中转功能来说特别不错。因为通过这个功能,邮件可以转发到很远的地方。不过,对于现在的网络条件来说,作用已经不是很大,反而成了垃圾邮件的中转服务。
由于安全需要,我们可能会配置一些限制规则,就如我开始配置的允许域名和黑白名单。但是,这个规则无法很好阻止恶意的转发,毕竟转发对于我们而言也是需要的,不然我们的邮件都无法发给其它系统的用户。这时就需要一种更合理的限制规则。
postfix配置sasl服务,其实就是给限制规则(smtpd_recipient_restrictions)增加一种方式(permit_sasl_authenticated)。这个规则的策略是,只允许登录用户使用完整的转发功能(发送给本机用户不受这个条件约束)。这样用起来就安全得多,至少可以防止未认证用户使用我们服务器发送垃圾邮件。

上面的官方文档描述得很清楚,而且都有例子,所以我这里只介绍一下基本的配置。

#使用dovecot的sasl服务。默认使用cyrus,所以一定要配置这个选项!
smtpd_sasl_type = dovecot
#调用sasl服务的路径。支持文件句柄(适合在同一台机器)和请求接口(适合不同机器)
#dovecot开启sasl服务的在/etc/dovecot/conf.d/10-master.conf,里面有明显的注释,去掉就可以
smtpd_sasl_path = /var/spool/postfix/private/auth
#启用sasl服务,并配置一些属性。它们的作用,大家参考文档
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
#在转发限制规则里面,使用sasl服务
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination

这里补充一下dovecot的sasl配置,文件在/etc/dovecot/conf.d/10-master.conf。其实就是把“unix_listener /var/spool/postfix/private/auth”这段配置打开。这是使用文件句柄来提供sasl服务。

service auth {
  # auth_socket_path points to this userdb socket by default. It's typically
  # used by dovecot-lda, doveadm, possibly imap process, etc. Users that have
  # full permissions to this socket are able to get a list of all usernames and
  # get the results of everyone's userdb lookups.
  #
  # The default 0666 mode allows anyone to connect to the socket, but the
  # userdb lookups will succeed only if the userdb returns an "uid" field that
  # matches the caller process's UID. Also if caller's uid or gid matches the
  # socket's uid or gid the lookup succeeds. Anything else causes a failure.
  #
  # To give the caller full permissions to lookup all users, set the mode to
  # something else than 0666 and Dovecot lets the kernel enforce the
  # permissions (e.g. 0777 allows everyone full permissions).
  unix_listener auth-userdb {
    #mode = 0666
    #user = 
    #group = 
  }

  # Postfix smtp-auth
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
  }

  # Auth process is run as this user.
  #user = $default_internal_user
}

配置好上面内容后,重启postfix就可以生效。

这里再介绍关于使用telnet测试postfix功能的一些问题。
1、ehlo命令可以查看服务器状态,包括是否启用sasl,以及使用的认证类型。这样我们就可以通过auth命令进行认证。例如,dovecot使用plain认证,那么我们输入“auth plain”就可以进行plain认证。

2、plain认证的数据是怎样的呢?协议的描述:
https://tools.ietf.org/html/rfc2595
里面有完整描述plain的数据格式,即[authorize-id] NUL authenticate-id NUL password。
但是发送给postfix的数据不是直接使用上面数据,而是需要base64编码后再发送(数据格式错误时,会有这个提示的)。
例如,用户:tim,密码:tanstaaftanstaaf,认证发送的数据就是“<NUL>tim<NUL>tanstaaftanstaaf”,可以使用下面命令生成发送的字符串:

echo -en "\0tim\0tanstaaftanstaaf" | base64

最后,使用plain认证时,建议启用tls,避免明文直接在网络传输。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!要搭建PostfixDovecotSASL的邮件系统,您可以按照以下步骤进行操作: 1. 安装Postfix:首先,使用适合您的操作系统的包管理器安装Postfix。例如,在Debian/Ubuntu上,可以运行以下命令进行安装: ``` sudo apt-get install postfix ``` 2. 配置Postfix:在安装完成后,需要进行一些基本配置。主要包括设置邮件域名、配置发送和接收邮件的方式等。Postfix的配置文件位于`/etc/postfix/main.cf`。您可以根据您的需求编辑该文件。 3. 安装Dovecot使用包管理器安装Dovecot。在Debian/Ubuntu上,可以运行以下命令进行安装: ``` sudo apt-get install dovecot ``` 4. 配置DovecotDovecot的配置文件位于`/etc/dovecot/dovecot.conf`。您可以根据需要进行编辑,主要包括设置认证方式、邮箱存储方式等。 5. 安装SASL:SASL (Simple Authentication and Security Layer) 是用于认证的框架。安装SASL库和插件,以便PostfixDovecot可以使用它。在Debian/Ubuntu上,可以运行以下命令进行安装: ``` sudo apt-get install libsasl2-modules libsasl2-modules-sql sasl2-bin ``` 6. 配置SASL:SASL的配置文件位于`/etc/default/saslauthd`。您可以编辑该文件,配置认证机制和认证数据库等。 7. 配置数据库:如果您计划使用数据库进行用户认证,您需要设置相应的数据库,并将其与SASL和Dovecot进行配置。常用的数据库包括MySQL、PostgreSQL等。您可以根据选择的数据库进行相应的配置。 8. 启动服务:完成上述配置后,您可以启动PostfixDovecotSASL服务,并确保它们在系统启动时自动启动。在Debian/Ubuntu上,可以使用以下命令启动服务: ``` sudo systemctl start postfix sudo systemctl start dovecot sudo systemctl start saslauthd ``` 以上是搭建PostfixDovecotSASL邮件系统的基本步骤。请注意,这只是一个简单的指南,实际操作可能会根据您的需求和环境有所不同。建议您查阅相关文档和教程以获取更详细的指导。祝您搭建成功!如果您有更多问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值