阻止或记录直接访问我的网站的 IP (ubuntu、nginx)

阻止或记录直接访问我的网站的 IP (ubuntu、nginx)

网站遭受 DDOS 攻击,但每月十几个 bug 的代价,云服务表现相当不错。我们很高兴!

然而,攻击者一直在用 IP 攻击我们的网站。目前,我们将其 301 转发到 DNS 名称(由云安全服务管理)。这还不够,因为即使是 301 响应,流量也相当大

有没有办法可以阻止和/或记录他们的 IP?

谢谢

答案1

您可以简单地使用 iptables 记录它。

iptables -A INPUT -i eth0 -p tcp -m limit -j LOG --log-prefix "[defence:input_request_ipv4] "

请记住,这只是针对您的问题任务的规则 - 如果您有其他 iptables 规则,则需要正确插入新规则。

可能您还需要对 IPv6 执行此操作。首先检查是否配置命令会显示您的 ipv6 地址。然后检查您的 web 服务器是否也监听 IPv6 - cond=fig 中虚拟主机的内容如下:[::]。ipv6 规则如下:

ip6tables -A INPUT -i eth0 -p tcp -m limit -j LOG --log-prefix "[defence:input_request_ipv4] "

您还可以使用 Web 服务器访问日志收集 IP 地址。Nginx 做得非常好,而且速度很快 :)

更新

对于 nginx 日志记录 - 它取决于您的设置。

大意。

在 nginx.conf 中http部分定义日志格式的参数:

log_format defense_log '$remote_addr $remote_user [$time_local] "$request" status:$status bytes_sent:$bytes_sent gzip_ratio:$gzip_ratio connection_requests:$connection_requests request_length:$request_length connection-serial-number:$connection request_time:$request_time "$http_user_agent" "$http_referer"';

在站点配置中(通常位于 conf.d 目录中)地点部分:

access_log /path/for/my/log/nginx_defence.log defense_log;

重新加载 nginx,您将获得有关您网站的所有请求的详细信息。
祝您与坏人斗争顺利!

答案2

最终的最佳方式是只允许从云服务到您的网络服务器的 HTTP/S 流量,而不允许其他任何流量。

最好的方法是通过 Web 服务器前面的某些硬件防火墙来完成,但 iptables 也可以。

然后他们需要通过云服务

相关内容