隐藏

windows防火墙出站规则只允许访问指定域名ip,其他出站ip全部阻止的方法

发布:2022/9/26 16:53:24作者:管理员 来源:本站 浏览次数:487

需求背景:


公司内网的windows服务器因业务需要只需访问互联网指定的域名ip,其他的因出于系统网络安全考虑需要屏蔽阻止业务无关的其他所有域名和ip的访问。


实现方案:


在windows防火墙中进行设置,如果安装其他网络防火墙会存在安全隐患,公司不允许安装私人或非法的网络软件,因此只能基于windows自带的防火墙进行处理,不能安装类似瑞星、火绒之类的网络安全管理软件。


实现思路:


通过查询业务需要的域名对应的ip,在防火墙中设置这些ip的访问为允许通过。然后对应其他所有ip:0.0.0.0-254.254.254.254的所有IP范围中,除去业务需要的ip地址外,剩余的ip范围全部列入阻止出站。


实现方法:


       用站长工具:多个地点ping服务器-网站测速-站长工具 测试业务域名对应的IP地址。


所有IP范围 - 业务所需的IP范围 = 剩余需阻止的ip范围


关键难度在于如何得到 剩余阻止的ip范围。这里通过编程实现,编写C#程序,自动对允许访问的IP,允许访问的IP段进行分析, 将所有IP地址范围根据允许的IP进行前后分割,得到允许访问的IP前后的IP,即得到了禁止访问的IP范围的终止ip,起始ip等。


程序界面如下:




比如业务允许访问的互联网ip为:9.0.0.3,11.1.1.3,然后同时允许局域网ip段:10网段,172网段,192网段都允许访问,其他的ip网段全部都不允许访问。


通过程序分析后,得到需要阻止的IP段为:


0.0.0.0-9.0.0.2

9.0.0.4-9.254.254.254

11.0.0.0-11.1.1.2

11.1.1.4-171.254.254.254

173.0.0.0-191.254.254.254

193.0.0.0-254.254.254.254


则降以上6行ip段添加的windows防火的出站规则中,阻止的目的Ip段为以上6行ip范围,阻止的协议类型为任何协议,任何端口,即可成功阻止拦截所有非业务需要的出站访问,减少了网络安全隐患。


命令行批处理方法:


工具左侧输入需要运行的ip,中间输入运行的ip段,点击分析按钮,得到右侧需要阻止的ip段,去掉第一个逗号, 然后管理员方式打开CMD,输入如下命令:


netsh advfirewall firewall add rule name="disabledIP" dir=out action=block remoteip="0.0.0.0-9.0.0.2,9.0.0.4-9.254.254.254,11.0.0.0-11.1.1.2,11.1.1.4-171.254.254.254,173.0.0.0-191.254.254.254,193.0.0.0-254.254.254.254"


注意替换remoteip的内容为上面工具分析处理的结果即可。


这里示意图是拷贝了第一个阻止的IP区间,其他IP区间未拷贝(否则我的电脑将无法连CSDN写文章了,)




最后wf.msc打开高级防火墙,即可出现已添加的出站阻止ip