欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

ipseccmd IP安全策略命令解析

程序员文章站 2023-11-15 09:27:46
ipseccmd IP安全策略命令解析...
ipsec
首先需要指出的是,ipsec和tcp/ip筛选是不同的东西,大家不要混淆了。tcp/ip筛选的功能十分有限,远不如ipsec灵活和强大。下面就说说如何在命令行下控制ipsec。

xp系统用ipseccmd 本站附件下载

2000下用ipsecpol。
win2003下直接就是ipsec命令。遗憾的是,它们都不是系统自带的。ipseccmd在xp系统安装盘的support\tools\support.cab中,ipsecpol在2000 resource kit里。而且,要使用ipsecpol还必须带上另外两个文件:ipsecutil.dll和text2pol.dll。三个文件一共119kb。


winxp命令行下ipsec屏蔽不安全的端口

ipsec叫做internet协议安全。主要的作用是通过设置ipsec规则,提供网络数据
包的加密和认证。不过这样高级的功能我无缘消受,只是用到了筛选功能罢了。通过设置规则进行数据包的筛选器,可以屏蔽不安全的端口连接。

你可以运行gpedit.msc,在windows设置>>计算机设置>>ip安全设置中进行手工设
置。更加简单的方法是使用ipseccmd命令。

ipseccmd在windowsxp中没有默认安装,他在xp系统安装盘的
support\tools\support.cab中。在windows2000中它的名字叫做ipsecpol,默认
应该也没有安装,你自己找找看吧。


使用ipseccmd设置筛选,它的主要作用是设置你的筛选规则,为它指定一个名称,
同时指定一个策略名称,所谓策略不过是一组筛选规则的集合而已。比如你要封
闭tcp135端口的数据双向收发,使用命令:

ipseccmd -w reg -p "block default ports" -r "block tcp/135" -f *+0:135:tcp -n block -x

这里我们使用的是静态模式,常用的参数如下:
-w reg 表明将配置写入注册表,重启后仍有效。
-p 指定策略名称,如果名称存在,则将该规则加入此策略,否则创建一个。
-r 指定规则名称。
-n 指定操作,可以是block、pass或者inpass,必须大写。
-x 激活该策略。
-y 使之无效。
-o 删除-p指定的策略。
其中最关键的是-f。它用来设置你的过滤规则,格式为
a.b.c.d/mask:port=a.b.c.d/mask:port:protocol。其中=前面的是源地址,后面
是目的地址。如果使用+,则表明此规则是双向的。ip地址中用*代表任何ip地址,
0代表我自己的ip地址。还可以使用通配符,比如144.92.*.* 等效于
144.92.0.0/255.255.0.0。使用ipseccmd /?可以获得它的帮助。

如果希望将规则删除,需要先使用-y使之无效,否则删除后它还会持续一段时间。
参考下面代码清单。

好了,这样你就可以使用ipsec根据自己的需要方便得自己定制你的筛选规则了。
如果有不安全的端口,或者你不太喜欢的ip地址,你就可以把它们*在你的大
门之外。

现在,你的机器本身已经基本比较安全了,不必再一接上网线就提心吊胆了。今天
天气还不错,赶快放心大胆的去网上冲浪去吧,海岸上有漂亮的贝壳,不要忘了
捡几颗送给我哦。

=========================麻烦一点的讲解=============================
ipseccmd
在目录服务或本地(远程)注册表中配置 internet 协议安全 (ipsec) 策略。ipseccmd 是与 ip 安全策略 microsoft 管理控制台 (mmc) 管理单元功能相同的另一种命令行管理工具,具有三种模式:动态模式 (dynamic mode)、静态模式 (static mode) 和查询模式 (query mode)。

若要查看该命令语法,请单击以下命令:

ipseccmd dynamic mode

可以利用 ipseccmd 动态模式将匿名规则添加到现有的 ipsec 策略中,方法是将这些规则添加到 ipsec 安全策略数据库。即使重新启动 ipsec 服务后,所添加的规则也会存在。使用动态模式的好处在于所添加的规则可以与域中的策略共存。动态模式是 ipseccmd 的默认模式。

语法
要添加规则,可以使用以下语法:
ipseccmd [\\computername] -f filterlist [-n negotiationpolicylist] [-t tunneladdr] [-a authmethodlist] [-1s securitymethodlist] [-1k mainmoderekeysettings] [-1p] [-1f mmfilterlist] [-1e softsaexpirationtime] [-soft] [-confirm] [{-dialup | -lan}]

要删除所有动态策略,请使用如下语法:
ipseccmd -u

