PowerShell ファイアウォールポリシーの変更
ファイアウォールはONにしたい、でもドメインネットワーク内は緩くしたい。そんなときのメモです。
すべてのプロファイルのファイアウォールをまとめて操作する
#すべてのプロファイルのファイアウォールを無効化する
Set-NetFirewallProfile -Enabled false
#すべてのプロファイルのファイアウォールを有効化する
Set-NetFirewallProfile -Enabled true
PINGは通すようにする
#ドメインの場合にPINGを通す
#ファイルとプリンターの共有 (エコー要求 - ICMPv4 受信) ( Profile : ドメイン )
Get-NetFirewallRule -name FPS-ICMP4-ERQ-In-NoScope | Set-NetFirewallRule -enable true
#ファイルとプリンターの共有 (エコー要求 - ICMPv6 受信) ( Profile : ドメイン )
Get-NetFirewallRule -name FPS-ICMP6-ERQ-In-NoScope | Set-NetFirewallRule -enable true
#プライベートの場合にPINGを通す
#ファイルとプリンターの共有 (エコー要求 - ICMPv4 受信) ( Profile : プライベート )
Get-NetFirewallRule -Name FPS-ICMP4-ERQ-In | Set-NetFirewallRule -enabled true;
#ファイルとプリンターの共有 (エコー要求 - ICMPv6 受信) ( Profile : プライベート )
Get-NetFirewallRule -Name FPS-ICMP6-ERQ-In | Set-NetFirewallRule -enabled true;
PINGを通して、ファイルとプリンターを共有できるようにする
#「ファイルとプリンターの共有」(ドメインプロファイルのみ)有効
$NetDiscoveryRule = Get-NetFirewallRule | Where-Object {$_.DisplayGroup -eq "ファイルとプリンターの共有"}
foreach($Rule in $NetDiscoveryRule){
If ($Rule.Profile -like "*Domain*"){
If ($Rule.Enabled -eq "False"){
Set-NetFirewallRule -InputObject $Rule -Enabled True
}
}
}
#「ファイルとプリンターの共有」(プライベートプロファイルのみ)有効
$NetDiscoveryRule = Get-NetFirewallRule | Where-Object {$_.DisplayGroup -eq "ファイルとプリンターの共有"}
foreach($Rule in $NetDiscoveryRule){
If ($Rule.Profile -like "*Private*"){
If ($Rule.Enabled -eq "False"){
Set-NetFirewallRule -InputObject $Rule -Enabled True
}
}
}
#すべてのプロファイルで「ファイルとプリンターの共有」を有効化
netsh advfirewall firewall set rule group="ファイルとプリンターの共有" new enable=Yes
リモートデスクトップを許可する(一緒に設定することが多そうなので)
# リモートデスクトップを許可
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server" -Name "fDenyTSConnections" -Value "0"
# リモートデスクトップを許可 ネットワークレベル認証でリモートデスクトップを実行しているコンピューターからのみ接続を許可する
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name "UserAuthentication" -Value 1
<設定例> ファイアーウォールを全部有効にして
ドメインネットワークの中でけPINGを有効
#すべてのプロファイルのファイアウォールを有効化する
Set-NetFirewallProfile -Enabled true
#ファイルとプリンターの共有 (エコー要求 - ICMPv4 受信) ( Profile : ドメイン )
Get-NetFirewallRule -name FPS-ICMP4-ERQ-In-NoScope | Set-NetFirewallRule -enable true
#ファイルとプリンターの共有 (エコー要求 - ICMPv6 受信) ( Profile : ドメイン )
Get-NetFirewallRule -name FPS-ICMP6-ERQ-In-NoScope | Set-NetFirewallRule -enable true
中小企業だとファイアーウォールを全部OFFにしているところもあるんじゃないでしょうか。全部ONにして必要な通信だけ通した方がいいです。
#PowerShell #プログラミング学習 #Windows #キッティング #セキュリティ