我们正在使用nginx,并且需要阻止访问服务器上不存在的某些URL或URL部分,黑客正在使用它们来探测服务器。
为了有效地阻止我们决定把它们放在防火墙上的URL。 这些是一些块:
iptables -I INPUT -p tcp -m string --string "/myaccount" --algo kmp -j DROP iptables -I INPUT -p tcp -m string --string "/login" --algo kmp -j DROP iptables -I INPUT -p tcp -m string --string ".action" --algo kmp -j DROP iptables -I INPUT -p tcp -m string --string ".asp" --algo kmp -j DROP iptables -I INPUT -p tcp -m string --string "/admin" --algo kmp -j DROP iptables -I INPUT -p tcp -m string --string "/connectors/" --algo kmp -j DROP iptables -I INPUT -p tcp -m string --string "/default/" --algo kmp -j DROP iptables -I INPUT -p tcp -m string --string "/filemanager/" --algo kmp -j DROP iptables -I INPUT -p tcp -m string --string "/editor/" --algo kmp -j DROP iptables -I INPUT -p tcp -m string --string "/include/" --algo kmp -j DROP iptables -I INPUT -p tcp -m string --string "/convert/" --algo kmp -j DROP iptables -I INPUT -p tcp -m string --string "wp-json" --algo kmp -j DROP iptables -I INPUT -p tcp -m string --string "/wp-admin" --algo kmp -j DROP iptables -I INPUT -p tcp -m string --string "/administrator" --algo kmp -j DROP iptables -I INPUT -p tcp -m string --string "/wp/" --algo kmp -j DROP iptables -I INPUT -p tcp -m string --string "/modules/" --algo kmp -j DROP iptables -I INPUT -p tcp -m string --string "/new/" --algo kmp -j DROP iptables -I INPUT -p tcp -m string --string "/old/" --algo kmp -j DROP iptables -I INPUT -p tcp -m string --string "/wordpress/wp-admin" --algo kmp -j DROP iptables -I INPUT -p tcp -m string --string "/test/" --algo kmp -j DROP
不利的一面是在把这些规则放到nginx无法访问之后。 这是要么给402或403错误。
任何想法?
编辑
问题可能是规则本身,而不是放在哪里。 试图把它们放在nginx下,并停止响应:
location ~ ^/(wp-admin|wp-login|old/|new/|modules/|wp/|administrator|wordpress/wp-admin|test/|wp-json|convert/|include/|editor/|filemanager/|default/|connectors/|admin|login|myaccount) { deny all; }