参数
\\computername
指定要向其添加规则的远程计算机的名称。
-f filterlist
第一个语法要求。为快速模式安全关联 (sas) 指定一个或多个由空格分割的筛选器规格。每个筛选器规格都定义一套受该规则影响的网络流量。
-n negotiationpolicylist
指定由筛选器列表定义的安全流量的一个或多个安全方法(由空格分割)。
-t tunneladdr
指定隧道模式为 ip 地址或 dns 域名的隧道终结点。
-a authmethodlist
指定一个或多个身份认证方法(由空格分割)。
-1s securitymethodlist
指定一个或多个密钥交换安全方法(由空格分割)。
-1k mainmoderekeysettings
指定主模式 sa rekey设置。
-1p
启用主密钥完全向前保密。
-1f mmfilterlist
指定一个或多个主模式 sas 的筛选器规格(由空格分割)。
-1e softsaexpirationtime
指定软 sas 的过期时间(单位为:秒)。
-soft
启用软 sas。
-confirm
指定在添加规则或策略之前显示确认提示。
{-dialup | -lan}
指定规则是否仅应用于远程访问或拨号连接,或是否仅应用于局域网 (lan) 连接。
-u
第二个语法要求。指定删除所有的动态规则。
/?
在命令提示符显示帮助。
注释
ipseccmd 不可用于配置运行 windows 2000 计算机的规则。
如果不指定 computername 参数,则该规则将添加到本地计算机。
如果使用了 computername 参数,则此参数必须在其他所有参数之前使用,而且必须具有欲向其添加规则的计算机的管理员权限。
对于 -f 参数,一种筛选器规格是由空格分割且由如下格式定义的一个或多个筛选器:
sourceaddress/sourcemask:sourceport=destaddress/destmask:destport:protocol

sourcemask、sourceport、destmask 和 destport 是可选项。如果忽略这些参数,则该筛选器将使用子网掩码 255.255.255.255 和所有端口。
protocol 是可选项。如果省略它,则筛选器将使用所有协议。如果指定一种协议,则必须指定端口或在协议前使用两个冒号 (::)。(请参见动态模式的第一个范例。)此协议必须是筛选器的最后一项。可以使用下面的协议符号:icmp、udp、raw 和 tcp。
可以通过使用加号 (+) 替代等号 (=) 创建镜像筛选器。
可以将 sourceaddress/sourcemask 或 destaddress/destmask 替换为下表中的值: 值 说明
0 我的地址或地址
* 任意地址
dnsname dns 域名如果 dns 名称解析多个地址,则会忽略它。
guid 本地网络接口的全球单一标识 (guid),形式为 {12345678-1234-1234-1234-123456789abc}。当在静态模式下使用 -n 参数时,则不能指定 guid。

通过指定“默认”的筛选器规格,可以启用默认的响应规则。
将筛选器规格放在圆括号中可以指定许可筛选器。将筛选器规格放在中括号 ([ ]) 中可以指定阻挡筛选器。
如果使用的 internet 地址是分类的子网掩码(以八位字节为边界定义的子网掩码),则可使用通配符指定子网掩码。例如,10.*.*.* 与 10.0.0.0/255.0.0.0 相同,10.92.*.* 与 10.92.0.0/255.255.0.0 相同。
筛选器范例

要创建可以筛选 computer1 和 computer2 之间的 tcp 流量的镜像筛选器,请键入:

computer1+computer2::tcp

要创建子网范围为 172.31.0.0/255.255.0.0 到 10.0.0.0/255.0.0.0(端口 80)之间的所有 tcp 流量的筛选器,请键入:

172.31.0.0/255.255.0.0:80=10.0.0.0/255.0.0.0:80:tcp

要创建允许本地 ip 地址和 ip 地址为 10.2.1.1 之间流量的镜像筛选器,请键入:

(0+10.2.1.1)

对于 -n 参数,可由空格分割一个或多个协商策略并采用以下的形式:
esp[encrypalg,authalg]rekeypfs[group]
ah[hashalg]
ah[hashalg]+esp[encrypalg,authalg]
其中,encrypalg 可以是 none、des 或 3des;authalg 可以是 none、md5 或 sha;hashalg 可以是 md5 或 sha。

不支持 esp[none,none] 配置。
sha 参数是指 sha1 散列算法。
rekey 参数是可选项,它可以指定千字节的数量(通过在数字后加 k 表示),或秒数(通过在数字后加 s 表示)这些指定值位于快速模式 sa 的 rekey 之前。要指定两个 rekey 的参数,请使用斜线 (/) 将两个数分开。例如,要每隔 1 小时和每 5 兆 的数据流量后 rekey 一次快速模式 sa,请键入:
3600s/5000k

