许多 HTTP CONNECT 请求针对非自有域名

许多 HTTP CONNECT 请求针对非自有域名

我有一台有两个 IP 的云服务器,每个 IP 分别配置了apache一台wildfly服务器。在生产环境中,每个 IP 上都有一些域/虚拟主机设置。

检查 apache 访问日志(以及同一云上的 widlfy 日志)我看到许多类似的 HTTP CONNECT 请求:

192.99.xxx.xxx - - [21/Jun/2019:09:58:03 +0200] "CONNECT www.instagram.com:443 HTTP/1.1" 200 - "-" "-"

118.24.xxx.xxx - - [21/Jun/2019:09:59:20 +0200] "CONNECT api.zxkjj.cn:443 HTTP/1.1" 200 - "-" "Python/3.6 aiohttp/3.4.4"

等等..

有人试图入侵我的服务器吗?为什么我会收到他们的邮件?还有……如何在不iptables为每个域或 IP 编写规则的情况下阻止它?


附加信息:我希望直接从 apache 配置阻止不需要的请求。使用 mod_security 删除请求将是最佳选择,而不是 http 403。

我的httpd.conf非常简单:

具有以下设置的默认虚拟主机:

<VirtualHost _default_:*>
    ServerName catchall
<Location />
Deny from all
  Options None
</Location>
</VirtualHost>

第二个虚拟主机的设置如下:

<VirtualHost myserverip:80>
    DocumentRoot "/var/www/mydir"
    ServerName www.mydomain.com

SSLProxyEngine on
ProxyRequests Off
    <Directory "/var/www/mydir">
        Options FollowSymLinks
        AllowOverride All
        Order deny,allow
        Allow from all
     </Directory>

<Proxy *>
   Order Deny,Allow
   Deny from all
   Allow from www.mydomain.com
</Proxy>
</VirtualHost>

但我继续在第二个虚拟主机中收到请求,正如我在第一个问题中所解释的那样。

我哪里错了?

答案1

很可能是该服务器被放入了代理列表,因为有人确实在其上检测到了开放的代理。

CONNECT 返回状态 200 而不是状态 405,这是好/坏的指标。如果此服务器不打算代理 http 请求,则禁用 Apache 中的 mod_proxy 模块。

如果 Apache 用作 Wildfly 的反向代理,则至少禁用 mod_proxy_connect。如果 RewriteRule [P] 用于反向代理,则检查它是否只能代理到 Wildfly 实例,而不能代理到随机域,例如通过捕获 HTTP_HOST 变量并将其放入 RewriteRule 中,如 RewriteRule /wildflyhttps://%1/[P] 或者类似的东西。

答案2

不,这不是试图破解您的服务器。这是试图将您的apache服务器用作代理。您可以做的是在配置中禁用apacheCONNECT 方法:

使用重写引擎:

RewriteCond %{REQUEST_METHOD} ^(OPTIONS)
RewriteRule .* - [F] 

通过允许/拒绝(使用这个答案):

<Proxy *>
   Order Deny,Allow
   Deny from all
   Allow from yournetwork.example.com
</Proxy>

相关内容