使用Postfix的虚拟主机,第二部分

版本1.0

作者: Joe Topjian <joe [at] adminspotting [dot] net>

本文将介绍最后一个停止的位置:如何实际检索我们存储在虚拟帐户中的电子邮件。 在第一篇文章中,我解释了我们如何使用第三种类型的Postfix虚拟主机,它使用单独的域和非unix帐户。 单独的域部分被覆盖得相当好。 现在是时候在非unix帐户上工作了。

有几种流行的技术可以使用诸如OpenLDAP或MySQL之类的服务,并将其与Courier IMAP进行混合。 我们不会使用任何这些。 相反,我们将使用更简单的东西:纯文本文件。 如果您有几百个电子邮件地址,我可以看到需要一个目录服务或数据库来帮助您保持理智和组织的会计。 另一方面,如果你正在运行一个中小型的电子邮件服务器,那么真的没有必要折腾几个内存密集型服务。 尖叫亵渎所有你想要的,这是我已经使用了多年,它一直在减轻,从来没有让我失望。

为了做到这一点,我们将使用Dovecot 。 如果你从来没有听说过,你现在就可以。 Dovecot是非常轻巧,灵活,从作者说的安全。 不幸的是,文档相当薄弱,但是如果您阅读网页,联机帮助页和配置文件,您应该能够通过。 如果您正在运行Debian Sarge或Sid,您可以安装Dovecot:

apt-get install dovecot-common dovecot-imapd dovecot-pop3d

我的dovecot.conf文件长达28行,看起来像这样:

01 base_dir = / var / run / dovecot /
02协议= imap pop3 imaps pop3s
03 ssl_disable = no
04 ssl_cert_file = /etc/ssl/server.crt
05 ssl_key_file = /etc/ssl/server.key
06 ssl_parameters_file = /var/run/dovecot/ssl-parameters.dat
07 ssl_parameters_regenerate = 24
08 log_path = / var / log / dovecot
09 info_log_path = /var/log/dovecot.info
10 login_dir = / var / run / dovecot / login
11 login_chroot = yes
12 login = imap
13 login_executable = / usr / lib / dovecot / imap-login
14 login_user = dovecot
15 login = pop3
16 login_executable = / usr / lib / dovecot / pop3-login
17 verbose_ssl = yes
18 valid_chroot_dirs = / var / spool / vmail
19 default_mail_env = maildir:/ var / spool / vmail /%d /%n
20 imap_executable = / usr / lib / dovecot / imap
21 pop3_executable = / usr / lib / dovecot / pop3
22 auth = default
23 auth_mechanisms = plain digest-md5
24 auth_userdb = passwd-file / etc / dovecot / users
25 auth_passdb = passwd-file / etc / dovecot / passwd
26 auth_executable = / usr / lib / dovecot / dovecot-auth
27 auth_user = root
28 auth_verbose = yes


大多数这是非常自明的,配置文件也提供了很多提示。基本上,我们将使用Dovecot来运行imap,pop3,imaps和pop3,并为虚拟主机添加一些支持。我们来帮助我们虚拟主机。

第19行特别有用。由于我们正在运行一个虚拟主机,所以区分一个用户和另一个用户的最简单的方法是让他们用他们的完整电子邮件地址登录。例如,当我设置我的邮件客户端时,我不会把“joe”放入用户名,我会把“joe@domain1.com”。 Dovecot用你的用户名进行一些猜测。如果它只是看到像“joe”这样的东西,它将一个名为%n的变量设置为“joe”。如果看到“joe@domain1.com”,它会将其拆分,并将%d设置为“domain1.com”,将%n设置为“joe”。如果我们替换第19行中的变量,我们得到如下结果:

maildir:/var/spool/vmail/domain1.com/joe


这正是我们在第一部分中设定的。好的,所以现在我们已经把用户带到了正确的邮件目录,现在我们还需要对它们进行身份验证。第23行告诉我们,我们要支持两种认证方式:plain和digest-md5。平原是每个客户在太阳下支持的,所以我们一起去。摘要部分不会伤害任何坐在那里的人,如果您的客户支持它,那么一定要使用它!

最后,在第24行和第25行,我们看到一个userdb文件和passdb文件。将它们视为第二个/ etc / passwd和/ etc / shadow文件。这些文件的格式如下所示:

userdb
joe@domain1.com :: 1000:1000 :: / var / spool / vmail / domain1.com /:/ bin / false ::


passdb
joe@domain1.com:$ 1 $ G / FqlOG5 $ Vj0xmc9fKY.UVr8OWr / 7C1


加密密码是“test”一词的MD5哈希值。 mkpasswd是生成MD5密码的一个很好的工具。 1000:1000对应于我们在第一部分中创建的“虚拟”用户的uid和gid。主目录包含电子邮件地址中@之前的所有内容。

这真的是所有的。确保您的/ var / spool / vmail目录由“虚拟”用户拥有,并启动Dovecot。您可以通过以下方式测试身份验证:

$ telnet domain1.com 110
试试192.168.1.2
已连接到domain1.com
转义字符为'^]。
+ OK dovecot准备好了。
user joe@domain1.com
+好的
通过测试
+确认登录。


如果你得到这个决赛+ OK,你已经准备好了。

由于在Dovecot中添加SSL支持(IMAP和POP3)非常简单,我强烈建议您这样做。如果您已经拥有HTTP服务器的自签名证书,那么可以使用完全相同的证书给Dovecot。如果您没有自签名证书,google搜索说明如何。这样做太容易了。

这只是关于虚拟主机和Postfix。我会承认,使用Dovecot和纯文本文件与以前读过的有点不同,但给它一个机会,简单性应该在你身上增长。你也可以看看这个,并想知道为什么在世界上你想要创建一个用户帐户(使目录,将用户添加到vmaps文件,将用户添加到passdb和userdb文件等)等等)。记住,脚本是重复任务的最终解决方案。 Perl,Python,以及这个设置的简单shell工作奇迹。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