Provided by: ike_2.2.1+dfsg-6_amd64 bug

NAME

       iked.conf — Internet Key Exchange Daemon Configuration File

DESCRIPTION

       The iked.conf file is used to configure iked(8) ( Internet Key Exchange Daemon ). The parameters supplied
       are used to negotiate ISAKMP ( phase1 ) and IPsec ( phase2 ) SAs for IPsec capable hosts.

SYNTAX

       The  configuration  parameters  are  expressed as a series of sections containing a number of statements.
       Sections begin with a keyword optionally followed by a parameter list. All statements for a  section  are
       enclosed  using  the  ‘{’  and  ‘}’  characters. Statements begin with a keyword optionally followed by a
       parameter list and are terminated with the ‘;’ character. Lines that begin with  the  ‘#’  character  are
       treated as comments.

       This  document  denotes  keywords  using this font and user supplied parameters using this font. Optional
       parameters are enclosed using the ‘[’ and ‘]’ characters. Multiple keywords  that  may  be  valid  for  a
       single parameter are enclosed using the ‘(’ and ‘)’ characters and separated using the ‘|’ character.

       The defined parameter types are as follows ...

       number    A decimal number
       label     A string comprised of alphanumeric characters
       quoted    A quoted string enclosed in ‘"’ characters
       address   An IP address expressed as x.x.x.x
       network   An IP network and prefix length expressed as x.x.x.x/y

   Daemon Section
       daemon { statements }
               Specifies  the  general  configuration for iked(8) operation. This includes parameters related to
               the basic network configuration, log file and debug output. Only one  daemon  section  should  be
               defined.

               socket (ike | natt) [address] number;
                       An  address  and  port number that should be used for ike or natt communications.  If the
                       address parameter is omitted, the daemon will attempt to bind  to  any  address  for  the
                       given port number. If no socket statements are specified, the daemon will attempt to bind
                       to  all  interfaces  for  both  ike  and natt using the default port numbers ( 500 & 4500
                       respectively ). Note, the natt keyword can only be specified if the daemon  was  compiled
                       with natt support.
               retry_count number;
                       The  number of times an exchange packet should be resent to a peer. The default value for
                       this parameter is 2.
               retry_delay number;
                       The number of seconds to wait between packet resend attempts. The default value for  this
                       parameter is 10.
               log_file quoted;
                       The path and file name that should be used for log output.
               log_level (none | error | info | debug | loud | decode);
                       The log output detail level. The default value for this parameter is none.
               pcap_decrypt quoted;
                       The  path and file name that should be used to dump decrypted ike packets in pcap format.
                       If no pcap_decrypt statement is specified, this feature is disabled.
               pcap_encrypt quoted;
                       The path and file name that should be used to dump encrypted ike packets in pcap  format.
                       If no pcap_encrypt statement is specified, this feature is disabled.
               dhcp_file quoted;
                       The  path  and  file  name that should be used to store a dhcp mac address seed value for
                       dhcp over ipsec negotiation. If no file is present, the file will be created.

   Network Group Section
       netgroup label { statements }
               Specifies a group of networks that can be refferred to by the assigned label.  Multiple  netgroup
               sections may be defined.

               network;
                       A network to be associated with this network group.

   XAuth LDAP Section
       xauth_ldap { statements }
               Specifies  the LDAP configuration to be used for when the xauth_source is set to ldap for a given
               peer section. Only one xauth_ldap section should be defined. Note, an xauth_ldap section can only
               be defined if the daemon was compiled with LDAP support.

               version number;
                       The LDAP protocol version to be used ( 2 or 3 ). The default value for this parameter  is
                       3.
               url quoted;
                       The LDAP server url. For example, a url may look like "ldap://ldap.shrew.net:389".
               base quoted;
                       The  base  dn  to  be  used  for  LDAP  searches.  For  example,  a base dn may look like
                       "ou=users,dc=shrew,dc=net".
               subtree (enable | disable);
                       The search scope to be used for LDAP searches. If enabled,  searches  will  be  performed
                       using  the  subtree  search  scope. If disabled, searches will be performed using the one
                       level search scope. The default value for this parameter is disable.
               bind_dn quoted;
                       The dn to bind as before performing LDAP searches. If this parameter is omitted, searches
                       will be performed using anonymous binds.
               bind_pw quoted;
                       The password to use when a bind_dn is specified.
               attr_user quoted;
                       The attribute used to specify a user name in the LDAP directory.  For example, if a  user
                       dn  is "cn=user,dc=shrew,dc=net" then the attribute would be "cn".  The default value for
                       this parameter is "cn".
               attr_group quoted;
                       The attribute used to specify a group name in the LDAP  directory.   For  example,  if  a
                       group  dn  is  "cn=group,dc=shrew,dc=net"  then the attribute would be "cn".  The default
                       value for this parameter is "cn".
               attr_member quoted;
                       The attribute used to specify a group member in the LDAP directory. The default value for
                       this parameter is "member".

   XConf Local Section
       xconf_local { statements }
               Specifies the Configuration Exchange settings to be used when the xconf_source is  set  to  local
               for a given peer section. Only one xconf_local section should be defined.

               network4 network [number];
                       The  network  that will be used to define a local address pool. An optional number can be
                       specified to restrict the pool to a specific size. An address from this pool  along  with
                       the network mask are passed to a peer when requested.
               dnss4 address;
                       The dns server address to be passed to a peer when requested.
               nbns4 address;
                       The netbios name server address to be passed to a peer when requested.
               dns_suffix quoted;
                       The dns suffix to be passed to a peer when requested.
               dns_list quoted quoted ...;
                       A  list  of split dns suffixes to be passed to a peer when requested. A peer can use this
                       list to selectivly forward dns requests to the dnss4 server when a query matches  one  of
                       the supplied split dns suffixes.
               banner quoted;
                       The path to a file that contains a login banner to be passed to a peer when requested.
               pfs_group number;
                       The pfs group number to be passed to a peer when requested.

   Peer Section
       peer address [number] { statements }
               Specifies  the  parameters  used  to  communicate  with a given peer by address and optional port
               number. If the port value is omitted, the default isakmp port number will be used ( 500 ). If  an
               address  of  0.0.0.0  is  used,  the  peer section can be used for any remote host. Multiple peer
               sections may be defined.

               contact (initiator | responder | both);
                       Specifies the contact  type  when  establishing  phase1  negotiations  with  a  peer.  If
                       initiator  is  used,  the  daemon will initiate contact but deny contact initiated by the
                       peer. If responder is used, the daemon will allow contact initiated by the peer but  will
                       not  initiate  contact.  If both is specified, the daemon will initiate contact and allow
                       the peer to initiate contact.
               exchange (main | aggressive);
                       Specifies the exchange type to be used for phase1 negotiations with a peer.  The  default
                       value for this parameter is main.
               natt_mode (disable | enable | force [draft | rfc]);
                       Specifies  the  NAT  Traversal  mode  to  be used for phase1 negotiations with a peer. If
                       disable is used, natt negotiations will not be attempted. If enable is used,  the  daemon
                       will  attempt  to negotiate and use NAT Traversal when appropriate. If force is used, the
                       daemon will use NAT Traversal even if the  peer  does  not  negotiate  support  for  this
                       feature.  When  force  is used, the draft or rfc modifiers can optionally be specified to
                       select the required method with rfc being the default if omitted. The default  value  for
                       this parameter is disable.
               natt_port number;
                       Specifies  the  NAT  Traversal port number to be used for phase1 negotiations with a peer
                       when acting as an initiator. The default value for this parameter is 4500.
               natt_rate number;
                       Specifies the number of seconds between sending NAT Traversal  keep-alive  messages.  The
                       default value for this parameter is 15.
               dpd_mode (disable | enable | force);
                       Specifies  the  Dead  Peer Detection mode to be used with a peer. If disable is used, DPD
                       negotiations will not be attempted. If  enable  is  used,  the  daemon  will  attempt  to
                       negotiate and use DPD when appropriate. If force is used, the daemon will use DPD even if
                       the  peer  does  not  negotiate  support  for  this  feature.  The default value for this
                       parameter is disable.
               dpd_delay number;
                       Specifies the number of seconds between sending DPD are-you-there messages.  The  default
                       value for this parameter is 15.
               dpd_retry number;
                       Specifies  the  number  times  a  DPD are-you-there message will be retransmitted when no
                       response is received. The default value for this parameter is 5.
               frag_ike_mode (disable | enable | force);
                       Specifies the IKE Fragmentation mode to be used with a peer.  If  disable  is  used,  IKE
                       Fragmentation  negotiations  will  not  be  attemted.  If enable is used, the daemon will
                       attempt to negotiate and use IKE Fragmentation when appropriate. If force  is  used,  the
                       daemon  will  use  IKE Fragmentation even if the peer does not negotiate support for this
                       feature. The default value for this parameter is disable.
               frag_ike_size number;
                       Specifies the maximum number of bytes for an IKE Fragment. The  default  value  for  this
                       parameter is 520.
               frag_esp_mode (disable | enable);
                       Specifies  the  ESP  Fragmentation  mode  to be used with a peer. If disable is used, the
                       daemon will create IPsec SAs without the ESP Fragmentation option.  If  enable  is  used,
                       the  daemon  will  create IPsec SAs with the ESP Fragmentation option.  The default value
                       for this parameter is disable.  Note, ESP Fragmentation is only valid for IPsec SAs using
                       NAT Traversal. The operating system must also have support for  this  feature.  (  NetBSD
                       Only )
               frag_esp_size number;
                       Specifies  the  maximum  number  of bytes for an ESP Fragment. The default value for this
                       parameter is 520.
               peerid (local | remote) type ...;
                       Specifies either the local identity to be sent to a peer or the  remote  identity  to  be
                       compared  with  the  value  received  from  a  peer during phase1 negotiations. The valid
                       identity types are as follows ...
                       address [address];
                               An IP Address. If the address value is omitted, the network address  used  during
                               phase1 negotiations is used.
                       fqdn quoted;
                               A Fully Qualified Domain Name string.
                       ufqdn quoted;
                               A User Fully Qualified Domain Name string.
                       asn1dn [quoted];
                               An  ASN.1  Distinguished  Name string. If the quoted value is omitted, the daemon
                               will aquire the DN from the subject field contained within the certificate.
               authdata type ...;
                       Specifies  the  authentication  data  to  use  during  phase1  negotiations.  The   valid
                       authentication data types are as follows ...
                       psk quoted;
                               A Pre Shared Secret.
                       ca quoted [quoted];
                               A  path  to  a  OpenSSL  PEM  or  PSK12 file that contains the Remote Certificate
                               Autority. In the case  where  a  PSK12  file  is  encrypted,  the  second  quoted
                               parameter specifies the file password.
                       cert quoted [quoted];
                               A path to a OpenSSL PEM or PSK12 file that contains the Local Public Certificate.
                               In  the  case  where  a  PSK12  file  is  encrypted,  the second quoted parameter
                               specifies the file password.
                       pkey quoted [quoted];
                               A path to a OpenSSL PEM or PSK12 file that contains the Local Private Key. In the
                               case where a PSK12 file is encrypted, the second quoted parameter  specifies  the
                               password.
               life_check level;
                       Specifies  the  behavior when validating peer lifetime proposal values. The default level
                       is claim.  The valid levels are as follows ...
                       obey    A responder will always use the initiators value.
                       strict  A responder will use the initiators value if it is shorter than  the  responders.
                               A  responder will reject the proposal if the initiators value is greater than the
                               responders.
                       claim   A responder will use the initiators value if it is shorter than  the  responders.
                               A  responder  will use its own value if it is shorter than the initiators. In the
                               second case, the responder will send a  RESPONDER-LIFETIME  notification  to  the
                               initiator when responding to phase2 proposals.
                       exact;  A  responder will reject the proposal if the initiators value is not equal to the
                               responders.
               xauth_source (local | ldap) [quoted];
                       Sepcifies the Extended Authentication source to be  used  for  user  authentication  post
                       phase1  negotitations.  The optional quoted value specifies a group name that can be used
                       to restrict access to only users that are valid members of the group. If local  is  used,
                       the  peer supplied credentials will be compared to the local account database. If ldap is
                       used, the peer supplied credentials will be compared to an  LDAP  account  database.  The
                       LDAP  source  configuration  is  defined in the xauth_ldap section. The default value for
                       this parameter is local.
               xconf_source local [(push | pull)];
                       Sepcifies  the  Configuration  Exchange  source  to  be  used  when  responding  to  peer
                       configuration   requests.  If  local  is  used,  the  daemon  will  supply  configuration
                       information defined in the xconf_local section. The default value for this  parameter  is
                       local.
               plcy_mode (disable | config | compat);
                       Specifies  the  policy  generation  mode.  When  disable is used, no policy generation is
                       performed. When config mode is used, policy generation is performed during  Configuration
                       Exchange.   This  allows  the  daemon  to generate polices using the peers private tunnel
                       address.  When  compat  mode  is  used,  policy  generation  is  performed  post   phase1
                       negotiations.  This  allows  the  daemon  to  interoperate with peers that do not support
                       Configuration Exchanges.
               plcy_list { statements }
                       Specifies a list of network groups and parameters that can  be  used  to  perform  policy
                       generation.  If  no  plcy_list  is  defined but plcy_mode is set to config or compat, the
                       daemon operates as if a single  include  statement  was  used  that  specified  a  netmap
                       defining all networks.
                       (include | exclude) label [quoted];
                               Specifies  a  netgroup  by  label for use with policy generation. When include is
                               used, the daemon will generate appropriate IPsec policies and pass  all  netgroup
                               defined networks during the Configuration Exchange if requested. A peer would use
                               this configuration information to selectively tunnel all traffic destined for any
                               one  of  these networks. If exclude is used, the daemon will generate appropriate
                               discard policies and pass all netgroup defined networks during the  Configuration
                               Exchange  if  requested.  A  peer  would  use  this  configuration information to
                               selectively bypass IPsec processing for all traffic destined to any one of  these
                               networks.  The  optional quoted string specifies a group name that can be used to
                               restrict processing of this netgroup to only users that are valid members of  the
                               group.  If  XAuth  is  not  performed,  statements  that  define a group name are
                               skipped.
               proposal type { statements }
                       Specifies a proposal to be used during SA negotiations with a peer.  The  valid  proposal
                       types are as follows ...

                       isakmp  An ISAKMP proposal supports the following ...
                               auth type;
                                       Define the authentication mechanism for the ISAKMP proposal. The accepted
                                       types    are    hybrid_xauth_rsa,   mutual_xauth_rsa,   mutual_xauth_psk,
                                       mutual_rsa and mutual_psk.
                               ciph type [number];
                                       Define the cipher  algorithm  for  this  proposal.  The  optional  number
                                       specifies  the  keylength  for  algorithms  that support it. The accepted
                                       types are aes, blowfish, 3des, cast and des.
                               hash type;
                                       Define the hash algorithm for this proposal. The accepted types  are  md5
                                       and sha1.
                               dhgr number;
                                       Define  the  DH group for this proposal. The accepted values are 1, 2, 5,
                                       14, 15, 16, 17, 18 and 16.

                       ah      An AH proposal supports the following ...
                               hash type;
                                       Define the hash algorithm for this proposal. The accepted types  are  md5
                                       and sha1.
                               dhgr number;
                                       Define  the  DH group for this proposal. The accepted values are 1, 2, 5,
                                       14, 15, 16, 17, 18 and 16.

                       esp     An ESP proposal supports the following ...
                               ciph type [number];
                                       Define the cipher  algorithm  for  this  proposal.  The  optional  number
                                       specifies  the  keylength  for  algorithms  that support it. The accepted
                                       types are aes, blowfish, 3des, cast and des.
                               hmac type;
                                       Define the  message  authentication  algorithm  for  this  proposal.  The
                                       accepted types are md5 and sha1.
                               dhgr number;
                                       Define  the  DH group for this proposal. The accepted values are 1, 2, 5,
                                       14, 15, 16, 17, 18 and 16.

                       ipcomp  An IPCOMP proposal supports the following ...
                               comp type;
                                       Define the compression algorithm for this proposal.  The  accepted  types
                                       are deflate and lzs.

                       All proposals types support the following ...

                       life_sec number;
                               Define the lifetime in seconds for this proposal.
                       life_kbs number;
                               Define the lifetime in kilobytes for this proposal.

