未知 IP 尝试登录我的 phpmyadmin

0 hacking phpmyadmin

我非常担心。我有一个小型网络服务器,托管一个 PhpMyAdmin 页面(其中有一些重要的数据库)。昨天,我在我的服务器上发布了一个完整的新网页(但是一个非常简单的 HTML 和样式表页面,没有任何世界不关心的东西)。我没有对任何人说过这件事。我只是用我母亲的计算机访问我的网站,向她展示该网站的外观。而且,从昨天开始,有非常非常奇怪的 IP 访问了我的网络服务器(我在 apache2 访问日志中看到它们)。

有些尝试访问甚至不存在的目录: 这是日志

这些目录 /home、/login/、/vpn 是什么???正如你所看到的,显然,他们向客户端返回了 404,但他为什么要尝试访问这个?而且,实际上这并不是很重要,因为其他一些 IP 尝试访问 PhpMyAdmin 大约 40 次。 就这个

而这才相当于这个家伙IP的50%。正如你所看到的,我尝试了所有可能的密码。幸运的是,我并不傻(笑),我设置了一个强密码(12 个字符,带有数字、标题..),但是如果有一天这个黑客有一天会怎样呢?因为我在网站上的所有帐户上使用相同的密码(幸运的是电子邮件除外)。我想看看这个人是从哪里来的。所以我在 iplocation.com 上搜索, 结果如下:

我的服务器上安装了fail2ban,但它仅适用于 ssh 和 apache。我还寻找放置 .htpasswd 文件,但我认为这仅适用于 apache 页面。

我真的很有压力,因为我的服务器非常非常小(四核 1.5GHz 和 4Gb RAM),当然它无法处理任何 DDoS 或其他任何情况。

我能做什么?设置fail2ban/第二个密码安全层是个好主意吗?我也使用这个服务器作为 VPN,并且经常使用 ssh。您认为黑客可能会监视我的活动并捕获我填写的用于访问 VPN 或 SSH 的密码吗?

这篇文章很长,我的英语很糟糕,所以感谢您花时间考虑我的问题

欢迎任何帮助

克莱门特

ibe*_*tch 5

拥有面向公众的服务器的一部分是,大量受感染的计算机不断尝试大量可能的资源,以期利用某些东西。他们会尝试许多常见的 URL(例如/admin/),希望找到易受攻击的软件。这都是自动化的、持续的,并且通常来自多个来源。您不太可能是故意有针对性的攻击的结果。您现在可能会从该特定 IP 地址看到此扫描,并在几小时、几天或几个月后从不同的 IP 地址看到类似的扫描。您可能继承了某个特定的人想要攻击的 IP 地址,但更可能的解释是您的服务器处于在线状态,并且这些大量计算机正在尝试攻击他们能找到的每台服务器。

您可以使用一些常识性提示来减少您的脆弱性。启用双因素身份验证(phpMyAdmin 支持)、运行尽可能少的服务(例如,如果不需要,请勿运行 FTP 守护进程等)以及定期更新所有面向公众的软件。有帮助的事情。我不确定fail2ban的有效性;有些人说它很好,因为它可以阻止重复尝试,并可以减少攻击系统的尝试次数,其他人可能会认为,由于攻击来自分布式源,因此一次阻止一个 IP 地址是无效的。就我个人而言,我喜欢分层安全性,并认为任何降低攻击有效性的方法都可以帮助我的系统更加安全。

具体到 phpMyAdmin,我有一些想法。在我的一台服务器上,我不允许从公共互联网访问 phpMyAdmin。我将 nginx 配置为仅侦听本地连接,然后使用 SSH 隧道连接到我的服务器,将其视为跳转盒,以便 nginx 将传入连接视为来自本地主机。这样,我就不会直接将 phpMyAdmin 暴露到互联网上。再说一遍,我是分层工作的;如果我让 phpMyAdmin 暴露,那么攻击可能会尝试暴力破解密码。如果您确实让 phpMyAdmin 暴露,您应该删除匿名 MySQL 用户并审核所有用户帐户,以确保它们是需要的并且具有正确的密码。您可能想在 phpMyAdmin 中启用双因素身份验证。

我还建议不要从面向公众的界面运行 VNC(或 RDP)。我觉得你应该通过 SSH 隧道或 VPN 来建立这些连接。虽然每种协议都有很多实现,而且我对任何具体解决方案的细节都了解不够,无法在这里评论任何特定解决方案,但总的来说,这些协议在历史上一直是高风险服务。

您询问了fail2ban并说它仅适用于SSH和Apache。没关系; 你还有其他服务在运行吗?您的 phpMyAdmin 通过 Apache(或您正在运行的任何 Web 服务器)提供服务,并且日志部分中的大多数其他页面都不存在,因此事情的结束看起来非常安全。如果您正在运行其他服务,您应该考虑正确保护这些服务,但到目前为止您只提到了 SSH 和 Apache,如果您采取措施保护这些服务,您将比其他一些服务器处于更好的状态。

您可以考虑更改端口,例如在端口 9999 上运行 SSH 或在端口 10000 上运行 VNC(只是为了弥补)。这些非标准端口将在一定程度上帮助减少您获得的流量,但根据我的经验,它们通常不是一个非常坚固的防线。主要原因是攻击者可能正在运行完整端口扫描,而不仅仅是尝试常见端口。他们可以扫描您所有可用的端口,而这只会使攻击者付出最少的努力。有些人认为这是另一层安全保障。我个人对这种方法无感。

您可以考虑的另一种技术称为端口敲门。快速版本是,在您首次访问特定端口或一系列端口之前,您的服务器不会接受服务(例如 SSH 或 VNC)的连接尝试。这就像一个秘密的敲门声,让你的服务器允许你进入;对于攻击者来说,VNC 端口看起来是关闭的,但当您以正确的顺序访问它时,您将能够连接。端口敲门可以是分层安全方法中的另一个工具。配置它需要一些努力,但好处是您的服务器可以避免攻击者在大多数协议上进行连接尝试(当然,您希望公众找到的内容,例如 HTTP,将不受端口敲门规则的约束)。

您确实应该为每项服务设置唯一且强的密码。您可以使用密码管理器或笔记本来跟踪它们,但在服务之间重复使用密码通常是一种糟糕的安全做法。

另一件事是,我非常喜欢完全禁用 SSH 密码登录并依赖基于密钥的身份验证。猜测私钥所涉及的密码学比暴力破解密码要困难得多。使用基于密钥的身份验证并禁用密码登录将是使您的 SSH 访问更加安全的重要一步。