Winmail 默认设置就可以正常运行,不过经过进一步设置后,系统将更加安全,包括防服务攻击、防信息泄漏,以下设置是按照 v7.0 以上版本的,
老版本的系统建议升级。
本文主要针对 Winmail 软件本身设置,不深入涉及网络防火墙和服务器操作系统。
1. 关闭非 SSL 服务
1. 进入"系统设置"/"系统服务",将 POP3 110 和 IMAP 143 服务设置 "不自动运行",并停止服务。
2. 进入"系统设置"/"SMTP 设置"/"基本参数",选中 "支持 STARTTLS 命令(SSL/TLS 传输)" 和 "禁止明文认证",这样使用 25、587 SMTP 端口时客户端要使用 SSL 命令。
3. 进入"系统设置"/"SMTP 设置"/"外发递送",选中 "远程服务器支持 STARTTLS 时,启用 SSL/TLS 连接"。
4. Webmail 仅使用 https,进入"系统设置"/"系统服务",将 HTTP 服务设置 "不自动运行",并停止 HTTP 服务,这样就只能通过 https 访问 Webmail,
或者保留 http 服务,修改网页文件,访问 http 时自动跳转 https,参考
如何让用户访问 http 80 端口自动跳转到 https 443 端口?。
5. 防火墙或者路由器开放端口设置关闭非SSL端口,开放 25,587,465,993,995,80,443,其他端口不开放,参考
Winmail 服务器要对外开放那几个端口? 。
6. 使用 SSL 加密端口连接时,客户端会校验 Winmail 服务器的证书,默认的自发证书会有警告,可以申请正式证书,参考
Winmail 安装正式SSL服务器证书。
7. 进入"系统设置"/"SMTP 设置"/"基本参数",选中 "禁止 25 端口认证",这样客户端要使用 587 或者 465 SMTP 端口。
8. [可选]修改默认的邮件协议端口,进入"系统设置"/"系统服务",例如:可以将 SMTP(MSA) 587 改成 6587、Secure SMTP 465 改成 6465、
Secure POP3 995 改成 6995、Secure IMAP 9934 改成 6993,防火墙和客户端也要做相应的修改。SMTP 25 端口不能改。
经过上面设置后,使用邮件客户端设置账号时要选择 SSL,可以参考
Outlook 2016 加密协议连接。
2. 防猜解、防攻击
进入"系统设置"/"高级设置"/"系统参数",在"基本参数"里,启用"猜密码检测",可以按照下图设置:
"白名单列表"里可以加需要忽略的 IP 、系统里的邮箱用户、IP 地址来源地。
[企业版、旗舰版] 进入"反垃圾设置"/"SMTP 过滤",选择"启用流量控制",将"本系统内邮箱用户每小时发送的收件人数"设置为
100
3. 邮箱用户密码和其他安全设置
1. 邮箱用户密码太简单会导致被猜解并利用来发垃圾邮件,导致系统运行缓慢、外网ip被加黑名单,可以启用密码策略,
进入"域名设置",设置系统里域名属性里的"默认密码策略",密码长度必须不小于 8、密码必须包含小写字母、密码必须包含数字、密码必须包含大写字母、密码必须包含特殊符号、密码必须不是弱口令字典的任一项,建议"密码强度检查"设置为"中"
2. 进入"系统设置"/"高级设置"/"系统参数"/"系统报表",设置接收系统报表的邮箱,选择报表类型,可以收到系统日常运行信息。
3. 系统各服务欢迎信息也和安全有关,进入"系统设置"/"高级设置"/"系统参数"/"基本参数",将"服务欢迎信息"设置成
{ALL}MailServer %SERVICE% Ready{/ALL}
4. 进入"系统设置"/"高级设置"/"系统参数"/"LDAP 配置",确定 "允许匿名访问(读取信息)" 没有选中。
5. 默认禁止邮箱自动转发,进入"域名设置"/"域名管理"下面所有域名的属性里的"默认权限",选择"禁止自动转发",这项设置针对新加用户生效。可以在"用户管理"里批量更新已有用户属性下"权限设置"里的该项设置。
6. 异地登录提醒,进入"系统设置"/"高级设置"/"Webmail设置"/"登陆后设置" 里选择 "启用异地登录提醒", 刚上线时阶段,提醒邮件会比较频繁,系统会搜集一个邮箱登录的10个最后的来源地,所以等一段时间后提醒邮件会减少, 还有如果使用手机登录,由于运营商出口 ip 多,来源地只供参考,
如果要关闭提醒,邮箱用户可以登录 Webmail,在 "配置箱"/"使用偏好" 中关闭 。
7. 关闭 Webmail 登录页"自动登录"和"忘记密码"功能:可以进入"系统设置"/"高级设置"/"Webmail 设置"/"首页设置"里关闭 "Webmail 允许自动登录"和"Webmail 登录页显示 忘记密码 连接"。
8. 增加另外的邮件系统管理员,删除默认的 admin:可以进入"用户和组"/"管理员管理"里操作。
9. Web 管理相关[自主选择]:
  a. 登录页不显示 Web 管理链接,可以进入"系统设置"/"高级设置"/"Webmail 设置"/"首页设置"里关闭 "登录页显示 “Web 管理” 连接"。
  b. 关闭 Web 管理入口,可以进入"系统设置"/"高级设置"/"Webmail 设置"/"首页设置"里关闭 "允许使用 “Web 管理” 功能"。
  c. 修改 Web 管理访问目录名,默认是 admin,可以进入"系统设置"/"高级设置"/"系统参数"/"HTTP 配置"里修改"Web 管理访问目录名"。
