cmd命令添加防火墙规则(含批处理)

学会使用批处理cmd解决防火墙规则添加繁琐的问题,能节省大量时间以及不必要的麻烦。

每当我们的电脑重装,就会涉及到很多的软件安装以及电脑环境的配置,其中一项就是我们的防火墙规则的添加,这可是相当累的一项工作,并且还要做好笔记,否则当电脑重装的时候,规则不一定能配的齐全,需要遇到问题再添加。其实,刚重装完系统能把预知的规则给建立好,后面就可以省很多心。

命令:

  1. netsh advfirewall firewall add rule

用法:

  1. add rule name=<string> dir=in|out action=allow|block|bypass
  2.       [program=<program path>]
  3.       [service=<service short name>|any]
  4.       [description=<string>]
  5.       [enable=yes|no (default=yes)]
  6.       [profile=public|private|domain|any[,…]]
  7.       [localip=any|<IPv4 address>|<IPv6 address>|<subnet>|<range>|<list>]
  8.       [remoteip=any|localsubnet|dns|dhcp|wins|defaultgateway|<IPv4 address>|<IPv6 address>|<subnet>|<range>|<list>]
  9.       [localport=065535|<port range>[,…]|RPC|RPC-EPMap|IPHTTPS|any (default=any)]
  10.       [remoteport=065535|<port range>[,…]|any (default=any)]
  11.       [protocol=0255|icmpv4|icmpv6|icmpv4:type,code|icmpv6:type,code|tcp|udp|any (default=any)]
  12.       [interfacetype=wireless|lan|ras|any]
  13.       [rmtcomputergrp=<SDDL string>]
  14.       [rmtusrgrp=<SDDL string>]
  15.       [edge=yes|deferapp|deferuser|no (default=no)]
  16.       [security=authenticate|authenc|authdynenc|authnoencap|notrequired(default=notrequired)]

 注意点:

      – 规则名称应该是唯一的,且不能为 “all”。
      – 如果已指定远程计算机或用户组,则 security 必须为authenticate、authenc、authdynenc 或 authnoencap。
      – 为 authdynenc 设置安全性可允许系统动态协商为匹配给定 Windows 防火墙规则的通信使用加密。
       – 根据现有连接安全规则属性协商加密。选择此选项后,只要入站 IPSec 连接已设置安全保护,但未使用 IPSec 进行加密,计算机就能够接收该入站连接的第一个 TCP 或 UDP 包。一旦处理了第一个数据包,服务器将重新协商连接并对其进行升级,以便所有后续通信都完全加密。
      – 如果 action=bypass,则 dir=in 时必须指定远程计算机组。
      – 如果 service=any,则规则仅应用到服务。
      – ICMP 类型或代码可以为 “any”。
      – Edge 只能为入站规则指定。
      – AuthEnc 和 authnoencap 不能同时使用。
      – Authdynenc 仅当 dir=in 时有效。
      – 设置 authnoencap 后,security=authenticate 选项就变成可选参数。

CMD示例:

A、为不具有封装的 messenger.exe 添加入站规则:

  1. netsh advfirewall firewall add rule name=“allow messenger” dir=in program=“c:\programfiles\messenger\msmsgs.exe” security=authnoencap action=allow

B、为端口 80 添加出站规则:

  1. netsh advfirewall firewall add rule name=“allow80” protocol=TCP dir=out localport=80 action=block

C、 为 TCP 端口 80 通信添加需要安全和加密的入站规则:

  1. netsh advfirewall firewall add rule name=“Require Encryption for Inbound TCP/80” protocol=TCP dir=in localport=80 security=authdynenc action=allow

D、为 messenger.exe 添加需要安全的入站规则:

  1. netsh advfirewall firewall add rule name=“allow messenger” dir=in program=“c:\program files\messenger\msmsgs.exe” security=authenticate action=allow

E、 为 SDDL 字符串标识的组 acmedomain\scanners 添加经过身份验证的防火墙跳过规则:

  1. netsh advfirewall firewall add rule name=“allow scanners” dir=in rmtcomputergrp=<SDDL string> action=bypass security=authenticate

F、 为 udp- 的本地端口 5000-5010 添加出站允许规则:

  1. Add rule name=“Allow port range” dir=out protocol=udp localport=50005010 action=allow

 批处理示例:

  1. @echo off
  2. color 0A
  3. echo 打开防火墙…
  4. sc config sharedaccess start= auto > nul
  5. net start sharedaccess > nul
  6. echo 向防火墙添加禁用135,139,445端口tcp规则…
  7. netsh advfirewall firewall add rule name=“forbid_tcp_rules” dir=in protocol=tcp localport=135,445,139 action=block
  8. echo 向防火墙添加禁用135,139,445端口udp规则…
  9. netsh advfirewall firewall add rule name=“forbid_udp_rules” dir=in protocol=udp localport=135,445,139 action=block
  10. echo 完成
  11. pause

 

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论