LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 4793|回复: 4

ldap 邮件架设全过程(postfix,devocot,SPF,DKIM Openldap)

[复制链接]
发表于 2009-3-20 10:36:03 | 显示全部楼层 |阅读模式
下面是我架设linux的邮件服务器的全过程,希望对大家有所帮助。
在linux下配置邮件服务器的文章很多,不过这些文章,你对着文档配置,经常会无法成功,不过你照文档去做,很可能不成功。
原因
1:可能是你的os版本不同,
2:软件的版本问题,
3:除非你的环境和文档是一样的。而且配置的过程,难免那个地方多一个点,少一个号,导致整个配置无法成功,排错的过程就更加麻烦。

使用开源的邮件,包括国外的邮件系统,webmail对中文支持都是不太好,尤其是中文附件,等等非常头疼应该如何如何选择。

还有一个头疼的事情,不同的文档,使用的组件都不一样,我们刚如何选择,sendmail,qmail,postfix,还有很多,在linux 邮件里,实现同一个功能,可能有不同的组件,这些组件如果搭配,整合。都是非常头疼。

如果你参考技术文档去配置,整个邮件系统用到的软件包,不下30多个。
目前iredmail通过脚本整合了一套开源的邮件系统,已经解决了几问题
1:中文的支持问题,
2:安装,通过脚本,可以保证你顺利完成
3:防病毒和垃圾邮件,通过开源的组件的整合,已经可以有效的防止病毒和阻挡垃圾邮件,反垃圾邮件效果在 90-95% 以上
4:根据开发者的经验,已经帮助你选择好所有的组件,

iRedMail 是针对 Red Hat(R) Enterprise Linux 和 CentOS 设计的邮件服务解决方案,是在操作系统安装好后使用的一套 shell 脚本,用于快速部署一套功能完善的邮件服务器解决方案。

   - 基于 GPL v2 版权发布。
   - 目前支持的操作系统:Red Hat(R) Enterprise Linux, CentOS。
   - 支持的操作系统版本:5.0, 5.1, 5.2, 5.3

* 项目首页:
http://www.iredmail.org/

* 下载地址:
http://code.google.com/p/iredmail/downloads/list

这套脚本配置出来的邮件服务器,是完全可以用到生产的环境下。


这是一个真实的测试环境。大家可以访问 mail.18demo.com
我下面所有的用户的密码都是: iredmail
大家可以使用
user:www
pass:iredmail
登录测试一下。这是可以正常收发邮件。


一:目标

建立邮件服务器 user@18demo.com
http://mail.18demo.com 是webmail的地址
smtp,pop 的地址是 mail.18demo.com
启用 SPF,DKIM 防垃圾的功能
实现全公司的通讯录
防病毒和防垃圾邮件效果好

二:方案

硬件:vps
这是从国外购买的vps,提供独立的ip,centos5的系统,国外的ip地址,比较便宜
IP:207.154.202.216

注册域名
由于SPF,DKIM 功能,需要进行dns设置,这就需要你注册dns的isp支持这样的功能。我这次选择新网。
18demo.com

软件:iredmail的ldap方案
iredmail是一套基于centos的邮件系统的安装脚本,可以让你在10分钟内完成邮件服务器的安装,事实上你需要做的东西,只需要1分钟,剩下的都是软件安装的时间。
iredmail有两种后台,mysql和ldap,由于我们需要全局通讯录的功能,所以我们采用ldap的方案。

三:DNS

设置DNS

A记录
mail.18demo.com        207.154.202.216
MX记录
18demo.com                 mail.18demo.com
SPF记录(txt记录)
18demo.com               v=spf1 ip4:207.154.202.216 -all


四:安装iredmail
iredmail的官方网站 www.iredmail.org
目前最新的版本的iredmail是0.4版本,已经非常稳定,
http://code.google.com/p/iredmail/

[root@srv ~]# cd /root
[root@srv ~]# wget http://iredmail.googlecode.com/files/iRedMail-0.4.0.tar.bz2
[root@srv ~]# tar jxvf iRedMail-0.4.0.tar.bz2
[root@srv ~]# cd iRedMail-0.4.0
[root@srv iRedMail-0.4.0]# cd pkgs/

运行脚本下载所有安装需要用到的软件包
[root@srv pkgs]# sh get_all.sh

看到上面的提示,就表示一切正常。这个时候,我们就可以开始安装

[root@srv pkgs]# cd ..
[root@srv iRedMail-0.4.0]# sh iRedMail.sh

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| 发表于 2009-3-20 10:37:02 | 显示全部楼层
设置虚拟主机

这个时候,你就可以通过 http://mail.18demo.com/mail 或者https://mail.18demo.com/mail

登录webmail
如果你希望通过http://mail.18demo.com 直接访问webmail,那么我们需要简单配置一下虚拟主机

[root@srv ~]# cd /etc/httpd/conf.d/
[root@srv conf.d]# ls
README                            awstats.users      phpmyadmin.conf     ssl.conf
awstats.conf                      php.conf           proxy_ajp.conf      welcome.conf
awstats.conf.2009.03.13_16.13.01  phpldapadmin.conf  roundcubemail.conf

