ESC

Start typing to search across invoices, services, domains, tickets, and more...

Search... Ctrl+K
Windowsサーバー

Windows VPS のセキュリティ強化:RDP 保護、アカウントロックアウト、ログオン監査

7 ステップ 10 分で読めます 4 回閲覧 0
目次

インターネットに公開された Windows サーバーは、起動から数分で 3389 番ポートをスキャンされ、パスワード総当たり攻撃を受けます。そのため Windows VPS のセキュリティ強化は導入直後に必ず行いましょう。この記事では Windows Server 2016/2019/2022 を対象に、Administrator の強力なパスワードと名前変更、アカウントロックアウトポリシー、RDP のネットワークレベル認証(NLA)、RDP 接続元 IP の制限、不要なサービスの停止、Defender の確認、Get-WinEvent によるログオン失敗(4625)の監査を順に解説します。

ステップ1:Administrator に強力なパスワードを設定し名前を変更する

パスワードは 16 文字以上で大文字・小文字・数字・記号を組み合わせ、他サービスと使い回さないでください。総当たりツールのほとんどは Administrator を狙うため、名前を変えるだけで無差別攻撃の大半を防げます。

# Set a new strong password (you will be prompted, nothing is echoed)
net user Administrator *

# Rename the built-in Administrator account
Rename-LocalUser -Name "Administrator" -NewName "srvadmin"
Get-LocalUser | Format-Table Name,Enabled,LastLogon
名前変更後は、リモートデスクトップのユーザー名も新しい名前で入力します。切断する前に新しいユーザー名とパスワードを控えてください。後でクライアントエリアからパスワードをリセットしてうまくいかない場合は、名前を変更した旨をチケットでお知らせください。

ステップ2:アカウントロックアウトポリシーを設定する

一定回数パスワードを間違えたアカウントを一時的にロックし、総当たり攻撃を大幅に遅らせます。secpol.msc の「アカウントポリシー → アカウントロックアウトのポリシー」からも設定できます。

# Lock an account for 30 minutes after 5 failed attempts within 30 minutes
net accounts /lockoutthreshold:5 /lockoutduration:30 /lockoutwindow:30
net accounts
古いバージョンの Windows では、組み込み Administrator は既定でロックアウトの対象外です。名前変更、強力なパスワード、ステップ4の IP 制限が最も重要な防御になります。

ステップ3:RDP のネットワークレベル認証(NLA)を有効にする

NLA はリモートデスクトップのセッションを作成する前に認証を求める仕組みで、未認証接続によるリソース消費を抑え、一部の RDP 脆弱性も緩和します。「システムのプロパティ → リモート」で「ネットワークレベル認証でリモートデスクトップを実行しているコンピューターからのみ接続を許可する」にチェックするか、以下を実行します。

$rdp = "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp"
Set-ItemProperty -Path $rdp -Name UserAuthentication -Value 1
Get-ItemProperty -Path $rdp -Name UserAuthentication, PortNumber

ステップ4:リモートデスクトップの接続元を自分の IP に限定する

RDP のブルートフォース対策として最も効果的な手順です。組み込みのリモートデスクトップ用ファイアウォール規則を編集し、オフィスの IP やサブネットだけを許可します。規則名はどの言語の OS でも共通です。RDP ポートを変更して独自の規則を作成した場合は、その規則にも -RemoteAddress を設定してください。

# Built-in Remote Desktop rules (names are the same on every OS language)
Set-NetFirewallRule -Name RemoteDesktop-UserMode-In-TCP, RemoteDesktop-UserMode-In-UDP -RemoteAddress 203.0.113.10, 198.51.100.0/24
Get-NetFirewallRule -Name RemoteDesktop-UserMode-In-TCP | Get-NetFirewallAddressFilter

# Undo: allow RDP from anywhere again
Set-NetFirewallRule -Name RemoteDesktop-UserMode-In-TCP, RemoteDesktop-UserMode-In-UDP -RemoteAddress Any
設定前に現在のグローバル IP を必ず確認してください(家庭回線の IP は変わることがあります)。IP を間違えると即座に切断され再接続できなくなります。その場合はチケットでサポートにご連絡ください。

ステップ5:不要なサービスを停止する

動作中のサービスはすべて攻撃対象になり得ます。実行中のサービスを一覧表示し、不要なものを停止します。印刷スプーラー(Spooler)はサーバーではほぼ使われず、過去に深刻な脆弱性もありました。用途が分からないシステムサービスは停止しないでください。

Get-Service | Where-Object { $_.Status -eq "Running" } | Sort-Object DisplayName | Format-Table Name,DisplayName

# Example: print spooler is rarely needed on a server
Stop-Service -Name Spooler
Set-Service -Name Spooler -StartupType Disabled

ステップ6:Microsoft Defender の有効化と更新を確認する

Windows Server 2016 以降には Microsoft Defender ウイルス対策が標準搭載されています。リアルタイム保護が有効か確認し、定義ファイルを更新してクイックスキャンを実行します。

Get-MpComputerStatus | Select-Object AMServiceEnabled,RealTimeProtectionEnabled,AntivirusSignatureLastUpdated
Set-MpPreference -DisableRealtimeMonitoring $false
Update-MpSignature
Start-MpScan -ScanType QuickScan

ステップ7:Get-WinEvent でログオン失敗(4625)を監査する

イベント ID 4625 はログオン失敗を示します。以下で直近の失敗と、過去 24 時間で試行回数の多い送信元 IP を確認できます。攻撃を受けているか判断し、怪しい IP をファイアウォールでブロックしましょう。

# Make sure failed logons are audited (GUID = "Logon" subcategory, language independent)
auditpol /set /subcategory:"{0CCE9215-69AE-11D9-BED3-505054503030}" /failure:enable

# Last 20 failed logons
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625} -MaxEvents 20 |
  Select-Object TimeCreated, @{n='User';e={$_.Properties[5].Value}}, @{n='SourceIP';e={$_.Properties[19].Value}}

# Top attacking IPs in the last 24 hours
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625; StartTime=(Get-Date).AddDays(-1)} |
  ForEach-Object { $_.Properties[19].Value } | Group-Object | Sort-Object Count -Descending |
  Select-Object -First 10 Count, Name

よくある質問

RDP ポートの変更は今でも有効ですか?

自動スキャンのノイズは減りますが、強力なパスワードや IP 制限の代わりにはなりません。3 つを組み合わせるのが最善です。「Windows の RDP ポート変更」記事も参照してください。

自宅の IP がよく変わり、ホワイトリストに登録できません。

プロバイダーの IP 範囲ごと許可するか、固定 IP の踏み台サーバーや VPN を経由してリモートデスクトップに接続する方法があります。

4625 の送信元 IP が「-」になっているのはなぜですか?

ローカルログオン、または NLA の段階でアドレスが記録されなかった場合です。大量にある場合はファイアウォールのログと照らし合わせてください。

上記の手順で解決しない場合は、サポートチケットから IMIDC の 24 時間 365 日対応テクニカルサポートへお問い合わせください。サーバー IP、OS のバージョン、実行したコマンド、エラー画面のスクリーンショットを添えていただくと、より早く原因を特定できます。

この回答はお役に立ちましたか?

関連チュートリアル