RDP ポートを 3389 から変更:何が解決し、何が解決しないか
RDP を既定のポートから動かすと攻撃量は大きく減り、そしてほとんど何からも守ってくれません。実行する前に、その両方を理解しておく価値があります。
率直な要約
RDP を 3389 から動かせば、ログイン失敗の量は一晩で 9 割ほど落ちます。同時にそれはセキュリティ対策ではなく、対策だと思って扱うことこそ、「もう終わった」と考えた管理者のサーバーが侵害される道筋です。
どちらも真なのは、別々の問いに答えているからです。量の低下は現実であり、測定でき、有用です。防御としての効果は、30 秒でも調べる相手に対してはほぼゼロです。
やる価値はあるか。たいていはあります——ノイズ低減として、防御に加えて。決して防御の代わりにではなく。
実際に止まるもの
RDP への攻撃トラフィックの圧倒的多数は、たった 1 つのことをする無差別スキャナーから来ます。広い IP レンジにわたってポート 3389 に接続し、応答したものにパスワードを試す。彼らはポートスキャンをしません。各アドレスで 65,535 ポートを調べるコストは 1 つを確認するより桁違いに高く、3389 にいるマシンは十分に多いので、わざわざやる理由がないのです。
34519 に移せば、あなたはその母集団から完全に外れます。グラフは崖のように落ち、セキュリティログは数時間ごとに回るのをやめ、その中から本物のイベントを見つけることが再び可能になります。
この最後の点は過小評価されています。実際に読めるイベントログはインシデント対応の最中に本物の価値を持ちますが、1 日 3,000 件の失敗がある状態では、それを持っていません。
止まらないもの
全ポート範囲をスキャンする相手は、数分であなたを見つけます。RDP はどのポートにいてもハンドシェイクから容易に識別できるため、全ポートを走査して応答をフィンガープリントするスキャナーは、一度目であなたのサービスを正しくラベル付けします。
Shodan や Censys はまさにそれをインターネット全体で継続的に行い、結果を検索可能な索引として公開しています。あなたの非標準の RDP ポートは、開放してから数日のうちにそこへ載り、誰にでも見つけられる状態になります。
つまり、無差別のボットに対してはポート変更は効きます。あなたを選んだ相手——競合、元従業員、業界の企業一覧を順に当たるランサムウェア事業者——に対しては、数分を余計にかけさせるだけです。そして弱いパスワード、公開された SMB、未修正のホスト、他所で漏れた資格情報については、何ひとつ変えません。
積極的な副作用もあります。珍しいポートは物事を壊します。外向きの 3389 を許可している企業ファイアウォールは、外向きの 34519 を遮断します。そしてあなたはそれを、仕事ができなくなった利用者から知らされます。
自分を締め出さずに変更する手順
ポートはレジストリにあり、サービスを再起動する前に Windows ファイアウォールへ知らせておかなければなりません——この順序でなければ、RDP でしか到達できないマシンから自分を切断することになります。
10000 番より上で何にも使われていないポートを選び、空いていることを確認し、開けてから変更します:
$NewPort = 34519
# 1. そのポートで何も待ち受けていないことを確認する。
Get-NetTCPConnection -LocalPort $NewPort -ErrorAction SilentlyContinue
# 2. サービスを動かす「前に」ファイアウォールで開ける。
New-NetFirewallRule -DisplayName "RDP-$NewPort" -Direction Inbound `
-Protocol TCP -LocalPort $NewPort -Action Allow
# 3. ターミナルサービスを新しいポートへ向ける。
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' `
-Name PortNumber -Value $NewPort
# 4. サービスを再起動する(現在のセッションは切断されます)。
Restart-Service TermService -Force変更したあと
接続時はポートを明示してください——mstsc /v:server:34519——そして古いポートを保存しているものをすべて更新します。保存済みの RDP ファイル、接続マネージャー、監視のチェック、踏み台の設定、チームのドキュメント。そのうえで古い 3389 の許可規則を削除するか絞り込みます。そうしなければ何も得ていません。
新しいポートが自社ネットワークの外から動くことを確認するまでは、古い規則を消さないでください。LAN の内側ではどちらでも動きます。人が「大丈夫だ」と自分を納得させるのは、まさにその状況です。
何と組み合わせるべきか
ポート変更が減らすのはノイズです。届いてくる試行は、依然として何かが処理しなければなりません——そしてポート変更後に届く試行は、あなたを名指しで探した相手のものであり、それこそが本当に気にすべきものです。
つまり以前と同じ 3 つです。ログイン失敗を監視し、しきい値を越えた送信元を遮断し、その遮断に自分が引っかからないようにする。RDP Protector は 3389 だと決めつけず、レジストリと待ち受けソケットから実際の RDP ポートを検出します。移設済みのサーバーも設定なしで覆われ、あとでポートが再び変わっても規則は自動的に作り直されます。
読めるログのためにポートを変える。それでも見つけてくるトラフィックのために、防御は残す。
FAQ
- RDP はどのポートに移すべきですか?
- 10000 番より上の空いているポートなら何でも構いません——34519、47820、空いているもので。既知のサービスが使うポートはスキャナーが名指しで調べるので避け、3389 の次に誰もが最初に試す 3390 も避けてください。決める前に Get-NetTCPConnection で何も待ち受けていないことを確認しましょう。
- RDP ポートを変えるとリモートデスクトップのクライアントは壊れますか?
- 壊れませんが、以後はすべてのクライアントがポートを明示する必要があります。コンピューター欄に server:34519、または mstsc /v:server:34519 です。保存済みの .rdp ファイルや接続マネージャーは古いポートを保持しており、更新するまで失敗します。外向きの 3389 を許可する企業ファイアウォールが新しいポートを丸ごと遮断することもあり、これが変更後で最も多い苦情です。
- 非標準ポートで RDP を公開しても安全ですか?
- 3389 の場合とまったく同程度に安全で、背景ノイズが少ないだけです。ポートはアクセス制御ではありません。サービスはハンドシェイクから識別でき、Shodan は非標準ポート上の RDP を継続的に索引化しています。安全性は試行を処理するものから生まれるのであって、どこに届くかから生まれるのではありません。
- ポートを変えるべきか、攻撃 IP を遮断するだけにすべきか?
- 遮断が防御であり、ポート変更はログを読めるようにする衛生管理です。どちらか一方だけなら、遮断してください。両方やるのはどちらか一方より優れています。届く試行が減り、届いたものは Windows が何かを費やす前に止まるからです。
