MyWebUniversity.com Home Page
 



OpenSolaris man pages main menu


Protocols                                               ipsec(7P)



NAME
     ipsec - Internet Protocol Security Architecture

DESCRIPTION
     The IP Security Architecture (IPsec) provides protection for
     IP  datagrams.  The  protection can include confidentiality,
     strong integrity of the  data,  partial  sequence  integrity
     (replay  protection), and data authentication. IPsec is per-
     formed inside the IP processing, and it can be applied  with
     or without the knowledge of an Internet application.


     IPsec applies to both IPv4 and IPv6. See ip(7P) and ip6(7P).

  Protection Mechanisms
     IPsec provides  two  mechanisms  for  protecting  data.  The
     Authentication Header (AH) provides strong integrity, replay
     protection, and data authentication. AH protects as much  of
     the  IP  datagram  as  it can. AH cannot protect fields that
     change nondeterministically between sender and receiver.


     The Encapsulating Security Payload (ESP) provides  confiden-
     tiality  over  what it encapsulates, as well as the services
     that AH provides, but only over that which it  encapsulates.
     ESP's  authentication services are optional, which allow ESP
     and AH to be used together  on  the  same  datagram  without
     redundancy.


     Authentication and encryption algorithms are used for IPsec.
     Authentication  algorithms  produce  an  integrity  checksum
     value or "digest"based on the data  and  a  key.  Encryption
     algorithms operate on data in units of a "block size".

  NAT Traversal
     IPsec's ESP can also encapsulate itself in UDP if  IKE  (see
     in.iked(1M))  discovers  a  Network Address Translator (NAT)
     between two communicating endpoints.


     A UDP socket can be specified as a  NAT-Traversal  endpoint.
     See udp(7P) for details.

  Security Associations
     AH and ESP use Security Associations (SA). SA's are entities
     that  specify  security properties from one host to another.
     Two communicating machines require two SAs (at a minimum) to
     communicate  securely.  However, communicating machines that
     use multicast can share  the  same  multicast  SA.  SAs  are
     managed   through   the   pfkey(7P)  interface.  For  IPv4,
     automatic SA management is available  through  the  Internet



SunOS 5.11          Last change: 28 Aug 2007                    1






Protocols                                               ipsec(7P)



     Key   Exchange  (IKE),  as  implemented  by  in.iked(1M).  A
     command-line   front-end   is   available   by   means    of
     ipseckey(1M). An IPsec SA is identified by a tuple of . The Security  Parame-
     ters  Index  (SPI)  is  an  arbitrary  32-bit  value that is
     transmitted on the wire  with  an  AH  or  ESP  packet.  See
     ipsecah(7P)  or ipsecesp(7P)  for an explanation about where
     the SPI falls in a protected packet.

  Protection Policy and Enforcement Mechanisms
     Mechanism and policy are separate. The policy  for  applying
     IPsec is enforced on a system-wide or per-socket level. Con-
     figuring system-wide policy and per-tunnel policy (see Tran-
     sport  Mode  and  Tunnel  Mode  sections)  is  done  via the
     ipsecconf(1M) command. Configuring per-socket policy is dis-
     cussed later in this section.


     System-wide IPsec policy is applied to incoming and outgoing
     datagrams.  Some additional rules can be applied to outgoing
     datagrams because of the additional data known by  the  sys-
     tem. Inbound datagrams can be accepted or dropped. The deci-
     sion to drop or accept  an  inbound  datagram  is  based  on
     several  criteria  which sometimes overlap or conflict. Con-
     flict resolution is resolved by which rule is parsed  first,
     with  one  exception:  if a policy entry states that traffic
     should bypass all  other  policy,  it  is  automatically  be
     accepted.  Outbound  datagrams are sent with or without pro-
     tection. Protection may (or may not) indicate specific algo-
     rithms.  If policy normally would protect a datagram, it can
     be bypassed either by an exception in system-wide policy  or
     by requesting a bypass in per-socket policy.


     Intra-machine traffic  policies  are  enforced,  but  actual
     security  mechanisms  are not applied. Instead, the outbound
     policy on an intra-machine packet translates into an inbound
     packet with those mechanisms applied.


     IPsec policy is enforced in the ip(7P) driver.  Several  ndd
     tunables for /dev/ip affect policy enforcement, including:

     icmpacceptclearmessages    If equal to 1  (the  default),
                                   allow  certain  cleartext icmp
                                   messages to bypass policy. For
                                   ICMP       echo       requests
                                   ("ping"messages), protect  the
                                   response  like the request. If
                                   zero, treat icmp messages like
                                   other IP traffic.




SunOS 5.11          Last change: 28 Aug 2007                    2






