虚拟邮件和Jabber服务器(xmpp)与iRedMail和Ejabberd在Ubuntu 9.10上
iRedMail是一个外壳脚本,可让您在不到2分钟内快速部署全功能邮件解决方案。 自iRedMail 0.5以来,它支持CentOS 5.x,Debian 5.x,Ubuntu 8.04,9.04和9.10(i386和x86_64)。 iRedMail支持OpenLDAP和MySQL作为后端用于存储虚拟域和用户。
本教程将向您介绍如何将Ubuntu 9.10中的Ejabberd集成到iremail的ldap后端,密码将存储在ldap中,您可以通过webmail更改密码。
本教程基于Ubuntu 9.10,所以建议设置一个最小的Ubuntu 9.10系统,安装iredmail 0.60并选择openldap作为后端,如这些教程所示:
- iRedMail:使用LDAP,Postfix,RoundCube / SquirrelMail,Dovecot,ClamAV,SpamAssassin,Amavisd(Debian 5.0.1)的邮件服务器
- iRedMail 0.6:使用OpenLDAP / Postfix / Dovecot / Amavisd / ClamAV / SpamAssassin / RoundCube / iRedAdmin的全功能邮件服务器
感谢yrjc2004的分享和帮助。
1安装Ejabberd
安装ejabberd:
apt-get install ejabberd
2找到cn = vmail密码
在iremail安装期间随机创建vmail密码。您可以在/etc/postfix/ldap_virtual_mailbox_domains.cf
中找到密码:
cat /etc/postfix/ldap_virtual_mailbox_domains.cf
bind_dn = cn=vmail,dc=example,dc=com bind_pw = KxR6AAj2EutXjhcRcK2AHPWCqiA3Ym #cn=vmail password |
3配置ejabberd
Ejabberd的配置文件用Erlang语法编写,这可能很难理解。 幸运的是,我们需要做出的修改是相对较小和直接的。 主ejabberd配置文件位于/etc/ejabberd/ejabberd.cfg
。 我们将依次涵盖每个相关选项。
在Erlang中,评论以%
符号开头。
编辑/etc/ejabberd/ejabberd.cfg
。
设置管理员和域名,现在我们将www@example.com
设置为admin。
%% Admin user {acl, admin, {user, "www", "example.com"}}. %% Hostname {hosts, ["example.com"]}.
注释行,Auth不使用内部。
%%{auth_method, internal}.
在底部添加以下内容。
%%% Authenticate against LDAP. {auth_method, ldap}. {ldap_servers, ["127.0.0.1"]}. %%% {ldap_encrypt, tls}. {ldap_port, 389}. {ldap_base, "o=domains,dc=example,dc=com"}. {ldap_rootdn, "cn=vmail,dc=example,dc=com"}. {ldap_password, "KxR6AAj2EutXjhcRcK2AHPWCqiA3Ym"}. #cn=vmail password %%% Enable both normal mail user and mail admin. {ldap_filter, "(&(objectClass=mailUser)(accountStatus=active)(enabledService=jabber))"}. {ldap_uids, [{"mail", "%u@%d"}]}.
启动ejabberd并检查状态:
# /etc/init.d/ejabberd start
Starting jabber server: ejabberd.
# ejabberdctl status
Node ejabberd@u910 is started. Status: started
ejabberd is running
4为邮件用户启用jabber服务
使用phpLDAPadmin或其他工具为现有邮件用户添加示例LDAP属性和值。
登录phpLDAPadmin:cn = manager,dc = example,dc = com
查找现有邮件用户www@example.com
:
为用户启用jabber服务www@example.com
:
5配置iptables
标准端口:
5222主客户端口5223过时的安全jabber端口
5269服务器到服务器端口
5280网管
vi /etc/default/iptables
# http/https, smtp/smtps, pop3/pop3s, imap/imaps, ssh -A INPUT -p tcp -m multiport --dport 80,443,25,465,110,995,143,993,587,465,22,5222,5223,5269,5280 -j ACCEPT # <-- Add 5222 5223 5269 5280 |
重新启动iptables服务:
/etc/init.d/iptables restart
6 Web Access管理控制台
现在您可以访问http://192.168.1.10:5280/admin/
以ejabberd web管理员身份登录; 我们将www@example.com
设置为ejabberd服务器的管理员:
这是登录后的方式:
检查虚拟主机用户:
您无法在webadmin中创建用户。 如果要创建用户,则首先需要将用户添加到iRedAdmin中,然后在phpldapadmin中为该用户启用jabber服务。
如果要添加第二个虚拟域,首先需要在iRedAdmin中创建一个新的域,然后修改/etc/ejabberd/ejabberd.cfg
。
%% Hostname {hosts, ["example.com","test.com"]}.