个人工具
登录
查看“IRedMail”的源代码 - Ubuntu中文
页面
讨论
查看源代码
历史
搜索
导航
首页
最近更改
随机页面
页面分类
帮助
编辑
编辑指南
沙盒
新闻动态
字词处理
工具
链入页面
相关更改
特殊页面
页面信息
查看“IRedMail”的源代码
来自Ubuntu中文
←
IRedMail
跳转至:
导航
,
搜索
因为以下原因,你没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
==iRedmail 组件== iRedMail主要是使用下面软件来构建邮件系统。 *Apache 2.2.x *PHP 5.2.x *MySQL 5.0.x *OpenLDAP 2.4.x *Postfix 2.5.x ( MTA ) *Dovecot 1.1.x *Amavisd 2.6.x *ClamAV 0.9x *SpamAssassi 3.2.x *Policyd 1.8.x *Pysieved 1.0 *Roundcube 0.2.1 (Webmail ) *PostfixAdmin 2.2.x *phpMyAdmin 2.11.9.x *phpLDAPadmin 1.1.6.x *Awstats 6.9 组件的工作原理 amavisd-new 在这里的作用主要是: *负责调用 ClamAV 对邮件进行病毒扫描 *负责调用 SpamAssassin 对邮件内容进行过滤 *实现 DKIM 签名和验证功能,还有实现免责声明的功能。 [[Image:Iredmail60.png]] Postfix组件 [[Image:Iredmail37.png]] 全部的组件 (图片来源 http://workaround.org/ispmail/lenny/bigpicture ) [[Image:Iredmail61.png]] 1: 当邮件发送到服务器的25端口,postfix接受连接,它会做一些基本检查 *发送者是否在黑名单或者实时黑名单,如果在黑名单,马上拒绝 *是否是授权用户,可以进行转发 *接收者是否是服务器的用户,如果不是,马上拒绝 *如果我们启用的灰名单,那么会拒绝邮件或者接收 2:postfix 把邮件通过10024端口交给amavis来处理,注意amavis,只会检查邮件而不会丢弃或者拒绝邮件。 3:amavis调用SpamAssassin检查邮件是否是spam,如果SpamAssassin认为邮件是垃圾邮件,会给邮件打上标记spam 4:amavis调用ClamAV,看邮件是否含有病毒 5:amavis把检查完的邮件,通过10025端口重新把邮件交回给postfix 6:postfix把邮件交给Dovecot,邮件会进入用户的邮箱,Dovecot会执行用户设置的filter,也就是Dovecot通过调用Sieve,放到相关的文件夹 7:Dovecot 把邮件以maildir的方式存放在硬盘上。 8: 用户使用邮件客户端,通过pop3或imap协议进行连接。webmail RoundCube,是通过imap的方式来读取邮件。 ==组件的选择,比较== linux下,对于开源软件来说,没有所谓像windows一样的邮件系统,你可以选择不同的组件,组成一个邮件系统,对于邮件来说,要实现一个功能,可能有多种组件,到底哪个最好,不同的组件间的如何搭配,的组合,是一件非常头疼的事情。 网上的文档,组合也是非常多样,到底哪种是最好或者更优?一般的管理员很难判断。下面就是iRedMail选择组件的理由。 ===Postfix=== linux比较有名的4大MTA *sendmail *qmail *Exim *Postfix 对于一般的用户,任何一个MTA,都是可以满足你功能上的需求。 ====Sendmail==== 历史悠久,不过他的配置,无比复杂,main.cf 文件,是公认天书。现在如果你是新建邮件服务器,基本是没有人会考虑用这个。也很少人愿意花时间去熟悉sendmail。现在使用sendmail,基本都是历史原因。 ==iRedMail 简介== iRedMail 是一套基于 GPL 发布的 Shell 脚本,目的是全自动安装和配置邮件服务所需要的组件,以减轻系统管理员的负担。它提供了一个基本的命令行下的用户交互界面(使用 dialog 程序实现),用户只需要简单地选择他所希望使用的组件,就可以在几分钟内(少于 3 分钟)部署好一台功能强大的邮件服务器。 iRedmail 使用到的邮件相关的软件包,都是采用发行版提供的软件包。 *iRedMail 官方中文支持论坛 http://www.iredmail.org/bbs * 代码下载 http://code.google.com/iredmail == 安装需求 == iRedMail 目前支持以下Ubuntu版本: {| cellspacing="0" border="1" |- | OS | Version | Platform | iRedMail Version |- | Ubuntu (Karmic, 9.10) | 9.10 | i386, amd64 | >= 0.5.0 |- | Ubuntu (Jaunty, 9.04) | 9.04 | i386, amd64 | >= 0.5.0 |- | Ubuntu (Hardy, 8.04 LTS) | 8.04 TLS | i386, amd64 | >= 0.5.0 |} *生产中部署至少需要512MB 内存. [http://www.debian.org/CD/http-ftp/ Downloading Ubuntu CD/DVD images via HTTP/FTP] == 准备 == === Hostname === 这里说的 hostname 是指使用 'hostname -f' 命令打印出来的系统主机名,例如: $ hostname -f mail.example.com 不管您的 Linux 系统是否作为公网服务器,我们都强烈建议您设置一个合适的主机名。 在 Ubuntu 系统中,主机名的设置涉及到两个文件: # /etc/hostname: hostname 设置 # /etc/hosts: hostname <=> IP 地址对应 用你熟悉的编辑器编辑 /etc/hostname 文件 $cat /etc/hostname mail 编辑 / /etc/hosts 文件 $cat /etc/hosts 127.0.0.1 mail.example.com mail localhost localhost.localdomain 检查FQDN Name设置, Hostname的修改,必须重新启动机器才能生效 # hostname -f mail.example.com ===设置源=== 使用稳定的版本,需要'main' 和 'universe' , 使用安装系统的时候ubuntu缺省的源,也是没有问题的。 如果觉得163速度慢,大家可以直接换成sohu,就可以使用。 *对于 Ubuntu 8.04 LTS (Hardy). 需要为iredmail添加 launchpad PPA <pre> $ cat /etc/apt/source.list deb http://mirrors.sohu.com/ubuntu hardy main universe deb http://mirrors.sohu.com/ubuntu hardy-updates main universe deb http://mirrors.sohu.com/ubuntu hardy-security main universe deb http://ppa.launchpad.net/iredmail/8.04/ubuntu hardy main </pre> 导入 PPA的 gpg key <pre> # apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xd9226c1a29511386b3b9f8bc8dc2c190ddf700d3 </pre> *对于 Ubuntu 9.04 (Jaunty) <pre> $ cat /etc/apt/source.list deb http://mirrors.sohu.com/ubuntu jaunty main universe deb http://mirrors.sohu.com/ubuntu jaunty-updates main universe deb http://mirrors.sohu.com/ubuntu jaunty-security main universe </pre> *对于 Ubuntu 9.10 (Karmic) <pre> $ cat /etc/apt/source.list deb http://mirrors.sohu.com/ubuntu karmic main universe deb http://mirrors.sohu.com/ubuntu karmic-updates main universe deb http://mirrors.sohu.com/ubuntu karmic-security main universe </pre> *修改源后,都需要刷新列表: # apt-get update ==开始安装iredmail== * 切换到root用户 # sudo su - * 下载最新版本的iredmail,解压 <pre> #wget http://iredmail.googlecode.com/files/iRedMail-0.5.1.tar.bz2 #tar jxvf iRedMail-0.5.1.tar.bz2 </pre> *下载邮件相关的软件包,并会自动在目录下创建一个本地的apt 源 <pre> #cd iRedMail-0.5.1/pkgs/ #bash get_all.sh </pre> *可以开始执行主脚本,它会调用 'dialog' 程序引导用户配置邮件服务器 <pre> # cd .. # bash iRedMail.sh </pre> *iRedMail 安装进程的欢迎页面 [[Image:Iredmail01.png]] *选择用于存储所有邮件的目录(注意:由于所有邮件都将存储在这个目录,所以这个目录需要占用较多的磁盘空间) [[Image:Iredmail02.png]] ===LDAP=== [[ldap图解|ldap图解]] ===MYSQL=== [[mysql安装图解|mysql安装图解]] ==使用iredmail== 安装完成后,一定要仔细阅读iredmail.tip,里面包括设置信息和帐号,下面各个应用的访问路径。这个是本安装的范例 (http://code.google.com/p/iredmail/source/browse/extra/iRedMail.tips ) * mysql 存储虚拟用户和domain 我们通过postfixadmin 进行邮件domain,用户管理 * mysql 管理,可以通过phpmyadmin管理 * LDAP 存储虚拟用户和domain,我们通过iRedAdmin进行邮件邮件domain,用户管理 * LDAP 的管理,可以通过phpldapadmin管理 ===webmail RoundCube=== *可以使用http://your_server/mail/ (or /webmail, /roundcube)访问webmail (注意,postmaster不是邮箱用户,不能登陆) [[Image:Iredmail18.png]] *由于www@example.com是root的alias,所以会受到系统发的邮件,请细心阅读这两封邮件,iredmail.tip 包含所有的邮件设置的相关信息。 [[Image:Iredmail19.png]] * 设置假期外出,需要新建过滤器 [[Image:Iredmail20.png]] * 全局地址簿 (LDAP) [[Image:Iredmail21.png]] ===iRedAdmin=== iRedAdmin 是iredmail官方开发邮件后台管理,目前可以管理ldap 版本,mysql的版本正在开发中。 大家也可以通过iredmail官方提供的demo (http://www.iredmail.org/admin_demo.html ) 深入了解iredadmin * 登录iRedAdmin 可以使用https://your_server/iredadmin 访问iredadmin (注意是 https ) [[Image:Iredmail22.png]] * 修改语言 [[Image:Iredmail23.png]] *控制台 [[Image:Iredmail24.png]] *域名管理 [[Image:Iredmail25.png]] * 添加domain [[Image:Iredmail28.png]] *用户管理,添加用户 [[Image:Iredmail26.png]] *管理员管理 添加管理员 [[Image:Iredmail27.png]] ===phpLDAPAdmin === 可以使用https://your_server/ldap 访问iredadmin (注意是 https ) *登录phpLDAPAdmin [[Image:Iredmail29.png]] *查看ldap [[Image:Iredmail30.png]] ===Awstats === 可以使用https://your_server/awstats/awstats.pl 访问Awstats (注意是 https ) *登录Awstats [[Image:Iredmail31.png]] * 如果希望查看邮件的流量,你需要修改你的链接,(https://your_server/awstats/awstats.pl?config=mail ) 在上面链接加上 ?config=mail [[Image:Iredmail32.png]] ===phpMyAdmin === 可以使用https://your_server/phpmyadmin 访问phpMyAdmin (注意是 https ) ===PostfixAdmin=== 如果你选择mysql来存储虚拟用户和domain,那么PostfixAdmin来管理用户和domain,使用https://your_server/postfixadmin 访问phpMyAdmin (注意是 https ) *登录PostfixAdmin [[Image:Iredmail33.png]] * 可以利用PostfixAdmin 添加,删除,管理 domain和用户 [[Image:Iredmail34.png]] ==DNS== DNS记录,需要你到你的域名托管商那里进行设置或者你自己管理DNS服务器。不少域名托管商不支持txt记录或者不支持DKIM记录,所以你就无法使用SPF和DKIM的功能。 DNS的修改,需要48小时以上才能生效。 国内的万网是不支持DKIM,目前新网是支持SPF和DKIM ===MX记录=== 邮件的MX记录最好是指向机器A记录,尽量不要直接指向IP地址(不符合规范)。 * 添加A记录 mail.example.com 192.168.1.100 * 添加MX记录 example.com mail.example.com ===SPF记录=== *SPF 记录指向A主机记录 <pre> example.com. 3600 IN TXT "v=spf1 mx mx:mail.example.com -all" </pre> *SPF 记录指向IP地址 <pre> example.com. 3600 IN TXT "v=spf1 ip4:192.168.1.100 -all" </pre> ===DKIM记录=== 可以通过iredmail.tips 获得域名的DKIM,也可以在命令行下输入 <pre> # amavisd-new showkeys ; key#1, domain example.com, /var/lib/dkim/example.com.pem dkim._domainkey.example.com. 3600 TXT ( "v=DKIM1; p=" "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDGNVMuQRKqYeySIzqTGTm3xRzF" "/ZzhmMnpZkEcVVjFAk+t7E388oFGu/knyh6KBKwpZxHUN5HoOYVjMudqaR2FcSvK" "z+joFj8Vh3rXoTLa1zHDyfD7hICzxdEgmQZ8MJM5rjPPrRGZXnPowNYDsd6nDJ86" "N38iFYU+jALBYDLBwQIDAQAB") </pre> 把上面记录添加到ISP的DNS记录 <pre> dkim._domainkey.example.com. v=DKIM1; p=MIGfMA0....(省略)DLBwQIDAQAB </pre> [[Image:Iredmail35.png]] 添加完DNS记录后,如果记录生效,可以通过运行命令检测 <pre> # amavisd-new testkeys TESTING: dkim._domainkey.example.com => pass </pre> ==检查DNS设置== 下面有几种方法,可以帮助你检测DNS是否设置生效和正常工作 ===windows nslookup=== <pre> C:\>nslookup Default Server: unknown Address: 192.168.1.1 > server 4.2.2.1 Default Server: vnsc-pri.sys.gtei.net Address: 4.2.2.1 > set type=mx > example.com Server: vnsc-pri.sys.gtei.net Address: 4.2.2.1 Non-authoritative answer: example.com MX preference = 20, mail exchanger = mail.example.com > set type=txt > example.com Server: vnsc-pri.sys.gtei.net Address: 4.2.2.1 Non-authoritative answer: example.com text = "v=spf1 ip4:192.168.1.100 -all" > dkim._domainkey.example.com Server: vnsc-pri.sys.gtei.net Address: 4.2.2.1 Non-authoritative answer: dkim._domainkey.example.com text = "v=DKIM1; p= MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCsgZaIvYHAos2jbp3CHW0 AwrTnAEwV1p4EaZP/JuF8t1BETBVg6WJr3YWN5ijCpi9vnw96nmf/u5MgtbLwZ+AzDBkbOY7Jbb/hIO+ mpmmfdJAY3w8KoXLCuQKDysXOys45YtfJEj66s51EHH3W+iXPYw3I/NWHjY3a5/mXnk4XJQIDAQAB" </pre> ===linux dig=== 如果你的机器没有dig命令,你需要安装 <pre> apt-get install dnsutils </pre> 这个时候,就可以使用dig命令 * MX记录 <pre> # host exmple.com example.com has address 192.168.1.100 example.com mail is handled by 10 mail.example.com. </pre> * SPF记录 <pre> # dig txt hotmail.com ; <<>> DiG 9.4.2-P2 <<>> txt hotmail.com ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43130 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;hotmail.com. IN TXT ;; ANSWER SECTION: hotmail.com. 3600 IN TXT "v=spf1 include:spf-a.hotmail.com include:spf-b.hotmail.com include:spf-c.hotmail.com include:spf-d.hotmail.com ~all" ;; Query time: 176 msec ;; SERVER: 64.71.161.8#53(64.71.161.8) ;; WHEN: Sat Dec 5 08:43:51 2009 ;; MSG SIZE rcvd: 157 </pre> * DKIM记录 <pre> #dig txt dkim._domainkey.example.com </pre> ===web工具=== *检测MX记录 http://zmailer.org/mxverify.html *检测SPF记录 http://www.openspf.org/ *测试spf和dkim记录 http://www.brandonchecketts.com/emailtest.php 网页里有一个邮箱地址,你可以通过安装过程中创建的第一个用户www,发送邮件给这个测试邮箱,你就可以马上看到结果 *发邮件到gmail 查看发送过去的邮件的源码, 如果显示 dkim=pass 和 SPF: pass 就表示正常 <pre> Received-SPF: pass (google.com: domain of www@example.com designates 66.160.197.199 as permitted sender) client-ip=66.160.197.199; Authentication-Results: mx.google.com; spf=pass (google.com: domain of www@example.com designates 66.160.197.199 as permitted sender) smtp.mail=www@example.com; dkim=pass header.i=@example.com </pre> ==查看LOG== Linux下,如果出现问题,那么排错最佳的方式就是查看log,不过为了性能,有些应用,缺省下没有开启错误log,我们需要启用。 ===APACHE=== <pre> # tail /var/log/apache2/error.log #查看log # tail -0f /var/log/apache2/error.log #实时查看log </pre> ===OPENLDAP=== 当你采用ldap来验证用户,当用户登录出现问题的时候,你就需要查看ldap的log,看那个地方出错。 *缺省的情况下,openldap的log没有启用,我们需要修改配置文件 /etc/ldap/slapd.conf <pre> loglevel 256 # <-- change form 0 to 256 </pre> *重新启动LDAP服务 <pre> /etc/init.d/slapd restart </pre> *查看log <pre> tail /var/log/openldap.log </pre> ===dovecot=== 当接收邮件有问题的时候,我们需要查看dovecot的log, *编辑/etc/dovecot/dovecot.conf <pre> mail_debug = yes #把注释去掉 </pre> *从新启动dovecot服务 <pre> # /etc/init.d/dovecot restart </pre> *查看log <pre> # tail /var/log/dovecot.log </pre> ===Sieve=== 当RoundCube里过滤器不工作或者有问题的情况下,你就需要查看sieve的log <pre> # tail /var/log/sieve.log </pre> ===Postfix=== 查看邮件发送的问题,就需要查看posfix Log <pre> #tail /var/log/mail.log </pre> Postfix 排错,还可以通过Postfix提供邮件队例队列管理工具: <pre> postqueue -p 列出队列里的所有邮件 postsuper -d ID 删除一封邮件 postsuper -d ALL 删除所有邮件 postsuper –h ID 保留邮件 postsuper -r ALL 重新排例 postcat -q ID 显示邮件内容 postqueue -f 清空邮件 </pre> ==邮件客户端== iRedmail提供pop,imap和pops,imaps的连接,可以根据需要选择采用哪种方式 {| cellspacing="0" border="1" |- | Protocol | Unencrypted port | TLS Port | SSL Port |- | SMTP | 25 | 587 | 465 |- | POP3 | 110 | 110 | 995 |- | IMAP | 143 | 143 | 993 |} ===Outlook2007=== [[Outlook2007设置图解|Outlook2007设置图解]] ===Outlook 2003=== *pop3 非加密 这个设置和outlook 2007是一样,参考上面设置就可以, pop使用110,smtp是25 *pop3 加密 注意端口,这是和outlook2007不同的地方,outlook2003 只支持SSL,导入证书,可以参考上面设置 [[Image:Iredmail51.gif]] *imap 非加密 这个和2007设置是一样,imap是143,smtp是25 *imap 加密 [[Image:Iredmail55.gif]] ==FAQ== 这个faq会不定期更新,最新的FAQ,大家可以直接访问 http://www.iredmail.org/faq.html ===邮件服务器同步备份,切换,群集,冗余=== 邮件系统的备份,可以考虑采用rsync, unison,如果数据量大,可以参考文章 http://blog.daviesliu.net/2008/04/24/sync/ 实现邮件的群集,有很多方案,一般可以分为 采用共享存储 (多台服务器)负载均衡,每台服务器都在工作。通过这种方式,可以实现支撑更多的用户。 没有共享存储 (两台服务器)实现冗余,一台机器是闲着。 你可以把iredmail部署到这两种方案上,iRedMail官方网站提供这两种方案的技术支持。 *采用共享存储,一般都是利用lvs [[Image:Iredmail_lvs.jpg]] *不采用共享存储,就可以采用DRBD+heardbeat 的方案 DRBD,简单理解,就是网络的raid1,实现两台服务器的镜像。具体的配置过程,大家可以参考 http://www.iredmail.org/bbs/topic1298-view.html [[Image:Iredmail_drbd.gif]] ===停用灰名单=== 灰名单,是有效阻止垃圾邮件的手段,原理是当一个新的邮箱地址发邮件过来,都会先拒绝2次,然后第三次才会接收下来。一般发垃圾邮件的人,因为队列太长,就不会再尝试投递。 灰名单会导致第一次发送延迟,不过第二次以后就没有问题。如果希望停止灰名单 编辑/etc/postfix-policyd.conf <pre> # 1=on 0=off GREYLISTING=0 #把1改成0 </pre> 重新启动policy服务 <pre> # /etc/init.d/postfix-policyd restart </pre> ===修改root的alias=== iRedmail的安装过程,我们设置了root的alias,如果我们希望修改邮箱地址。 编辑/etc/postfix/aliases 改成你需要的邮箱地址。以后系统的警告邮件就会发送到新的邮箱。 <pre> # See man 5 aliases for format postmaster: root clamav: root root: www@18demo.com policyd: www@18demo.com amavis: root </pre> 修改后,需要运行下面命令才可以生效。 <pre> # postalias /etc/postfix/aliases </pre> 这个时候可以测试一下,给root发一封邮件,是否生效 <pre> cd iRedMail-0.5.1 mail -s "test" root < iRedMail.tips </pre> ===添加免责声明=== iRedmail 是通过Amavisd-new + alterMIME 实现出站的邮件都添加免责声明。alterMIME支持Per-domain,Sub-domain,Per-user添加免责声明,同时支持txt和html格式。缺省情况下,iRedMail没有启用。 *编辑 /etc/amavis/conf.d/50-user 把注释去掉。启用免责声明的功能 <pre> # ------------ Disclaimer Setting --------------- # Uncomment this line to enable singing disclaimer in outgoing mails. $defang_maps_by_ccat{+CC_CATCHALL} = [ 'disclaimer' ]; #把注释去掉 </pre> *创建一个test免责声明,这个声明会添加到所有的邮件里。如果希望每个domain或者每个用户不同声明,那么可以单独添加免责声明。存放的路径是/etc/postfix/disclaimer/ <pre> #echo 'Testing disclaimer.' > /etc/postfix/disclaimer/default.txt </pre> *重启amavisd服务 <pre> # /etc/init.d/amavis restart </pre> 这个时候,所有往外发送的邮件,都会在底部加上 'Testing disclaimer.' ===集成Razor2和Pyzor=== *打开防火墙端口 Razor2:必须打开防火墙端口 2307/TCP pyzor: 必须打开防火墙端口 24441/UDP 编辑/etc/default/iptables 文件 <pre> # 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,2307,24441 -j ACCEPT # <-- Add 2307 24441 </pre> 重启iptables服务 <pre> # /etc/init.d/iptables restart </pre> *安装Razor2 <pre> root@mail:~# apt-get install razor Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: razor 0 upgraded, 1 newly installed, 0 to remove and 24 not upgraded. Need to get 125kB of archives. After this operation, 549kB of additional disk space will be used. Get:1 http://archive.ubuntu.com jaunty/universe razor 1:2.85-1 [125kB] Fetched 125kB in 1s (99.4kB/s) Selecting previously deselected package razor. (Reading database ... 23030 files and directories currently installed.) Unpacking razor (from .../razor_1%3a2.85-1_amd64.deb) ... Setting up razor (1:2.85-1) ... </pre> *设置Razor2 <pre> root@mail:~# mkdir /var/lib/amavis/.razor; chown -Rf amavis:amavis /var/lib/amavis/.razor root@mail:~# root@mail:~# su amavis $ razor-admin -home=/var/lib/amavis/.razor -create $ razor-admin -home=/var/lib/amavis/.razor -discover $ razor-admin -home=/var/lib/amavis/.razor -register Register successful. Identity stored in /var/lib/amavis/.razor/identity-rupCWQ7Auy $ exit </pre> *安装Pyzor <pre> # apt-get install pyzor Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: python-gdbm Suggested packages: python-gdbm-dbg The following NEW packages will be installed: python-gdbm pyzor 0 upgraded, 2 newly installed, 0 to remove and 24 not upgraded. Need to get 56.3kB of archives. After this operation, 336kB of additional disk space will be used. Do you want to continue [Y/n]? y Get:1 http://archive.ubuntu.com jaunty/main python-gdbm 2.6.2-0ubuntu1 [18.5kB] Get:2 http://archive.ubuntu.com jaunty/universe pyzor 1:0.4.0+cvs20030201-8 [37.8kB] Fetched 56.3kB in 0s (57.4kB/s) Selecting previously deselected package python-gdbm. (Reading database ... 23094 files and directories currently installed.) Unpacking python-gdbm (from .../python-gdbm_2.6.2-0ubuntu1_amd64.deb) ... Selecting previously deselected package pyzor. Unpacking pyzor (from .../pyzor_1%3a0.4.0+cvs20030201-8_all.deb) ... Setting up python-gdbm (2.6.2-0ubuntu1) ... Setting up pyzor (1:0.4.0+cvs20030201-8) ... </pre> *设置pyzor <pre> # mkdir /var/lib/amavis/.pyzor; chown amavis:amavis /var/lib/amavis/.pyzor # su amavis $ pyzor --homedir /var/lib/amavis/.pyzor discover /var/lib/python-support/python2.6/pyzor/__init__.py:11: DeprecationWarning: the sha module is deprecated; use the hashlib module instead import sha /var/lib/python-support/python2.6/pyzor/client.py:10: DeprecationWarning: the multifile module has been deprecated since Python 2.5 import multifile downloading servers from http://pyzor.sourceforge.net/cgi-bin/inform-servers-0-3-x $ exit </pre> *编辑/etc/spamassassin/local.cf 在最末尾添加下面内容 <pre> use_razor2 1 score RAZOR2_CHECK 2.500 score PYZOR_CHECK 2.500 </pre> *重启amavis服务 <pre> # /etc/init.d/amavis restart </pre> ===卸载iRedMail=== 当你希望卸载或者重新安装iredmail,那么可以利用iRedMail提供的工具,快速卸载iredmail各个组件,进行重新安装 <pre> # cd iRedMail-0.5.1/tools/ # bash clear_iredmail.sh </pre> 按照提示进行就可以,当你重新安装的时候,你还是需要运行下载脚本,再运行安装脚本。 ===批量创建用户=== iRedMail提供脚本,可以让用户快速添加用户 *MYSQL 你可以编辑create_mail_user_MySQL.sh,修改默认值,如果你安装的时候修改的邮件的存储路径,那么你必须修改脚本的 STORAGE_BASE_DIRECTORY 创建邮箱用户的缺省密码是和用户名相同 <pre> # cd iRedMail-0.5.1/tools/ # bash create_mail_user_MySQL.sh exmple.com user1 user2 user3 </pre> 这个时候,会创建output.sql 文件 <pre> # mysql -uroot -p mysql> USE vmail; mysql> SOURCE /path/to/output.sql; </pre> *LDAP 使用create_mail_user_OpenLDAP.sh脚本,可以快速创建ldap的邮件用户,我们需要修改脚本 创建邮箱用户的缺省密码是和用户名相同 <pre> STORAGE_BASE_DIRECTORY="/var/vmail/vmail01" #如果你安装的时候修改的邮件的存储路径 LDAP_SUFFIX="dc=iredmail,dc=org" #你的ldap SUFFIX BINDPW='passwd' #ldap管理员cn=manager 密码 </pre> 运行脚本,创建用户 <pre> # bash create_mail_user_OpenLDAP.sh example.com user1 user2 </pre> ===支持大附件=== 要注意的是:下面的设置,是可以让你的服务器是可以发送大附件,也需要对方的服务器能够接收大附件,否则还是无法发送出去。 *客户端发送大附件 如果你是希望邮件客户端发送大附件,那么你只需要运行 <pre> # postconf -e message_size_limit='104857600' #把附件增加到100m </pre> 重启postfix服务 <pre> # /etc/init.d/postfix restart </pre> *webmail 如果希望webmail,发送大附件,那么你还需要多修改2个地方 1:编辑/etc/php5/apache2/php.ini 文件 <pre> upload_max_filesize = 100M; post_max_size = 100M; </pre> 2:修改/usr/share/apache2/roundcube/.htaccess 文件 <pre> php_value upload_max_filesize 100M php_value post_max_size 100M </pre> 重启apache服务 <pre> # /etc/init.d/apache2 restart </pre> ===集成DNSBL=== 编辑/etc/postfix/main.cf 文件,在smtpd_recipient_restrictions 下添加下面内容 <pre> smtpd_recipient_restrictions = reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unlisted_recipient, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, reject_non_fqdn_helo_hostname, reject_invalid_helo_hostname, check_policy_service inet:127.0.0.1:10031 ##添加下面内容 reject_rhsbl_sender dsn.rfc-ignorant.org, reject_rbl_client dnsbl.njabl.org, reject_rbl_client dnsbl.ahbl.org, reject_rbl_client bl.spamcop.net, reject_rbl_client zen.spamhaus.org, </pre> 重启postfix服务 <pre> # /etc/init.d/postfix reload </pre> ===停用Amavisd + ClamAV + SpamAssassin=== 如果希望停用杀毒和发垃圾的功能,编辑/etc/postfix/main.cf 文件,到把最底下的这行注释掉 <pre> content_filter = smtp-amavis:[127.0.0.1]:10024 </pre> 这个时候,postfix接收到的邮件,就不会再交给amavis处理,就可以把amavisd, clamd, freshclam服务停止。不过要注意的是这个时候DKIM的功能,也是无法使用,因为iredmail的DKIM是通过amavis来实现的。 rolaod postifx服务 <pre> #update-rc.d amavis purge #update-rc.d clamav purge # /etc/init.d/postfix reload </pre> ===Fetchmail=== 目前iRedMail还没有集成fetchmail的功能,如果你需要使用fetchmail,你可以自己集成 *安装fetchmail <pre> apt-get install fetchmail </pre> *设置fetchmail daemon运行修改/etc/default/fetchmail 文件 <pre> START_DAEMON=yes #把no改为yes </pre> *创建/etc/fetchmailrc 文件,添加下面的内容 <pre> set daemon 300 #5分钟取一次邮件 set syslog set postmaster root set no bouncemail defaults: timeout 300 antispam -1 batchlimit 100 #用户:shakechen 也可以是 shakechen@126.com 密码是:12345678 本地的邮箱:www@18demo.com poll pop3.126.com protocol POP3 user shakechen there with password 12345678 is www@18demo.com here </pre> 最后一行意思是把126邮箱里的用户的邮件,投递到本地的邮箱帐号 www@18demo.com *设置/etc/fetchmailrc 文件权限 <pre> chmod 600 /etc/fetchmailrc chown fetchmail /etc/fetchmailrc </pre> *重启服务 <pre> /etc/init.d/fetchmail start </pre> * 查看log <pre> # tail /var/log/syslog Dec 7 16:01:36 mail fetchmail[4179]: 723 messages (723 seen) for shakechen at pop3.126.com (36923210 octets). Dec 7 16:01:37 mail fetchmail[4179]: sleeping at Mon Dec 7 16:01:37 2009 for 30 seconds Dec 7 16:02:07 mail fetchmail[4179]: awakened at Mon Dec 7 16:02:07 2009 Dec 7 16:02:08 mail fetchmail[4179]: 723 messages (723 seen) for shakechen at pop3.126.com (36923210 octets). Dec 7 16:02:09 mail fetchmail[4179]: sleeping at Mon Dec 7 16:02:09 2009 for 30 seconds </pre> ===创建新的SSL key=== 如果你修改了计算机名字或者希望使用自己的信息创建自己的ssl key。 *下载iredmail提供的脚本 <pre> # wget http://iredmail.googlecode.com/hg/iRedMail/tools/generate_ssl_keys.sh </pre> * 编辑脚本里的你希望修改的相关信息 <pre> # SSL key. export SSL_CERT_FILE="${ROOTDIR}/certs/iRedMail_CA.pem" export SSL_KEY_FILE="${ROOTDIR}/private/iRedMail.key" export TLS_COUNTRY='CN' export TLS_STATE='GuangDong' export TLS_CITY='ShenZhen' export TLS_COMPANY="${HOSTNAME}" export TLS_DEPARTMENT='IT' export TLS_HOSTNAME="${HOSTNAME}" export TLS_ADMIN="root@${HOSTNAME}" </pre> * 执行脚本 <pre> # bash generate_ssl_keys.sh SSL keys were generated: - /root/certs/iRedMail_CA.pem - /root/private/iRedMail.key </pre> * 把以前的证书备份一下,把新证书复制到下面两个目录下。 <pre> /etc/ssl/private/iRedMail.key /etc/ssl/certs/iRedMail_CA.pem </pre> ===SPAM邮件进入垃圾箱=== 如果用户是使用邮件客户端,是无法收取到junk的邮件,所以iredmail缺省是让spam的邮件进入收件箱。如果我们希望让spam的邮件,不进入收件箱,直接存在垃圾邮箱的文件夹里。 <pre> # cd /var/vmail/sieve # cp dovecot.sieve.sample dovecot.sieve </pre> *重启dovecot 服务 <pre> # /etc/init.d/dovecot restart </pre> ===如何修改hostname=== 如果我们装完iremdail后,希望修改hostname(FQDN),那么我们需要修改下面相关的内容。 #修改hostname in /etc/hostname and /etc/hosts #产生新的证书 参考上面的faq #修改 hostname in amavis.conf #修改 hostname in dovecot-quota-warning.sh #修改 hostname in posfix/main.cf #cp -Rf /etc /var/spool/postfix ===检测系统的反垃圾和病毒能力=== 装好系统后,如何评估系统的发垃圾和病毒能力?总不能自己给自己发垃圾邮件和病毒邮件吧。 http://www.gfi.com/emailsecuritytest/ 我们可以通过GFI来测试我们邮件系统的发垃圾和病毒能力。 当你的邮箱验证通过后,他会发送垃圾邮件和病毒邮件到你的邮箱,你就可以检测到邮件系统的反垃圾和病毒查杀能力。 http://www.antispam-ufrj.pads.ufrj.br/ ===命令行管理postfix队列=== *查看队列 <pre> postqueue -p </pre> *删除队列邮件根据ID <pre> postsuper -d MessageID </pre> *根据发送者来删除队列邮件,替换 “info@otherdomain.com”就可以 <pre> mailq | tail +2 | awk ‘BEGIN { RS = “” } # $7=sender, $8=recipient1, $9=recipient2 { if ($7 == “info@otherdomain.com” && $9 == “”) print $1 } ‘ | tr -d ‘*!’ | postsuper -d - </pre> *根据收件人删除,替换you@yourdomain.com 就可以 <pre> mailq | tail +2 | awk ‘BEGIN { RS = “” } # $7=sender, $8=recipient1, $9=recipient2 { if ($8 == “you@yourdomain.com” && $9 == “”) print $1 } ‘ | tr -d ‘*!’ | postsuper -d - </pre> * 根据发生服务器的hostname来删除,替换掉 senderhostname <pre> mailq | grep senderhostname | awk ‘{ print $1′} | postsuper -d - </pre> *如果当前的系统队列很长,负担很重,我们可以把队列里的邮件先hold <pre> postsuper -h ALL </pre> 当处理完后,再把队列移回来 <pre> postsuper -r ALL </pre> 参考文章 http://www.faqforge.com/linux/server/manage-the-postfix-mailqueue-with-postsuper-postqueue-und-mailq/ ===命令行测试邮件=== 测试邮件,可以用客户端, 也可以使用命令行测试,这样更加直接. *pop3连接 可以在远程使用命令行或者本地来测试pop3 <pre> telnet mail.18demo.com 110 +OK Dovecot ready. #Login as www@18demo.com: user www@18demo.com The server should accept that: +OK #用户www@18demo.com 密码: pass iredmail #如果密码正确 +OK Logged in. #用命令查看www用户的邮件 list +OK 1 messages: 1 474 . #看第一封邮件 retr 1 #显示邮件 #退出连接 quit +OK Logging out. Connection closed by foreign host. </pre>
返回至
IRedMail
。