开发者社区> 技术小阿哥> 正文

postfix+dovecot+MailScanner+spamassassin+F-Prot+extmail+extman构建企业级的虚拟用户邮件服务器(1)

简介:
+关注继续查看

注意:先要构建一个LAMP环境,然后再按照下面的配置来做

一.     配置虚拟用户支持 —— MySQL
1.     新建虚拟用户数据库
 tar zxvf extman-0.2.5.tar.gz
 cd extman-0.2.5/docs
 /usr/local/mysql/bin/mysql -u root -p < extmail.sql
/usr/local/mysql/bin/mysql -u root -p < init.sql
2.     编辑vi /etc/postfix/main.cf
……
#mydestination = $mydomain, $myhostname 注释掉该行
然后添加如下内容
virtual_mailbox_base = /mailbox
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_uid_maps = static:1000
virtual_gid_maps = static:1000
3.     建立虚拟用户映射表文件
复制 extman 软件包中docs子目录下的样例文件
进入 /usr/src/extman-0.2.5/docs
cp mysql_virtual_* /etc/postfix
二.     配置虚拟用户支持 —— SMTP认证
1. 编译安装 courier-authlib 软件
解压软件包,进入相应目录,然后开始安装
./configure --prefix=/usr/local/courier-authlib --without-stdheaderdir --with-authmysql --with-mysql-libs=/usr/local/mysql/lib/mysql --with-mysql-includes=/usr/local/mysql/include/mysql&&make&&make install (安装大约需要6分钟)
然后执行“make install-configure”命令后将生成默认配置文件“authmysqlrc”和“authdaemonrc”,作用分别为
pauthdaemonrc:主配置,设置使用的认证方式
p authmysqlrc:数据库配置,设置连接地址、查询方式等
2. 修改主配置,authdaemonrc文件
cd   /usr/local/courier-authlib/etc/authlib/
编辑authdaemonrc文件,建议只保留 authmysql 认证方式—认证速度快,修改下面两行
……
authmodulelist="authmysql"      27
authmodulelistorig="authmysql"   34
3. 修改数据库配置,authmysqlrc文件
      编辑 authmysqlrc
MYSQL_SERVER localhost   mysql服务器位置    26
MYSQL_USERNAME   extmail  mysql登陆用户名 27
MYSQL_PASSWORD   extmail  mysql登陆密码    28
MYSQL_SOCKET   /tmp/mysql.sock   sock文件位置 49(去掉#)
MYSQL_DATABASE   extmail        mysql数据库名字 68
MYSQL_USER_TABLE   mailbox   mysql用户邮箱存储的表的名字83
……
MYSQL_HOME_FIELD concat('/mailbox/',homedir) 用户的宿主目录完整路径 133
……
MYSQL_MAILDIR_FIELD concat('/mailbox/',maildir)用户的完整邮件存储路径 150 同时去掉前面#
4. 其他调整
1)修改smtpd.conf 配置文件 改为通过 authdaemond 进行认证
vi /usr/lib/sasl2/smtpd.conf
pwcheck_method: authdaemond
authdaemond_path: /usr/local/courier-authlib/var/spool/authdaemon/socket
2)调整socket目录权限
chmod  -R 755 /usr/local/courier-authlib/var/spool/authdaemon
3)添加库文件搜索路径
    vi /etc/ld.so.conf
……
/usr/local/courier-authlib/lib/courier-authlib
ldconfig
5. 启动 counrier-authlib 服务程序
cp /usr/src/courier-authlib-0.62.2/courier-authlib.sysvinit /etc/init.d/courier-authlib
chmod 755 /etc/init.d/courier-authlib
service courier-authlib start
三.     配置虚拟用户支持 —— dovecot
1. 调整 dovecot.conf 配置文件
   vi /etc/dovecot.conf