pfs 参数是可选项,该参数可以启用会话密钥完全向前保密。默认情况下,会话密钥完全向前保密是禁用的。
group 参数是可选项,该参数可指定会话密钥完全向前保密的 diffie-hellman 组。对于 low(1) diffie-hellman 组,指定 pfs1 或 p1。对于 medium(2) diffie-hellman 组,指定 pfs2 或 p2。默认情况下,会话密钥完全向前保密的组值来自当前主模式设置值。
如果不指定协商策略,则默认的协商策略如下:
esp[3des,sha]
esp[3des,md5]
esp[des,sha]
esp[des,md5]
如果忽略 -t 参数,则使用 ipsec 传输模式。
对于 -a 参数,由空格分割一种或多种身份验证方式,并使用以下某种形式:
preshare:"presharedkeystring"
kerberos
cert:"cainfo"
presharedkeystring 参数指定预共享密钥的字符串。cainfo 参数指定 ip 安全策略管理单元中显示的证书区别名,此时证书被选择为某规则的身份验证方式。presharedkeystring 和 cainfo 参数区分大小写。可以使用首字母简化此方法:p, k 或 c。如果忽略 -a 参数,则默认的身份验证方式为 kerberos。

对于 -1s 参数,单个或多个密钥交换安全方式由空格分割且定义成下面的格式:
encrypalg-hashalg-groupnum

其中,encrypalg 可以是 des 或 3des;hashalg 可以是 md5 或 sha;groupnum 可以是 1(对于 low(1) diffie-hellman 组)或 2(对于 medium(2) diffie-hellman 组)。如果忽略 -1s 参数,则默认的密钥交换安全方式是 3des-sha-2、3des-md5-2、des-sha-1 和 des-md5-1。

对于 -1k 参数,可以指定快速模式 sas 的数量(通过在数字后加 q 表示)或秒数(通过在数字后面加 s 表示)来 rekey 主模式 sa。要指定两个 rekey 的参数,必须使用斜线 (/) 将两个数分开。例如,要在每 10 个快速模式 sas 和每隔 1 小时后 rekey 主模式,请键入:
10q/3600s

如果忽略 -1k 参数,主模式 rekey 的默认值为无限个主模式 sas 和 480 分钟。

主密钥完全向前保密在默认情况下是禁用的。
对于 -1f 参数,指定主模式筛选器规格的语法与 -1f 参数相同,差别在于不可以指定许可筛选器、阻挡筛选器、端口或协议。如果忽略 -1f 参数,将根据快速模式筛选器自动创建主模式筛选器。
如果忽略 -1e 参数,软 sas 的过期时间为 300 秒。然而,软 sas 在未使用 -soft 参数时总是禁用的。
只有动态模式才可使用确认。
如果未指定参数 -dialup 和 -lan,则规则将应用于所有适配器。
范例
要创建进出本地计算机的所有流量的使用 md5 散列身份认证头标 (ah) 的规则,请键入:

ipseccmd -f 0+* -n ah[md5]

要创建来自 10.2.1.1 和 10.2.1.13(隧道终结点为 10.2.1.13)的流量的隧道规则(该规则带有利用 sha1 散列算法的 ah 隧道模式,并启用了主密钥完全向前保密和在创建之前带有规则确认提示),请键入:

ipseccmd -f 10.2.1.1=10.2.1.13 -t 10.2.1.13 -n ah[sha] -1p -c

要在名为 corpsrv1 的计算机上创建名为 corpsrv1 和 corpsrv2 的计算机之间所有流量的规则(该规则同时带有 ah 和加密安全负载 (esp),以及预共享的密钥身份验证),请键入:

ipseccmd \\corpsrv1 -f corpsrv2+corpsrv1 -n ah[md5]+esp[des,sha] -a p:"corpauth"

ipseccmd static mode

可是使用 ipseccmd 静态模式创建命名策略和命名规则。也可以使用静态模式修改最初由 ipseccmd 创建的现有策略和规则。静态模式的语法结合了带参数的动态模式的语法,该参数可使其在策略级的水平工作。

语法
ipseccmd dynamicmodeparameters -w type[:location] -p policyname[:pollinterval] -r rulename [{-x | -y}] [-o]

