


PLUTOPLUS(8)    NIST IKE Reference Implementation    PLUTOPLUS(8)


NAME
       PlutoPlus - IPsec IKE Key Negotiation Daemon


SYNOPSIS
       plutoplus   [-a     auth_alg]  [-b    output_level]  [-d
              dest_addr] [-e  enc_alg] [-g   gateway_addr]  [-k
              enc_key_len]   [-l    ipsec_sa_life_seconds]  [-m
              ipsec_sa_life_kbytes] [-o   isakmp_sa_life_seconds]
              [-p  port_num] [-v  enc_iv_len] [-fhirst3]


DESCRIPTION
       PlutoPlus  is  a  reference implementation of the Internet
       Key Exchange Protocol (IKE), the Internet Security Associ-
       ation and Key Management Protocol (ISAKMP), and the Inter-
       net IP Security Domain of Interpretation for ISAKMP (DOI).
       The  goal  of  any  IKE  implementation is to negotiate an
       IPsec Security Association  (SA)  with  a  peer.  This  is
       accomplished through a 2-phase negotiation: Phase 1 estab-
       lishes an ISAKMP (Internet Security  Association  and  Key
       Management Protocol) SA, which is a secure channel through
       which the IPsec SA negotiation can  take  place;  Phase  2
       establishes the actual IPsec SA.

       Under  normal operations, PlutoPlus is a daemon that waits
       for one of 2 types of requests: a kernel request to initi-
       ate  negotiations for the establishment of an IPsec SA (in
       which case PlutoPlus's role is that  of  Initiator)  or  a
       peer  request  (generally  via  port  500) to establish an
       IPsec SA (in  which  case  PlutoPlus's  role  is  that  of
       Responder).   As  Initiator, PlutoPlus sends a single pro-
       posal, dictated by the command-line options. As Responder,
       PlutoPlus accepts any single proposal whose attributes are
       consistent with PlutoPlus's capabilities.  In  this  mode,
       any  error  messages  are  logged  to  syslog and, in some
       cases, cause a Notification Message  to  be  sent  to  the
       negotiating peer.

       For  debugging and testing purposes, PlutoPlus has a DEBUG
       mode that causes increased  diagnostic  and  informational
       output;  in  this  mode,  all  messages are printed to the
       standard output or standard error.

       In addition, PlutoPlus has a WIT DEBUG mode that  is  used
       for  the  version of PlutoPlus running on IPsec WIT, ITL's
       IPsec Interoperability Tester.  In  this  mode,  PlutoPlus
       conducts  a  single  negotiation,  either  as Initiator or
       Responder, and then exits. If an error is encountered,  or
       if  too much time elapses without a message from the nego-
       tiating peer, PlutoPlus also exits.

       In the WIT DEBUG mode, command-line options  are  used  to
       dictate   whether  PlutoPlus  will  act  as  Initiator  or



PlutoPlus                   1 Dec 1998                          1





PLUTOPLUS(8)    NIST IKE Reference Implementation    PLUTOPLUS(8)


       Responder, and also to communicate the parameters  of  the
       proposal to be sent (as Initiator) or accepted (as Respon-
       der). In the WIT DEBUG mode PlutoPlus, as Initiator, sends
       a  single  proposal, dictated by the command-line options.
       As Responder, PlutoPlus accepts  a  single  proposal,  and
       checks  to ensure that the proposal is consistent with the
       command-line options.


OPTIONS
       -a auth_alg
              As Initiator, propose an IPsec SA with  authentica-
              tion algorithm auth_alg
                   -a 2 ==> HMAC_MD5
                   -a 3 ==> HMAC_SHA)
              without  -e:  Propose  an AH SA with authentication
              algorithm auth_alg
              with -e: Propose  an  ESP  SA  with  authentication
              algorithm auth_alg


       -b output_level
              Print additional DEBUG output (DEBUG mode only)
              -b 1 ==> print verbose debug output
              -b 2 ==> print packets/packet headers
              -b 4 ==> print various IKE calculated values
              -b 7 has the same effect as -b 1 -b 2 -b 4

       -d dest_addr
              If  PlutoPlus is the Initiator (as specified by the
              -i option), dest_addr is the address  of  the  peer
              with  whom PlutoPlus PlutoPlus negotiates its first
              IPsec SA.
              In WIT mode, dest_addr is the address of  the  peer
              WITH  whom  PlutoPlus  is  negotiating the IPsec SA
              (transport mode) or the address  of  the  peer  FOR
              whom  PlutoPlus is negotiating the IPsec SA (tunnel
              mode).  In WIT mode, dest_addr must be specified.


       -e enc_alg
              As Initiator, propose an IPsec ESP SA with  encryp-
              tion algorithm enc_alg
                   -e 1 ==> ESP_DES_IV64
                   -e 2 ==> ESP_DES
                   -e 3 ==> ESP_3DES
                   -e 4 ==> ESP_RC5
                   -e 5 ==> ESP_IDEA
                   -e 7 ==> ESP_BLOWFISH
                   -e 11 ==> ESP_NULL
              (If  neither  -a nor -e is specified, default is an
              IPsec ESP SA  with  encryption  algorithm  DES  and
              authentication algorithm HMAC_MD5)