EXAMPLES

       This section contains a few iked configuration examples.

       The  first  example  shows  a  configuration  that only defines the parameters required to support client
       connectivity mode with NATT and debug options enabled.

       daemon
       {
           socket ike 500;
           socket natt 4500;

           log_level debug;
           log_file "/var/log/iked.log";

           pcap_decrypt "/var/log/ike-decrypt.pcap";
           pcap_encrypt "/var/log/ike-encrypt.pcap";

           retry_delay 10;
           retry_count 2;
       }

       The second example shows a configuration that supports simple peer  to  peer  negotiations  using  mutual
       preshared key authentication.

       daemon
       {
           socket ike 500;

           log_level debug;
           log_file "/var/log/iked.log";
       }

       peer 1.2.3.4
       {
           exchange main;

           peerid local address;
           peerid remote address;

           authdata psk "sharedsecret";

           life_check claim;

           proposal isakmp
           {
               auth mutual_psk;
               life_sec 28800;
               life_kbs 0;
           }

           proposal esp
           {
               life_sec 3800;
               life_kbs 0;
           }
       }

       The  third example shows a configuration that supports client gateway negotiations using mutual preshared
       key authentication with  xauth,  nat  traversal,  dead  peer  detection,  ike  fragmentation  and  policy
       generation.  The  daemon would allow xauth users that are members of the "remote" group to connect to the
       gateway. Policies would be generated to allow a peer access to the 10.1.1.0/24  and  1.3.3.0/24  networks
       with  the  exception of 1.1.1.15/32 which be accessed directly ( not via IPsec ). Peers that use an xauth
       user account that is a member of the "netadmin" group would have additional policies generated  to  allow
       access to the 10.4.4.0/24 network.

       daemon
       {
           socket ike 500;
           socket natt 4500;

           log_level debug;
           log_file "/var/log/iked.log";

           pcap_decrypt "/var/log/ike-decrypt.pcap";
           pcap_encrypt "/var/log/ike-encrypt.pcap";
       }

       netgroup allow
       {
           10.1.1.0/24;
           10.3.3.0/24;
       }

       netgroup deny
       {
           1.1.1.15/32;
       }

       netgroup protect
       {
           10.4.4.0/24;
       }

       xconf_local
       {
           network4 10.2.1.0/24;
           dnss4 10.1.1.1;
           nbns4 10.1.1.1;
           dns_suffix "foo.com";
           dns_list "foo.com" "bar.com";
           banner "/etc/iked.motd";
           pfs_group 2;
       }

       peer 0.0.0.0
       {
           contact responder;
           exchange main;

           natt_mode enable;
           dpd_mode enable;
           frag_ike_mode enable;

           peerid local address;
           peerid remote address;

           authdata psk "sharedsecret";

           life_check claim;

           xauth_source local "remote";
           xconf_source local;

           plcy_mode config;
           plcy_list
           {
               include allow;
               exclude deny;
               include protect "netadmin";
           }

           proposal isakmp
           {
               auth mutual_xauth_psk;
               ciph 3des;
               hash md5;
               dhgr 2;
               life_sec 28800;
               life_kbs 0;
           }

           proposal esp
           {
               life_sec 3800;
               life_kbs 0;
           }
       }

SEE ALSO

       ipsec(4), iked(8), setkey(8)

HISTORY

       The  iked.conf  parser  was  written  by Matthew Grooms ( mgrooms@shrew.net ) as part of the Shrew Soft (
       http://www.shrew.net ) family of IPsec products.

Debian                                           Febuary 2, 2007                                         IKED(8)