参数
dynamicmodeparameters
必需。根据上面的介绍为 ipsec 规则指定一套动态模式参数集。
-w type[:location]
必需。指定写入本地注册表、远程计算机的注册表或活动目录域的策略和规则。
-p policyname[:pollinterval]
必需。指定策略名称和检查策略更改的频率(以分钟计)。如果 policyname 包含空格,请使用引号将文本引起来(例如,"policyname")。
-r rulename
必需。指定规则的名称。如果 rulename 包含空格,请使用引号将文本引起来(例如,"rulename")。
[{-x | -y}]?
指定是否分配本地注册表策略。-x 参数指定分配了本地注册表策略。-y 参数指定未分配本地注册表册策略。
-o
指定应该删除规则或策略。
/?
在命令提示符显示帮助。
注释
对于 -w 参数,type 既可以是指定本地或远程计算机注册表的 reg,也可以是指定活动目录的 ds。
如果指定 type 参数为 reg,但没有使用 location 参数,则将创建本地计算机的注册表规则。
如果指定 type 参数为 reg,并指定了 location 参数的远程计算机名,则将创建指定的本地计算机的注册表规则。
如果指定 type 参数为 ds,但没有使用 location 参数,则将创建本地计算机所在的活动目录域的规则。
如果指定 type 参数为 ds,且指定了 location 参数的活动目录域,则将创建指定域的规则。
对于 -p 参数,如果已经存在该名称的策略,则指定的规则将添加到策略中。否则,将创建指定名称的策略。如果指定 pollinterval 参数的值为整数,则该策略的轮询时间间隔将设置为该整数的分钟数。
对于 -r 参数,如果已经存在该名称的规则,则将根据命令中指定的参数修改该规则。例如,如果在现有规则中使用 -f 参数,则只替换该规则的筛选器。如果不存在指定名称的规则,则将创建该名称的规则。
对于 -o 参数,会删除指定策略的所有方面。如果具有指向要删除的策略中对象的其他策略,则不要使用该参数。
静态模式的使用有一个方面与动态模式不同。使用动态模式,可以在 filterlist 中指定许可和阻挡筛选器,可以利用 -f 参数识别这些筛选器。使用静态模式,可以在 negotiationpolicyrlist 中指定许可和阻挡筛选器,可以利用 -n 参数识别这些筛选器。除了动态模式下讲述的 negotiationpolicylist 参数外,也可以在静态模式下使用 block、pass 或 inpass 参数。下表列出了这些参数及其对各自行为的说明。

参数 说明
block negotiationpolicylist 中策略的其余部分将被忽略,且所有筛选器都将创建为阻挡筛选器。
pass negotiationpolicylist 中策略的其余部分将被忽略,且所有筛选器都将创建为许可筛选器。
inpass 内传筛选器将允许未加安全的初始通讯,但响应将通过 ipsec 加强其安全性。

范例
要利用 kerberos 和预共享密钥身份认证方式创建名称为 default domain policy 并在活动目录域(本地计算机需属于该域成员)中具有 30 分钟轮询时间间隔,而且在本地计算机和名为 securedserver1 和 securedserver2 的计算机流量之间的规则名为 sevuredserver2 的策略,请键入:

ipseccmd -f 0+securedserver1 0+securedserver2 -a k p:"corpauth" -w ds -p "default domain policy":30 -r "secured servers"

要利用本地计算机的任意流量镜像筛选器以及预共享密钥身份验证来创建并分配规则名为 secure my traffic 、策略名为 me to anyone 的本地策略,请键入:

ipseccmd -f 0+* -a p:"localauth" -w reg -p "me to anyone" -r "secure my traffic" -x

ipseccmd query mode

可以使用 ipseccmd 查询模式显示 ipsec 安全策略数据库中的数据。

语法
ipseccmd [\\computername] show {{[filters] | [policies] | [auth] | [stats] | [sas]} | all}

参数
\\computername
通过名称指定要显示其数据的远程计算机。
show
必需。指定必须以查询模式运行 ipseccmd。
filters
显示主模式和快速模式筛选器。
policies
显示主模式和快速模式策略。
auth
显示主模式身份认证方式。
stats
显示有关 internet 密钥交换 (ike) 和 ipsec 的统计资料。
sas
显示主模式和快速模式安全关联 (sas)。
all
显示上面各种类型的数据。
/?
在命令提示符显示帮助。
注释
ipseccmd 不可用于显示运行 windows 2000 的 ipsec 数据。
如果不使用 computername 参数,则将显示关于本地计算机的信息。
如果使用了 computername 参数,则此参数必须位于其他所有参数之前,且必须具有欲显示其信息的计算机的管理员权限。
范例
要显示主模式和快速模式筛选器以及本地计算机的策略,请键入:

ipseccmd show filters policies

要显示远程计算机 server1 的所有 ipsec 信息,请键入以下命令:

ipseccmd \\server1 show all