Skip to content
VDS · Windows Server

Windowsファイアウォール:必要なポートを開放する

サービスのポートを開放する方法、アドレスによるアクセス制限、サーバーへのアクセスを失わずにルールが実際に機能するかを確認する方法を解説します。

更新日 2026年8月23日

Windows Serverを搭載したVDSでは、ファイアウォールがサービスとインターネットの間にある唯一のフィルターです。IPv4アドレスは公開されており、マシンの前には外部シールドがありません。したがって、ルールはシンプルです。意図的に開放したものだけが外部に公開されます。

現在開放されているもの

Get-NetFirewallProfile | Select-Object Name, Enabled, DefaultInboundAction
Get-NetFirewallRule -Enabled True -Direction Inbound |
  Where-Object Action -eq Allow |
  Get-NetFirewallPortFilter | Select-Object Protocol, LocalPort -Unique
Get-NetTCPConnection -State Listen | Select-Object LocalAddress, LocalPort, OwningProcess

最後のコマンドは、どのポートがそもそもリッスンしているかを示します。127.0.0.1 のみでリッスンしているサービスは、ルールに関係なく外部からアクセスできません。

ポートを開放する

Webサーバー:

New-NetFirewallRule -DisplayName "HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow
New-NetFirewallRule -DisplayName "HTTPS" -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow

信頼できるアドレス専用の独自サービス:

New-NetFirewallRule -DisplayName "App 8080" -Direction Inbound -Protocol TCP -LocalPort 8080 `
  -RemoteAddress 203.0.113.5,198.51.100.0/24 -Action Allow

アプリケーションが動的ポートを使用する場合は、ポートではなく特定のプログラムに対するルールのほうが信頼性が高くなります。

New-NetFirewallRule -DisplayName "MyApp" -Direction Inbound -Program "C:\apps\myapp.exe" -Action Allow

ルールの削除と表示:

Remove-NetFirewallRule -DisplayName "App 8080"
Get-NetFirewallRule -DisplayName "App 8080" | Format-List

閉じたままにすべきもの

アドレスによる制限なしで外部に公開しないでください。

ポートサービス理由
3389RDP最初の数時間でパスワードの総当たり攻撃が始まります。RDPの保護 を参照してください
1433MS SQLデータベースはインターネットからアクセスできるべきではありません。MS SQL Server を参照してください
5985, 5986WinRMリモート管理用です。自分のアドレスからのみ許可してください
445SMB大量攻撃の定番の標的です

自分のコンピューターからデータベースにアクセスする必要がある場合は、1433を開放するのではなく、RDPセッション内でポート転送するか、VPNを設定してください。

確認

マシンの内側からリッスンしているポートが、外部からアクセスできるとは限りません。別のホストから確認してください。

nc -vz YOUR_ADDRESS 443
curl -I http://YOUR_ADDRESS

外部からは閉じているのに Get-NetTCPConnection がリスナーを表示する場合、問題はルールまたはネットワークプロファイルにあります。ルールが有効なプロファイル(通常は「パブリックネットワーク」)で作成されていることを確認してください。

よくある間違い

  • 「デバッグのため」にファイアウォールを完全に無効化する。 作業が終わる前にマシンが見つかってしまいます。代わりに、アドレス制限付きの一時的なルールを作成してください。
  • ポートを開放したが、アプリケーションのことを忘れている。 多くのサービスはデフォルトでlocalhostのみでリッスンしています。ルールは関係ありません。
  • RDPから自分自身を締め出す。 その場合は、コントロールパネル /hosting/vds/m/<id> の「コンソール」タブ、「スクリーン」モードでログインし、そこからルールを編集してください。
  • 拒否ルールの上に許可ルールを作成する。 Windowsでは拒否が常に許可より優先されます。同じポートを持つブロックルールを探してください。

変更のたびに構成のスナップショットを保存しておくと便利です:Get-NetFirewallRule -Enabled True | Export-Csv C:\fw.csv。そうすれば、サービスが突然応答しなくなったときに、何が変わったかを把握できます。