win2003服务器通过ipsec做防火墙的配置方法

windows2003系统的防火墙功能较弱,关键是无法使用命令进行配置,这对批量部署会造成很大的工作量,因此使用ipsec进行访问控制
在windows2003下是可以通过命令 netsh ipsec进行操作
命令的语法:http://technet.microsoft.com/zh-cn/library/cc739550(v=ws.10).aspx#BKMK_add_rule

1、删除所有安全策略
netsh ipsec static del all

2、建立策略test
netsh ipsec static add policy name=test

3、建立一个筛选器操作,可以理解为动作,匹配规则后执行的操作,类似Linux的iptables中的ACCEPT和DROP
建立拒绝操作
netsh ipsec static add filteraction name=block action=block
建立接受操作
netsh ipsec static add filteraction name=permit action=permit

4、添加筛选器列表,用于拒绝操作,类似iptables的默认规则
netsh ipsec static add filterlist name=deny_all
添加筛选器,拒绝所有的连接
netsh ipsec static add filter filterlist=deny_all srcaddr=Any dstaddr=Me

5、将创建的拒绝所有请求的筛选器和筛选器操作添加到策略test
netsh ipsec static add rule name=deny_all policy=test filterlist=deny_all filteraction=block

6、建立服务器本身对外访问的策略

建立筛选器列表server_access
netsh ipsec static add filterlist name=server_access

在筛选器列表server_access中添加一个筛选器,允许本机的任意端口到任意地址的,协议端口根据需要自己添加
netsh ipsec static add filter filterlist=server_access srcaddr=Me dstaddr=any protocol=tcp dstport=80

在策略test中应用筛选器server_access,并且对匹配筛选器的数据包执行允许操作
netsh ipsec static add rule name=server_access policy=test filterlist=server_access filteraction=permit

7、建立web服务器访问策略

建立筛选器列表web
netsh ipsec static add filterlist name=web

在筛选器列表web上添加筛选器,允许外部任意地址对本机的80端口的访问
netsh ipsec static add filter filterlist=web srcaddr=any dstaddr=Me dstport=80

在策略test中应用筛选器列表web
netsh ipsec static add rule name=web policy=test filterlist=web filteraction=permit

8、建立ftp服务器访问策略

netsh ipsec static add filterlist name=ftp
netsh ipsec static add filter filterlist=ftp srcaddr=any dstaddr=Me dstport=21

为ftp服务器添加被动端口,这里这添加三个作为测试
netsh ipsec static add filter filterlist=ftp srcaddr=any dstaddr=Me dstport=65530
netsh ipsec static add filter filterlist=ftp srcaddr=any dstaddr=Me dstport=65531
netsh ipsec static add filter filterlist=ftp srcaddr=any dstaddr=Me dstport=65532
netsh ipsec static add rule name=ftp policy=test filterlist=ftp fileraction=permit