个人工具
登录
查看“IRedMail”的源代码 - Ubuntu中文
页面
讨论
查看源代码
历史
搜索
导航
首页
最近更改
随机页面
页面分类
帮助
编辑
编辑指南
沙盒
新闻动态
字词处理
工具
链入页面
相关更改
特殊页面
页面信息
查看“IRedMail”的源代码
来自Ubuntu中文
←
IRedMail
跳转至:
导航
,
搜索
因为以下原因,你没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
==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 Policyd v2 (codenamed "cluebringer")编辑/etc/cluebringer/cluebringer.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> ===停用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/ 测试邮件服务器是否被设成公开转发站 http://www.abuse.net/relay.html ===命令行管理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/ ===命令行测试邮件服务=== 测试邮件,可以用客户端, 也可以使用命令行测试,这样更加直接. *BASE64编码的用户名密码 我们需要把我们的登录帐号和密码一起编码<br> user:www@example.com<br> pass: iredmail<br> <pre> # perl -MMIME::Base64 -e 'print encode_base64("www\@example.com\0www\@example.com\0iredmail")'; d3d3QGV4YW1wbGUuY29tAHd3d0BleGFtcGxlLmNvbQBpcmVkbWFpbA== </pre> *SMTP 登录并发送邮件 <pre> # telnet localhost 25 #在服务器上telnet到本地,下面的是正常输出 Trying ::1... Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 u910.example.com ESMTP iRedMail (Ubuntu) ehlo example.com #握手 250-u910.example.com 250-PIPELINING 250-SIZE 15728640 250-ETRN 250-STARTTLS 250-AUTH PLAIN LOGIN 250-AUTH=PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN auth plain d3d3QGV4YW1wbGUuY29tAHd3d0BleGFtcGxlLmNvbQBpcmVkbWFpbA== # 输入base 64后的用户名和密码 235 2.7.0 Authentication successful mail from:<www@example.com> #使用 www@example.com 帐号对外发送邮件 250 2.1.0 Ok rcpt to:<shake.chen@gmail.com> #发送邮件到 shake.chen@gmail.com 这个邮箱 250 2.1.5 Ok data #输入data命令后,下面就是邮件的内容 354 End data with <CR><LF>.<CR><LF> to:shake.chen@gmail.com #这是邮件里显示的发送给谁。 from:www@example.com #那个帐号发送过来的 subject: test by telnet smtp #邮件的主题 test , just a test ,check the subject whetehr working. . #写完邮件后,输入一个点,回车,就表示邮件完成。 250 2.0.0 Ok: queued as B6B4820EC9 quit #退出 221 2.0.0 Bye Connection closed by foreign host. </pre> *pop3连接 可以在远程使用命令行或者本地来测试pop3 <pre> # telnet localhost 110 #登录110端口 Trying ::1... Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. +OK Dovecot ready. user www@example.com #输入登录的邮件帐号 +OK pass iredmail #帐号的密码,这里直接输入密码就可以 +OK Logged in. list #查看邮箱里的邮件 +OK 4 messages: 1 1182 2 6195 3 1588 4 878 . retr 1 #显示第一封邮件内容 quit #退出 +OK Logging out. Connection closed by foreign host. </pre> [[Category:服务器]]
返回至
IRedMail
。