EQVPS
ダッシュボード始める

VPS の Windows ファイアウォールを設定する方法:ポートを開ける、1 つの IP だけ許可する、ブロック内容を見る

Windows Server 2022 でポートを開け、自分の IP アドレスだけに制限し、ping を有効にし、ブロックした接続を記録し、ルールをバックアップします。どれも PowerShell のコマンド数行です。各ルールは別のマシンから試し、本当にポートが開いたり閉じたりするか確かめました。

Windows Server はファイアウォールが有効な状態で届きます。これは正しい既定値で、外から接続しようとするものは、ルールで許可しない限りすべて拒否されます。変更が必要になるのは、ポート 8080 の Web アプリや、自社オフィスからだけ使わせたいサービスなど、自分のものを動かすときです。このガイドでは Windows Server 2022 上で PowerShell を使ってすべてを行います。各ルールは当社のイメージで試し、別のマシンから確認したので、本当にポートが開く・閉じることがわかっています。

PowerShell を管理者として開いてください。まだなら、先に RDP の保護 を済ませましょう。そちらのガイドでリモートデスクトップ自体の制限を扱っています。

1. 何が有効になっているか確認する

Get-NetFirewallProfile | Format-Table Name, Enabled, DefaultInboundAction, DefaultOutboundAction
Get-NetConnectionProfile | Format-Table InterfaceAlias, NetworkCategory

作ったばかりのサーバーでは、3 つのプロファイル(Domain、Private、Public)がすべて有効で、ネットワークアダプターは Public に属していました。DefaultInboundAction は NotConfigured と表示され、これは Windows の既定の動作、つまり受信はブロック、送信は許可という意味です。したがって効いてくるのは Public プロファイルのルールです。

受信で何が許可されているかは、次のコマンドで確認します。

Get-NetFirewallRule -Direction Inbound -Enabled True -Action Allow |
    Group-Object DisplayGroup | Sort-Object Count -Descending |
    Select-Object Count, Name -First 8

有効な受信ルールは 54 個ありました。ほとんどは Windows 自体のもの(Core Networking、Cast to Device、mDNS)で、ほかにリモートデスクトップのルールが 3 つ。ping はその中にありませんでした。

2. ポートを開ける

アプリが TCP ポート 8080 で待ち受けているとします。

