更详细的资料请参考微软的技术资源库:
Netsh Commands for Internet Protocol Security (IPsec)
连接如下:http://technet.microsoft.com/zh-cn/cc725926
备注:注意连接里的 Netsh Commands for Windows Firewall with Advanced Security.连接,他给你的帮助会更大;
导出IPsec安全策略:Netsh ipsec static exportpolicy file = d:\ExportSecurity.ipsec
导入IPsec安全策略:Netsh ipsec static importpolicy file = d:\ImportSecurity.ipsec
1、建立一个新的策略
1.1首先建立一个空的安全策略[Michael's安全策略]
Netsh ipsec static add policy name = Michael's安全策略
1.2建立一个筛选器操作”阻止”
Netsh ipsec static add filteraction name = 阻止 action =block
1.3建立一个筛选器列表“可访问的终端列表”
Netsh ipsec static add filterlist name =可访问的终端列表
Netsh ipsec static add filter filterlist = 可访问的终端列表
srcaddr=203.86.32.248
dstaddr = me dstport = 3389
description = 部门1访问 protocol =TCP mirrored = yes
Netsh ipsec static add filter filterlist = 可访问的终端列表
Srcaddr = 203.86.31.0 srcmask=255.255.255.0
dstaddr = 60.190.145.9 dstport = 0
description = 部门2访问 protocol =any mirrored = yes
1.4建立策略规则
Netsh ipsec static add rule name =可访问的终端策略规则
Policy = Michael's安全策略
filterlist =可访问的终端列表
filteraction = 阻止
2、修改策略
netsh ipsec static set filter filterlist = 可访问的终端列表
srcaddr = 220.207.31.249
dstaddr = Me dstport=3389 protocol=TCP
3、删除策略
netsh ipsec static delete rule name = 可访问的终端策略规则 policy = Michael's安全策略
netsh ipsec static delete filterlist name = 可访问的终端列表
4、最最重要的一步是激活;
netsh ipsec static set policy name = Michael's安全策略 assign = y
以下提供一个我自己写的实例:
echo 创建安全策略
Netsh IPsec static add policy name = APU安全策略
echo 创建筛选器是阻止的操作
Netsh IPsec static add filteraction name = 阻止 action = block
echo 创建筛选器是允许的操作
Netsh IPsec static add filteraction name = 允许 action = permit
echo 建立一个筛选器可以访问的终端列表
Netsh IPsec static add filterlist name = 可访问的终端列表
Netsh IPsec static add filter filterlist = 可访问的终端列表 srcaddr = 203.86.32.248 dstaddr = me dstport = 3389 description = 部门1访问 protocol = TCP mirrored = yes
echo 建立一个筛选器可以访问的终端列表
Netsh ipsec static add filter filterlist = 可访问的终端列表 Srcaddr = 203.86.31.0 srcmask=255.255.255.0 dstaddr = 60.190.145.9 dstport = 0 description = 部门2访问 protocol =any mirrored = yes
echo 建立策略规则
Netsh ipsec static add rule name = 可访问的终端策略规则 Policy = APU安全策略 filterlist = 可访问的终端列表 filteraction = 阻止
echo 激活策略
netsh ipsec static set policy name = APU安全策略 assign = y
pause
或者
Netsh ipsec static add policy name = 默认策略名称
pause
Netsh ipsec static add filteraction name = 阻止操作 action = block
pause
Netsh ipsec static add filteraction name = 允许操作 action = permit
pause
Netsh ipsec static add filterlist name = 访问列表
pause
Netsh ipsec static add filterlist name = 阻止列表
pause
Netsh ipsec static add filter filterlist = 访问列表1 srcaddr = 203.86.32.248 dstaddr = me dstport = 3389 description = 部门1访问 protocol = TCP mirrored = yes
pause
Netsh ipsec static add filter filterlist = 访问列表2 srcaddr = 203.86.31.0 srcmask = 255.255.255.0 dstaddr = 60.190.145.9 dstport = 0 description = 部门2访问 protocol = any mirrored = yes
pause
Netsh ipsec static add rule name = 可访问的终端策略规则 Policy = 默认策略名称 filterlist = 访问列表1 filteraction = 阻止操作
pause
Netsh ipsec static add rule name = 可访问的终端策略规则 Policy = 默认策略名称 filterlist = 访问列表2 filteraction = 阻止操作
pause
netsh ipsec static set policy name = 默认策略名称 assign = y
pause
[以下是转载未经过测试,百度上都可以找的到。]
REM =================开始================
netsh ipsec static ^
add policy name=bim
REM 添加2个动作,block和permit
netsh ipsec static ^
add filteraction name=Permit action=permit
netsh ipsec static ^
add filteraction name=Block action=block
REM 首先禁止所有访问
netsh ipsec static ^
add filterlist name=AllAccess
netsh ipsec static ^
add filter filterlist=AllAccess srcaddr=Me dstaddr=Any
netsh ipsec static ^
add rule name=BlockAllAccess policy=bim filterlist=AllAccess filteraction=Block
REM 开放某些IP无限制访问
netsh ipsec static ^
add filterlist name=UnLimitedIP
netsh ipsec static ^
add filter filterlist=UnLimitedIP srcaddr=61.128.128.67 dstaddr=Me
netsh ipsec static ^
add rule name=AllowUnLimitedIP policy=bim filterlist=UnLimitedIP filteraction=Permit
REM 开放某些端口
netsh ipsec static ^
add filterlist name=OpenSomePort
netsh ipsec static ^
add filter filterlist=OpenSomePort srcaddr=Any dstaddr=Me dstport=20 protocol=TCP
netsh ipsec static ^
add filter filterlist=OpenSomePort srcaddr=Any dstaddr=Me dstport=21 protocol=TCP
netsh ipsec static ^
add filter filterlist=OpenSomePort srcaddr=Any dstaddr=Me dstport=80 protocol=TCP
netsh ipsec static ^
add filter filterlist=OpenSomePort srcaddr=Any dstaddr=Me dstport=3389 protocol=TCP
netsh ipsec static ^
add rule name=AllowOpenSomePort policy=bim filterlist=OpenSomePort filteraction=Permit
REM 开放某些ip可以访问某些端口
netsh ipsec static ^
add filterlist name=SomeIPSomePort
netsh ipsec static ^
add filter filterlist=SomeIPSomePort srcaddr=Me dstaddr=Any dstport=80 protocol=TCP
netsh ipsec static ^
add filter filterlist=SomeIPSomePort srcaddr=61.128.128.68 dstaddr=Me dstport=1433 protocol=TCP
netsh ipsec static ^
add rule name=AllowSomeIPSomePort policy=bim filterlist=SomeIPSomePort filteraction=Permit
前言:
IPSec的全称是Internet Protocol Security,翻译成中文就是Internet协议安全性。它的作用主要有两个:一个是保护 IP 数据包的内容,另外一点就是通过数据包筛选并实施受信任通讯来防御网络攻击。这对于我们当有一些重要的数据在传输的过程中需要加以保护或者防止监听来说无疑是一个好消息,因为Windows 2000已经内置了这个功能,我们不再需要借助其他的工具以实现这个目的了。
由于是在IP层进行对数据的对称加密,封装的是整个的IP数据包,所以不需要为 TCP/IP 协议组中的每个协议设置单独的安全性,因为应用程序使用 TCP/IP 来将数据传递到 IP 协议层,并在这里进行保护。相应的IPSec配置相对复杂,但是对于应用程序来说是透明的,因此不要求应用程序必须支持。下面分几个部分对IPSec的概念、工作过程和实践应用等几个方面加以阐述:
一、 IPSec的工作的过程:
两台计算机在通讯的时候,如果已经设置好IPSec的策略,主机在通讯的时候会检查这个策略,策略在应用到主机的时候会有一个协商的过程,这个过程通过Security Association来实现。协商后根据Policy的配置,两台计算机之间建立一个加密的连接,数据进行加密传输。驱动程序将解密的数据包传输给TCP/IP的驱动程序,然后传输给接收端的应用程序。
二、 进入IPSec控制界面:
有两种方式可以打开,功能是完全一样的:
开始-运行-管理工具-本地安全策略
MMC-添加/删除管理单元-添加-IP安全管理策略-确定
三、 预定义的策略:
缺省的是没有启用IPSec,需要进行指派。我们可以发现系统已经给我们定义了三个策略,下面非别进行介绍。
安全服务器:必须使用IPSec,如果对方不使用IPSec,则通讯无法完成。用于始终需要安全通讯的计算机。
客户端:功能是缺省在通讯过程中不使用IPSec,如果对方要求IPSec,它也可以使用IPSec。用于在大部分时间不能保证通讯的计算机。
服务器:功能是缺省使用IPSec,但是对方如果不支持IPSec,也可以不使用IPSec。用于在大部分时间能保证通讯的计算机。
策略可以在单台计算机上进行指派,也可以在组策略上批量进行指派。值得注意的是为了达到可以通过协商后进行通讯,所以通讯的两端都需要设置同样的策略并加以指派。
四、 IPSec的工作方式:
传送模式(计算机之间安全性配置):保护两个主机之间的通讯,是默认的IPSec模式。传送模式只支持Windows2000操作系统,提供点对点的安全性。
隧道模式(网络之间安全性配置):封装、发送和拆封过程称之为“隧道”。一般实现方法是在两个路由器上完成的。在路由器两端配置使用IPSec,保护两个路由器之间的通讯。主要用于广域网上,不提供各个网络内部的安全性。
五、 IPSec的身份验证方法:
Kerberos V5:(默认)如果是在一个域中的成员,又是Kerberos V5协议的客户机,选择这一项。比如一个域中的Windows 2000的计算机。
证书:需要共同配置信任的CA。
预共享密钥:双方在设置策略的时候使用一段共同协商好的密钥。
以上三种方法都可以作为身份验证的方法,一般在日常工作当中,如果是域中的Windows 2000的计算机之间就采用Kerberos的认证方式,由于国内CA用的实在不多,一般其他情况下可以采用第三种方式,双方协商一段密钥,这个在后面的例子二中还会涉及。
六、 IPSec的加密模式:
身份验证加密技术:
SNA
MD5
数据包加密技术:
40-bit DES
56-bit DES
3DES:最安全的加密方法,相应的也会消耗更多的系统资源。
以上的概念性的东西大家可以查阅相关资料,这里就不多多讲述了。
七、 应用:
以上概念性的东西说了很多,下面正式进入实战,将通过两个例子把IPSec的两方面的功能进行说明。
1、 保护IP数据包的内容:为了保护两个主机之间的通讯信息的安全性,我们将利用IPsec的在两台计算机之间建立一个安全连接。采用预共享密钥方式,并强制使用IPSec进行通讯加密。例子中有两台计算机,第一台计算机IP为192.168.0.1,第二台计算机IP为192.168.0.2,如果没有特殊说明,操作是在第一台计算机上进行。
(1)、进入IPSec控制界面,右键点击“安全服务器”,选中属性(系统已经内置了三条规则,大家可以自己详细的看一下作用,为了演示策略的添加过程我们采用自己添加的方式)。点击“添加”按钮。
(2)、进入安全规则向导,点击“下一步”按钮。
(3)、根据实际情况,我们是实现两台主机之间的安全通讯,不是网络之间的,所以选择“此规则不指定隧道”,因此我们将采用传送模式。点击“下一步”按钮。
(4)、进入了选择网络类型的界面,可以选择的有三种方式,概念应该很好理解了,我们选择“所有网络连接”,点击“下一步”按钮。
(5)、进入了身份验证方法的界面,三种验证方法在上文中已经介绍,我们选择第三种“此字串用来保护密钥交换(预共享密钥)”,然后在对话框中输入我们协商好的密钥,比如“hello”。点击“下一步”按钮。
(6)、进入了“IP筛选器列表”界面,由于我们是要保护全部的通讯,所有选择“所有IP通讯”,当然也可以自己添加新的筛选器列表,这部分内容在第二个例子中会提到,点击“下一步”按钮。
(7)、进入“筛选器操作”界面,根据我们前面提到的要求,我们选择要求安全设置,这里的筛选器操作也是可以自己添加的,例子二中也会提到,点击“下一步”按钮。
(8)、至此安全规则创建完毕,我们点击“完成”。
(9)、会到开始的端口,我们会发现已经增加了我们新增加的安全规则。除了选中我们自己创建的规则以外,我们把其他默认规则的对勾点无。
(10)、最后,也是非常重要的一点,我们要对我们创建的策略进行指派,否则策略不会自己生效,点击“安全服务器”右键,点击“指派”。
(11)、这个时候我们打开一个窗口,开始使用Ping命令,检查我们的通讯状况。例子中的第二台计算机的IP地址为192.168.0.2,我们执行Ping 192.168.0.2 –t,会发现一直在“协商IP安全性”,这个是什么原因呢?因为这个时候我们只是在第一台计算机上面设置了IPsec策略,另一端并没有做相应的设置,协商无法成功,所以这个时候我们必须到另外一端的计算机进行同样的设置并进行指派。
(12)、192.168.0.2的计算机上设置完毕并进行指派以后我们发现信息发生了变化,协商IP安全性通过,我们又接收到了来自192.168.0.2的回应。
(13)、如果我们在这之前打开了IP安全监视器,也就是IPSecmon的话,我们会发现窗口里面会有相应的记录显示。右下角也会显示“IP安全设置已经在这台计算机上启用”。
至此,例子一所要求的目的已经达到,我们成功的创建了IPSec来保证数据的安全性,这个时候其它没有启用IPsec的计算机如果对这台计算机发出Ping的命令,将得不到回应,如下图(我采用的方法是不指派计算机192.168.0.1设置好的IPSec策略):
2、 数据包筛选:这个功能对于我们来说也是相当有用的,记得很多网友都在询问如何关闭计算机的某个端口或者是如何防止别人Ping我的计算机等等之类的问题,防火墙是一个解决的方式,但是需要付出额外的费用和资源。靠TCP/IP属性里面的高级选项的筛选可以做到一些,但是只能够设置打开哪些端口,不能设置关闭哪些端口。其实这个要求完全可以靠IPSec来实现,有的朋友可能要问,那么还防火墙做什么?前面提到,和专业防火墙比起来,使用Ipsec配置相对来说要麻烦一些,不适合一般用户使用,另外目前的防火墙已经集成了很多其他的功能,还有就是硬件的防火墙会消耗更少的系统资源。
下面的例子会介绍如果使用IPSec进行数据包筛选,关闭ICMP,也就是大家很关心的如何关闭Ping的回应信息,这个其实用到的是ICMP(8,0),这里不详细介绍了ICMP了,正式进入实践操作(例子有两台计算机,第一台计算机IP为192.168.0.1,第二台计算机IP为192.168.0.2,如果没有特殊说明,操作是在第二台计算机上进行。):
(1)、进入IPSec控制界面,由于我们需要的筛选策略和操作在系统内置的里面没有合适的,所以下面我们进行自己添加。首先右键点击“IP安全策略”,选中“管理IP筛选器表和筛选器操作”。
(2)、选中管理IP筛选器列表,点击“添加”按钮。
(3)、为我们的IP筛选器列表起一个名字,比如“ICMP”,也可以在“描述”信息里面输入相应的描述信息。点击“添加”按钮。
(4)、进入“IP筛选器向导”,点击“下一步”按钮。
(5)、选择“源地址”信息,我们选择“我的IP地址”,也就是代表的本机,192.168.0.2。点击“下一步”按钮。
(6)、选择“目标地址”信息,我们选择“任何IP地址”,如果大家配置过防火墙,大家会发现这个步骤和防火墙的配置是完全一样的。点击“下一步”按钮。
(7)、选择“协议类型”,我们选择“ICMP”。这个时候大家会发现有很多协议类型供大家选择,也包括了TCP、UDP等等。点击下一步。
(8)、这个时候就完成了IP筛选器的建立,可以点击“完成”按钮。这个时候值得注意的是,由于我选择的是ICMP,但是假如这个时候我选择的是TCP,后面还会出现端口的选择,设置进站和出站的端口。
(9)、接下来要进行的是添加一个符合我们需要的筛选器操作,这里我们需要的建立一个阻止的操作。首先我们点击“添加”按钮:
(10)、进入了“IP安全筛选器操作向导”,点击“下一步”按钮。
(11)、我们给这个操作起一个名字,这里我起的是“Deny”,也可以在描述中加入一些描述信息。点击“下一步”按钮。
(12)、选择操作的行为,我们选择“阻止”。点击“下一步”按钮。
(13)、这样就完成了“IP安全筛选器操作”的添加工作,点击完成。
(14)、下面的工作是建立一条新的IP安全策略,会用到以上我们创建的筛选器列表和操作。回到我们的第一步的位置,这次点击“创建IP安全策略”。这个时候我们进入了“IP安全策略向导”,点击“下一步”按钮。
(15)、我们给这个IP安全策略起一个名字,我起的名字叫做“屏蔽ICMP”,也可以适当加入描述信息。点击“下一步”按钮。
(16)、选择“激活默认响应规则”,点击“下一步”按钮。
(17)、选择默认值,点击“下一步”按钮。
(18)、点击“完成”。
(19)、下面开始对此条策略进行配置。点击“添加”按钮。
(20)、进入“创建IP安全规则向导”,点击“下一步”按钮。
(21)、和例子一中类似,按照我们的需求,我们选择“此规则不指定隧道”。点击“下一步”按钮。
(22)、选种“所有网络连接”,点击“下一步”按钮。
(23)、选择“默认值”,点击“下一步”按钮。
(24)、选种我们新建立的筛选器“ICMP”,点击“下一步”按钮。
(25)、选择我们新建立的操作“deny”,点击“下一步”按钮。
(26)、至此,我们完成了整个设置过程。点击完成结束。
(27)、最后还需要提醒大家的就是需要对我们新建立的策略进行指派。
(28)、下面的图表示了在指派我们这条策略前后的变化,在192.168.0.2这台计算机指派了此条规则以后,我们从192.168.0.1这台计算机将得不到来自192.168.0.2这台计算机的ICMP的回应。
以上我们通过三部分的工作完成了数据包筛选的操作,分别是创建IP筛选器列表和IP筛选器操作,还有就是创建IP安全策略。不过不是每一条规则都需要这么多的操作,比如IP筛选器操作,下次再有屏蔽某个端口操作的时候就可以直接使用这个“deny”操作了。
八、 结束语
通过上面的介绍,大家可以发现使用IPSec真的可以做不少事情,假如我们知道了其他服务的端口,比如终端服务、FTP服务等等,都可以用IPSec把数据通讯保护起来。现在大家不妨尽快去做这个事情,谁知道现在有没有在监听你的信息呢?
如果在使用中遇到问题,大家不妨尝试从以下几个方面去进行排错。检查两端是否都已经相应的做了IPSec策略设置;检查策略是否已经被指派;检查系统和安全日志相关记录;利用监视器,也就是命令行方式下的IPSecmon。最后祝大家使用顺利,充分发挥Windows 2000的这个好工具的功能!
------------------------------------------
KUKA:ipsec是个很有用的东西,许多做服务器托管的朋友常为安全问题烦恼,其实只要善用IPSEC,NTFS权限等等完全可以在一定程度上解决大部分的安全问题的
在实际使用中,我们都是将规则导出,为ipsec扩展名,然后导入即可。