X-Spam-Status: Yes, score=12.531 tagged_above=2 required=6.2 tests=[BAYES_95=3, DCC_CHECK=4, FORGED_OUTLOOK_HTML=0.001, HTML_MESSAGE=0.001, MIME_BASE64_TEXT=1.753, MIME_HTML_ONLY=1.457, RDNS_NONE=0.1, TVD_SPACE_RATIO=2.219] autolearn=no

X-Spam-Status: Yes, score=19.854 tagged_above=2 required=6.2 tests=[BAYES_99=3.5, DCC_CHECK=4, FORGED_OUTLOOK_HTML=0.001, HTML_MESSAGE=0.001, HTML_OBFUSCATE_05_10=0.001, MIME_BASE64_BLANKS=0.041, MIME_BASE64_TEXT=1.753, MIME_HTML_ONLY=1.457, RDNS_NONE=0.1, SUSPICIOUS_RECIPS=2.912, TVD_SPACE_RATIO=2.219, URIBL_AB_SURBL=0.3812, URIBL_BLACK=1.955, URIBL_RHS_DOB=1.083, URIBL_SC_SURBL=0.4498] autolearn=spam

X-Spam-Status: Yes, score=19.716 tagged_above=2 required=6.2 tests=[BAYES_99=3.5, DATE_IN_FUTURE_96_XX=1.439, DCC_CHECK=4, HTML_FONT_FACE_BAD=0.884, HTML_MESSAGE=0.001, HTML_OBFUSCATE_10_20=2.601, MIME_BASE64_BLANKS=0.041, MIME_HTML_ONLY=1.457, RDNS_NONE=0.1, SUBJ_ALL_CAPS=2.077, TVD_SPACE_RATIO=2.219, UNPARSEABLE_RELAY=0.001, WEIRD_QUOTING=1.396] autolearn=unavailable

X-Spam-Status: Yes, score=8.318 tagged_above=2 required=6.2 tests=[BAYES_95=3, DCC_CHECK=4, HTML_MESSAGE=0.001, HTML_TITLE_SUBJ_DIFF=1.217, RDNS_NONE=0.1] autolearn=no

以上信息是我服务器过滤后的评分结果,其中最后有:autolearn=no/spam/unavailable ,这个配置是在什么地方进行配置,有什么作用?

谢谢!

mysql> select lastlogindate,lastloginipv4,lastloginprotocol from mailbox limit 10;
+---------------------+---------------+-------------------+
| lastlogindate       | lastloginipv4 | lastloginprotocol |
+---------------------+---------------+-------------------+
| 0000-00-00 00:00:00 |             0 |                   |
| 0000-00-00 00:00:00 |             0 |                   |
| 0000-00-00 00:00:00 |             0 |                   |
| 0000-00-00 00:00:00 |             0 |                   |
| 0000-00-00 00:00:00 |             0 |                   |
| 0000-00-00 00:00:00 |             0 |                   |
| 0000-00-00 00:00:00 |             0 |                   |
| 0000-00-00 00:00:00 |             0 |                   |
| 0000-00-00 00:00:00 |             0 |                   |
| 0000-00-00 00:00:00 |             0 |                   |
+---------------------+---------------+-------------------+

这此字段在何时由什么组件来进行更新的,是否是在升级的过程中给落下什么配置?

谢谢!

感谢回复!

按您说的方法我试了一下,果然可以:)

根据http://www.iredmail.org/features.html中邮件处理流程图中的描述,所有进服务器的邮件经过以下几步:
incoming email->Postfix(25)          ->Postfix(10025)    ->Postfix(10025)        -> Dovecot
        Blachlist check            amavisd            alias expansion
        user authenticated?        spam scan
        relay check            clamd
        greylisting
        SPF check
说明进站的邮件经过postfix的过滤,必须调整其中的全局变量message_size_limit的值,才能够放行,从这个逻辑来看,进站邮件单独配置附件大小这个问题没有解,不知是否这样?
Mail Big Picture