Protocols                                               ipsec(7P)



     igmpacceptclearmessages    If 1, allow inbound  cleartext
                                   IGMP  messages to bypass IPsec
                                   policy.


     pimacceptclearmessages     If 1, allow inbound  cleartext
                                   PIM  messages  to bypass IPsec
                                   policy.


     ipsecpolicyloginterval     IPsec logs policy failures and
                                   errors  to  /var/adm/messages.
                                   To prevent syslog  from  being
                                   overloaded,  the  IPsec kernel
                                   modules  limit  the  rate   at
                                   which  errors  can  be logged.
                                   You       can        query/set
                                   ipsecpolicyloginterval
                                   using ndd(1M). The value is in
                                   milliseconds. Only one message
                                   can be logged per interval.


  Transport Mode and Tunnel Mode
     If IPsec is used on a tunnel (see tun(7M)) Tunnel Mode IPsec
     can  be used to protect distinct flows within a tunnel or to
     cause packets that do not match per-tunnel policy  to  drop.
     System-wide  policy  is always Transport Mode.  A tunnel can
     use Transport Mode IPsec or Tunnel Mode IPsec.

  Per-Socket Policy
     The IPSECOPT or IPV6SECOPT socket option is used to  set
     per-socket   IPsec   policy.   The  structure  used  for  an
     IPSECOPT request is:

       typedef struct ipsecreq {
           uintt      ipsrahreq;           /* AH request */
           uintt      ipsrespreq;          /* ESP request */
           uintt      ipsrselfencapreq;   /* Self-Encap request */
           uint8t     ipsrauthalg;         /* Auth algs for AH */
           uint8t     ipsrespalg;          /* Encr algs for ESP */
           uint8t     ipsrespauthalg;     /* Auth algs for ESP */
       } ipsecreqt;



     The IPsec request has fields for both AH and ESP. Algorithms
     may  or  may  not be specified. The actual request for AH or
     ESP services can take one of the following values:

     IPSECPREFNEVER       Bypass all policy. Only the superuser
                            may request this service.



SunOS 5.11          Last change: 28 Aug 2007                    3






Protocols                                               ipsec(7P)



     IPSECPREFREQUIRED    Regardless of other  policy,  require
                            the use of the  IPsec  service.



     The  following  value  can   be   logically   ORed   to   an
     IPSECPREFREQUIRED value:

     IPSECPREFUNIQUE    Regardless of other policy,  enforce  a
                          unique  SA for traffic originating from
                          this socket.



     In the event IP options not  normally  encapsulated  by  ESP
     need to be, the ipsecselfencapreq is used to add an addi-
     tional IP header outside the original one. Algorithm  values
     from  are as follows:

     SADBALGMD5HMAC     Uses the MD5-HMAC  (RFC  2403)   algo-
                           rithm for authentication.


     SADBALGSHA1HMAC    Uses the SHA1-HMAC  (RFC  2404)  algo-
                           rithm for authentication.


     SADBEALGDESCBC      Uses the DES (RFC 2405) algorithm  for
                           encryption.


     SADBEALG3DESCBC     Uses  the  Triple   DES   (RFC   2451)
                           algorithm for encryption.


     SADBEALGBLOWFISH    Uses the Blowfish (RFC 2451) algorithm
                           for encryption.


     SADBEALGAES         Uses  the  Advanced  Encryption  Stan-
                           dard  algorithm for encryption.



     An application should use either the getsockopt(3SOCKET)  or
     the  setsockopt(3SOCKET)  call to manipulate IPsec requests.
     For example:

       #include 
       #include 
       #include    /* For SADB*ALG* */
       /* .... socket setup skipped */



SunOS 5.11          Last change: 28 Aug 2007                    4






Protocols                                               ipsec(7P)



       rc = setsockopt(s, IPROTOIP, IPSECOPT,
          (const char *)&ipsecreq, sizeof (ipsecreqt));


SECURITY
     While  IPsec  is  an  effective  tool  in  securing  network
     traffic, it will not make security problems disappear. Secu-
     rity issues beyond the mechanisms that IPsec offers  may  be
     discussed  in similar "Security" or "Security Consideration"
     sections within individual reference manual pages.


     While a non-root user cannot bypass IPsec, a  non-root  user
     can  set policy to be different from the system-wide policy.
     For ways to prevent this, consult the ndd(1M)  variables  in
     /dev/ip.

ATRIBUTES
     See attributes(5)  for descriptions of the following  attri-
     butes:



     
           ATRIBUTE TYPE               ATRIBUTE VALUE       
    
     Interface Stability          Evolving                    
    


SEE ALSO
     in.iked(1M),    ipsecconf(1M),    ipseckey(1M),     ndd(1M),
     getsockopt(3SOCKET),   setsockopt(3SOCKET),   attributes(5),
     tun(7M),    inet(7P),    ip(7P),    ip6(7P),    ipsecah(7P),
     ipsecesp(7P), pfkey(7P), udp(7P)


     Kent, S., and Atkinson, R., RFC 2401, Security  Architecture
     for the Internet Protocol, The Internet Society, 1998.


     Kent, S. and Atkinson, R., RFC 2406, IP Encapsulating  Secu-
     rity Payload (ESP), The Internet Society, 1998.


     Madson, C., and Doraswamy, N., RFC  2405,  The  ESP  DES-CBC
     Cipher  Algorithm  with  Explicit  IV, The Internet Society,
     1998.


     Madsen, C. and Glenn, R., RFC 2403, The Use  of  HMAC-MD5-96
     within ESP and AH, The Internet Society, 1998.



SunOS 5.11          Last change: 28 Aug 2007                    5






Protocols                                               ipsec(7P)



     Madsen, C. and Glenn, R., RFC 2404, The Use of HMAC-SHA-1-96
     within ESP and AH, The Internet Society, 1998.


     Pereira, R. and Adams, R., RFC 2451, The ESP CBC-Mode Cipher
     Algorithms, The Internet Society, 1998.


     Huttunen, A., Swander, B., Volpe, V., DiBurro, L., Stenberg,
     M.,  RFC  3948,  UDP Encapsulation of IPsec ESP Packets, The
     Internet Society, 2005.












































SunOS 5.11          Last change: 28 Aug 2007                    6



OpenSolaris man pages main menu

Contact us      |       About us      |       Term of use      |       Copyright © 2000-2010 MyWebUniversity.com ™