ターミナルサーバー(Win2008R2)に対するブルートフォース攻撃を阻止する方法


23

私はブルートフォース攻撃を阻止するLinuxツールに精通しているため、Windowsに適したツールを見つけるのに苦労しています。Terminal ServerでWindows Server 2008 R2を実行していますが、RDP経由でログインを繰り返し試行した後にIPをブロックしたいと思います。任意のヒント?


3
あなたは本当にあなたのWindowsサーバ上でこれを処理する必要がありますか?エッジデバイス(ファイアウォール/ルーター)でレート制限を行うことを検討しましたか?
Zoredache

2
Windowsボックスはホスティング会社が運営するVPSであるため、ネットワークデバイスにアクセスできません。
onik

失敗したログインでタスクスケジュールイベントを設定して、PSスクリプトを起動できます。PS Svriptは、IPが試行した回数をカウントし、ファイアウォールルールでブロックする必要があります。このようなスクリプトはありませんが、作成することは可能です。
クリス・S

@Chris S:それは多かれ少なかれ私のts_blockスクリプトの動作です。ただし、イベントログの「シンク」として実行され、新しいイベントが記録されるたびにコールバックを受け取ります。そのため、リアルタイムで多かれ少なかれ実行されます。
エヴァンアンダーソン

VPNを使用-インストールなど。ルーター上のOpenVPN。Windowsボックスを直接インターネットに接続しないでください-危険です。
インテグレーター

回答:


5

すでに述べたように、rdpログイン試行を停止するには、特定のIPを分離するためにファイアウォールを制御する必要があります。管理ツール->ターミナルサービスマネージャーでいくつかの設定を行うことができますが、この方法で1つのIPを停止することはできません。たぶん、rdpポートをリッスンしてログオン失敗を制御するバッチスクリプトを検討する必要があるため、同じIPでtot試行(番号を選択...)があった場合、既知の期間の他の試行はできませんでしたこと。可能かどうかはわかりませんが、方法があるかもしれません...


1
わかりましたので、思ったとおりです。イベントビューアを調べて、バッチ処理のためにIPアドレスをファイルにエクスポートできるかどうかを確認する必要があります。当分の間、手動で生成された.csvダンプからそれらをgrepする必要があります
-onik

5
RDPが応答するポートを変更します。
-JohnThePro

面白いことに、私はIPアドレスを制限したいということですが、IPアドレスを報告しませんログオンの失敗
チャバ・トス

ポートを変更しても不明瞭になります。彼らは、インテリジェントなポートスキャンソフトウェアで新しいポートを見つけます。
TheLegendaryCopyCoder

@CsabaTothイベントログは、デフォルトでは有用な情報を記録しません。いくつかの追加情報のRDP要求を受信するドメインコントローラーまたはコンピューターから、netlogonサービスで詳細ログを有効にできます。Windowsファイアウォールのログを有効にして、IPアドレスを決定できます。
マイケルスティール

25

レート制限がある場合のみ、エッジファイアウォールでこれらの試行をブロックする必要があります。あなたがそれを行う能力を持っていない場合は読んでください。

エッジファイアウォールでブロックできず、インターネットのサブセットに対してのみRDPを開く必要がある場合は、組み込みのWindowsファイアウォール機能を使用して、着信接続をロックダウンします。

最後に、本当にIntenet全体に対してRDPを開く必要がある場合は、githubリポジトリあるWindows用のSSHブルートフォースブロッカープログラムの修正版をご覧ください。このスクリプトts_blockは、Windows Server 2003、2008、および2008 R2でのブルートフォースターミナルサービスログオン試行をブロックします。残念ながら、RDPにTLS / SSLセキュリティレイヤーを使用しているときにWindowsによってログに記録されるイベントが変更されるため、このスクリプトはますます非効率になっています。(Microsoftが認証しようとするホストのIPアドレスを省略することを選んだのは、私を超えています。それは、ログを記録するのに非常に重要なことです。)


1
ここではts_block ページを使用していますが、すごいです!私のWindowsサーバー(2008 R2)は、かつてない多数のブルートフォース攻撃で速度が低下していましたが、それ以上ではありませんでした!TS_BLOCKはvbscriptで記述されており、Windowsサービスとしてインストールできます/インストールする必要がありますが、MSIバージョンを使用しないでください。.vbsコードにはハードコードされたデフォルトがあるため、レジストリエントリは必要ありません。<p>コードを編集しましたが、ログインに失敗するたびにブロックされます。スクリプト

これはかなり甘いです、エヴァン。私は、C#で再実装する心が半分あるので、srvanyなどでハックするのではなく、ネイティブのWindowsサービスとして実行できます。私がやったことがあるなら、それをGithubなどに投げます。
ライアンボルガー

1
@RyanBolger:私はVBScriptと通訳言語全般にソフトスポットがあります。「Non-Sucking Service Manager」を使用すると、VBScriptプログラムをサービスとして実行するのがかなり簡単になります。
エヴァンアンダーソン

