当前位置: 首页 > 工具软件 > Whack > 使用案例 >

IPSEC_WHACK - pluto辅助程序

陈知
2023-12-01
NAME
ipsec_whack - pluto辅助工具

SYNOPSIS
ipsec  whack [--help] [--version]

+ connection:
ipsec
  whack [--debug-none] [--debug-all] [--debug-raw] [--debug-crypt] [--debug-parsing] [--debug-emitting] [--debug-control] [--debug-lifecycle] [--debug-klips] 
                    [--debug-pfkey] [--debug-nat-t] [--debug-dpd] [--debug-dns] [--debug-oppo] [--debug-oppoinfo] [--debug-whackwatch] [--debug-private]

ipsec  whack --name connection-name [[--ipv4] | [--ipv6]] [[--tunnelipv4] | [--tunnelipv6]]

                   [--id identity] [--host ip-address] [--cert path] [--ca distinguished name] [--groups access control groups] [--sendcert yes | forced | always | ifasked | no | never] 
                   [--certtype number] [--ikeport portnumber] [--nexthop ip-address] [[--client subnet] | [--clientwithin subnet]] [--clientprotoport protocol/port] [--srcip ip-address] 
                   [--xauthserver] [--xauthclient] [--modecfgserver] [--modecfgclient] [--modecfgdns1] [--modecfgdns2] [--modecfgwins1] [--modecfgwins2] [--dnskeyondemand] [--updown updown]
    
          --to

                   [--id identity] [--host ip-address] [--cert path] [--ca distinguished name] [--groups access control groups] [--sendcert yes | always | ifasked | no | never] 
                   [--certtype number] [--ikeport port-number] [--nexthop ip-address] [--client subnet] [--clientwithin subnet] [--clientprotoport protocol/port] [--srcip ip-address] 
                   [--xauthserver] [--xauthclient] [--modecfgserver] [--modecfgclient] [--modecfgdns1 ip-address] [--modecfgdns2 ip-address] [--modecfgwins1 ip-address] 
                   [--modecfgwins2 ip-address] [--dnskeyondemand] [--updown updown]

                   [--tunnel] [--psk] [--rsasig] [--encrypt] [--authenticate] [--compress] [--pfs] [--pfsgroup [modp1024] | [modp1536] | [modp2048] | [modp3072] | [modp4096] | [modp6144] | [modp8192]] 
                   [--disablearrivalcheck] [--ikelifetime seconds] [--ipseclifetime seconds] [--rekeymargin seconds] [--rekeyfuzz percentage] [--keyingtries count] [--esp esp-algos] [--dontrekey] [--aggrmode] 
                   [--modecfgpull] [[--dpddelay seconds] | [--dpdtimeout seconds]] [--dpdaction [clear] | [hold] | [restart]] [--forceencaps] 
                   [[--initiateontraffic] | [--pass] | [--drop] | [--reject]] [[--failnone] | [--failpass] | [--faildrop] | [--failreject]] [--ctlbase path] [--optionsfrom filename] [--label string] 

+ pubkey: 
ipsec
  whack --keyid id [--addkey] [--pubkeyrsa key] [--ctlbase path] [--optionsfrom filename] [--label string]

+ myid:
ipsec
  whack --myid id

+ listen:
ipsec
  whack --listen | --unlisten [--ctlbase path] [--optionsfrom filename] [--label string]

+ routing: 
ipsec
  whack --route | --unroute --name connection-name [--ctlbase path] [--optionsfrom filename] [--label string]

+ initiation:
ipsec
  whack --initiate | --terminate --name connection-name [--xauthuser user] [--xauthpass pass] [--asynchronous] [--ctlbase path] [--optionsfrom filename] [--label string]

+ opportunistic initiation: 
ipsec
  whack [[--tunnelipv4] | [--tunnelipv6]] --oppohere ip-address --oppothere ip-address

ipsec  whack --crash [ipaddress]

+ testcases:
ipsec
  whack --whackrecord [filename]

+ testcases:
ipsec  whack --whackstoprecord

+ delete: 
ipsec
  whack --name connection-name --delete [--ctlbase path] [--optionsfrom filename] [--label string]

+ deletestate:
ipsec
  whack --deletestate state-number [--ctlbase path] [--optionsfrom filename] [--label string]

+ debug:
ipsec
  whack [--name connection-name] [--debug-none] [--debug-all] [--debug-raw] [--debug-crypt] [--debug-parsing] [--debug-emitting] [--debug-control] 
                  [--debug-controlmore] [--debug-lifecycle] [--debug-klips] [--debug-pfkey] [--debug-dns] [--debug-dpd] [--debug-natt] [--debug-oppo] [--debug-oppoinfo] 
                  [--debug-whackwatch] [--debug-private] [--impair-delay-adns-key-answer] [--impair-delay-adns-txt-answer] [--impair-bust-mi2] [--impair-bust-mr2] [--impair-sa-fail] 
                  [--impair-die-oninfo] [--impair-jacob-two-two]

