Windows7提供窗口界面配置桌面防火墙,但操作比较繁琐,如果要在局域网所有终端上实施,会非常费时费力,因此打算用批处理文件实现。测试环境在我的电脑上,宿主机是Windows7 32位操作系统,为测试桌面防火墙的效果,使用一台虚拟机,操作系统是Windows XP操作系统。
虚拟机的网络我先后使用主机模式和桥接模式,主机模式使用Vnet3,虚拟机和主机对应Vnet3的网卡设置同一网段的地址;桥接模式使用默认的Vnet0,虚拟机与主机使用同一网段的地址。测试时发现桌面防火墙禁用139和445端口能生效,但禁用21端口却不生效,感觉十分奇怪,如果有知道的朋友,也请告诉我一下。
下面是配置Windows7桌面防火墙使用的命令。写了两个批处理文件,一个是配置桌面防火墙禁用一些危险端口;另一个是恢复桌面防火墙的初始配置。
1.配置桌面防火墙
(1)启用桌面防火墙 netsh advfirewall set allprofiles state on
(2)设置默认输入和输出策略 netsh advfirewall set allprofiles firewallpolICy allowinbound,allowoutbound 以上是设置为允许,如果设置为拒绝使用bLOCkinbound,blockoutbound
(3)关闭tcp协议的139端口 netsh advfirewall firewall add rule name="deny tcp 139" dir=in protocol=tcp localport=139 action=block
(4)关闭udp协议的139端口 netsh advfirewall firewall add rule name="deny udp 139" dir=in protocol=udp localport=139 action=block
(5)关闭tcp协议的445端口 netsh advfirewall firewall add rule name="deny tcp 445" dir=in protocol=tcp localport=445 action=block
(6)关闭udp协议的445端口 netsh advfirewall firewall add rule name="deny udp 445" dir=in protocol=udp localport=445 action=block
(7)使用相同的方法,依次关闭TCP协议的21、22、23、137、138、3389、5800、5900端口。
netsh advfirewall firewall add rule name= "deny tcp 21" dir=in protocol=tcp localport=21 action=block
netsh advfirewall firewall add rule name= "deny tcp 22" dir=in protocol=tcp localport=22 action=block
netsh advfirewall firewall add rule name= "deny tcp 23" dir=in protocol=tcp localport=23 action=block
netsh advfirewall firewall add rule name= "deny tcp 3389" dir=in protocol=tcp localport=3389 action=block
netsh advfirewall firewall add rule name= "deny tcp 5800" dir=in protocol=tcp localport=5800 action=block
netsh advfirewall firewall add rule name= "deny tcp 5900" dir=in protocol=tcp localport=5900 action=block
netsh advfirewall firewall add rule name= "deny tcp 137" dir=in protocol=tcp localport=137 action=block
netsh advfirewall firewall add rule name= "deny tcp 138" dir=in protocol=tcp localport=138 action=block
(8)执行完毕后暂停 pause echo 按任意键退出
2.恢复初始配置
(1)恢复初始防火墙设置 netsh advfirewall reset
(2)关闭防火墙 netsh advfirewall set allprofiles state off