Policyd 可以实现接收邮件的大小。 iRedAdmin-Pro-LDAP 可以直接设置这个参数,iRedAdmin-Pro-MySQL 则会在后续版本中加入。

我看了iRedAdmin-Pro-LDAP  demo系统,没有相关的设置参数呀,只是有发出去的配置,且是throttle配置。

我看了这篇文档,其中涉及到邮件大小的地方如下:

INSERT INTO throttle \
(_from,_count_max,_quota_max,_time_limit,_mail_size,_date,_priority)
VALUES ('user@domain.com',  # from address                             
          50,                # maximum messages per time unit
          250000000,         # size in bytes (250 megs) (maximum is 2gig)
          86400,             # time unit in seconds (1 day)
          10240000,          # maximum message size (10 meg)
          UNIX_TIMESTAMP(),  # current time
          10);               # priority of record

我对比了我的系统中的配置,发现我的maximum message size设置的是15M,没有效果!

Policyd 可以实现接收邮件的大小

记录在哪个表中的什么字段呢?谢谢!

如果我只个别设置邮箱接受邮件的大小呢?这样可以吗?
发邮件我暂时可以不用管!

您好!

我现在遇到这样一个问题,我的所有客户端限制发送附件为5M,但最近有个别重要人物要求将他的邮箱附件扩展到10M,我在论坛中搜了一下,也没有这样的配置和说明,请问一下是否可以,谢谢!

记得在policyd中有相关的配置,但是php、apache、postfix如何配置才能满足要求?

感谢回复!

感谢!

找到问题了!!

我在建立dovecot-used-quota.conf是从/etc/postfix/中的mysql配置中复制的用户名和密码,该用户不能更新mysql.vmail.mailbox表,只能查询,我更用其他的用户,就可以更新记录了:)

另有一小问题:bytes中的单位是什么,是指的是新邮件的大小吗?messages是新邮件的数量吗,还是所有的邮件数量?

感谢回复!!

打开调试模式,调整配置后出现以下错误:
Apr 12 09:24:24 deliver(mailaddress): Error: dict quota: Quota update failed, it's now desynced
Apr 12 09:24:24 deliver(mailaddress): Info: msgid=<C106281815094D52AE432C733FC48E99@D230>: saved mail to INBOX

您好!

我利用以下的链接设置更新quota信息:
http://www.iredmail.org/wiki/index.php? … a.In.MySQL

重启服务后出现以下失败日志,请帮助分析一下问题大概出在什么地方:
环境:从dovecot-1.1.xx升级到现在的1.2.16,能正常收邮件,自动假期回复等;
          数据库使用的是mysql,我将quota信息更新在vmail.mailbox的bytes和messages中。

重启dovecot和postfix后出现:
Apr 11 22:30:12 deliver(mailaddress): Error: dict quota: Quota update failed, it's now desynced
Apr 11 22:30:12 deliver(mailaddress): Info: sieve: msgid=<4c703f83.f624.12f44f7b800.Coremail.mail@163.com>: stored mail into mailbox 'INBOX'
Apr 11 22:31:57 deliver(mailaddress): Error: read(/var/run/dovecot/dict-server) failed: Remote disconnected
Apr 11 22:31:57 deliver(mailaddress): Error: Internal quota calculation error
Apr 11 22:31:57 deliver(mailaddress): Info: msgid=<20110411125958.13A43519F0@list.cn99.com>: save failed to INBOX: Internal error occurred. Refer to server log for more information. [2011-04-11 22:31:57]
Apr 11 22:31:57 deliver(mailaddress): Error: Internal quota calculation error
Apr 11 22:31:57 deliver(mailaddress): Info: msgid=<20110411125958.13A43519F0@list.cn99.com>: save failed to INBOX: Internal error occurred. Refer to server log for more information. [2011-04-11 22:31:57]
Apr 11 22:31:57 deliver(mailaddress): Error: read(/var/run/dovecot/dict-server) failed: Remote disconnected
Apr 11 22:31:57 deliver(mailaddress): Error: Internal quota calculation error