+ list: 
ipsec
  whack [--utc] [--listall] [--listpubkeys] [--listcerts] [--listcacerts] [--listacerts] [--listaacerts] [--listocspcerts] [--listgroups] [--listcrls] [--listocsp]

+ reread:
ipsec
  whack [--utc] [--rereadsecrets] [--rereadall] [--rereadcacerts] [--rereadacerts] [--rereadaacerts] [--rereadocspcerts] [--rereadcrls]

+ purge:
ipsec
  whack --purgeocsp

+ purge: 
ipsec  whack --listevents

+ status:
ipsec
  whack --status [--ctlbase path] [--optionsfrom filename] [--label string]

+ shutdown:
ipsec
  whack --shutdown [--ctlbase path] [--optionsfrom filename] [--label string]

DESCRIPTION
whack被用于发送命令给一个运行中的 plutowhack使用UNIX域socket与 pluto通信(缺省 /var/pluto.ctl)

whack包含了复杂的命令参数。帮助格式用于显示帮助或版本信息;连接格式告诉 pluto一个连接描述;公钥格式通知 pluto RSA公钥。删除格式SA中与其对应的连接;
监听格式通知 pluto启动或关闭IKE;路由格式通知 pluto建立连接路由;初始化格式通知 pluto进行SA协商;终止格式通知 pluto删除所有SA;状态格式显示 pluto内部状态;
调试格式通知 pluto改变日志输出;退出格式通知 pluto退出并删除所有SA。

大多数的选项只对一种格式有效,下面3个选项可用于所有格式:

--ctlbase   path
           path.ctl 用于UNIX域socket与pluto通信

--optionsfrom   filename
          把文件内容做为参数输入

--label   string
          为所有错误消息添加指定字符串

帮助格式:

--help
          显示使用手册信息

--version
          显示 whack版本信息

连接格式描述了 pluto连接时使用到的信息。 pluto需要一些信息决定哪些连接应该进行协商,哪些信息不应该进行协商;当 pluto是应答者(可以看到服务端)时,它需要信息
决定是否要建立连接。

--name  connection-name
          设置连接名字
连接拓扑是对称的,如下
     client_subnet<-->host:ikeport<-->nexthop<-->nexthop<-->host:ikeport<-->client_subnet

--id  id
          端点的ID。目前,ID可以是IP地址、域名、user@FQND、X509的DN、关键词  %myidid对于 pluto来说明只用于身份鉴别,不会当作IP地址使用

--host  ip-address,   --host %any,   --host %opportunistic
          端点IP地址(通常为公网接口地址)。如果 pluto是IKE应答者(可以看到服务端"Road Warrior"),应答一个未知IP时,那么应该使用  %any;如果pluto随机初始化连接,那么应该使用  %opportunistic

--cert  filename
          X509证书名字。此证书只能是公钥证书,不可以为PKCS#12证书文件。

--ca  distinguished name 
          CA证书的DN名字。

--groups  access control groups
          访问控制组

--sendcert  yes|forced|always|ifasked|no|never
         设置是否发送X509证书。缺省使用  ifasked,当 pluto为响应者时。

--certtype  number
          X509证书类型数字

--ikeport  port-number
          设置IKE监听的UDP端口,缺省为500。

--nexthop  ip-address
          当 pluto建立一个IPsec SA时,它同时会执行一条路由命令。

--client  subnet
          IPsec传输目的子网。格式为  address/mask  (10.0.0.0/8)

--clientwithin  subnet
          不再使用此选项

--clientprotoport  protocol/port
          指定连接中传输的协议和端口(过滤器作用),格式为  protocol/port。(17/1701 UDP协议,1701端口)

--srcip  ip-address
          主机源IP

--xauthserver
          xauth服务端

--xauthclient
          xauth客户端

--xauthuser
          xauth认证用户名。此选项通常在使用  ipsec auto --up conn 时被传送

--xauthpass
          xauth认证口令。此选项通常在使用  ipsec auto --up conn 时被传送

--modecfgserver
          Mode Config服务端

--modecfgclient
          Mode Config客户端

--modecfgdns1
          第一个传给Mode Config服务端的DNS服务端IP地址

--modecfgnds2
          第二个传给Mode Config服务端的DNS服务端IP地址

--modecfgwins1
          第一个传给Mode Config服务端的WINS服务端IP地址

--modecfgwins2
          第二个传给Mode Config服务端的WINS服务端IP地址

--dnskeyondemand
          XXXX

--updown  updown
          设置 pluto启动或关闭时执行的shell命令。

--to
           XXXX

连接也可以对密钥更新和密钥安全进行了描述

--psk
          IKE双方使用预共享密钥,此认证要求双方使用相同的密钥。

--rsasig
          IKE双方使用RSA签名认证,此认证要求双方分别有自己的私钥和对方的公钥。

--encrypt
          所有的IPsec SA都使用加密(non-null ESP)

