![DDoS 攻击能阻止我通过 SSH 进入我的服务器吗?](https://linux22.com/image/620495/DDoS%20%E6%94%BB%E5%87%BB%E8%83%BD%E9%98%BB%E6%AD%A2%E6%88%91%E9%80%9A%E8%BF%87%20SSH%20%E8%BF%9B%E5%85%A5%E6%88%91%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%90%97%EF%BC%9F.png)
DDoS 攻击能阻止我通过 SSH 进入我的服务器吗?
我的老板说没有,所以一定是服务器出了问题。然而,即使经过重写,我们仍然被 4-5 个不同的机器人robots.txt
攻击.htaccess
。
我的 PHP 同事认为这是机器人所为,而且我也倾向于同意这一观点,但是这种攻击有可能阻止我自己通过 ssh 进入我的服务器吗?
答案1
绝对是的,因为 DDoS 攻击的目的是压垮服务器资源。这意味着您的平均负载会急剧上升,您的内存会达到最大容量,以至于需要交换到磁盘。而且这不一定只是对端口 22 的攻击。我管理过大量由于上述情况而无法访问的 Web 服务器。
解决此类问题的最佳方法是通过比 SSH 更靠近机器的远程控制台登录。例如在云服务器设置中,您可以选择启动基于 Java 的终端。但这当然取决于您是否具有这样的访问权限。
另一种选择是,在服务器遭受 DDoS 攻击时,痛苦地等待 SSH 连接。有时这种方法有效。但有时我必须打开几个窗口,看看哪个先通过。
编辑:如果你想主动检测你的系统是否正在耗尽资源,我强烈建议你使用监控。我在 Monit 中使用了类似这样的脚本,除了在发生问题时向我发送电子邮件外,它还执行两项操作。一是检测您的 Web 服务器是否无法访问(即:关闭)并自动重新启动。但对您来说,这个loadavg
区域可能最有意义。我在这里将其设置为 7,如果平均负载持续为 7 或更高,它会尝试重新启动服务器以清除连接并尝试使其重新获得控制。使用 Monit 之类的操作几乎可以确保您在发生 DDoS 时能够更好地控制它。
check process apache with pidfile /var/run/apache2.pid
start "/etc/init.d/apache2 start"
stop "/etc/init.d/apache2 stop"
if failed host 127.0.0.1 port 80
with timeout 15 seconds
then restart
if loadavg (1min) greater than 7
for 5 cycles
then restart
alert [email protected] only on { timeout, nonexist, resource }
答案2
是的,但也有其他原因。
我假设您首先排除了 iowait,因此我的下一个建议是捕获 DNS 流量的数据包,并确保反向 DNS 查找正常运行。在极端情况下,即使身份验证成功,DNS 故障也可能会导致登录过程超时. (当然,如果UseDNS no
设置为sshd_config
,这完全没有意义)
正如其他人在评论中强调的那样,您向我们提供您的研究结果很重要,说明您认为 DDoS 导致您被锁定的原因。此问题可能有很多潜在原因,因此不要仓促下结论。
答案3
作为一名曾经遭受过 DDOS 攻击、在托管行业工作过并且拥有空路由受害者 IP 的人,DDOS 确实可以摧毁整个服务器及其提供的任何服务,以及设计不良的网络和该网络上的所有服务器。
确实,机器人也可以破坏服务器;这就是为什么你需要设置robots.txt
一个crawl-delay
减少机器人抓取网站的频率(有些机器人会忽略,crawl-delay
所以必须被阻止;例如,百度会忽略,crawl-delay
尽管它说他们不会在其网站上忽略)。
RewriteRule
您可以使用文件中的 s来阻止恶意机器人.htaccess
。以下是阻止百度的示例:
RewriteCond %{HTTP_USER_AGENT} Baiduspider/2\.0
RewriteRule ^.* - [R=404,L]
答案4
是的,但当且仅当攻击者攻击您的 SSH 端口(默认为 22)时,这会导致该端口的连接过载并禁止任何 SSH 连接,直到攻击停止。