New-NetFirewallRule -DisplayName 'Web app 8080' -Direction Inbound `
    -Protocol TCP -LocalPort 8080 -Action Allow

ルールは作成した瞬間から有効です。別のマシンから見ると、ポート 8080 はブロックから開放に変わり、同じくプログラムが待ち受けていたポート 8081 はブロックされたままでした。-Profile を付けないルールは、Public を含むすべてのプロファイルに適用されます。

範囲やリストにするなら -LocalPort 8000-8010 や -LocalPort 80,443 を使います。UDP なら -Protocol を変えます。

3. 特定のアドレスだけ許可する

たいていのサービスは、インターネット全体から接続を受ける必要がありません。接続してよいアドレスにルールを絞りましょう。

Set-NetFirewallRule -DisplayName 'Web app 8080' -RemoteAddress 203.0.113.10
Set-NetFirewallRule -DisplayName 'Web app 8080' -RemoteAddress 203.0.113.10, 198.51.100.0/24

両方のパターンを試しました。-RemoteAddress に別のアドレスを入れると、テスト用のマシンからは接続できなくなりました。そのマシンのアドレスを加えると、接続できました。同じパラメーターをリモートデスクトップのルールに付ければ、RDP をオフィスからだけに限定できます。自宅の IP がよく変わるなら、RDP でこれをする前によく考えてください。

4. ping を有効にする

初期状態の Windows は ping に応答しません。ルールはありますが、無効です。

Enable-NetFirewallRule -DisplayName 'File and Printer Sharing (Echo Request - ICMPv4-In)'

これで当社のサーバーはすぐに ping に応答するようになりました。ping で死活を確認する監視ツールには必要です。元に戻すには、同じ名前で Disable-NetFirewallRule を使います。

5. ブロックされたものを記録する

何かが接続できないのに理由がわからないときは、ファイアウォールに破棄したものを書き残させましょう。

Set-NetFirewallProfile -Profile Public -LogBlocked True -LogMaxSizeKilobytes 4096
Get-Content C:\Windows\System32\LogFiles\Firewall\pfirewall.log -Tail 20

ブロックされた試行は、1 回ごとに次のような行になります。

2026-10-25 02:07:25 DROP TCP 198.51.100.7 203.0.113.25 43386 445 60 S 2112839481 0 64240 - - - RECEIVE 4

読み方は、日時、動作、プロトコル、送信元アドレス、サーバーのアドレス、送信元ポート、宛先ポートの順です。少し待ってください。Windows はログをまとめて書くので、当社のテストでは試行から約 1 分後に記録が現れました。4 MB の上限があるので、ファイルが際限なく大きくなることはありません。

6. バックアップと後片付け

大きな変更の前に、すべてのルールをファイルに保存しておきます。

netsh advfirewall export C:\fw-backup.wfw

当社のエクスポートは 148 KB でした。netsh advfirewall import C:\fw-backup.wfw を実行すると、そのときのルール一式がそのまま戻り、今あるルールは置き換えられます。不要になったルールは名前で削除します。

Remove-NetFirewallRule -DisplayName 'Web app 8080'

締め出されてしまったら

ルールのせいで自分のリモートデスクトップが切れたら、管理画面のコンソールを開いてください。RDP を経由しないので、ログインして Remove-NetFirewallRule や Set-NetFirewallRule で元に戻せます。

NAT か専用 IP か

NAT プランでは、インターネットからサーバーへは個別ポート 1 つだけで届き、それはリモートデスクトップにつながっています。Windows ファイアウォールで何を許可しても、ほかのポートには外から届きません。Web サイトを公開したり、ほかのポートで接続を受けたりするには専用 IPv4 が必要です。Windows Small-IP(4 vCPU、4 GB、50 GB、月 $28)ならすべてのポートが開いた IP が付き、判断するのは Windows ファイアウォールになります。Windows-Small は NAT で月 $11 です。Windows の 4 プランはすべて Windows VPS ページにあり、支払いは Base、Ethereum、Polygon 上の USDT、USDC、ETH です。

よくある質問

Windows VPS では Windows ファイアウォールは最初から有効ですか?

はい。当社の Windows Server 2022 イメージでは 3 つのプロファイルがすべて有効で、ネットワークアダプターは Public プロファイルに属し、ルールで許可されていない受信接続はブロックされます。送信接続は許可されています。

Windows サーバーが ping に応答しないのはなぜですか?

Windows は既定で ping をブロックします。File and Printer Sharing (Echo Request - ICMPv4-In) というルールはありますが、無効になっています。PowerShell のコマンド 1 つで有効にすれば、サーバーはすぐに応答します。

Windows ファイアウォールでポートを開けたのに、インターネットからは閉じたままです。なぜですか?

NAT プランでは、サーバーに届くのは個別ポート 1 つだけで、それはリモートデスクトップにつながっています。ファイアウォールの設定に関係なく、ほかのポートにはインターネットから届きません。Windows で Web サイトなどを公開するなら、専用 IPv4 付きのプランを使ってください。

ファイアウォールのルールで自分を RDP から締め出してしまったら?

管理画面のコンソールを開いてください。RDP を使わずに動くので、そこからログインしてルールを直すか削除できます。RDP を 1 つの IP に限定する前に、自分のアドレスが変わらないか確認しましょう。

ファイアウォールが何をブロックしているか確認するには?

Public プロファイルで破棄した接続のログを有効にします。すると Windows は、ブロックしたすべての試行を pfirewall.log に書き込みます。当社のテストでは、Windows がログをまとめて書くため、記録が出るまで約 1 分かかりました。

コメント

まだコメントはありません。最初になりましょう。

コメントを残す

コメントは表示される前にモデレートされます。