10. 进入"系统设置"/"SMTP 设置"/"基本参数",不选中 "邮件头增加 X-Origination-IP 字段",这样邮件头不记录客户端IP。
11. 强制使用邮件客户端时必须用授权码登录
  a. 针对新建用户,可以在域名属性"默认密码策略"里,选择"邮件客户端必须用授权码登录";
  b. 已经存在用户,可以在用户属性"密码策略"里设置。
  c. 进入"系统设置"/"高级设置"/"Webmail 设置",选中 "允许邮件客户端用授权码登录"。
启用后,用户要登录 Webmail,到"配置箱"-"更改密码",生成授权码,启用后登录 Webmail、Winmail APP 还是使用邮箱密码,
在 Foxmail、Outlook 等邮件客户端用要授权码代替密码
12. v7.1 以上版本:猜密码检测中增加仅允许指定归属地的IP认证,可实现仅限特定地区使用邮件功能。
13. v7.2 以上版本:结合短信平台,支持登录 Webmail 时要求短信验证,实现
双因素认证。
14. v7.2 以上版本:结合 TOTP APP、企业微信、阿里钉钉,支持登录 Webmail
双因子验证。
15. v7.2 以上版本:Winmail 管理工具和 Web 管理支持 TOTP APP
双因子验证。
4. 关闭不安全的 SSL,TLS 版本且关闭 RC4
这部分可以不修改,因为没有实际危害,如果为了通过安全扫描软件的测试,可以设置,
到"系统设置"/"高级设置"/"SSL/TLS证书"-"设置",直接关闭相关的协议(只保留TLS V1.1, TLS V1.2, TLS V1.3)。其他版本可以修改相关配置文件,修改前要先备份
修改 ~/server/data/system.cfg 文件用记事本打开
将
<ssloption>
<ssl2>0</ssl2>
<ssl3>1</ssl3>
<tls1>1</tls1>
<tls11>1</tls11>
<tls12>1</tls12>
<renegotiation>0</renegotiation>
<cipher>ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM</cipher>
</ssloption>
修改为
<ssloption>
<ssl2>0</ssl2>
<ssl3>0</ssl3>
<tls1>1</tls1>
<tls11>1</tls11>
<tls12>1</tls12>
<renegotiation>0</renegotiation>
<cipher>HIGH:MEDIUM:!aNULL:!eNULL:!EXPORT:!IDEA:!DES:!3DES:!MD5:!PSK:!RC4</cipher>
</ssloption>
修改保存后,将 Winmail 重启一下,如果使用发现问题可以恢复备份文件。
5. HTTP 相关安全配置
Winmail 自带的 web http 服务是 Apache,可以参考以下步骤做增强安全设置:
5.1 限制使用 IP 或者非本机的域名访问 HTTP 服务
可以直接在安装目录>server>webmail>www>index.php中加入
$only_host = array();
$only_host[] = 'mail.xxx.cn'; //mail.xxx.cn是示例,使用自己的域名替换有多条时每行加一条即可。
if (!in_array(strtolower($_SERVER["SERVER_NAME"]), $only_host)
|| !in_array(strtolower($_SERVER["HTTP_HOST"]), $only_host)){
header("HTTP/1.0 404 Not Found");
exit;
}
5.2 Slow HTTP Denial of Service Attack 和 Slow HTTP DoS (Denial of Service) attack 漏洞解决方法
修改安装目录 >server>http>httpd.tpl 中以下行,将行前的#号删除
#<IfModule mod_reqtimeout.c>
# RequestReadTimeout header=20-40,MinRate=500 body=10-40,MinRate=500
#</IfModule>
5.3 HTTP 头 HOSTNAME 漏洞
修改 Winmail 的 httpd.tpl 中 UseCanonicalName 的参数为 On,并且参考5.1配置,把 apache 的配置文件设置为使用主机头访问。如果需要在 Apache 配置中配置按主机头访问,可以自行修改 httpd.tpl 的 Apache 模板配置。或者联系 400-606-2011。
5.4 关闭 options
修改 httpd.tpl 文件,在文件中加入以下内容再重启 Winmail 服务器。
企业版和旗舰版用户注意:增加此项后会导致 Pushmail 服务不能访问,其他版不影响。
<Location />
<Limit OPTIONS>
Deny from all
</Limit>
</Location>
6. 其他
垃圾邮件会带来很多安全问题,可以参考
Winmail 反垃圾邮件指南 设置。
部分病毒是通过邮件传播的,可以参考
Winmail 和杀毒引擎配合 设置。
系统邮件归档和系统备份,可以参考
Winmail 系统邮件归档功能
、
Winmail 系统数据备份与恢复。
7. 关注 Winmail 新版本和更新补丁
建议尽量升级到最新版本,可以访问
www.winmail.cn
了解新版本信息和安全补丁公告,
也可以扫描下面的二维码关注 Winmail 微信公众号,及时收到新版本和安全补丁公告。
8. 网络防火墙和服务器操作系统
和邮件系统安全关系很大,建议搜索相关资料解决,至少要做到
启用防火墙、仅开放必要端口
操作系统管理员口令要足够复杂,可以限制默认系统管理员不能远程登录
[Windows 平台] 远程控制端口不用默认的 3389
[Linux 平台] SSH 远程控制不用默认的 22 端口,安装防暴力破解工具 Fail2ban,参考 入侵防护 Fail2ban