虚拟用户和域与Postfix,Courier和MySQL(+ SMTP-AUTH,配额,SpamAssassin,ClamAV)

这是一个“复制和粘贴” HowTo! 遵循本教程的最简单的方法是使用命令行客户端/ SSH客户端(如PuTTY for Windows),并简单地复制和粘贴命令(除了必须提供自己的信息,如IP地址,主机名,密码... )。 这有助于避免打字错误。

虚拟用户和域使用Postfix,Courier和MySQL(+ SMTP-AUTH,配额,SpamAssassin,ClamAV)

版本1.0
作者:Falko Timme

本教程由Falko Timme提供的版权所有(c)2005。 它来自Christoph Haas的教程,您可以在http://workaround.org找到。 您可以根据知识共享许可2.5或更高版本免费使用本教程。

本文档介绍如何安装基于Postfix的邮件服务器,该邮件服务器基于虚拟用户和域,即MySQL数据库中的用户和域。 我还将展示Courier(Courier-POP3,Courier-IMAP)的安装和配置,以便Courier可以对Postfix使用的相同的MySQL数据库进行身份验证。

所得到的Postfix服务器能够使用SMTP-AUTHTLS配额 (默认情况下,配额不会内置到Postfix中),我将显示如何适当修补Postfix。 密码以加密形式存储在数据库中(我发现大多数文档都是处理明文密码,这是一个安全隐患)。 除此之外,本教程还介绍了AmavisdSpamAssassinClamAV的安装 ,以便电子邮件扫描垃圾邮件和病毒。

这种“虚拟”设置(MySQL数据库中的虚拟用户和域)的优点是,它比基于“真实”系统用户的设置性能要好得多。 通过此虚拟设置,您的邮件服务器可以处理数千个域和用户。 此外,更容易管理,因为您只需在添加新用户/域或编辑现有的MySQL数据库时处理MySQL数据库。 没有更多的postmap命令来创建数据库文件,不需要再重新加载Postfix等。对于MySQL数据库的管理,您可以使用基于Web的工具,如phpMyAdmin ,它也将安装在这个howto中。 第三个优点是用户使用电子邮件地址作为用户名(而不是用户名+电子邮件地址),这更容易理解和记住。

本教程基于Debian Sarge (Debian 3.1)。 您应该已经设置了一个基本的Debian系统,如下所述: http : //www.youcl.com/perfect_setup_debian_sarge和 。

这是一个实践指南; 它不包括理论背景。 他们在网络上的许多其他文档中被处理。

本文档不附带任何形式的保证! 我想说,这不是设立这样一个制度的唯一办法。 实现这一目标有很多方法,但这是我所采取的方式。 我不会保证这将为您工作!

1安装Postfix,Courier,Saslauthd,MySQL,phpMyAdmin

这一切都可以通过一个命令安装:

apt-get install postfix postfix-mysql postfix-doc mysql-client mysql-server courier-authdaemon courier-authmysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl postfix-tls libsasl2 libsasl2-modules libsasl2-modules- sql sasl2-bin libpam-mysql openssl phpmyadmin (1行!)

你会被问到几个问题:

启用suExec? < - 是的
创建基于Web的管理目录? < - 不
一般配置类型? < - 互联网网站
邮件应该在哪里去? < - 无
邮件名称? < - server1.example.com
其他目的地接受邮件? (空白为无)< - server1.example.com,localhost,localhost.localdomain
在邮件队列上强制同步更新? < - 不
需要SSL证书< - 好的
安装提示< - 好的
您要自动重新配置哪个Web服务器? < - apache,apache2
你要我现在重新启动apache吗? < - 是的

2应用配额补丁到Postfix

我们必须得到Postfix源代码,使用配额补丁进行修补,构建新的Postfix .deb包并安装这些.deb包:

