我没有在网上找到这方面的帮助,也找不到我需要做的文件...问题是解决方案几乎和问题一样多。现在我需要一个解决方案的解决方案。任何答案如何或链接到控制nginx错误输出的文档将是伟大的。
最初的解决方案和环境: 我有一个PCI安全的Web服务器。对它的攻击是常规的。一切都很好,处理负荷低,30-40MB日志文件,直到OpenVAS在网络上发布。
然后我的服务器流量飙升,nginx使用率上升了400%,PHP后端使用率上升了5000%。日志跃升至130 + MB。这一增长完全是许多新IPS使用新工具包探测盒子的结果。它冲到了后端,我不得不做出一些激烈的回应......
现在,cron会定期查看日志;任何IP请求> X00请求在一小时内,请求已知的URL黑客或其他逻辑;被添加到阻止列表中并重新加载nginx以消除攻击。此后大多数事情都恢复正常。
新问题:
我需要帮助,nginx是如何处理拒绝的。
当我以前访问我的错误日志时,我发现了10-100行错误或通知我需要检查,更正,并推高以保持盒子安全和整洁。
然而,Nginx认为每个拒绝错误...我的每周错误日志现在是300,000行:
2015/11/15 23:01:30 [error] 22040#0: *432212 access forbidden by rule, client: z.z.z.z, server: secure.mydomain.com, request: "GET /cadcd01153160add.aspx HTTP/1.1", host: "x.x.x.x"
有100行错误,有些地方我需要解决...
是的,我可以将它们过滤掉,但是此功能现在将访问日志中的条目复制到错误日志中,因此原始的35MB访问+ 100个错误行日志现在定期为270MB。如果这种情况继续下去,我可能需要为日志获得一个单独的驱动器! (因为攻击正在增加)所以单个框可以处理负载并阻止攻击,但创建了日志文件大小限制的致命弱点。
如何抑制或重定向" 403"因为没有错误并且阻止它充斥日志文件所以我可以减少重复条目,日志大小(错误日志)并更容易地完成我的例程?
答案 0 :(得分:1)
server {
listen 127.0.0.1:80;
server_name 127.0.0.1;
# block access to "web.config"
location ~ /web.config$ {deny all; error_log off;}
# block access to ".htaccess", ".git" and etc.
location ~ /\. {deny all; error_log off;}
# single entry point to index.php?q={REQUEST_URI}
location / {
root %%_root;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
include %%_include;
fastcgi_param SCRIPT_NAME /index.php;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
}
}
答案 1 :(得分:0)
我刚刚发现了这一点,看起来很有希望:https://www.nginx.com/resources/admin-guide/logging-and-monitoring/#syslog
我可以过滤记录哪些事件,或将某些错误状态定向到特定的日志文件。这可以将403与我需要审查的错误分开。
答案 2 :(得分:0)
您可以做的,并且过去曾为我工作,是重新定义过滤流量的块上的日志级别。 就我而言,我使用的是位置指令,所以我要做的就是:
location ~* /lucee/ {
error_log /var/log/nginx/error.log emerg;
deny all; # block access
}
将日志级别设置为emerg将防止记录错误级别消息,并且仅适用于此特定位置,因此所有其他错误消息应保持不变。