我正在一个小型研究中心工作,这个研究中心需要在紧张的预算中独立pipe理很多事情。 其中之一是IT基础设施,包括networking和电子邮件托pipe。 虽然我还没有成为系统pipe理员,但我迄今成功地在托pipe公司find了一个价格合理的根服务器,build立了我们的网站和networking应用程序,并使它们运行了几年。
到目前为止,我们的电子邮件已在外部托pipe,这意味着我们付出的代价很小:最大875Mb电子邮件存储空间。 35个POP邮箱。 由于电子邮件客户端中的本地收件箱损坏导致了一些数据丢失之后,我决定至less调查使用我们所雇用的根服务器上存在的postfix / qmail邮件服务器的选项。 乍一看,有很多优势:我们可以切换到几乎不受限制的IMAP帐户,将电子邮件包含在服务器备份中的电子邮件帐户中,每个邮箱使用更多的存储空间等等。最重要的是,邮件服务器已经包含在我们为web服务器支付的费用中,所以我们可以减less外部电子邮件托pipe费用,甚至可以less花钱多得多。
技术部分已经足够有趣了:我已经能够设置它(发现Plesk面板的优点),原则上我们可以马上切换到新的电子邮件服务器。 然而,我不确定我是否能够正确估计pipe理电子邮件服务器所涉及的风险。 当然,我在所有电子邮件帐户上启用了SpamAssassin和防病毒软件(Plesk Premium antivirus),设置了一个SSH证书,并将SPF,DMARC和DKIMlogging添加到了我们的DNS中。 我主要担心的是:这是否足够,被攻击的机会和整个服务器被攻破的可能性是多less?
例如,我已经注意到,即使在这个过早的testing阶段,QMail日志也是如此:
Dec 15 17:07:00 server4545 postfix/smtpd[23838]: connect from unknown[91.200.13.5] Dec 15 17:07:00 server4545 plesk_saslauthd[24512]: Invalid mail address 'albert@' Dec 15 17:07:00 server4545 postfix/smtpd[23838]: warning: unknown[91.200.13.5]: SASL LOGIN authentication failed: authentication failure Dec 15 17:07:00 server4545 postfix/smtpd[23838]: lost connection after AUTH from unknown[91.200.13.5] Dec 15 17:07:00 server4545 postfix/smtpd[23838]: disconnect from unknown[91.200.13.5] Dec 15 17:07:04 server4545 postfix/smtpd[23838]: connect from 24-35-233-74.fidnet.com[24.35.233.74] Dec 15 17:07:04 server4545 postfix/smtpd[23838]: lost connection after CONNECT from 24-35-233-74.fidnet.com[24.35.233.74] Dec 15 17:07:04 server4545 postfix/smtpd[23838]: disconnect from 24-35-233-74.fidnet.com[24.35.233.74] Dec 15 17:07:20 server4545 postfix/smtpd[23838]: warning: hostname ip-address-pool-xxx.fpt.vn does not resolve to address 118.71.172.216: Name or service not known Dec 15 17:07:20 server4545 postfix/smtpd[23838]: connect from unknown[118.71.172.216] Dec 15 17:07:22 server4545 postfix/smtpd[23838]: NOQUEUE: reject: RCPT from unknown[118.71.172.216]: 554 5.7.1 <[email protected]>: Relay access denied; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<[100.74.205.159]> Dec 15 17:07:22 server4545 postfix/smtpd[23838]: disconnect from unknown[118.71.172.216] Dec 15 17:07:22 server4545 /usr/lib/plesk-9.0/psa-pc-remote[8577]: Message aborted. Dec 15 17:07:22 server4545 /usr/lib/plesk-9.0/psa-pc-remote[8577]: Message aborted.
这似乎表明从完全不相关的IP地址很多的兴趣,即使我目前甚至没有使用的东西进行testing。 好的部分似乎是那些企图被承认和被拒绝,但我仍然想知道他们来自哪里,我应该担心多less。 即使他们是无辜的,我可以想象处理所有这些请求可能会导致服务器的严重开销。 出于testing目的,我在DNS中添加了低优先级的MXlogging; 我想知道这是否已经“邀请”到我们的邮件服务器这么多的请求?
换句话说:我正在寻找关于运行自己的邮件服务器所涉及的安全风险的合理build议。 毕竟,如果事情破裂,他们可能会破坏一切,我必须自己处理。
任何意见将不胜感激!
罗恩
作为后来成为渗透testing员的pipe理员,我感到你的痛苦。 但事实certificate,因为像你似乎,我充分关心我的系统的安全性,以找出像DKIM和SPF是什么,并实施它们,并使用SSH密钥等事实certificate,我做的最多事情正确。 听起来像你是;-)
从你的日志看,它看起来不像你,但最重要的事情之一是确保你没有运行一个开放的中继。 以下链接应该允许您testing: http : //mxtoolbox.com/diagnostic.aspx
你也需要防止用户枚举。 您不希望攻击者能够login到您的SMTP服务器并执行:“VRFY bob”或“EXPN joe”并让邮件服务器回复,告诉您系统中是否存在joe。 可以将邮件服务器configuration为不支持这些function。 你也不希望邮件服务器响应“MAIL TO:tom”来立即告诉你tom存在。 你明白了。 看看smtp / pop3 / imap用户枚举,并减轻它。
另一件事 – 不要使用pop3或imap没有encryption。 密码将以明文方式通过互联网传送–WiFi通常也很容易被破解,这会立即将未encryption的邮件服务提供给用户。 您需要传输层安全性(TLS)。
与SMTP类似,您希望要求远程用户发送邮件的身份validation,但是这也必须通过TLS连接发送。 此外,不要忘记要求本地用户发送邮件的身份validation,并防止内部开放中继。 我最近在一家律师事务所做了笔试,我可以在25号docker上telnet到他们的邮件服务器,并把公司负责人的邮件发给一名雇员,告诉他他有加薪或被解雇。 显然我也没有做,但你不想让这种可能性。 如果可能,最好有不可否认性。
很明显,你擅长为自己寻找东西,我不会详细说明,但可以说 – 你需要知道与STARTTLS等POP3S和POP3的相对优点,端口25 ,465,587等IMAP和IMAPS等。要求客户端TLS证书进行身份validation可能是顶层的,但不使用自签名服务器TLS证书,您应该得到真正的。 你可以从爸爸或类似的人那里得到便宜的。 不要使用SSL2,SSL3或TLSv1.0。 如果可能的话,TLSv1.2应该全部启用。
此外,configuration邮件服务器时,不要在连接到端口时公布其软件版本(如果可能)。 一个简单的通用横幅应该就足够了。
需要来自用户和pipe理员的强密码!
还有一件事,为了避免垃圾邮件,如果configuration正确,灰名单可以很好地工作。 我用了很长时间,从来没有与未交付邮件的问题。
互联网上的机器总是被扫描和戳穿。 如果你已经安全地configuration了它,那么我不会太担心(虽然你可以使用iptables速率限制,如果你担心DoS – 或者说你的ISP),但是在PLESK等控制面板的东西和SSH,使用iptables将需要访问这些端口的IP列入白名单,这样攻击者甚至不能看到他们在那里。 在您的服务器上使用nmap来查看攻击者将看到什么。 如果所有端口都显示为除了邮件端口之外的普通用户,那么很好。 只使用HTTPS,而不是HTTP连接到Webpipe理的东西,再次,只有TLSv1.2。 或者更好的是,只能在本地主机上侦听,以便从外部访问,然后使用SSH端口转发连接到它!
Google针对您正在使用的每个软件项目的“服务器加固PRODUCTNAME”以及“渗透testingPRODUCTNAME”,“PRODUCTNAME漏洞利用”都可能有所帮助。
非常重要 – 尽可能保持所有软件和Linux操作系统的安装和更新。
经常被忽视的风险是您自己的工作站受到危害。 作为pipe理员,您是主要目标。 如果发生这种情况,那么攻击者可能会窃取你的密码或SSH密钥,并find你的文件,告诉他们他们需要知道你的configuration的一切。 一旦拥有了,即使它是托pipe的Office 365解决scheme,也可以进入邮件系统。 事实上,从某些方面来说,如果它们被托pipe在其他地方并且是一个更为熟悉的configuration,它们将会更容易。
除非需要,否则不要以root或pipe理员身份login到您的计算机。 不要给他们比他们需要更多的访问。 等非常小心打开电子邮件附件等 – 通常的东西。