mail_location = maildir:/mailbox/%d/%n/Maildir 修改邮箱存储位置212
……
auth default {          796 不动
    mechanisms = plain 801 不动
    passdb sql {        905 去掉#
        args = /etc/dovecot-mysql.conf 用户名及密码查询在独立的配置文件中指定            907
    }                 908 #去掉
    userdb sql {         976 #去掉
        args = /etc/dovecot-mysql.conf 978
}                  979 #去掉
2. 创建数据查询配置文件
vi /etc/dovecot-mysql.conf                
driver = mysql
connect = host=localhost dbname=extmail user=extmail password=extmail
default_pass_scheme = CRYPT
password_query = SELECT username AS user,password AS password FROM mailbox WHERE username = '%u' 
user_query = SELECT maildir, uidnumber AS uid, gidnumber AS gid FROM mailbox WHERE username = '%u'
3. 建立邮箱目录,并调整权限
mkdir -p /mailbox/extmail.org/postmaster/Maildir
chown -R postfix:postfix /mailbox
4. 重新启动dovecot服务
kill `pgrep  dovecot` ; dovecot (killall dovecot)
四.     部署Extmail邮件使用界面
1. 编译安装相关的perl依赖包,三个包的安装几乎一样
Unix-Syslog-1.1.tar.gz
DBI-1.609.tar.gz
DBD-mysql-4.013.tar.gz
比如第一个先解压;perl Makefile.PLmakemake install
但第三个包注意:perl Makefile.PL --libs="-L/usr/local/mysql/lib/mysql -lmysqlclient -lz" --cflags=-I/usr/local/mysql/include/mysql ;make;make install
2. 安装 extmail 程序套件
tar xzvf extmail-1\[1\]\[1\].0.9.tar.gz -C /usr/local/apache2/htdocs/
cd   /usr/local/apache2/htdocs
mv extmail-1.0.9 extmail
cd extmail
cp webmail.cf.default  webmail.cf
编辑webmail.cf
SYS_CONFIG = /usr/local/apache2/htdocs/extmail/
SYS_LANGDIR = /usr/local/apache2/htdocs/extmail/lang
SYS_TEMPLDIR = /usr/local/apache2/htdocs/extmail/html
SYS_MAILDIR_BASE = /mailbox            124
SYS_MYSQL_USER = extmail               136
SYS_MYSQL_PASS = extmail
SYS_MYSQL_DB = extmail                     
SYS_MYSQL_HOST = localhost
SYS_MYSQL_SOCKET = /tmp/mysql.sock    140
4.     调整httpd.conf配置,
1)         更改允许apache的用户和组
User postfix     66
Group postfix   67
2)         添加如下内容
   <VirtualHost 192.168.1.1>
    ServerName 192.168.1.1
    DocumentRoot /usr/local/apache2/htdocs/extmail/html/
    ScriptAlias /extmail/cgi/ /usr/local/apache2/htdocs/extmail/cgi/
    Alias /extmail /usr/local/apache2/htdocs/extmail/html/
</VirtualHost>
重启apache,然后用浏览器访问http://192.168.1.1/extmail
 

邮箱账号:postmaster 密码:extmail 域名:extmail.org
五.     部署Extman Web管理界面
1. 编译安装相关的依赖包
GD-2.41.tar.gz
File-Tail-0.99.3.tar.gz
rrdtool-1.2.23-3.el5.i386.rpm
rrdtool-perl-1.2.23-3.el5.i386.rpm
解压GD; perl  Makefile.PL;make;make install
解压File-Tail; perl  Makefile.PL;make;make install
rpm -vih /usr/src/rrdtool-perl-1.4.1-1.el5.wrl.i386.rpm /usr/src/rrdtool-1.4.1-1.el5.wrl.i386.rpm


本文转自 gehailong 51CTO博客,原文链接:http://blog.51cto.com/gehailong/496255,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【Android 逆向】Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用 | 使用 Makefile 构建 Android 平台 NDK 应用 )(二)
【Android 逆向】Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用 | 使用 Makefile 构建 Android 平台 NDK 应用 )(二)
27 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
30363 0
未能初始化 PassportManager 对象。请确保在服务器上正确安装了 Microsoft Passport。
未能初始化 PassportManager 对象。请确保在服务器上正确安装了 Microsoft Passport。 已经不记得 Microsoft Passport 怎么使用了,也没有查到 Microsoft Passport 的安装方法。
891 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
21322 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
23639 0
阿里云城市服务商分享怎么使用DTS迁移PPAS数据
使用数据传输服务(DTS)将本地数据库迁移到 RDS for PPAS,可以实现应用不停服务的情况下,平滑完成数据库的迁移工作。迁移过程中,对本地的 Oracle 数据库没有影响。那么如何操作呢,湖北区域阿里云城市服务商捷讯技术告诉您怎么使用怎么使用DTS迁移PPAS数据
1528 0
13689
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载