IPSEC_PLUTO(8) - IKE管理接口

IPSEC_PLUTO


NAME

ipsec_pluto - ipsec whack: IKE管理接口


SYNOPSIS

ipsec  pluto [--help] [--version] [--optionsfrom filename] [--nofork] [--stderrlog] [--use-auto] [--use-klips] [--use-mast] [--use-netkey] [--use-nostack]
                    [--uniqueids] [--nat_traversal] [--virtual_private network_list] [--keep_alive delay_sec] [--force_keepalive] [--force_busy] [--disable_port_floating] 
                    [--nocrsend] [--strictcrlpolicy] [--crlcheckinterval] [--ocspuri] [--interface interfacename] [--listen ipaddr] [--ikeport portnumber] [--ctlbase path] 
                    [--secretsfile secrets-file] [--adns pathname] [--nhelpers number] [--lwdnsq pathname] [--perpeerlog] [--perpeerlogbase dirname] [--ipsecdir dirname] 
                    [--coredir dirname] [--noretransmits]

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

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] 

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

ipsec  whack --myid id

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

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

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

ipsec  whack [[--tunnelipv4] | [--tunnelipv6]] --oppohere ip-address --oppothere ip-address

ipsec  whack --crash [ipaddress]

ipsec  whack --whackrecord [filename]

ipsec  whack --whackstoprecord

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

ipsec  whack --deletestate state-number [--ctlbase path] [--optionsfrom filename] [--label string]
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]

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

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

ipsec  whack --purgeocsp

ipsec  whack --listevents

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

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


DESCRIPTION

pluto  IKE管理进程; whack pluto 辅助程序。 pluto 用于自动建立IPsec共享安全联盟(SA)。 pluto 简化了很多手动密钥协商。 ipsec_auto (8)提供了更多方便接口。


IKE's Job

安全联盟(SA)指定了网络2端之间通信所需要的信息和处理方式,其中包括了封装、认证、加密、压缩。

SA协商涉及到安全、方便、可信、效率等因素的权衡,这些策略问题一般由系统管理员使用IKE设置。

IKE分为2个阶段,每一个阶段产生一个SA。第一阶段进行协商ISAKMP SA,ISAKMP SA用于保护2个IKE之间的通信。IKE第一阶段可以用主模式(Main Mode)或野蛮模式(Aggressive Mode)完成。
以后的协商都是在 ISAKMP SA 保持下进行。第二阶段进行协商IPsec SA,称为快速模式(Quick Mode)


Pluto

pluto是实现IKE的网络程序。目前,它支持XAUTH、ModeConfig、PDP(Dead Peer Detection)、OE(Opportunistic Encryption)、NAT-T。

pluto使用共享密钥或RSA签名对协商双方进行身份认证,其中RSA签名可以来自DNS(SEC)、配置文件、X509证书。

pluto在下面2种情况会启动SA协商:使用 whack程序进行手动开启; KLIPS处理OE(Opportunistic Encryption)数据包处理。

pluto关闭时,它将关闭所有SA。


Before Running Pluto

pluto要求一个IPsec协议栈

pluto支持多线路通道。 pluto根据配置文件查找所有配置好的接口。


Running Pluto

pluto必须以超级管理员身份进行,监听UDP 500端口,如果NAT-T开启则监听UDP 4500端口。

pluto支持不同的协议栈。  --use-auto,表示 pluto自动选择协议栈。也可以手动指定  --use-klips、--use-mast、--use-bsdkame、--use-nostack


Using Whack

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、关键词  %myid

--host  ip-address,   --host %any,   --host %opportunistic
          端点IP地址(通常为公网接口地址)。如果 pluto是IKE应答者(可以看到服务端),应答一个未知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

--clientwithin  subnet
          不再使用此选项

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

--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)

--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

初始化格式

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


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

--tunnelipv4--tunnelipv6--oppohere  ip-address--oppothere  ip-address
           pluto将尝试初始化连接, whack将显示此处理过程  
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值