2011-09-16 8 views
2

私はIIS 7.5でWordpressを実行しています - 今日私のログを見直していましたが、私のウェブサイトに多くの暴力が加わり、セキュリティを脅かす可能性のあるファイルを探していました。具体的には、セットアップファイル、phpMyAdmin、他のmysqlなどを探しています。これらはすべて404です。IIS/PHPブルートフォースセキュリティモジュール - 提案?

この情報に基づいて、セキュリティモジュールを作成する方法は何ですか?A [n]行の404の数。 B)phpMyAdminを探すなど、特定のキーワードに一致するユーザーをブロックする。 C)これはオプションですが、ハードコード/追加したい場合は、理想的な解決方法はIPアドレスをブロックします。

私はいくつかのアイデアを持っていますが、私は他の提案も探しています。サーバーはIISなので、C#ASP.NETを使用しているか、IISに何らかの形で埋め込まれているソリューションが好きです。

答えて

1

すべての要求をインターセプトするHttpHandlerを実装します。彼らがそれらのモジュールを探しているなら、彼らのipを記録して、攻撃を止めて、ブロックされたホストのリストにipを追加します。

はい - 誰かがIPを偽造することができます(DoS攻撃で懸念され、ここでは実現できません)が、セッション全体(ざっとパケット)を偽造できないため、応答と、ファイルがとにかく存在するかどうかを知る。

この方法は、すべての追加アクセスをすぐにブロックするなどの特別な方法でipsを処理する場合に使用します。

このタイプのコントロールが不要で、UrlScanがIISに組み込まれているので、カスタムURLScanのルールをすぐにブロックすることをブロックする必要がある場合は、すぐにブロックします。 参照: http://www.hanselman.com/blog/HackedAndIDidntLikeItURLScanIsStepZero.aspx

+0

iisのurlscanは、Apacheの書き換えルールと同じ考えですか?私が使う理由は、phpMy * admin * config *のすべてのリクエストをインデックスに書き直すだけです。これは主にエラーログをクリアするだけです(私はこれらのフォルダを持っていないので)。でも、安心です。 – thegaffney

+0

いいえ、URLScanはApache rewriteのようなURLリライタではなく、代わりに攻撃を止めようとします。トラック。リダイレクトしたい場合(私はあなたがUrlScanでできるとは思っていませんが、間違っていると思います)、1つのオプションはハンドラを実装することです。 –

0

A)は、行の404年代の[n]の数よりも多くを有するユーザーをブロックします。

「Better WP Security」という名前のプラグインがあります。この機能には404検出機能があります。私は現在それを使用しており、とてもうまく動作しています。

B)特定のキーワードに一致するユーザーをブロックします。たとえば、phpMyAdminを探します。

phpMyAdminにアクセスしようとする人だけをブロックすることは望ましくありません。これは自分自身も含むためです。 IPでリクエストをフィルタリングしたい - ホワイトリストにない誰もphpMyAdminにアクセスできないようにする。あなたは、以下の3番目の質問の私の答えでこれを行う方法を見つけるでしょう。

C)これはオプションですが、私はあなたがIIS上のwp-login.phpとWP-adminにアクセスを禁止する手順の下に従うことができます

したい場合に理想的なソリューションでは、IPアドレスをブロックしますホワイトリストにないIPの場合は7.5です。手順4のコードで(包括的に)タグ間でコードをコピーし、 "path"属性を変更することで、WordPressフォルダに必要なファイル(例:phpMyAdmin)を模倣することができます。

1、ウェブを開きます。WordPressのルートフォルダに設定ファイル、あなたは、そこにそれを見つける1

2を作成し、[この記事を]以下で、「IPおよびドメインの制限」の役割を有効にしない場合は、[1]

3、オープンIIS右のパネルのルートノードをクリックして、 "Feature Delegation"を選択し、 "IPv4 Address and Domain Restrictions"項目を見つけ、それに "Read/Write"委任を与える

4、web.configファイルを開き、ファイルを自分で作成して空の場合は、次のコードを追加してください(説明は下部の注記を参照してください)。

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
<location path="wp-login.php"> 
     <system.webServer> 
     <security> 
      <ipSecurity allowUnlisted="false">  
       <clear/> 
       <add ipAddress="100.100.100.29" allowed="true"/> 
       <add ipAddress="111.111.111.0" subnetMask="255.255.255.0" allowed="true"/> 
      </ipSecurity> 
     </security> 
     <modules runAllManagedModulesForAllRequests="true"/> 
     </system.webServer> 
    </location> 

    <location path="wp-admin"> 
     <system.webServer> 
     <security> 
      <ipSecurity allowUnlisted="false">  
       <clear/> 
       <add ipAddress="100.100.100.29" allowed="true"/> 
       <add ipAddress="111.111.111.0" subnetMask="255.255.255.0" allowed="true"/> 
      </ipSecurity> 
     </security> 
     <modules runAllManagedModulesForAllRequests="true"/> 
     </system.webServer> 
    </location> 
</configuration> 

既存のweb.configファイルで作業している場合は、web.config内の既存のタグにタグ間のコードを追加するだけで済みます。

説明:このコードは、訪問先のwp-login.phpまたはwp-adminからのすべてのIPをブロックしますが、例外はIP 100.100.100.29および111.111.111.1-255です。これらのIPを自分のリストに置き換えてください。

5、リストにないIPからwp-login.phpまたはwp-adminにアクセスすると、403 - アクセス拒否エラーが発生します。