[root@srv conf.d]# mv roundcubemail.conf roundcubemail.conf.save
[root@srv conf.d]# vi roundcubemail.conf

添加下面内容

<VirtualHost *:80>
ServerName srv.eddiechen.cn

DocumentRoot /var/www/roundcubemail-0.2-stable/
Alias /mail "/var/www/roundcubemail-0.2-stable/"
</VirtualHost>


[root@srv conf.d]# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]
[root@srv conf.d]#


DKIM 设置

dkim的设置,你必须装完系统后,登录你的linux服务器。获得dkim的值,再去设置DNS

[root@srv ~]# amavisd showkeys
; key#1, domain 18demo.com, /var/lib/dkim/18demo.com.pem
dkim._domainkey.18demo.com.     3600 TXT (
  "v=DKIM1; p="
  "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2ePHneE/SKD46IkxPDEODKLm8"
  "0eL0hdaImfneda38u+VwGG+A9Ao7aaENnNzSM/05j0IoJGZu6eSyCNoMx00Lek4Z"
  "ErGZOBINmHcXVLfQpaAsk3295h3b9a8l+SSFUcVZ/re/UfXENmSv5CvB+8Lc+0Pl"
  "0qC3d12FFzGMll0zHQIDAQAB")

整理后,

v=DKIM1;p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2ePHneE/SKD46IkxPDEODKLm80eL0hdaImfneda38u+VwGG+A9Ao7aaENnNzSM/05j0IoJGZu6eSyCNoMx00Lek4ZErGZOBINmHcXVLfQpaAsk3295h3b9a8l+SSFUcVZ/re/UfXENmSv5CvB+8Lc+0Pl0qC3d12FFzGMll0zHQIDAQAB

把上面的记录放到dnstxt记录里
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-20 10:38:56 | 显示全部楼层
各种组件的访问路径

webmail
http://mail.18demo.com

phpmyadmin
出于安全考虑,缺省是不能访问的,你需要修改一下

[root@srv ~]# cd /etc/httpd/conf.d/
[root@srv conf.d]# ls
README                            php.conf           roundcubemail.conf
awstats.conf                      phpldapadmin.conf  roundcubemail.conf.save
awstats.conf.2009.03.13_16.13.01  phpmyadmin.conf    ssl.conf
awstats.users                     proxy_ajp.conf     welcome.conf

[root@srv conf.d]# vi phpmyadmin.conf

25 #Alias /phpmyadmin "/var/www/phpMyAdmin-2.11.9.4-all-languages/"

把25行前面的#去掉。重新启动http后,你就可以访问


http://mail.18demo.com/phpmyadmin

awstats

http://mail.18demo.com/awstats/awstats.pl

登录需要用户名和密码
user: postmaster@18demo.com
pass:iredmail

我们已经把 awstats和openldap进行整合。比较酷啊

phpldapadmin
ldap管理用户,可以通过phpldapadmin进行管理。
不过缺省也是不能访问的,出于安全考虑。

vi phpldapadmin.conf
25 #Alias /phpldapadmin "/var/www/phpldapadmin-1.1.0.6/"

把前面的 #注释去掉就可以。
http://mail.18demo.com/phpldapadmin/
建议你用火狐来访问。用IE访问,好像有乱码。

登录的用户名
user:cn=manager,dc=18demo,dc=com
pass:iredmail


批量添加ldap的用户

你通过phpldapadmin,可以进行管理用户,不过如果用来添加用户,比较痛苦,iredmail提供批量添加用户的脚本。
/iRedMail-0.4.0/tools
目录下,有
create_mail_user_OpenLDAP.sh

不过你需要修改一下

64 LDAP_SUFFIX="dc=18demo,dc=com"

82 BINDPW="iredmail"

我应该就只是修改这两个地方。这个时候你就可以批量添加用户


[root@srv tools]# sh create_mail_user_OpenLDAP.sh 18demo.com test01 test02 test03
adding new entry "ou=Users,domainName=18demo.com,o=domains,dc=18demo,dc=com"
ldap_add: Already exists (6

adding new entry "ou=Groups,domainName=18demo.com,o=domains,dc=18demo,dc=com"
ldap_add: Already exists (6

adding new entry "mail=test01@18demo.com,ou=Users,domainName=18demo.com,o=domains,dc=18demo,dc=com"

adding new entry "mail=test02@18demo.com,ou=Users,domainName=18demo.com,o=domains,dc=18demo,dc=com"

adding new entry "mail=test03@18demo.com,ou=Users,domainName=18demo.com,o=domains,dc=18demo,dc=com"
回复 支持 反对

使用道具 举报

发表于 2009-3-20 22:14:36 | 显示全部楼层
不错的安装过程,有空我们研究一下把iredmail与extmail结合吧
回复 支持 反对

使用道具 举报

发表于 2009-3-26 16:12:19 | 显示全部楼层
正在安装,看起来挺适合我这个懒人的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表