web-dev-qa-db-ja.com

403禁止されたエラー

ウェブサーバーに問題があります。たとえば、SeafileやRoundcubeをクリックして高速でクリックすると、しばらくすると403 Forbidden Errorが表示されます。それから私ができる唯一のことは、〜10秒待ってから仕事を続けることです。 Apacheログには、それだけが記載されています:

[Thu Oct 22 14:48:53.068806 2015] [evasive20:error] [pid 3725] [client 95.88.156.113:52747] client denied by server configuration: /var/www/seahub.fcgi, referer: [Seahub Adress]

Apache 2.4.7を実行しており、Apache2.confでディレクトリがRequire all grantedおよびOptions Indexes FollowSymLinksに設定されています。

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>
<Directory /var/lib/roundcube>
    Options Indexes FollowSymLinks
    Require all granted
</Directory>
<Files /var/www/seahub.fcgi>
  Options Indexes FollowSymLinks
  Require all granted
</Files>
<Directory /home/seafile>
  Options Indexes FollowSymLinks
  Require all granted
</Directory>

Seafileのサイトで利用可能なエントリでさえ、<Location>タグでこのセットが設定されています:

....
DocumentRoot /var/www
Alias /media  /home/seafile/haiwen/seafile-server-latest/seahub/media
RewriteEngine On
<Location /media>
  Require all granted
</Location>
<Directory /home/seafile>
  Require all granted
  AllowOverride All
</Directory>
....

どうしたの?

1
levinus

Apache HTTPはmod_evasiveをオンにして実行されています。

このモジュールは、Webサーバー上のDDoS攻撃に対する保護レイヤーです。

どういうわけかmod_evasiveはDDoS試行としてアクセスを検出します。 /var/log/mod_evasiveには、すべての情報を書き込むログがあります。そこから開始して、DDoS試行としてアクセスを検出した理由を確認できます。

公式のUbuntuリポジトリを使用してすべてをインストールすると仮定すると、a2dismod mod-evasiveコマンドでmod_evasiveを無効にしてから、Apacheをリロードできます。

3
Aizuddin Zali