apt-get install build-essential dpkg-dev fakeroot debhelper libdb4.2-dev libgdbm-dev libldap2-dev libpcre3-dev libmysqlclient10-dev libssl-dev libsasl2-dev postgresql-dev po-debconf dpatch (1行!)
cd / usr / src
apt-get source postfix
wget http://web.onda.com.br/nadal/postfix/VDA/postfix-2.1.5-trash.patch.gz
gunzip postfix-2.1.5-trash.patch.gz
cd postfix-2.1.5
patch -p1 <../postfix-2.1.5-trash.patch
dpkg-buildpackage
cd ..
dpkg -i postfix_2.1.5-9_i386.deb
dpkg -i postfix-mysql_2.1.5-9_i386.deb
dpkg -i postfix-tls_2.1.5-9_i386.deb

3为Postfix / Courier创建MySQL数据库

默认情况下,MySQL安装时没有root密码,我们立即更改(将yourrootsql密码替换为要使用的密码):

mysqladmin -u root password yourrootsqlpassword

现在我们创建一个名为mail的数据库:

mysqladmin -u root -p创建邮件

接下来,我们去MySQL shell:

mysql -u root -p

在MySQL shell上,我们用邮件数据库中具有SELECT ,INSERT,UPDATE,DELETE权限的passwort mail_admin_password (替换为自己的密码)创建用户mail_admin 该用户将被Postfix和Courier用于连接到邮件数据库:

GRANT SELECT,INSERT,UPDATE,DELETE ON mail。* TO'mail_admin'@'localhost'IDENTIFIED BY'mail_admin_password';
GRANT SELECT,INSERT,UPDATE,DELETE ON mail。* TO'mail_admin'@'localhost.localdomain'IDENTIFIED BY'mail_admin_password';
FLUSH特权

仍然在MySQL shell上,我们创建Postfix和Courier需要的表:

使用邮件;

CREATE TABLE域(
域varchar(50)NOT NULL,
主键(域))
TYPE = MyISAM;

CREATE TABLE前进(
源varchar(80)NOT NULL,
目的地TEXT NOT NULL,
PRIMARY KEY(源))
TYPE = MyISAM;

CREATE TABLE用户(
电子邮件varchar(80)NOT NULL,
password varchar(20)NOT NULL,
配额INT(10)DEFAULT'10485760',
主键(电子邮件)
)TYPE = MyISAM;

CREATE TABLE传输(
域varchar(128)NOT NULL default'',
传输varchar(128)NOT NULL default'',
独特的关键域(域)
)TYPE = MyISAM;

放弃;

你可能已经注意到,随着戒烟; 命令我们已经离开了MySQL shell,并回到了Linux shell。

表将存储Postfix应接收(例如example.com )的电子邮件的每个虚拟域。

example.com

发表用于将一个电子邮件地址别名,例如将info@example.com的电子邮件转发sales@example.com

资源 目的地
info@example.com sales@example.com

用户表存储所有虚拟用户(即电子邮件地址,因为邮件地址和用户名相同)和密码( 加密形式!)和每个邮箱的配额值(在本示例中,默认值为 10485760 字节,这意味着10MB)。

电子邮件 密码 配额
sales@example.com No.4E4skNvGa (加密形式的“秘密”) 10485760

运输表是可选的,适用于高级用户。 它允许将单个用户,整个域或所有邮件的邮件转发到另一个服务器。 例如,

运输
example.com smtp:[1.2.3.4]

将通过smtp协议将所有em.com的电子邮件转发到IP地址为1.2.3.4的服务器(方括号[]表示“不查找MX DNS记录”)(这对IP地址有意义。 。)如果您使用完全限定域名(FQDN),则不要使用方括号。

BTW,(我建议您的邮件服务器系统的IP地址为192.168.0.100 ),您可以通过http://192.168.0.100/phpmyadmin/在浏览器中访问phpMyAdmin并以mail_admin身份登录。 那么你可以看看数据库。 以后可以使用phpMyAdmin管理邮件服务器。

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

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

支付宝扫一扫打赏

微信扫一扫打赏