命令行下配置路由和远程访问内的NAT基本防火墙入出站筛选

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

命令行下配置路由和远程访问内的NAT/基本防火墙入出站筛选今天碰到一个问题,需要在Windows2003下配置路由和远程访问来完成

共享上网,并通过设置其NAT/基本防火墙中的入站筛选器和出站筛选器屏蔽一些已经确认的恶意网站和,最主要的是在需要时(有时阻止、有时允许)阻止固定的内网机器上网,如果每次都通过在图形界面底下添加、删除同样的一条规则显得特别的麻烦。

所以,我尝试在命令行底下通过脚本来调整筛选器,这样就可以做成批处理执行,避免每次打开“路由和远程访问”的控制台再手动输入信息,经过思考我决定利用命令行下的netsh 命令来配置:netsh routing ip add filter "nei" input

192.168.2.200 255.255.255.255 222.222.222.222 255.255.255.255 any,通过这个命令我可以在名为nei的LAN连接的入站筛选器里增加一条“接收所有除符合下列条件以外的数据包”的筛选规则。

但现在的问题是,用这个命令增加的信息不能选择是“接收所有除符合下列条件以外的数据包”还是“丢弃所有的包,满足下面条件的除外”。这样的话我如果要一台机子上网、其他的机子都不能上网,就要写254(255-1)条上面的命令,而如果能将这条规则设置成“丢弃所有的包,满足下面条件的除外”,那么就只需要添加一条筛选记录,做成批处理执行起来也相对容易。

经过在Windows2003的帮助文档下对netsh的仔细查找,终于找到解决的办法,可以使用set来设置是drop(接收所有除符合下列条件以外的数据包)还是forward(丢弃所有的包,满足下面条件的除外),加上用add来添加筛选条件。

应用当中碰到一个问题,规则的源地址可以设置成允许上网的那台机器,但目的地址要不设置或者设成全部就不知道如何设置了,经过实验发现其实要不设置目的地址可以将目的地址的IP和掩码都设置成“0.0.0.0 0.0.0.0”就OK了,执行命令后你会在内网连接的入站筛选里面发现一条:“丢弃所有的包,满足下面条件的除外”、源地址和掩码是192.168.2.200 255.255.255.255、目的地址是空(全部)的规则,这样就可以在DOS下完全控制筛选了。方法找到了,开心ing……

下面是我写的两个批处理:

添加一条只允许192.168.2.200访问外网的筛选规则

@echo of

netsh routing ip add filter "nei" input 192.168.2.200 255.255.255.255 0.0.0.0 0.0.0.0 any

netsh routing ip set filter nei input drop

删除这条规则,允许所有人上网

@echo of

netsh routing ip delete filter "nei" input 192.168.2.200 255.255.255.255 0.0.0.0 0.0.0.0 any

netsh routing ip set filter nei input forward

*实际应用中发现只删除规则的话,其他机器仍然不能上网,但将这条已经删除的规则设成forward后正常,原因我还没想到,谁知道的话赶紧告诉我吧!

相关文档
最新文档