Windowsポートの無効化方法とその理由


  1. ポート無効化の理由 ポートはネットワーク上で特定の通信プロトコルやサービスを提供するために使用されます。しかし、不要なポートがオープン状態になっていると、悪意のあるユーザーや攻撃者によって潜在的な脆弱性が悪用される可能性があります。ポートを無効化することで、ネットワークへの不正アクセスや攻撃を減らし、セキュリティを向上させることができます。

  2. ポートの無効化方法 Windowsでは、コマンドラインやファイアウォール設定を使用してポートを無効化することができます。以下にいくつかの方法を示します。

    2.1 コマンドプロンプトを使用する方法

    • 管理者権限でコマンドプロンプトを開きます。
    • 無効化したいポート番号を特定します。例えば、ポート番号が80の場合を考えます。
    • 以下のコマンドを入力し、ポートを無効化します。
      netsh advfirewall firewall add rule name="Disable Port 80" dir=in action=block protocol=TCP localport=80

    2.2 ファイアウォールを使用する方法

    • スタートメニューから「Windows Defender Firewall with Advanced Security」を開きます。
    • 「インバウンドルール」または「アウトバウンドルール」を選択し、新しいルールを作成します。
    • ポート番号やプロトコルなどの詳細な設定を行い、ポートを無効化するルールを作成します。
  3. コード例 以下に、PowerShellスクリプトを使用したポート無効化のコード例を示します。

    $portNumber = 80
    $ruleName = "Disable Port $portNumber"
    $fw = New-Object -ComObject hnetcfg.fwpolicy2
    $rule = $fw.rules | where { $_.Name -eq $ruleName }
    if ($rule -eq $null) {
       $rule = New-Object -ComObject HNetCfg.FWRule
       $rule.Name = $ruleName
       $rule.Protocol = 6 # TCP
       $rule.LocalPorts = $portNumber
       $rule.Enabled = $false
       $rule.Grouping = "@firewallapi.dll,-23255"
       $rule.Profiles = 7 # All profiles
       $rule.Action = 0 # Block
       $fw.Rules.Add($rule)
    }

    上記のコードでは、ポート番号80を無効化するためのファイアウォールルールを作成しています。既に同じ名前のルールが存在する場合は作成されません。