PlutoPlus                   1 Dec 1998                          2





PLUTOPLUS(8)    NIST IKE Reference Implementation    PLUTOPLUS(8)


       -f     Conduct an extra Diffie-Hellman Exchange during the
              Phase  2  negotiation  to  ensure  Perfect  Forward
              Secrecy (PFS) for KEYS.


       -g gateway_addr
              Gateway  address  for  tunnel mode negotiation (WIT
              mode only).  In tunnel mode,  PlutoPlus  negotiates
              WITH  the gateway_addr to establish an IPsec SA FOR
              the dest_addr . If no  gateway_addr  is  specified,
              then the dest_addr is used.


       -h     help (print Usage message, then exit).


       -i     Act  as  Initiator  of key negotiation.  In non-WIT
              mode, after initiating a single negotiation, Pluto-
              Plus  waits  for  further negotiations to be insti-
              gated by either the kernel or a peer.


       -k enc_key_len
              ESP encryption key length in  bytes  (BLOWFISH  and
              RC5  ONLY).   Valid  values  for RC5 are: 5, 16, 20
              (default is 16); valid values for BLOWFISH are 5 to
              56 (default is 8).


       -l ipsec_sa_life_seconds
              Lifetime  in  seconds of proposed IPsec SA (default
              is 8 hours).


       -m ipsec_sa_life_kbytes
              Lifetime in kilobytes of proposed IPsec SA (default
              is 32767 - hex 7FFF - kilobytes).


       -o isakmp_sa_life_seconds
              Lifetime  in seconds of proposed ISAKMP SA (default
              is 24 hours).


       -p port_num
              PlutoPlus port number (default is port 500).


       -r     As Initiator, propose an IPsec  SA  WITHOUT  replay
              protection


       -s     As  Initiator, propose an ISAKMP SA with SHA as the
              hash algorithm (default is MD5)



PlutoPlus                   1 Dec 1998                          3





PLUTOPLUS(8)    NIST IKE Reference Implementation    PLUTOPLUS(8)


       -t     As  Initiator,  propose  an  IPsec  tunnel-mode  SA
              (default is transport mode)


       -v enc_iv_len
              As  Initiator,  propose  an  IPsec  ESP  SA with IV
              length  enc_iv_len.   Valid  values  are  0  or  8.
              Default  for  DES,  DES_IV64,  3DES,  RC5, IDEA, or
              BLOWFISH is 8; default for ESP_NULL is 0.


       -3     As Initiator, propose an ISAKMP SA with 3DES as the
              encryption algorithm (default is DES)


FILES
       /dev/zero
       /dev/urandom
       /dev/ike
       /dev/ipsec
       /etc/isakmp-secrets (non-DEBUG mode)
       ./isakmp-secrets (DEBUG mode without WIT)
       /tmp/wit/isakmp-secrets.dest_addr (DEBUG mode with WIT)


SEE ALSO
       sadb(n)


HISTORY
       The original Pluto for Linux was written in Greece in 1997
       by Angelos Keramytis.

       Sheila Frankel  of  NIST  added  additional  capabilities,
       updated  it  to  conform  to  the current Internet Drafts,
       integrated it with NIST's IPSec Reference  Implementation,
       and  in  general expanded, documented, cajoled and bullied
       it into its current incarnation, PlutoPlus.


BUGS
       PlutoPlus is known to have some memory leaks.















PlutoPlus                   1 Dec 1998                          4


