(转载请保留作者信息,大部分内容为网络收集整理)
版本:EMOS1.5 x64_86
SSH文件传输命令rz和sz安装:yum install lrzsz
整理作者:[email protected]
下载地址:http://www.extmail.org/download
备份原来的extmail和extman
cd /var/www/extsuite
mv extmail extmail.bak mv extman extman.bak
升级extmail:
替换,然后重命名“webmail.cf.default”为“webmail.cf”
SYS_MYSQL_USER = extmail (数据库用户名)
SYS_MYSQL_PASS = a1s2d3f4g5 (数据库密码)
修改cgi目录的权限():
drwxr-xr-x 2 vuser vgroup 4096 Jun 6 11:31 cgi
命令:chown vuser.vgroup cgi -R (一定要有带-R的参数)
创建tmp前台邮件临时目录,并修改权限
drwxr-xr-x 2 vuser vgroup 4096 Jun 6 11:35 tmp
替换,然后重命名“webman.cf.default”为“webman.cf”
SYS_MYSQL_USER = webman
SYS_MYSQL_PASS = a1s2d3f4g5
修改cgi目录的权限:
drwxr-xr-x 2 vuser vgroup 4096 Jun 6 11:31 cgi
命令:chown vuser.vgroup cgi -R (一定要有带-R的参数)
创建tmp后台邮件临时目录,并修改权限
drwxr-xr-x 2 vuser vgroup 4096 Jun 6 11:35 tmp
还有一个后台登陆出错问题,详见第五[常见问题]章节
默认安装,clamav版本为“ClamAV 0.95.2/17828/Sun Sep 8 06:38:21 2013”,是启动失败的。当我们手动“/etc/init.d/clamd restart”会得到这样的警告提示:
LibClamAV Warning: *** This version of the ClamAV engine is outdated. ***
LibClamAV Warning: *** DON'T PANIC! Read http://www.clamav.net/support/faq ***
软件版本过旧。不影响使用,这里仅建议更新。方法如下:
下载地址:http://sourceforge.net/projects/clamav/files/clamav/0.97.8
RPM包下载:http://pkgs.repoforge.org/clamav/(暂未发布0.97.8)
#yum -y install zlib zlib-devel
#service clamd stop
#tar zxvf clamav-0.97.8.tar.gz
#cd clamav-0.97.8
#./configure (30秒)
#make (4-5分钟)
#make install
#vi /usr/local/etc/freshclam.conf
(里面第8行有个Example需要加上“#”注释符号,应该是源代码作者失误导致)
#创建“/usr/local/share/clamav/”目录并赋予写权限
#service clamd start
最后执行更新病毒库命令:
#freshclam -verbose (会下载病毒库文件)
最终显示结果如下:
WARNING: Your ClamAV installation is OUTDATED!
WARNING: Local version: 0.97.7 Recommended version: 0.97.8
本章节属应用范围,详细可参考《Extmail及Extman使用说明.doc》
1、http://域名/extmail 或 http://域名
用户名:普通邮件用户 密码:普通邮件用户
2、http://域名/extman (后台管理)
用户名:[email protected] 密码:*******
(角色分超级管理员和域管理员界面。)
3、http://域名/phpmyadmin
(建议卸载,改用其它MySQL客户端来管理或直接使用命令行)
4、http://域名/dspam
【解决方法】:修改my.cnf
#vi /etc/my.cnf
在[mysqld]中加入init-connect=”set names uft8”
默认系统安装会显示错误日志“Unable to open file for writing: /var/run/dspamd.pid: Permission denied”
【解决方法】
#vi nano /etc/dspam/dspam.conf
将“ServerPID /var/run/dspamd.pid”
修改为“ServerPID /var/run/dspamd/dspamd.pid”
然后创建“/var/run/dspamd”目录并赋予权限:
#chown dspam:dspam dspamd
#chmod -R 755 /var/run/dspamd
【解决方法】
将“/var/www/extsuite/extman/webman.cf”里的“tmp/extman/”修改为“/var/tmp/extman/”
并创建这个目录和赋予权限:chown vuser.vgroup /var/tmp/extman/
无法接收邮件的情况很多,这里仅仅只是限于日志错误提示类型为“blocked using zen.spamhaus.org”且接收来自126和gamil邮箱正常。
可能原因就是Slockd过滤规则太严格,封掉了一些常用的大运营商免费邮局域名。
【解决方法】
详见第八章第3节[垃圾过滤原理]细节。
如果是直接使用”rm /var/log/maillog”,则需重启下syslog服务。如下:
#/etc/rc.d/init.d/syslog restart
建议还是使用“cat /dev/null >/var/log/maillog”比较妥当。
如下:“ localhost postfix/smtpd[29080]: connect from unknown[220.181.15.57]”
【解决方法】
检查DNS设置,或停止防火墙服务
#/var/www/extsuite/extman/libs/Ext/Mgr/MySQL.pm
将里面“sub add_user {
XXXXX
$sth->execute(”
“$active”改成"0"。
这样注册成功的用户写入数据库后active字段值为0,表示不启用,需要后台管理员激活。
1. 修改/etc/php.ini
max_execution_time = 60 #改为60 (增加处理脚本的时间限制)
memory_limit = 60M #改为20M (这样才能发10M的附件)
post_max_size = 2M #改为12M
upload_max_filesize = 5M #改为12M
#/etc/postfix/main.cf
message_size_limit = 10485760 单封发送邮件大小,10M
mailbox_size_limit = 10485760 单封接收邮件大小,10M,建议设为0
#/var/www/extsuite/extmail/webmail.cf
SYS_MESSAGE_SIZE_LIMIT = 10242880
原因:这是您第一次发信给收件人,请隔一段时间重试
前后两次发信间隔小于阀值 (300秒)
解决方法:默认的值已经是60S了,无需更改
方法一:修改/etc/postfix/main.cf
将“#receive_override_options = no_address_mappings”注释掉。
方法二:(有问题,目前不推荐)
修改:/etc/authlib/authmysqlrc
将其中的“WHERE username = '$(local_part)@$(domain)'”修改为
“WHERE username = replace(replace('$(local_part)@$(domain)','{',''),'}','')”
最后:/etc/init.d/courier-authlib restart
进程/组件名 |
描述 |
作用 |
postfix |
/etc/postfix/main.cf 配置文件详解: http://wenku.baidu.com/view/c2b70c4dfe4733687e21aaae.html |
邮件传输MTA(收发) |
slockd |
/usr/local/slockd/config/plugin.cf /usr/local/slockd/config/main.cf 配置教程网贴: http://blog.chinaunix.net/uid-24500107-id-2602907.html |
基于域名/特定用户的垃圾邮件过滤,又比如发件频率 |
courier-imap |
/usr/lib/courier-imap/etc/imapd |
imap、pop3协议的库 |
cyrus-sasl |
/usr/lib64/sasl2/smtpd.conf |
smtp协议的库 |
amavisd |
/etc/amavisd/amavisd.conf |
邮件杀毒,一般是删除 |
Fail2ban |
/etc/fail2ban/fail2ban.conf |
暴力攻击防范 |
Courier-Authlib |
/etc/authlib/authmysqlrc |
用MySQL表来做认证 |
maildrop |
本地邮件投递MDA |
学习网贴:http://www.cnblogs.com/JemBai/archive/2009/03/19/1416364.html
# iptables -A INPUT -s 218.241.219.26/27 -p tcp --dport 22 -j ACCEPT
#
#################################端口说明####################################
TCP:22(SSH登陆)25(SMTP)80(HTTP)110(POP3)143(IMAP)443(IMAP SSH)993(IMAPS)995(POP3S)
位置:/var/log/maillog
用户从web版登录:
Sep 6 14:35:09 localhost extmail[3981]: user=<[email protected]>, client=218.241.219.28, module=login, status=loginok
用户web发送邮件成功:
Sep 6 14:36:11 localhost postfix/smtpd[4016]: connect from localhost.localdomain[127.0.0.1]
Sep 6 14:36:11 localhost postfix/smtpd[4016]: D0F9DE86A3: client=localhost.localdomain[127.0.0.1]
Sep 6 14:36:11 localhost postfix/cleanup[4019]: D0F9DE86A3: message-id=<[email protected]>
Sep 6 14:36:11 localhost postfix/qmgr[2491]: D0F9DE86A3: from=<[email protected]>, size=614, nrcpt=1 (queue active)
Sep 6 14:36:11 localhost postfix/smtpd[4016]: disconnect from localhost.localdomain[127.0.0.1]
Sep 6 14:36:11 localhost postfix/smtpd[4023]: connect from localhost.localdomain[127.0.0.1]
Sep 6 14:36:11 localhost postfix/smtpd[4023]: EFBAFE86A5: client=localhost.localdomain[127.0.0.1]
Sep 6 14:36:11 localhost postfix/cleanup[4019]: EFBAFE86A5: message-id=<[email protected]>
Sep 6 14:36:11 localhost postfix/qmgr[2491]: EFBAFE86A5: from=<[email protected]>, size=1068, nrcpt=1 (queue active)
Sep 6 14:36:11 localhost postfix/smtpd[4023]: disconnect from localhost.localdomain[127.0.0.1]
Sep 6 14:36:11 localhost amavis[2376]: (02376-02) Passed CLEAN, MYNETS LOCAL [127.0.0.1] [127.0.0.1] <[email protected]> -> <[email protected]>, Message-ID: <[email protected]>, mail_id: zg6pqnD6jwmM, Hits: -, size: 614, queued_as: EFBAFE86A5, 86 ms
Sep 6 14:36:11 localhost postfix/smtp[4020]: D0F9DE86A3: to=<[email protected]>, relay=127.0.0.1[127.0.0.1]:10024, delay=0.15, delays=0.05/0/0/0.09, dsn=2.0.0, status=sent (250 2.0.0 Ok, id=02376-02, from MTA([127.0.0.1]:10025): 250 2.0.0 Ok: queued as EFBAFE86A5)
Sep 6 14:36:11 localhost postfix/qmgr[2491]: D0F9DE86A3: removed
Sep 6 14:36:12 localhost postfix/smtp[4024]: EFBAFE86A5: to=<[email protected]>, relay=mx3.qq.com[58.250.132.64]:25, delay=0.89, delays=0.01/0/0.2/0.68, dsn=2.0.0, status=sent (250 Ok: queued as )
Sep 6 14:36:12 localhost postfix/qmgr[2491]: EFBAFE86A5: removed
Clama病毒邮件扫描通过
Sep 8 14:20:58 localhost amavis[2501]: (02501-04) Passed CLEAN, [220.181.15.54] [182.48.101.10] <[email protected]> -> <[email protected]>, Message-ID: <[email protected]>, mail_id: ibwCy9ScZyFz, Hits: -0.746, size: 1694, queued_as: 971A119C8693, [email protected], 535 ms
EMOS采用“slockd+dspam+amavisd”
【解决方法】用户反映slockd的RBL功能经常把大型运营商邮箱判断为垃圾并退回给发件人。这里可以把slockd的RBL服务禁用掉,直接使用dspam,把判断为垃圾邮件的直接投递到用户的“垃圾邮件”目录里。
#vi /usr/local/slockd/config/plugin.cf
dnsbl_plugiin = yes改为no
#/usr/local/slockd/slockd-init restart
#
【slockd过滤规则】
邮件进来---提取发件人地址信息---whitelist---没有----blacklist----没有----sender_whitelist---没有---sender_blacklist---没有----直接进入用户邮箱或下一处理过程
大致原则:
白名单一旦有定义则不进行后面的LIST检查,直接PASS
白名单没有定义,黑名单有定义则直接REJECT
白名单与黑名单都未定义也是直接PASS
学习网贴:http://www.linuxso.com/linuxrumen/16529.html
#vi /etc/postfix/main.cf
#################################POSTFIX全局环境配置########################
alias_database = hash:/etc/postfix/aliases 邮件别名配置数据库postaliases
alias_maps = hash:/etc/postfix/aliases 邮件别名配置文件postmap
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
debug_peer_level = 2
mail_owner = postfix 所属用户
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man MAN手册位置
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix 邮件队列位置
sample_directory = /etc/postfix
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
#####################################主机网络标识##############################
mynetworks = 127.0.0.1 用来区分是本地还是远程发来的邮件
myhostname = mail.wangpiao.cn
mydomain = wangpiao.cn 根域名
mydestination = $mynetworks, $myhostname
########################################标识##################################
mail_name = EMOS V1.5 (Postfix)
smtpd_banner = $myhostname ESMTP $mail_name
########################################返回信息##############################
smtpd_error_sleep_time = 0s
unknown_local_recipient_reject_code = 550 错误收件人返回的代码
# extmail config here
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_transport = maildrop:
message_size_limit = 10485760
mailbox_size_limit = 10485760
# maildrop setting
maildrop_destination_recipient_limit = 1
#content_filter = smtp-amavis:[127.0.0.1]:10024 是否转入内容杀毒。
###################################发件人地址限制##############################
smtpd_sender_restrictions =
permit_mynetworks,
reject_sender_login_mismatch,
reject_authenticated_sender_login_mismatch,
reject_unauthenticated_sender_login_mismatch
###################################收件人地址限制##############################
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_hostname,
reject_non_fqdn_sender,
reject_non_fqdn_recipient,
reject_unauth_destination,
reject_unauth_pipelining,
reject_invalid_hostname,
check_policy_service inet:127.0.0.1:10030 交给solck进行过滤判断
#/usr/local/slockd/config/main.cf
#vi //etc/mail/spamassassin/dspam.cf
#查看自学习的数据信息
sa-learn --dump all
#查看调试信息
spamassassin -lint -D
include dspam.cf
学习贴:
http://www.extmail.org/forum/thread-10393-1-1.html
#vi /etc/dspam/dspam.conf
官方文档:
http://wiki.extmail.org/dspam_for_emos
Web配置访问URL配置:/etc/httpd/conf.d/dspam.conf
Web配置图解说明:http://www.extmail.org/forum/thread-11250-1-1.html
#vi nano /usr/lib/courier-imap/etc/imapd
IMAPDSTART=NO 是否启用IMAP
# vi /usr/lib/courier-imap/etc/imapd-ssl
IMAPDSSLSTART=NO 是否启用IMAPS
学习网贴:http://www.networkquestions.org/archives/890
/etc/fail2ban
fail2ban.conf 日志设定文档
jail.conf 阻挡设定文档
filter.d 具体阻挡内容设定目录
提示:
由于建议卸载PhpMyadmin,EMOS默认安装MySQL的root用户仅允许本地访问。需要先使用MySQL命令行设置为root允许远程访问,然后在防火墙中设置3306仅对公司办公网或特定安全的网络开放。
#update user set host = '%' where user = 'root';
#flush privileges;
#vi /etc/httpd/conf/httpd.conf
Include conf.d/*.conf
DocumentRoot "/var/www/html" 定义HTTP的根目录是“/var/www/html”
NameVirtualHost *:80 定义虚拟主机,基于端口80,不限域名
Include conf/vhost_*.conf
#vi /etc/httpd/conf/vhost_extmail.conf (这是我修改后的虚拟主机配置文件)
<VirtualHost *:80> 虚拟主机,基地80端口,不限域名,也就是所有解析到此主机的域名均将采用此配置,这也是为什么我们无论输哪个域名,出来的网页内容是一样的
ServerName sdfadsfa 服务名称,默认是配置domain,我这里故意随便写,表示不影响
DocumentRoot /var/www/extsuite/extmail/html/ 根目录
ScriptAlias /extmail/cgi/ /var/www/extsuite/extmail/cgi/ 虚拟二级目录
Alias /extmail /var/www/extsuite/extmail/html/
ScriptAlias /extman/cgi/ /var/www/extsuite/extman/cgi/
Alias /extman /var/www/extsuite/extman/html/
# Suexec config
SuexecUserGroup vuser vgroup
</VirtualHost>
大家可以了解一样Linux下的Apache配置。虚拟主机的根目录覆盖HTTP配置的根目录。
当我们访问“http://domain”为什么自动出来的是“http://domain/extmail/cgi/index.cgi”
因为:浏览器在解析“http://domain”时会在根目录下“/var/www/extsuite/extmail/html/”下找到名为“index.html”文件,而此文件内容是“url=/extmail/cgi/index.cgi”。所以.......
1、添加域
2、访问新域注册一个用户(这样才会在/home/domains下建立新域目录)
3、修改数据库extmail中的mailbox表部分字列值
执行如下mysql语句进行替换:
update mailbox set username=REPLACE(username,'wangpiao.cn','imlina.com.cn');
update mailbox set maildir=REPLACE(maildir,'wangpiao.cn','imlina.com.cn');
update mailbox set homedir=REPLACE(homedir,'wangpiao.cn','imlina.com.cn');
update mailbox set homedir=REPLACE(homedir,'wangpiao.cn','imlina.com.cn');
update mailbox set domain=REPLACE(domain,'wangpiao.cn','imlina.com.cn');
update mailbox set homedir=REPLACE(homedir,'wangpiao.cn','imlina.com.cn');
4、进入"/home/domains",使用"cp或mv"将原域名目录下的所有用户复制或移动到新域目录;
一般情况下,我们使用另名按照公司部门来组合个人邮箱,通常是不愿意接收到来自外域发来的任何邮件。这时候我们就需要使用Postfix来限制了。方法是:
#/etc/postfix/main.cf里添加如下三行:
check_recipient_access hash:/etc/postfix/local_recipient
smtpd_restriction_classes = local_only
local_only = check_sender_access hash:/etc/postfix/local_sender, reject
其中第一条应该加在[smtpd_sender_restrictions =]下一行。后2条是单独添加的。
然后分别创建“/etc/postfix/local_recipient”和“/etc/postfix/local_sender”,并使用“postmap”来生成hash文件。
#/etc/postfix/local_recipient内容填写只接收本域的群组邮箱列表及执行的动作名称。如下:
[email protected] local_only
[email protected] local_only
#/etc/postfix/local_sender内容填写只接收对方来信的来源地址是自己的公司域名。如下:
wangpiao.cn OK
imlina.com.cn OK
当然你也可以指定特定用户(如[email protected]),表示只接收来自此用户的邮件。
由于EMOS1.5版本不支持IMAP的uf7编码,所以需要关闭IMAP服务。
#/usr/lib/courier-imap/etc/imapd
#/usr/lib/courier-imap/etc/imapd-ssl
分别将其中的“IMAPDSTART=”和“IMAPDSSLSTART=”值改为“NO”
本章节不做详细模板指导。
详情见Exail官方文档:
http://wiki.extmail.org/extmail_template_intro
1、mbox 转换成maildir(邮件系统转移方案)
http://www.extmail.org/forum/thread-6281-1-72.html
2、限制部分Postfix用户只能内部收发的例子
http://www.extmail.org/forum/thread-6447-1-1.html
3、彻底关闭反病毒和防垃圾邮件功能
http://www.networkquestions.org/archives/458
4、DSpamf+SLOCK过滤机制
http://www.extmail.org/forum/thread-10393-1-1.html
5、Extmail文档
http://wiki.extmail.org/extmail
6、EMOS项目文档
http://wiki.extmail.org/_export/xhtml/
7、EMOS 备份
http://www.extmail.org/forum/thread-24410-1-5.html