注释掉新增的内容:
quota = dict:user::proxy::quotadict 
quotadict = mysql:/etc/dovecot-used-quota.conf

错误消失!

检查一下这个要求是否满足,否则不应该没有日志的,并且重启fail2ban时,会有邮件到管理员邮箱的:

Required:
   >=python-2.3 (http://www.python.org)
Optional:
   >=gamin-0.0.21 (http://www.gnome.org/~veillard/gamin)

邮件样例如下:
Hi,

The jail POSTFIX has been started successfully.

Regards,

Fail2Ban

[DEFAULT]
ignoreip = 127.0.0.1 192.168.1.0/24  ->您可以在此忽略内网地址
bantime  = 600
findtime = 600
maxretry = 5
backend  = auto

在测试系统中安装的标准系统iRedMail 0.7.0,在/etc/postfix/main.cf中配置:

smtpd_recipient_restrictions = reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unlisted_recipient, check_policy_service inet:127.0.0.1:7777, 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

其中的check_policy_service inet:127.0.0.1:7777是什么意思,由什么组件完成?

感谢!

已经更新,感谢提醒!

按升级文档成功将我的系统由0.6.1升级到0.7.0,稳定运行1天!!!

您好!

我按照http://www.iredmail.org/wiki/index.php?title=IRedMail/FAQ/Upgrade.Dovecot.1.1.to.1.2的描述,顺利的将dovecot升级到1.2,目前运行正常,存在一个问题不明白,请老大帮忙分析一下是什么时候作的调整和变更,谢谢!

对于假期自动回复主题支持中文,效果很不错,值得升级!!!

生产服务器中的dovecot-mysql.conf:

user_query = SELECT CONCAT(storagebasedirectory, '/', maildir) AS home,     "/var/www/sieve/%Ld/%Ln/" AS sieve_dir,     CONCAT('*:bytes=', quota*1048576) AS quota_rule,     maildir FROM mailbox     WHERE username='%u'     AND active='1'     AND enable%Ls%Lc='1'     AND expired >= NOW()

测试安装的服务器中的dovecot-mysql.conf:

user_query = SELECT CONCAT(storagebasedirectory, '/', storagenode, '/', maildir) AS home, CONCAT('*:bytes=', quota*1048576) AS quota_rule FROM mailbox WHERE username='%u' AND active='1' AND enable%Ls%Lc='1'

这两个查询发生了改变,明显不能用新的文件去替换原有的文件,否则其中的一些路径就不一样了。

以上

升级文档中,两次修改同一个文件,SQL发生了改变,是否是以最后一个为准?

http://www.iredmail.org/wiki/index.php? … .6.1-0.7.0
* Edit /etc/postfix/mysql_virtual_alias_maps.cf, change query = to below new setting:
File: /etc/postfix/mysql_virtual_alias_maps.cf

query       = SELECT goto FROM alias,domain WHERE (alias.address='%s' OR alias.address='@%d') AND alias.active='1' AND domain.backupmx='0'

query       = SELECT alias.goto FROM alias,domain WHERE (alias.address='%s' OR alias.address='@%    d') AND alias.active='1' AND domain.backupmx='0' AND domain.active='1'

个人认为如以最后一个为准的话,需要修改为:
query       = SELECT DISTINCT alias.goto FROM alias,domain WHERE (alias.address='%s' OR alias.address='@%    d') AND alias.active='1' AND domain.backupmx='0' AND domain.active='1'
这样可以达到有多个相同的行时,只取一行即可。

按此文档进行更新后出现了不能认证的问题,不知在什么地方可以调试SMTP认证时的SQL语句?

以上,感谢回复!

您好!

我的系统是CentOS release 5.2,由以前的0.3.2手工升级到0.6.1,感谢提供文档!

在0.6.1升级到0.7.0时出现了问题:
在对文件: /etc/postfix/mysql_virtual_alias_maps.cf进行修改时,我测试了一下这个语句:
query       = SELECT goto FROM alias,domain WHERE (alias.address='%s' OR alias.address='@%d') AND alias.active='1' AND domain.backupmx='0'发现返回值不只一行,有多行一样的值返回,这样是否会导致一个地址会多次收到相同的邮件,担心这个问题,没有往下面进行更新。

另请说明下在sql语句中的%s、%u、%d分别代表什么意思,在什么文档中可以查得到,谢谢!

感谢各位的回复,谢谢!

WARNING: Your ClamAV installation is OUTDATED!
    WARNING: Local version: 0.96.5 Recommended version: 0.97
    DON'T PANIC! Read http://www.clamav.net/support/faq
    main.cvd is up to date (version: 53, sigs: 846214, f-level: 53, builder: sven)
    daily.cld is up to date (version: 12677, sigs: 39640, f-level: 58, builder: ccordes)
    bytecode.cld is up to date (version: 136, sigs: 38, f-level: 58, builder: edwin)

Last Status:
    WARNING: Your ClamAV installation is OUTDATED!
    WARNING: Local version: 0.96.3 Recommended version: 0.96.5
    DON'T PANIC! Read http://www.clamav.net/support/faq
    main.cld is up to date (version: 53, sigs: 846214, f-level: 53, builder: sven)
    daily.cld is up to date (version: 12346, sigs: 7516, f-level: 54, builder: neo)
    bytecode.cld is up to date (version: 93, sigs: 16, f-level: 54, builder: edwin)

配置过滤器:

[root@imail filter.d]# cat /etc/fail2ban/filter.d/dovecot-pop3imap.conf
[Definition]
failregex = (?: pop3-login|imap-login): (?:Authentication failure|Aborted login \(auth failed|Aborted login \(tried to use disabled|Disconnected \(auth failed).*rip=(?P<host>\S*),.*
ignoreregex =
[root@imail filter.d]# cat /etc/fail2ban/filter.d/postfix.conf
[Definition]
failregex   = reject: RCPT from (.*)\[<HOST>\]: [45][05][0-4]
ignoreregex =

vi /etc/fail2ban/jail.conf
[dovecot]

enabled     = true
filter      = dovecot-pop3imap
action      = iptables-multiport[name=dovecot, port="pop3,imap,pop3s,imaps,https", protocol=tcp]
               sendmail-whois[name=DOVECOT, dest=aaa@aaa.com]
ignoreregex = for myuser from
logpath     = /var/log/dovecot.log

[postfix-iptables]

enabled     = true
filter      = postfix
action      = iptables-multiport[name=postfix, port="https,smtp,smtps", protocol=tcp]
               sendmail-whois[name=POSTFIX, dest=aaa@aaa.com]
ignoreregex = for myuser from
logpath     = /var/log/maillog

这样设定之后,其失败次数超过我设定的次数,比如5次之后,就会中断这个ip的连接10分钟,之后又可以连接,其中的中断时间均可以配置。

使用近一周了,效果还不错,时常收到邮件说明某个ip被禁止了。

在每天对服务器的日志进行检查时,在dovecot.log及maillog中老是看到同一个ip地址n次的测试邮箱用户名并失败的记录,不难看出是有人对服务器进行猜测,并试图进入服务器。
通过在google上搜索,找到了Fail2Ban http://www.fail2ban.org/这个软件,安装和配置都非常简单:

Required:
   >=python-2.3 (http://www.python.org)
Optional:
   >=gamin-0.0.21 (http://www.gnome.org/~veillard/gamin)
To install, just do:
> tar xvfj fail2ban-0.8.2.tar.bz2
> cd fail2ban-0.8.2
> python setup.py install

安装完成之后,就是配置,对于我的服务器而言,对外开放的端口主要是:https、smtp、smtps、pop3、pop3s、imap、imaps,且我的ssh没有对外开放。这样我主要监控dovecot.log和maillog这两个日志文件,发现有这种情况,fail2ban就在iptable中增加一条记录,禁止这个ip与上面所有端口的连接10分钟,10分钟之后又恢复其连接,具体的配置文件如下: