Edit this page Discussion Backlinks Fold/unfold all Rename Page **This is an old revision of the document!** Note: This script is a part of Rigutils toolset. GitHub: ConfigureFirewall.bat Prerequisites Complete Disable UAC step General info Detailed information on firewall setup as well as GUI oriented tutorial could be found here. Instruction STEP 1. Launch command prompt via cmd_rigutils.bat STEP 2. Run ConfigureFirewall.bat 1. Type ConfigureFirewall.bat (case of letters doesn't matter) 2. Press Enter You may start typing Conf and then press the Tab key on your keyboard to speedup command entry. cmd.exe will search for commands in current directory starting with Conf and expand it to it's full name automatically. attachment 3. You don't have to do anything until the script begins to ask you questions (see STEP 3 below). Here is just a step-by-step walkthrough of actions this script performs: 3.1. Saving current state of firewall into a backup file set "BackupDir=%~dp0firewall.bak" if not exist "%BackupDir%" ( echo == Creating backup directory == echo %BackupDir% mkdir "%BackupDir%" || goto :exitWithError ) if not exist "%BackupDir%\firewall.wfw" ( echo == Saving current firewall configuration == echo file: %BackupDir%\firewall.wfw netsh advfirewall export "%BackupDir%\firewall.wfw" || goto :exitWithError ) Output: == Creating backup directory == C:\bin\rigutils\windows_tuning\firewall.bak == Saving current firewall configuration == file: C:\bin\rigutils\windows_tuning\firewall.bak\firewall.wfw Ok. For restoring of your original firewall configuration use the command: netsh advfirewall import C:\bin\rigutils\windows_tuning\firewall.bak\firewall.wfw or the following command if you want to restore default Windows settings: netsh advfirewall reset 3.2. Disabling ALL non BLOCKING inbound rules This nice one-liner powershell script loops through all inbound rules which allow connections and disables them one by one powershell -Command "& { $fw=New-object -comObject HNetCfg.FwPolicy2 ; $fw.rules | where-object { $_.Direction -eq 1 -and $_.Enabled -eq $true -and $_.Action -ne 0 } | ForEach { echo $_.Name; $_.Enabled=0 }; $rc=@($rules).Count; echo ' ' \"$rc firewall rules were disabled\" }" || goto :exitWithError Output: == Disabling ALL PERMISSIVE inbound rules == <A lengthy list of disabled rules goes here> 201 firewall rules were disabled For restoring of your original firewall configuration use the command: netsh advfirewall import C:\bin\rigutils\windows_tuning\firewall.bak\firewall.wfw or the following command if you want to restore default Windows settings: netsh advfirewall reset 3.3. Disabling IPv6 Detailed information on IPv6 enabling/disabling could be found here at support.microsoft.com set "RegPath=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters" set "RegValue=255" echo RegPath: %RegPath% echo RegValue: %RegValue% reg.exe ADD %RegPath% /v DisabledComponents /t REG_DWORD /d %RegValue% /f || goto :exitWithError Output: == Disabling IPv6 == RegPath: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters RegValue: 255 The operation completed successfully. 3.4. Activating the restrictive firewall policy Read this nice blog post on working with firewall from CLI. echo == Configuring firewall policy == echo deny ALL INCOMING connections with NO MATCHING rules and allow ALL OUTGOING connections netsh advfirewall set allprofiles firewallpolicy blockinbound,allowoutbound || goto :exitWithError echo To re-enable ALL INCOMING connections by default run the following command: echo netsh advfirewall set allprofiles firewallpolicy allowinbound,allowoutbound Output: == Configuring firewall policy == deny ALL INCOMING connections with NO MATCHING rules and allow ALL OUTGOING connections Ok. To re-enable ALL INCOMING connections by default run the following command: netsh advfirewall set allprofiles firewallpolicy allowinbound,allowoutbound STEP 3. Allow selected inbound connections If you got the message Some error occurred! then you have to analyze output of the script and fix the problem by yourself before running the script again. attachment GitHub ShutupTelemetry.bat Log In Detach Close This topic does not exist yet You've followed a link to a topic that doesn't exist yet. If permissions allow, you may create it by clicking on “Create this page”.