web-dev-qa-db-ja.com

一般向けのリモートデスクトップサーバーを保護する方法

ネットワークの外部からアクセスできるようにリモートデスクトップサーバー(ターミナルサービス)を公開する必要があると考えています。現時点では、ネットワーク内からのみアクセスできます。

ファイアウォールを開いてポートを転送するのは簡単です。

しかし、マシン自体をどのように保護するのですか?これに関するベストプラクティスは何ですか?私の懸念は、ハッカーがそれに侵入することに取り組むことができることです。

ベストプラクティスのガイドライン/推奨事項があれば、大歓迎です。


編集:

私が見つけた製品に関する質問:

IP、MACアドレス、コンピューター名などで受信RDP接続をフィルター

誰でもこれのセキュリティについてコメントできますか?マシン名/ Macでアクセスを制限するためにも使用できるように見えますか?他の誰かがそれを使用しましたか?

16
me2011

これはあなたが望んでいることよりも多いかもしれませんが、VPNを使用していないリモートユーザーに対してRDPを使用する方法を次に示します。

最近、Windows 2008の役割であるリモートデスクトップサービスでRDゲートウェイマネージャーの使用を開始しました。TMGサーバーを経由してユーザーのコンピューターに直接接続するようにセットアップしました。上記のようにNLAを使用します。接続するユーザーは、正しいADグループのメンバーである必要があり、アクセスを許可するには、正しいローカルグループのメンバーである必要があります。セットアップ方法に応じて、基本的にmstscを開いてRDゲートウェイのプロキシ設定を入力するWebページを介して接続するか、マシンを開くたびにアクセスしようとするようにマシンの設定を手動で設定できますそのプロキシを介して。これまでのところ、それは非常にうまく機能しており、安全であるようです。

14
Don

最近の履歴 が示しているように、プロトコルを公開することには固有のリスクがあります。ただし、システムを保護するために実行できる手順がいくつかあります。

  • ネットワークレベル認証を適用します。
  • 接続の暗号化を適用します。
  • ターミナルサービス経由でのログインを許可するユーザーを最小限に制限し、デフォルトのドメインAdministratorアカウントなどの「特別な」アカウント、または理想的には他の高特権アカウントを許可しないでください。
  • ログインが許可されているアカウントでパスワードが強力であることを確認してください。ユーザーの数とポリシーの現在の状態によって異なりますが、ハッシュをダンプしてクラックを試み、パスワードの長さの制限を引き上げるか、単にユーザーを教育します良いアプローチ。
8
Shane Madden

リモートデスクトップゲートウェイサービスの使用を強くお勧めします。これにより、誰がどこから何に接続できるかについてのポリシーを適用できます。ロギングに適した場所を提供するため、ファーム内の個々のサーバーのイベントログを調べなくても、誰がログインしようとしているかを確認できます。

まだ行っていない場合は、アカウントロックアウトポリシーがかなり強力に設定されていることを確認してください。 NLAとゲートウェイを備えたRDPでも、強引にパスワードを強制する試みを人々に提供します。強力なロックアウトポリシーは、ブルートフォース攻撃の成功を非常に困難にします。

システムに有効なSSL証明書をセットアップして、誰かが何らかのMITM攻撃を実行しようとしている場合にクライアントがエンドユーザーに通知するようにします。

6
Zoredache

これはあまり安全ではありませんが、セキュリティを強化する方法はいくつかあります。

そのサーバーからのインターネットアクセスを禁止します。より深刻なマルウェアの多くは、システムが危険にさらされると、コマンドアンドコントロールサーバーに通信しようとします。ファイアウォールアクセスルールを構成して、デフォルトで送信アクセスを禁止し、内部/既知のネットワークとRFC 1928サブネットへの送信アクセスのみを許可するルールを設定すると、リスクを軽減できます。

スマートカードまたは他の種類の2要素認証を使用します。これは一般に高価であり、大規模な組織で主に見られますが、オプションは改善されています(PhoneFactorが思い浮かびます)。スマートカードの要求は、アカウントレベルで構成するオプションとして、サーバーごとに実行できることに注意してください。

境界ネットワークを構成し、リモートデスクトップサーバーを境界に配置し、安価なVPNを使用してアクセスを提供します。例はハマチでしょう。境界ネットワークからのインターネットアクセスを禁止することも良い方法であることに注意してください。

可能であれば、完全なデスクトップを提供せずに、必要なアプリケーションを公開してください。誰かが単一のアプリケーションにのみアクセスする必要がある場合は、「初期プログラム」を構成することもできます。これは、アプリケーションが閉じるときにログオフを強制できる単純なラッパーシェルである場合があります。

3
Greg Askew

私は以下の対策を提案します:

  1. リモートデスクトップ接続に使用するポートを変更する
  2. 一般的なユーザー名を使用せず、より複雑な命名ポリシーを使用する
  3. 高いパスワード要件
  4. 外部からのその他の未使用のポートを閉じます(受信)。

オプション

  1. VPN(Cisco、Open VPNなど)を使用し、内部IPを使用してサーバーに接続します。
  2. 可能な場合はスマートカードログオンを使用する
1
Alex H

ポート22で WinSSHD を実行し、次に Tunnelier クライアントを使用してトンネルを作成し、ワンクリックでトンネルを介してターミナルサービスセッションを自動的に開くことができます。これにより、ファイルの転送にも非常に優れた安全なFTPオプションが提供されます。

1
djangofan

Bitvise SSHは、Windowsに適した無料のSSHです。

私は、クライアントからインターネットゲートウェイの境界までの安価なSSL VPNターミネーションを、通常の使用以外の目的(商用の信頼性など)で使用します。

RDPのセキュリティ保護に関する上記の投稿も良い方法であり、コンピューターをフリーローダーと共有したくない場合は常に実行する必要があります。

1
will

私はこれらにsshポート転送を使用しており、ユーザーレベルの公開鍵ベースの認証のみを許可しています。すべてのユーザーの秘密鍵も暗号化する必要があります。 WindowsではPuTTYがこれをうまく行い、ページェントはユーザーがキーを簡単にロードできるようにします。デフォルトでsshがインストールされているLinux/BSDサーバーを実行していない場合は、CygwinでOpenSSHを使用してこれを行うことができます。

SSHでポート転送を許可すると、基本的には必要なユーザーに対して内部サーバー/ポートが開かれるため、ローカルファイアウォールを備えた専用のリモートシェルサーバーで、リモート処理を許可しないものをブロックすることをお勧めします。

1
Jon Zobrist

本当にベストプラクティスではありませんが、いくつかのランダムな考え:

  • システムを最新の状態に保つ-自動アップデートを許可し、寿命が切れた製品は使用しないでください。
  • すべてのシステムアカウントに長い/複雑なパスワードを使用する
  • ここでは、「あいまいさによるセキュリティ」を提案していると叱られますが、次の場合は害はありません。
    • デフォルトの3389/tcpポートを26438/tcpなどの他のポートに変更します
    • ファイアウォールレベルで port-knocking [可能な場合]を追加して、潜在的なRDPユーザーが最初にWebページにアクセスして、サーバーにRDPできるようにします。
0
pQd