netshコマンドでファイアウォールのルールを重複せずに作るには

Windows 10やWindows 11 PCにサービスを構築して。

スマートフォンや他のPCからサービスにアクセスするため、netshコマンドでファイアウォールのルールを作ったのですが。

これって、名前が重複しても、同じ名前で同じルールをいくらでも追加できてしまうのですね。

今後、そのような事が無いように、判定文付きのnetshコマンドを作ろうと思います。


重複した規則の削除

「セキュリティが強化されたWindows Defenderファイアウォール」を起動してみました。

wf.msc

たとえばこちらの記事で作成しました

https://denor.jp/wsl2%E7%89%88podman-exe%E3%81%AEweb%E3%82%A2%E3%83%97%E3%83%AA%E3%81%AB%E3%82%B9%E3%83%9E%E3%83%BC%E3%83%88%E3%83%95%E3%82%A9%E3%83%B3%E3%82%84%E4%BB%96%E3%81%AEpc%E3%81%8B%E3%82%89%E3%82%A2%E3%82%AF

WSL2のNextcloudサーバ用に作成したルールが、このような感じで重複して作られていました。あとで改めて、ファイアウォールのルールを作成することにして。

受信の規則・送信の規則どちらとも、重複しているすべてのルールを削除しました。


同じ名前のルールが存在するかの判定処理付きルール作成コマンド

こちらの記事のポッドを対象にしてみたいと思います。

https://denor.jp/windows%E7%89%88podman%E3%81%A7vaultwarden%E3%82%92ssl%E5%8C%96%E3%81%97%E3%81%A6%E3%81%BF%E3%81%BE%E3%81%97%E3%81%9F

podmanでvwd-podというポッドを起動し。

TCPポート番号10443をポートフォワード。

そしてファイアウォールのルールとして、「TCP 10443」という名称の受信ルール・送信ルールを作成して、通信を許可する内容です。

管理者権限で実行する必要があります。ご注意下さい。

rem podmanマシンのIPアドレス取得
FOR /F %%i in ('podman.exe machine ssh "cat /proc/net/fib_trie | sed -e 's/^[ \-\|\+]*[ \-]*//' | grep '[\d]*\.' |grep -v -e '0.0.0.0' -e '^127\.[\d]*' -e '\/' -e '\.0$' -e '\.255$'"') DO set IPADR=%%i

rem ポッド起動
podman pod start vwd-pod

rem ポートフォワード
set PTNB=10443
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=%PTNB% connectaddress=%IPADR% connectport=%PTNB%

rem 受信ルール
netsh advfirewall firewall show rule name= "TCP %PTNB%" dir=in
IF %ERRORLEVEL% GEQ 1 (
netsh advfirewall firewall add rule name= "TCP %PTNB%" dir=in action=allow protocol=TCP localport=%PTNB%
)

rem 送信ルールつ
netsh advfirewall firewall show rule name= "TCP %PTNB%" dir=out
IF %ERRORLEVEL% GEQ 1 (
netsh advfirewall firewall add rule name= "TCP %PTNB%" dir=out action=allow protocol=TCP localport=%PTNB%
)

ルールの作成(add)の前に、ルールの表示(show)を行っています。

ルールが存在すれば、環境変数ERRORLEVELに0が入ります。

ルールがない場合、1が入るため、IF文で1以上かどうかを判定しました。

これで、既に同じ名称のルールが存在する場合は、作成されなくなります。


Windows 10やWindows 11をサーバとして使用する場合、ファイアウォールのルールの作成は、避けては通れない問題だと思います。

お手軽にファイアウォール全体を無効にしてしまうのは、リスクがある感じがします。

コマンドで作ると重複するという罠は、なんとか抜け出せましたので。

同じような状況の場合、よろしければお試し下さい。[amazonjs asin=”B07D36C4MQ” locale=”JP” title=”Windows10の裏ワザ セキュリティ・ネットワーク編~ファイアウォール/無線LAN設定…”]

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です