最近(过去几天),我的服务器遭受了多次攻击。
这些攻击的类型例如:
- 几种 SQL 注入方法(select/union/where/null 等)
- 暴力攻击(例如通过 SSH 进行 root 访问、对不同服务的多次身份验证失败)
- 扫描常见的易受攻击的文件等。
- 扫描未删除的 install.php install/ 文件/文件夹等。
- SSH 不安全连接尝试(扫描)
- 多个 Web 服务器 400 错误代码(/w00tw00t.at.ISC.SANS.DFind:)等)
- 尝试访问禁止的文件或目录
- 尝试使用不存在的用户登录不同的服务。
- 等等...
攻击来自中国、法国、美国等。
示例 IP:
- 122.225.109.205
- 46.105.250.105
- 108.23.96.102
- ....
我已经联系了(或至少尝试过)一些可能的服务器所有者,了解攻击是从哪里发起的(如果我能找到有关它的任何信息)。
我采取了哪些措施:
- 将所有服务/ssh/数据库等的每个密码更改为 250 个字符的随机字符串(当然包括特殊字符)。
- 通过 SSH 撤销 root 访问权限
- 设置防火墙
- 设置 hosts.deny
- 从服务器中删除了几乎所有的私钥/公钥对(仅删除了对存储库具有读取权限的关键密钥)
- 为 Web 应用程序/网站配置适当的 chmod/chown
- 配置正确的 php.ini(例如,对 disable_functions 等进行最严格的设置)
- 升级所有软件包(数据库/java/php 等)
- 我还安装了安全程序(考虑到安全性,我不会说是哪一个),它可以拦截大多数上述攻击,例如自动将 IP 地址添加到 hosts.deny 和防火墙等。
我还能做什么吗?
我的问题是,我该怎么做才能防御并防止进一步的攻击?看起来有人急于入侵我的服务器...
答案1
我想补充一些建议:
安装失败2ban在您的服务器上
当检测到服务上出现(可配置)连续错误(SSH 上的密码不正确、Apache 上的 HTTP 404 等)时,它将阻止攻击者的 IP 地址。这使得任何人对您的服务进行扫描都变得更加困难。
安装哨兵港
任何访问
n
封闭端口后试图对您进行端口扫描的人都会被阻止。如果可能,更改默认端口
它对付坚定的攻击者毫无用处,但在更高的随机端口上运行 SSH 可以阻止几乎所有扫描互联网的盲目机器人访问您的服务器。您无法更改 HTTP 端口,但可以更改数据库端口、SSH、FTP 等。
在网络上安装蜜罐来享受乐趣
我安装了火锅在我拥有的系统上,很高兴看到数以千计的连接尝试永远不会成功的暴力破解。
正如@deagh 所建议的,它可用于向 iptables 提供数据,因为到蜜罐系统的每个连接都是未经授权的,可以安全地阻止。它对于浪费攻击者的资源也很有用。