Board logo

标题: [网络工具] 通过防火墙和组策略封端口的批处理 [打印本页]

作者: 小勇12    时间: 2017-5-15 11:01     标题: 通过防火墙和组策略封端口的批处理

一、防火墙
  1. @echo off
  2. rem 设置防火墙服务为自动
  3. sc config sharedaccess start= auto
  4. rem 开启防火墙服务
  5. rem net start sharedaccess
  6. rem blockinbound,blockoutbound,allowinbound,allowoutbound
  7. netsh advfirewall set allprofiles state on
  8. netsh advfirewall set allprofiles firewallpolicy allowinbound,allowoutbound
  9. call:blockport  445
  10. call:blockport  135
  11. call:blockport  139
  12. pause >nul &exit
  13. rem 如果不起作用,则重置防火墙
  14. netsh firewall reset
  15. rem 关闭端口
  16. :blockport
  17. set port=%1
  18. call:clearrule %port%
  19. netsh advfirewall firewall add rule name="deny tcp %port%" dir=in protocol=tcp localport=%port% action=block
  20. netsh advfirewall firewall add rule name="deny udp %port%" dir=in protocol=udp localport=%port% action=block
  21. goto :eof
  22. rem 开启端口
  23. :openport
  24. set port=%1
  25. call:clearrule %port%
  26. netsh advfirewall firewall add rule name="allow tcp %port%" dir=in protocol=tcp localport=%port% action=allow
  27. netsh advfirewall firewall add rule name="allow udp %port%" dir=in protocol=udp localport=%port% action=allow
  28. goto :eof
  29. rem 清除多余规则
  30. :clearrule
  31. set port=%1
  32. netsh advfirewall firewall delete rule name="allow tcp %port%"  protocol=tcp localport=%port% >nul
  33. netsh advfirewall firewall delete rule name="deny tcp %port%"  protocol=tcp localport=%port%  >nul
  34. netsh advfirewall firewall delete rule name="allow udp %port%"  protocol=udp localport=%port% >nul
  35. netsh advfirewall firewall delete rule name="deny udp %port%"  protocol=udp localport=%port%  >nul
  36. goto :eof
复制代码
------------------------------------------------------------------------------------------------------------------------------------------------
二、组策略
  1. @echo off
  2. rem -p 指定策略名称,如果名称存在,则将该规则加入此策略,否则创建一个。(policy)
  3. rem -r 指定规则名称。(rule)
  4. rem -f 筛选器。*表示任何地址(源);0表示本机地址(目标);+表示镜像(双向)筛选(filter)
  5. rem -n 指定操作,可以是BLOCK、PASS或者INPASS,必须大写。
  6. rem -x 激活该策略。
  7. rem -y 使之无效。
  8. rem -o 删除-p指定的策略。
  9. rem -w reg 将配置写入注册表,重启后仍有效。
  10. sc config PolicyAgent start= auto
  11. net start PolicyAgent
  12. call:blockport  445
  13. call:blockport  135
  14. call:blockport  139
  15. rem call:blockping
  16. rem call:openping
  17. gpupdate/force
  18. pause&exit
  19. :blockport
  20. rem 所有的封端口操作只能写成一个组策略BlockPort,不能135一个,445一个
  21. set port=%1
  22. ipseccmd -w REG -p BlockPort -r "Block TCP/%port%" -f *+0:%port%:TCP -n BLOCK  
  23. ipseccmd -w REG -p BlockPort -r "Block UDP/%port%" -f *+0:%port%:UDP -n BLOCK  
  24. ipseccmd -w REG -p BlockPort -x
  25. goto :eof
  26. :blockping
  27. ipseccmd -w REG -p "BlockPing" -r "Block ping" -f 0+*::ICMP -n BLOCK
  28. ipseccmd -w REG -p "BlockPing" -x
  29. goto :eof
  30. :openping
  31. ipseccmd -w REG -p "BlockPing" -y
  32. goto :eof
  33. :deletePing
  34. ipseccmd -w REG -p "BlockPing" -y
  35. ipseccmd -w REG -p "BlockPing" -o
  36. goto :eof
复制代码

作者: xinjinjie    时间: 2017-5-16 11:14

回复 1# 小勇12


    感谢LZ分享,不过在XP系统里试用发现,一堆提示没有找到命令,似乎不能兼容XP系统
作者: HUIANG    时间: 2017-5-20 22:42

回复 2# xinjinjie


    XP需要ipseccmd.exe支持,这个得从安装光盘中support.cab中提取
作者: HUIANG    时间: 2017-5-20 22:43

另外2000下有个ipsecpol也是做这个的,和ipseccmd类似,不过需要三个文件支持。
作者: qqqkoko123    时间: 2017-6-25 18:04

组策略第20行,应该是gpupdate /force,作者少个空格




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2