ts_blockは、「Thank You Evan Anderson」を探していたものとまったく同じです。最初のターミナル仮想サーバーを1日以内にWebに直接配置して、1万回以上ログインに失敗しました。私は時間があるとき、私はそれを修正し、前のブロックの数に基づいて、恒久的なブロッキングを追加することができます。例:IPは1日に4回禁止されます。(それが既に作成された場合を除く)

基づいてts_blockスクリプトここで使用する溶液であるfail2ban:ゲートウェイには、攻撃をブロックするwqweto.wordpress.com/2013/12/10/...
wqw

3

まさにこれを行うC#プログラムがあります。Server 2008 R2で問題が発生し、イベントログにユーザーのIPアドレスが表示されないことがありました(新しいリモートデスクトップクライアントから接続した場合)。一部のサービスは、あなたが望むすべての情報を提供していない、独自の資格チェックプロバイダーを実装します。

http://cyberarms.net/security-insights/security-lab/remote-desktop-logging-of-ip-address-%28security-event-log-4625%29.aspx

ただし、リモートデスクトップの場合、「リモートデスクトップセッションホストの構成」に進み、RDP-TCP接続を変更して、「ネゴシエート」または「SSL(TLS 1.0)」ではなく「RDPセキュリティレイヤー」のセキュリティレイヤーを戻すことを発見しましたIPアドレス。

これを本当に実行するかどうかは、「RDPセキュリティレイヤーを選択した場合、ネットワークレベル認証を使用できません」という別の質問です。

http://www.windowsecurity.com/articles/logon-types.htmlが役立つことがわかりました。EventLogWatcherを使用し、「* [System / EventID = 4625またはSystem / EventID = 4624]」にバインドしているため、ユーザーが本当にパスワードを間違えた場合、成功時に不良カウントをリセットできます。また、:: 1、0.0.0.0、127.0.0.1、および「-」をホワイトリストに登録しました。LAN /管理IPをホワイトリストに登録する場合としない場合があります。

Forefront TMGを使用しているので、APIを使用して不正なIPアドレスをそのようにIPのグループに追加し、SMBルーターの1つにAPIアクセスを追加するようにシスコに依頼しました(これは確実に行われるかもしれません!)

ネイティブのWindowsファイアウォールを使用してそれらをブロックする場合は、そのAPI(「netsh advfirewall」)をご覧ください。

禁止するまでx回の試行を許可し、成功するとカウントがリセットされます。


2

侵入、または乱雑なログを防止しようとしていますか?侵入を防止しようとしている場合、Windowsにはログインの試行をブロックする組み込みの方法があります。[コンピューターの構成]-> [ポリシー]-> [Windowsの設定]-> [セキュリティの設定]->アカウントポリシー->アカウントロックアウトポリシー。

攻撃者は、管理者のような一般的なユーザー名を使用します、そして、彼らは確かにそれらをロックアウトします。あなたはとにかく、おそらく賢明である実際の投与のために別々のアカウントが必要と思います。

自動的にファイアウォールレベルで遮断することは、ファイアウォールルールの自動更新を読んでいくつかのスクリプトのログが必要になります。あなたは、IPアドレスに基づいて、このようにルールを追加することができるはずです。これは基本的に、Linuxシステムでiptablesが行うことです。

それは少し明白かもしれないが、あなたはまた、上のリモートデスクトップサービスを実行していると考えられている非標準のポート?これは、侵入を阻止で私のために非常に有効でした。


ファイアウォールで繰り返される接続試行をブロックすることは良い習慣ですが、「ファイアウォールの背後」でブルートフォース攻撃が発生しないと仮定することは、あまり良い前提ではありません。私の考えでは、ホストベースのブロックのブルートはかなり良い考えです。アカウントのロックアウトを使用することは間違いなく良い考えですが、ログをよりクリーンに保つためのブルートフォースの試みを抑圧するという考えも気に入っています。
エヴァンアンダーソン

1
私はすでに非標準ポートで実行されていますが、実際に大きな懸念は、ログイン試行の回数が多いためにサーバーが事実上オフラインになることです。
boomhauer

1つのオプションは、ファイアウォールを介したリモートデスクトップへのアクセスを完全に無効にすることですが、RDPトラフィックの通過を許可するようにファイアウォールを再構成するサーバーでサービスを実行します。このサービスはパスワードで保護され、「信頼できる」IPソースからのアクセスのみを許可します(携帯電話のIP範囲やオフィスなど)。手間がかかりますが、機能します。

1

代わりにGUIベースのソリューションを使用し、異なるイベントに対して異なるルールセットを実際に作成する場合は、他にもいくつかのソリューションがあります。最も簡単な方法はRDPGuard(hxxp://www.rdpguard.com)ですが、企業環境では、攻撃がどこから来たか(国、発信元)、使用したユーザー名など、より多くのレポートが必要になるでしょう。自分のユーザーが誤って自分をブロックしているか、そうでないことがわかっている場所からログインしようとしているかを判断します。

個人的には、Syspeace(hxxp://www.syspeace.com)が好きです



弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.