--authenticate
          所有的IPsec SA都使用认证(AH)。

--compress
          所有的IPsec SA将使用IPCOMP(压缩)

--tunnel
          IPsec SA将使用隧道模式

--ipv4
          使用IPv4

--ipv6
          使用IPv6

--tunnelipv4
            XXXX

--tunnelipv6
           XXXX

--pfs
          Perfect Forward Secrecy - 新密钥所需要的材料由IPsec SA产生,而不是由ISAMKP SA产生。

--pfsgroup  modp-group
          DH使用。目前参数为: modp1024(DHgroup 2)、 modp1536(DHgroup 5)、 modp2048(DHgroup 14)、 modp3072(DHgroup 15)、 modp3096(DHgroup 16)、 modp6144(DHgroup 17)、 modp8192(DHgroup 18)

--disablearrivalcheck
          如果是隧道连接,那么通过此隧道的数据包允许是任何源和目的地址

--esp  esp-algos
          IKE第二阶段的ESP算法,参数格式请看  ipsec_spi(8)  3des/3des-md5-96/3des-sha1-96

--aggrmode
          ISAKMP(IKE第一阶段)使用野蛮模式。

--modecfgpull
          从对端接收Mode Config信息

--dpddelay  seconds
          PDP(RFC 3706 对端死亡探测)时隔时间(单位为秒,缺省为30秒)

--timeout  seconds
          保活包超时时间(单位为秒,缺省为120秒)。当保活包超时或没有数据通信后,将被认为对端死亡,同时会删除SA

--dpdaction  action
          当DPD认为一个对端死亡时,将执行的动作。参数为  hold(缺省为 hold)表示eroute将进行  %hold状态; clear表示删除eroute和SA; restart通过用于永久隧道。

--forceencaps
          强制使用 RFC-3948进行封装(ESP in UDP port 4500 packets),设置此参数必须打开  --nat_traversal 参数


如果  --encrypt--authenticate--compress--pfs 都没有被设置,那么连接将只进行第一阶段 ISAKMP SA 建立。      

除了使用  --initiate 选项来初始化一条隧道外,隧道还可以加载其它策略:

--initiateontraffic
          只初始化连接。???

--pass
          允许使用明文通信,直到隧道被初始化完成

--drop
          丢弃明文通信

--reject 
          丢弃明文通信,同时发送ICMP

pluto支持的X509证书相关选项:

--utc
          以UTC格式显示所有时间

--listall
          列出 pluto内部所有X509证书信息

--listpubkeys
          列出所有成功加载的公钥

--listcerts
          列出当前加载的X509证书

--checkpubkeys
          列出当前加载的过期X509证书

--listcacerts
          列出当前加载的CA证书

--listacerts
          列出当加载的X509属性证书

--listaacerts

--ocspcerts
          列出所有通过OCSP获取的X509证书

--listgroups

--listcrls
          列出所有加载的CRL证书
          
相应选项  --rereadsecrets--rereadall--rereadcacerts--rereadacerts--rereadaacerts--rereadocspcerts--rereadcrls--purgeocsp 重读信息,清除所有在线获取的信息。

多大数的应用要求灵活的策略,当前策略被硬编码在源文件spdb.c中。ISAKMP SA可以使用MODP1024和MODP1536; AES或3DES加密;SHA1-96和MD5-96认证。IPsec SA的ESP可以使用AES或3DES和
MD5-96或SHA1-96;AH可以使用MD5-96或SHA-96。IPCOMP压缩通过不使用。

--ikelifetime  seconds
           pluto允许一个ISAKMP SA存活的时间。缺省为3600秒(1小时),最大为86400秒(1天)。 pluto将拒绝超过最大值的设置。

--ipseclifetime  seconds
           pluto允许一个IPsec SA存活的时间。缺省为28800秒(8小时),最大为86400秒(1天)。 pluto将拒绝超过最大值的设置。

--rekeymargin  seconds
          SA过期前多长时间 pluto将进行重协商。此选项将发生在 pluto是发起者(客户端)的情况下。缺省为540秒(9分钟)

--rekeyfuzz  percentage
           XXXX

--keyingtries  count
           pluto协商SA的尝试次数。当 count为0时表示从不放弃协商,缺省为3次。

--dontrekey
           XXXX          

--delete

--delete--name  connection-name
          删除指定名字的连接,同时删除此连接对应的SA和路由

--deletestate  state-number
          根据指定序列数字删除连接

              
whack的路由格式通知 pluto建立连接路由。

--route, --name  connection-name
          XXXX

--unroute, --name  connection-name
          XXXX

初始化格式,与--up意思是一样的,也就是开始建立指定隧道

--initiate, --name  connection-name--asynchronous

终结指定隧道
           --terminate--name  connection-name

尝试初始化格式,一般且于debug调试

--tunnelipv4--tunnelipv6--oppohere  ip-address--oppothere  ip-address
           pluto将尝试初始化连接, whack将显示此处理过程
 类似资料: