apache 虚拟主机作为其他域访问 - 如何阻止它?
apache virtual host accesed as other domain - how to stop it?
我的服务器上几乎没有虚拟主机(比如 \*.mydomain.com
),但是我有很多 "spam/hack requests" 用于一些完全不同的域,例如 xchecker.net
91.122.59.90 - - [2019-09-06 18:09:35] "POST http://fdc.xchecker.net/proxy2017/http/engine16.php HTTP/1.0" 403 302 # "http://fdc.xchecker.net/proxy2017/http/engine16.php" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0"
虽然我的域与 *.*.net 完全不同 - 这些请求失败是因为它们要求不存在的文件,
[Fri Sep 06 18:14:50.416879 2019] [authz_core:error] [pid 226975] [client 5.136.243.174:56314] AH01630: client denied by server configuration: /usr/htdocs, referer: RefererString
但我想更早地拒绝他们,因为他们要求我什至没有的域名。
我试过
RewriteEngine on
RewriteCond %{THE_REQUEST} .*http.* [NC]
RewriteCond %{THE_REQUEST} !.*mydomain.com.* [NC]
RewriteRule ^.* - [G,L]
但根本没用
我应该如何拒绝仅基于错误域访问的此类请求?
主要问题是,我在不同文件和公共文件[=45]中有每个虚拟主机 =] 喜欢设置
LogFormat "%>s # %h %l %u %{[%F %T]}t \"%r\" %>s %b # \"%{Referer}i\" \"%{User-agent}i\"" common
但没有启用集(附加)重写引擎配置。
所以我在每个虚拟主机文件中包含了这些行:
RewriteEngine on
Include /etc/apache2/vhosts.d/x-my-rules
(可能会遵循更多类似的规则(对于我希望将大部分设为私有的网站))
RewriteCond %{HTTP_REFERER} .*(google).* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} .*(bot|spider|Ankit|Bing).* [NC]
RewriteRule ^.* - [G,L]
并创建了公共包含文件 x-my-rules
# LogLevel warn rewrite:trace6
RewriteCond %{THE_REQUEST} .*http(s)?:.* [NC]
RewriteCond %{THE_REQUEST} !.*mydomain.com.* [NC]
RewriteRule .* - [G,L]
RewriteCond %{THE_REQUEST} !(GET\ |POST\ |HEAD\ ).* [NC]
RewriteRule .* - [G,L]
RewriteCond %{THE_REQUEST} .*\./.* [NC]
RewriteRule .* - [G,L]
RewriteCond %{HTTP_REFERER} .*(xchecker.net|blabol).* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (Ankit|Bing) [NC]
RewriteRule .* - [G,L]
(这并不完美,但对我来说很有效:
http://fdc.xchecker.net/proxy201..
完全不同的站点
CONNECT some/service
我什至不主持
GET ../../mnt/Datafile
尝试让文件脱离结构
- 从
xchecker.net
传输到不存在的文件
- 我不喜欢
Bing
并且 Ankit
机器人 进行了多次攻击
稍后我会再次查看日志并添加更多规则,以防其他人试图滥用我的网站)
我的服务器上几乎没有虚拟主机(比如 \*.mydomain.com
),但是我有很多 "spam/hack requests" 用于一些完全不同的域,例如 xchecker.net
91.122.59.90 - - [2019-09-06 18:09:35] "POST http://fdc.xchecker.net/proxy2017/http/engine16.php HTTP/1.0" 403 302 # "http://fdc.xchecker.net/proxy2017/http/engine16.php" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0"
虽然我的域与 *.*.net 完全不同 - 这些请求失败是因为它们要求不存在的文件,
[Fri Sep 06 18:14:50.416879 2019] [authz_core:error] [pid 226975] [client 5.136.243.174:56314] AH01630: client denied by server configuration: /usr/htdocs, referer: RefererString
但我想更早地拒绝他们,因为他们要求我什至没有的域名。
我试过
RewriteEngine on
RewriteCond %{THE_REQUEST} .*http.* [NC]
RewriteCond %{THE_REQUEST} !.*mydomain.com.* [NC]
RewriteRule ^.* - [G,L]
但根本没用
我应该如何拒绝仅基于错误域访问的此类请求?
主要问题是,我在不同文件和公共文件[=45]中有每个虚拟主机 =] 喜欢设置
LogFormat "%>s # %h %l %u %{[%F %T]}t \"%r\" %>s %b # \"%{Referer}i\" \"%{User-agent}i\"" common
但没有启用集(附加)重写引擎配置。
所以我在每个虚拟主机文件中包含了这些行:
RewriteEngine on
Include /etc/apache2/vhosts.d/x-my-rules
(可能会遵循更多类似的规则(对于我希望将大部分设为私有的网站))
RewriteCond %{HTTP_REFERER} .*(google).* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} .*(bot|spider|Ankit|Bing).* [NC]
RewriteRule ^.* - [G,L]
并创建了公共包含文件 x-my-rules
# LogLevel warn rewrite:trace6
RewriteCond %{THE_REQUEST} .*http(s)?:.* [NC]
RewriteCond %{THE_REQUEST} !.*mydomain.com.* [NC]
RewriteRule .* - [G,L]
RewriteCond %{THE_REQUEST} !(GET\ |POST\ |HEAD\ ).* [NC]
RewriteRule .* - [G,L]
RewriteCond %{THE_REQUEST} .*\./.* [NC]
RewriteRule .* - [G,L]
RewriteCond %{HTTP_REFERER} .*(xchecker.net|blabol).* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (Ankit|Bing) [NC]
RewriteRule .* - [G,L]
(这并不完美,但对我来说很有效:
http://fdc.xchecker.net/proxy201..
完全不同的站点CONNECT some/service
我什至不主持GET ../../mnt/Datafile
尝试让文件脱离结构- 从
xchecker.net
传输到不存在的文件 - 我不喜欢
Bing
并且Ankit
机器人 进行了多次攻击
稍后我会再次查看日志并添加更多规则,以防其他人试图滥用我的网站)