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]
whack被用于发送命令给一个运行中的
pluto。
whack使用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、关键词
%myid。
id对于
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将显示此处理过程