Windowsファイアウォールの受信規則の作成をコマンドでやりたいなぁ、と思って調べたり試したりしたのでメモしておく。Windows 7 で実行できることを確認済み。
参考にしたページ:
http://www.atmarkit.co.jp/fwin2k/win2ktips/1035advfwall/advfwall.html
コマンド:
netsh advfirewall firewall add rule name="●●接続制限" dir=out action=block protocol=any remoteip=xxx.xxx.xxx.xxx,xxx.xxx.xxx.xxx description="●●への接続を制限する"
作成した規則を無効にするときは以下のとおり
set rule name="●●接続制限" new enable=no
上記コマンドだと、「●●接続制限」という名前の規則すべてに対して実行されるので、さらに条件を付けたい場合は「new」オプションの前で指定する。
ヘルプ内の注釈にもあるけど、new キーワードの後に記述した値が更新されるので、newが抜けていないか、newの前に設定内容を書いていないか確認すること。
規則を削除するときは以下のとおり
del rule name="●●接続制限"
これも「●●接続制限」という名前の規則すべてを削除するので、必要があればプロトコルやIPアドレスを指定すること。
補足:
上記 add rule で指定しているオプションの内容は以下のとおり
name=<文字列>
規則の名前
dir=out
送信に対しての規則
受信の場合は in にする
action=block
接続をブロックする
許可の場合は allow にする
description=<文字列>
規則の説明
remoteip=<IPv4 アドレス>
リモートIPアドレスを指定する
送信先のIPアドレスと一致した場合に規則が適用される
複数ある場合はカンマで区切る
そのほかは add rule ? か set rule ? コマンド、またはファイアウォールのプロパティで確認するヨロシ。
おまけ:
batとかで実行したい場合はnetshからコマンドくっつけるだけ
netsh advfirewall firewall add rule name="●●接続制限" dir=out action=block protocol=any remoteip=xxx.xxx.xxx.xxx,xxx.xxx.xxx.xxx description="●●への接続を制限する"