strongimcv_strongswan.conf man page on RedHat

Man page or keyword search:  
man Server   29550 pages
apropos Keyword Search (all sections)
Output format
RedHat logo
[printable version]

STRONGSWAN.CONF(5)		  strongSwan		    STRONGSWAN.CONF(5)

NAME
       strongswan.conf - strongSwan configuration file

DESCRIPTION
       While  the  ipsec.conf(5)  configuration	 file is well suited to define
       IPsec related configuration parameters, it  is  not  useful  for	 other
       strongSwan  applications	 to  read options from this file.  The file is
       hard to parse and only ipsec starter is capable of  doing  so.  As  the
       number  of components of the strongSwan project is continually growing,
       a more flexible configuration file was needed,  one  that  is  easy  to
       extend  and  can	 be  used  by  all  components.	 With strongSwan 4.2.1
       strongswan.conf(5) was introduced which meets these requirements.

SYNTAX
       The format of the strongswan.conf file consists	of  hierarchical  sec‐
       tions and a list of key/value pairs in each section. Each section has a
       name, followed by C-Style curly brackets	 defining  the	section	 body.
       Each section body contains a set of subsections and key/value pairs:

	    settings := (section|keyvalue)*
	    section  := name { settings }
	    keyvalue := key = value\n

       Values must be terminated by a newline.

       Comments are possible using the #-character, but be careful: The parser
       implementation is currently limited and does not like brackets in  com‐
       ments.

       Section names and keys may contain any printable character except:

	    . { } # \n \t space

       An example file in this format might look like this:

	    a = b
	    section-one {
		 somevalue = asdf
		 subsection {
		      othervalue = xxx
		 }
		 # yei, a comment
		 yetanother = zz
	    }
	    section-two {
		 x = 12
	    }

       Indentation is optional, you may use tabs or spaces.

INCLUDING FILES
       Using  the include statement it is possible to include other files into
       strongswan.conf, e.g.

	    include /some/path/*.conf

       If the file name is not an absolute path, it is considered to be	 rela‐
       tive to the directory of the file containing the include statement. The
       file name may include shell wildcards (see sh(1)).  Also,  such	inclu‐
       sions can be nested.

       Sections	 loaded from included files extend previously loaded sections;
       already existing values are replaced.  It is  important	to  note  that
       settings are added relative to the section the include statement is in.

       As  an example, the following three files result in the same final con‐
       fig as the one given above:

	    a = b
	    section-one {
		 somevalue = before include
		 include include.conf
	    }
	    include other.conf

       include.conf:
	    # settings loaded from this file are added to section-one
	    # the following replaces the previous value
	    somevalue = asdf
	    subsection {
		 othervalue = yyy
	    }
	    yetanother = zz

       other.conf:
	    # this extends section-one and subsection
	    section-one {
		 subsection {
		      # this replaces the previous value
		      othervalue = xxx
		 }
	    }
	    section-two {
		 x = 12
	    }

READING VALUES
       Values are accessed using a dot-separated section list and a key.  With
       reference to the example above, accessing section-one.subsection.other‐
       value will return xxx.

DEFINED KEYS
       The following keys are currently	 defined  (using  dot  notation).  The
       default value (if any) is listed in brackets after the key.

   attest section
       attest.database
	      Path to database with file measurement information

       attest.load
	      Plugins to load in ipsec attest tool

   charon section
       Note:  Many  of these options also apply to charon-cmd and other charon
	      derivatives. Just use their respective name  (e.g.   charon-cmd)
	      instead of  charon.

       charon.block_threshold [5]
	      Maximum number of half-open IKE_SAs for a single peer IP

       charon.cisco_unity [no]
	      Send Cisco Unity vendor ID payload (IKEv1 only)

       charon.close_ike_on_child_failure [no]
	      Close  the  IKE_SA  if setup of the CHILD_SA along with IKE_AUTH
	      failed

       charon.cookie_threshold [10]
	      Number of half-open IKE_SAs that activate the cookie mechanism

       charon.dns1
       charon.dns2
	      DNS servers assigned to peer via configuration payload (CP)

       charon.dos_protection [yes]
	      Enable Denial of Service protection using	 cookies  and  aggres‐
	      siveness checks

       charon.filelog
	      Section to define file loggers, see LOGGER CONFIGURATION

       charon.flush_auth_cfg [no]
	      If  enabled  objects  used  during authentication (certificates,
	      identities etc.)	are released to free memory once an IKE_SA  is
	      established.   Enabling  this  might  conflict with plugins that
	      later need access to e.g. the used certificates.

       charon.fragment_size [512]
	      Maximum size (in bytes) of a sent fragment when using  the  pro‐
	      prietary IKEv1 fragmentation extension.

       charon.group
	      Name of the group the daemon changes to after startup

       charon.half_open_timeout [30]
	      Timeout  in seconds for connecting IKE_SAs (also see IKE_SA_INIT
	      DROPPING).

       charon.hash_and_url [no]
	      Enable hash and URL support

       charon.i_dont_care_about_security_and_use_aggressive_mode_psk [no]
	      If enabled responders are allowed to use IKEv1  Aggressive  Mode
	      with  pre-shared keys, which is discouraged due to security con‐
	      cerns (offline attacks on the openly  transmitted	 hash  of  the
	      PSK)

       charon.ignore_routing_tables
	      A	 space-separated  list	of  routing tables to be excluded from
	      route lookups

       charon.ikesa_limit [0]
	      Maximum number of IKE_SAs that can be established	 at  the  same
	      time before new connection attempts are blocked

       charon.ikesa_table_segments [1]
	      Number of exclusively locked segments in the hash table

       charon.ikesa_table_size [1]
	      Size of the IKE_SA hash table

       charon.inactivity_close_ike [no]
	      Whether to close IKE_SA if the only CHILD_SA closed due to inac‐
	      tivity

       charon.init_limit_half_open [0]
	      Limit new connections based on the current number of  half  open
	      IKE_SAs (see IKE_SA_INIT DROPPING).

       charon.init_limit_job_load [0]
	      Limit  new  connections  based  on  the number of jobs currently
	      queued for processing (see IKE_SA_INIT DROPPING).

       charon.initiator_only [no]
	      Causes charon daemon to ignore IKE initiation requests.

       charon.install_routes [yes]
	      Install routes into a separate  routing  table  for  established
	      IPsec tunnels

       charon.install_virtual_ip [yes]
	      Install virtual IP addresses

       charon.install_virtual_ip_on
	      The  name	 of the interface on which virtual IP addresses should
	      be installed.  If not specified the addresses will be  installed
	      on the outbound interface.

       charon.interfaces_ignore
	      A	 comma-separated  list	of  network  interfaces that should be
	      ignored, if charon.interfaces_use is specified this  option  has
	      no effect.

       charon.interfaces_use
	      A comma-separated list of network interfaces that should be used
	      by charon.  All other interfaces are ignored.

       charon.keep_alive [20s]
	      NAT keep alive interval

       charon.load
	      Plugins to load in the IKEv2 daemon charon

       charon.max_packet [10000]
	      Maximum packet size accepted by charon

       charon.multiple_authentication [yes]
	      Enable multiple authentication exchanges (RFC 4739)

       charon.nbns1
       charon.nbns2
	      WINS servers assigned to peer via configuration payload (CP)

       charon.port [500]
	      UDP port used locally. If set to 0 a random port will  be	 allo‐
	      cated.

       charon.port_nat_t [4500]
	      UDP  port	 used  locally	in case of NAT-T. If set to 0 a random
	      port will be allocated.  Has to be different  from  charon.port,
	      otherwise a random port will be allocated.

       charon.process_route [yes]
	      Process RTM_NEWROUTE and RTM_DELROUTE events

       charon.receive_delay [0]
	      Delay in ms for receiving packets, to simulate larger RTT

       charon.receive_delay_response [yes]
	      Delay response messages

       charon.receive_delay_request [yes]
	      Delay request messages

       charon.receive_delay_type [0]
	      Specific IKEv2 message type to delay, 0 for any

       charon.replay_window [32]
	      Size of the AH/ESP replay window, in packets.

       charon.retransmit_base [1.8]
	      Base  to	use  for  calculating  exponential back off, see IKEv2
	      RETRANSMISSION

       charon.retransmit_timeout [4.0]
	      Timeout in seconds before sending first retransmit

       charon.retransmit_tries [5]
	      Number of times to retransmit a packet before giving up

       charon.retry_initiate_interval [0]
	      Interval to use when retrying to initiate an IKE_SA (e.g. if DNS
	      resolution failed), 0 to disable retries.

       charon.reuse_ikesa [yes]
	      Initiate CHILD_SA within existing IKE_SAs

       charon.routing_table
	      Numerical routing table to install routes to

       charon.routing_table_prio
	      Priority of the routing table

       charon.send_delay [0]
	      Delay in ms for sending packets, to simulate larger RTT

       charon.send_delay_response [yes]
	      Delay response messages

       charon.send_delay_request [yes]
	      Delay request messages

       charon.send_delay_type [0]
	      Specific IKEv2 message type to delay, 0 for any

       charon.send_vendor_id [no]
	      Send strongSwan vendor ID payload

       charon.syslog
	      Section to define syslog loggers, see LOGGER CONFIGURATION

       charon.threads [16]
	      Number of worker threads in charon

       charon.user
	      Name of the user the daemon changes to after startup

   charon.plugins subsection
       charon.plugins.android_log.loglevel [1]
	      Loglevel for logging to Android specific logger

       charon.plugins.attr
	      Section  to  specify arbitrary attributes that are assigned to a
	      peer via configuration payload (CP)

       charon.plugins.certexpire.csv.cron
	      Cron style string specifying CSV export times

       charon.plugins.certexpire.csv.empty_string
	      String to use in empty intermediate CA fields

       charon.plugins.certexpire.csv.fixed_fields [yes]
	      Use a fixed intermediate CA field count

       charon.plugins.certexpire.csv.force [yes]
	      Force export of all trustchains we have a private key for

       charon.plugins.certexpire.csv.format [%d:%m:%Y]
	      strftime(3) format string to export expiration dates as

       charon.plugins.certexpire.csv.local
	      strftime(3) format string for the CSV file name to export	 local
	      certificates to

       charon.plugins.certexpire.csv.remote
	      strftime(3) format string for the CSV file name to export remote
	      certificates to

       charon.plugins.certexpire.csv.separator [,]
	      CSV field separator

       charon.plugins.coupling.file
	      File to store coupling list to

       charon.plugins.coupling.hash [sha1]
	      Hashing algorithm to fingerprint coupled certificates

       charon.plugins.coupling.max [1]
	      Maximum number of coupling entries to create

       charon.plugins.dhcp.force_server_address [no]
	      Always use the configured server address. This might be  helpful
	      if  the DHCP server runs on the same host as strongSwan, and the
	      DHCP daemon does not listen on the loopback interface.  In  that
	      case   the  server  cannot  be  reached  via  unicast  (or  even
	      255.255.255.255) as that would be routed via loopback.   Setting
	      this  option  to yes and configuring the local broadcast address
	      (e.g.  192.168.0.255) as server address might work.

       charon.plugins.dhcp.identity_lease [no]
	      Derive user-defined MAC address from hash of IKEv2 identity

       charon.plugins.dhcp.server [255.255.255.255]
	      DHCP server unicast or broadcast IP address

       charon.plugins.duplicheck.enable [yes]
	      Enable duplicheck plugin (if loaded)

       charon.plugins.duplicheck.socket [unix://${piddir}/charon.dck]
	      Socket provided by the duplicheck plugin

       charon.plugins.eap-aka.request_identity [yes]

       charon.plugins.eap-aka-3ggp2.seq_check

       charon.plugins.eap-dynamic.preferred
	      The preferred EAP method(s) to be used.  If it is not given  the
	      first registered method will be used initially.  If a comma sep‐
	      arated list is given the methods are tried in  the  given	 order
	      before trying the rest of the registered methods.

       charon.plugins.eap-dynamic.prefer_user [no]
	      If  enabled  the EAP methods proposed in an EAP-Nak message sent
	      by the peer are preferred over the methods registered locally.

       charon.plugins.eap-gtc.backend [pam]
	      XAuth backend to be used for credential verification

       charon.plugins.eap-peap.fragment_size [1024]
	      Maximum size of an EAP-PEAP packet

       charon.plugins.eap-peap.max_message_count [32]
	      Maximum number of processed EAP-PEAP packets (0 = no limit)

       charon.plugins.eap-peap.include_length [no]
	      Include length in non-fragmented EAP-PEAP packets

       charon.plugins.eap-peap.phase2_method [mschapv2]
	      Phase2 EAP client authentication method

       charon.plugins.eap-peap.phase2_piggyback [no]
	      Phase2 EAP Identity request piggybacked by server onto TLS  Fin‐
	      ished message

       charon.plugins.eap-peap.phase2_tnc [no]
	      Start  phase2 EAP TNC protocol after successful client authenti‐
	      cation

       charon.plugins.eap-peap.request_peer_auth [no]
	      Request peer authentication based on a client certificate

       charon.plugins.eap-radius.accounting [no]
	      Send RADIUS accounting information to RADIUS servers.

       charon.plugins.eap-radius.accounting_requires_vip [no]
	      If enabled, accounting is disabled unless an IKE_SA has at least
	      one virtual IP

       charon.plugins.eap-radius.class_group [no]
	      Use  the	class  attribute  sent in the RADIUS-Accept message as
	      group membership information that	 is  compared  to  the	groups
	      specified in the rightgroups option in ipsec.conf (5).

       charon.plugins.eap-radius.close_all_on_timeout [no]
	      Closes all IKE_SAs if communication with the RADIUS server times
	      out. If it is not set only the current IKE_SA is closed.

       charon.plugins.eap-radius.dae.enable [no]
	      Enables support for the  Dynamic	Authorization  Extension  (RFC
	      5176)

       charon.plugins.eap-radius.dae.listen [0.0.0.0]
	      Address to listen for DAE messages from the RADIUS server

       charon.plugins.eap-radius.dae.port [3799]
	      Port to listen for DAE requests

       charon.plugins.eap-radius.dae.secret
	      Shared secret used to verify/sign DAE messages

       charon.plugins.eap-radius.eap_start [no]
	      Send EAP-Start instead of EAP-Identity to start RADIUS conversa‐
	      tion

       charon.plugins.eap-radius.filter_id [no]
	      If the RADIUS tunnel_type attribute with value ESP is  received,
	      use the filter_id attribute sent in the RADIUS-Accept message as
	      group membership information that	 is  compared  to  the	groups
	      specified in the rightgroups option in ipsec.conf (5).

       charon.plugins.eap-radius.forward.ike_to_radius
	      RADIUS  attributes  to be forwarded from IKEv2 to RADIUS (can be
	      defined by name or attribute number, a  colon  can  be  used  to
	      specify  vendor-specific	attributes, e.g. Reply-Message, or 11,
	      or 36906:12).

       charon.plugins.eap-radius.forward.radius_to_ike
	      Same as charon.plugins.eap-radius.forward.ike_to_radius but from
	      RADIUS to IKEv2, a strongSwan specific private notify (40969) is
	      used to transmit the attributes.

       charon.plugins.eap-radius.id_prefix
	      Prefix to EAP-Identity, some AAA servers use a  IMSI  prefix  to
	      select the EAP method

       charon.plugins.eap-radius.nas_identifier [strongSwan]
	      NAS-Identifier to include in RADIUS messages

       charon.plugins.eap-radius.port [1812]
	      Port of RADIUS server (authentication)

       charon.plugins.eap-radius.secret
	      Shared secret between RADIUS and NAS

       charon.plugins.eap-radius.server
	      IP/Hostname of RADIUS server

       charon.plugins.eap-radius.servers
	      Section  to specify multiple RADIUS servers. The nas_identifier,
	      secret, sockets and port (or auth_port) options can be specified
	      for  each server. A server's IP/Hostname can be configured using
	      the address option. The acct_port [1813] option can be  used  to
	      specify  the  port  used for RADIUS accounting.  For each RADIUS
	      server a priority can be	specified  using  the  preference  [0]
	      option.

       charon.plugins.eap-radius.sockets [1]
	      Number of sockets (ports) to use, increase for high load

       charon.plugins.eap-sim.request_identity [yes]

       charon.plugins.eap-simaka-sql.database

       charon.plugins.eap-simaka-sql.remove_used [no]

       charon.plugins.eap-tls.fragment_size [1024]
	      Maximum size of an EAP-TLS packet

       charon.plugins.eap-tls.max_message_count [32]
	      Maximum number of processed EAP-TLS packets (0 = no limit)

       charon.plugins.eap-tls.include_length [yes]
	      Include length in non-fragmented EAP-TLS packets

       charon.plugins.eap-tnc.max_message_count [10]
	      Maximum number of processed EAP-TNC packets (0 = no limit)

       charon.plugins.eap-tnc.protocol [tnccs-1.1]
	      IF-TNCCS	protocol  version  to  be  used (tnccs-1.1, tnccs-2.0,
	      tnccs-dynamic)

       charon.plugins.eap-ttls.fragment_size [1024]
	      Maximum size of an EAP-TTLS packet

       charon.plugins.eap-ttls.max_message_count [32]
	      Maximum number of processed EAP-TTLS packets (0 = no limit)

       charon.plugins.eap-ttls.include_length [yes]
	      Include length in non-fragmented EAP-TTLS packets

       charon.plugins.eap-ttls.phase2_method [md5]
	      Phase2 EAP client authentication method

       charon.plugins.eap-ttls.phase2_piggyback [no]
	      Phase2 EAP Identity request piggybacked by server onto TLS  Fin‐
	      ished message

       charon.plugins.eap-ttls.phase2_tnc [no]
	      Start  phase2 EAP TNC protocol after successful client authenti‐
	      cation

       charon.plugins.eap-ttls.request_peer_auth [no]
	      Request peer authentication based on a client certificate

       charon.plugins.error-notify.socket [unix://${piddir}/charon.enfy]
	      Socket provided by the error-notify plugin

       charon.plugins.ha.autobalance [0]
	      Interval in seconds to automatically  balance  handled  segments
	      between nodes.  Set to 0 to disable.

       charon.plugins.ha.fifo_interface [yes]

       charon.plugins.ha.heartbeat_delay [1000]

       charon.plugins.ha.heartbeat_timeout [2100]

       charon.plugins.ha.local

       charon.plugins.ha.monitor [yes]

       charon.plugins.ha.pools

       charon.plugins.ha.remote

       charon.plugins.ha.resync [yes]

       charon.plugins.ha.secret

       charon.plugins.ha.segment_count [1]

       charon.plugins.ipseckey.enable [no]
	      Enable the fetching of IPSECKEY RRs via DNS

       charon.plugins.led.activity_led

       charon.plugins.led.blink_time [50]

       charon.plugins.kernel-klips.ipsec_dev_count [4]
	      Number of ipsecN devices

       charon.plugins.kernel-klips.ipsec_dev_mtu [0]
	      Set MTU of ipsecN device

       charon.plugins.kernel-netlink.roam_events [yes]
	      Whether  to  trigger  roam  events when interfaces, addresses or
	      routes change

       charon.plugins.kernel-pfroute.vip_wait [1000]
	      Time in ms to wait until virtual IP  addresses  appear/disappear
	      before failing.

       charon.plugins.load-tester
	      Section to configure the load-tester plugin, see LOAD TESTS

       charon.plugins.lookip.socket [unix://${piddir}/charon.lkp]
	      Socket provided by the lookip plugin

       charon.plugins.radattr.dir
	      Directory	 where	RADIUS attributes are stored in client-ID spe‐
	      cific files.

       charon.plugins.radattr.message_id [-1]
	      Attributes are added to all IKE_AUTH messages by	default	 (-1),
	      or only to the IKE_AUTH message with the given IKEv2 message ID.

       charon.plugins.resolve.file [/etc/resolv.conf]
	      File where to add DNS server entries

       charon.plugins.resolve.resolvconf.iface_prefix [lo.inet.ipsec.]
	      Prefix used for interface names sent to resolvconf(8). The name‐
	      server address is appended to this prefix	 to  make  it  unique.
	      The  result  has	to  be a valid interface name according to the
	      rules defined by resolvconf.  Also, it should have a high prior‐
	      ity according to the order defined in interface-order(5).

       charon.plugins.socket-default.set_source [yes]
	      Set source address on outbound packets, if possible.

       charon.plugins.socket-default.use_ipv4 [yes]
	      Listen on IPv4, if possible.

       charon.plugins.socket-default.use_ipv6 [yes]
	      Listen on IPv6, if possible.

       charon.plugins.sql.database
	      Database URI for charons SQL plugin

       charon.plugins.sql.loglevel [-1]
	      Loglevel for logging to SQL database

       charon.plugins.stroke.ignore_missing_ca_basic_constraint [no]
	      Treat certificates in ipsec.d/cacerts and ipsec.conf ca sections
	      as CA certificates even if they don't contain a  CA  basic  con‐
	      straint.

       charon.plugins.stroke.max_concurrent [4]
	      Maximum number of stroke messages handled concurrently

       charon.plugins.stroke.socket [unix://${piddir}/charon.ctl]
	      Socket provided by the stroke plugin

       charon.plugins.stroke.timeout [0]
	      Timeout in ms for any stroke command. Use 0 to disable the time‐
	      out

       charon.plugins.systime-fix.interval [0]
	      Interval in seconds to check system time for  validity.  0  dis‐
	      ables the check

       charon.plugins.systime-fix.reauth [no]
	      Whether  to  use reauth or delete if an invalid cert lifetime is
	      detected

       charon.plugins.systime-fix.threshold
	      Threshold date where system time is considered  valid.  Disabled
	      if not specified

       charon.plugins.systime-fix.threshold_format [%Y]
	      strptime(3) format used to parse threshold option

       charon.plugins.tnccs-11.max_message_size [45000]
	      Maximum size of a PA-TNC message (XML & Base64 encoding)

       charon.plugins.tnccs-20.max_batch_size [65522]
	      Maximum size of a PB-TNC batch (upper limit via PT-EAP = 65529)

       charon.plugins.tnccs-20.max_message_size [65490]
	      Maximum  size  of	 a  PA-TNC  message  (upper limit via PT-EAP =
	      65497)

       charon.plugins.tnc-ifmap.client_cert
	      Path to X.509 certificate file of IF-MAP client

       charon.plugins.tnc-ifmap.client_key
	      Path to private key file of IF-MAP client

       charon.plugins.tnc-ifmap.device_name
	      Unique name of strongSwan server as a PEP and/or PDP device

       charon.plugins.tnc-ifmap.renew_session_interval [150]
	      Interval	in  seconds  between  periodic	 IF-MAP	  RenewSession
	      requests

       charon.plugins.tnc-ifmap.server_uri [https://localhost:8444/imap]
	      URI of the form [https://]servername[:port][/path]

       charon.plugins.tnc-ifmap.server_cert
	      Path to X.509 certificate file of IF-MAP server

       charon.plugins.tnc-ifmap.username_password
	      Credentials of IF-MAP client of the form username:password

       charon.plugins.tnc-imc.dlclose [yes]
	      Unload IMC after use

       charon.plugins.tnc-imc.preferred_language [en]
	      Preferred language for TNC recommendations

       charon.plugins.tnc-imv.dlclose [yes]
	      Unload IMV after use

       charon.plugins.tnc-pdp.method [ttls]
	      EAP tunnel method to be used

       charon.plugins.tnc-pdp.port [1812]
	      RADIUS server port the strongSwan PDP is listening on

       charon.plugins.tnc-pdp.secret
	      Shared RADIUS secret between strongSwan PDP and NAS

       charon.plugins.tnc-pdp.server
	      Name of the strongSwan PDP as contained in the AAA certificate

       charon.plugins.tnc-pdp.timeout
	      Timeout in seconds before closing incomplete connections

       charon.plugins.updown.dns_handler [no]
	      Whether  the updown script should handle DNS serves assigned via
	      IKEv1 Mode Config or IKEv2  Config  Payloads  (if	 enabled  they
	      can't be handled by other plugins, like resolve)

       charon.plugins.whitelist.enable [yes]
	      Enable loaded whitelist plugin

       charon.plugins.whitelist.socket [unix://${piddir}/charon.wlst]
	      Socket provided by the whitelist plugin

       charon.plugins.xauth-eap.backend [radius]
	      EAP  plugin to be used as backend for XAuth credential verifica‐
	      tion

       charon.plugins.xauth-pam.pam_service [login]
	      PAM service to be used for authentication

   libstrongswan section
       libstrongswan.cert_cache [yes]
	      Whether relations in  validated  certificate  chains  should  be
	      cached in memory

       libstrongswan.crypto_test.bench [no]

       libstrongswan.crypto_test.bench_size [1024]

       libstrongswan.crypto_test.bench_time [50]

       libstrongswan.crypto_test.on_add [no]
	      Test crypto algorithms during registration

       libstrongswan.crypto_test.on_create [no]
	      Test crypto algorithms on each crypto primitive instantiation

       libstrongswan.crypto_test.required [no]
	      Strictly require at least one test vector to enable an algorithm

       libstrongswan.crypto_test.rng_true [no]
	      Whether to test RNG with TRUE quality; requires a lot of entropy

       libstrongswan.dh_exponent_ansi_x9_42 [yes]
	      Use ANSI X9.42 DH exponent size or optimum size matched to cryp‐
	      tographical strength

       libstrongswan.ecp_x_coordinate_only [yes]
	      Compliance with the errata for RFC 4753

       libstrongswan.host_resolver.max_threads [3]
	      Maximum number of concurrent resolver threads (they  are	termi‐
	      nated if unused)

       libstrongswan.host_resolver.min_threads [0]
	      Minimum number of resolver threads to keep around

       libstrongswan.integrity_test [no]
	      Check daemon, libstrongswan and plugin integrity at startup

       libstrongswan.leak_detective.detailed [yes]
	      Includes	source	file  names and line numbers in leak detective
	      output

       libstrongswan.leak_detective.usage_threshold [10240]
	      Threshold in bytes for leaks to be reported (0 to report all)

       libstrongswan.leak_detective.usage_threshold_count [0]
	      Threshold in number of allocations for leaks to be  reported  (0
	      to report all)

       libstrongswan.processor.priority_threads
	      Subsection  to configure the number of reserved threads per pri‐
	      ority class see JOB PRIORITY MANAGEMENT

       libstrongswan.x509.enforce_critical [yes]
	      Discard certificates with unsupported or unknown critical exten‐
	      sions

   libstrongswan.plugins subsection
       libstrongswan.plugins.attr-sql.database
	      Database URI for attr-sql plugin used by charon

       libstrongswan.plugins.attr-sql.lease_history [yes]
	      Enable logging of SQL IP pool leases

       libstrongswan.plugins.gcrypt.quick_random [no]
	      Use  faster random numbers in gcrypt; for testing only, produces
	      weak keys!

       libstrongswan.plugins.openssl.engine_id [pkcs11]
	      ENGINE ID to use in the OpenSSL plugin

       libstrongswan.plugins.openssl.fips_mode [0]
	      Set  OpenSSL  FIPS  mode:	 disabled(0),  enabled(1),   Suite   B
	      enabled(2)

       libstrongswan.plugins.pkcs11.modules
	      List of available PKCS#11 modules

       libstrongswan.plugins.pkcs11.load_certs [yes]
	      Whether to load certificates from tokens

       libstrongswan.plugins.pkcs11.reload_certs [no]
	      Reload certificates from all tokens if charon receives a SIGHUP

       libstrongswan.plugins.pkcs11.use_dh [no]
	      Whether  the PKCS#11 modules should be used for DH and ECDH (see
	      use_ecc option)

       libstrongswan.plugins.pkcs11.use_ecc [no]
	      Whether the PKCS#11 modules should be used for  ECDH  and	 ECDSA
	      public key operations. ECDSA private keys can be used regardless
	      of this option

       libstrongswan.plugins.pkcs11.use_hasher [no]
	      Whether the PKCS#11 modules should be used to hash data

       libstrongswan.plugins.pkcs11.use_pubkey [no]
	      Whether the PKCS#11 modules should be used for public key opera‐
	      tions, even for keys not stored on tokens

       libstrongswan.plugins.pkcs11.use_rng [no]
	      Whether the PKCS#11 modules should be used as RNG

       libstrongswan.plugins.random.random [/dev/random]
	      File to read random bytes from, instead of /dev/random

       libstrongswan.plugins.random.urandom [/dev/urandom]
	      File to read pseudo random bytes from, instead of /dev/urandom

       libstrongswan.plugins.unbound.resolv_conf [/etc/resolv.conf]
	      File to read DNS resolver configuration from

       libstrongswan.plugins.unbound.trust_anchors [/etc/ipsec.d/dnssec.keys]
	      File to read DNSSEC trust anchors from (usually root zone KSK)

   libtls section
       libtls.cipher
	      List of TLS encryption ciphers

       libtls.key_exchange
	      List of TLS key exchange methods

       libtls.mac
	      List of TLS MAC algorithms

       libtls.suites
	      List of TLS cipher suites

   libtnccs section
       libtnccs.tnc_config [/etc/tnc_config]
	      TNC IMC/IMV configuration directory

   libimcv section
       libimcv.assessment_result [yes]
	      Whether IMVs send a standard IETF Assessment Result attribute

       libimcv.database
	      Global IMV policy database URI

       libimcv.debug_level [1]
	      Debug level for a stand-alone libimcv library

       libimcv.load [random nonce gmp pubkey x509]
	      Plugins to load in IMC/IMVs

       libimcv.os_info.name
	      Manually set the name of the client OS (e.g. Ubuntu)

       libimcv.os_info.version
	      Manually set the version of the client OS (e.g. 12.04 i686)

       libimcv.policy_script [ipsec _imv_policy]
	      Script called for each TNC connection to generate IMV policies

       libimcv.stderr_quiet [no]
	      isable output to stderr with a stand-alone libimcv library

   libimcv plugins section
       libimcv.plugins.imc-attestation.aik_blob
	      AIK encrypted private key blob file

       libimcv.plugins.imc-attestation.aik_cert
	      AIK certificate file

       libimcv.plugins.imc-attestation.aik_key
	      AIK public key file

       libimcv.plugins.imv-attestation.nonce_len [20]
	      DH nonce length

       libimcv.plugins.imv-attestation.use_quote2 [yes]
	      Use Quote2 AIK signature instead of Quote signature

       libimcv.plugins.imv-attestation.cadir
	      Path to directory with AIK cacerts

       libimcv.plugins.imv-attestation.dh_group [ecp256]
	      Preferred Diffie-Hellman group

       libimcv.plugins.imv-attestation.hash_algorithm [sha256]
	      Preferred measurement hash algorithm

       libimcv.plugins.imv-attestation.min_nonce_len [0]
	      DH minimum nonce length

       libimcv.plugins.imv-attestation.remediation_uri
	      URI pointing to attestation remediation instructions

       libimcv.plugins.imc-os.push_info [yes]
	      Send operating system info without being prompted

       libimcv.plugins.imv-os.remediation_uri
	      URI pointing to operating system remediation instructions

       libimcv.plugins.imc-scanner.push_info [yes]
	      Send open listening ports without being prompted

       libimcv.plugins.imv-scanner.remediation_uri
	      URI pointing to scanner remediation instructions

       libimcv.plugins.imc-test.additional_ids [0]
	      Number of additional IMC IDs

       libimcv.plugins.imc-test.command [none]
	      Command to be sent to the Test IMV

       libimcv.plugins.imc-test.dummy_size [0]
	      Size  of	dummy  attribute  to be sent to the Test IMV (0 = dis‐
	      abled)

       libimcv.plugins.imv-test.remediation_uri
	      URI pointing to test remediation instructions

       libimcv.plugins.imc-test.retry [no]
	      Do a handshake retry

       libimcv.plugins.imc-test.retry_command
	      Command to be sent to the Test IMV in the handshake retry

       libimcv.plugins.imv-test.rounds [0]
	      Number of IMC-IMV retry rounds

   manager section
       manager.database
	      Credential database URI for manager

       manager.debug [no]
	      Enable debugging in manager

       manager.load
	      Plugins to load in manager

       manager.socket
	      FastCGI socket of manager, to run it statically

       manager.threads [10]
	      Threads to use for request handling

       manager.timeout [15m]
	      Session timeout for manager

   mediation client section
       medcli.database
	      Mediation client database URI

       medcli.dpd [5m]
	      DPD timeout to use in mediation client plugin

       medcli.rekey [20m]
	      Rekeying time on mediation connections in mediation client plug‐
	      in

   mediation server section
       medsrv.database
	      Mediation server database URI

       medsrv.debug [no]
	      Debugging in mediation server web application

       medsrv.dpd [5m]
	      DPD timeout to use in mediation server plugin

       medsrv.load
	      Plugins to load in mediation server plugin

       medsrv.password_length [6]
	      Minimum  password	 length	 required  for	mediation  server user
	      accounts

       medsrv.rekey [20m]
	      Rekeying time on mediation connections in mediation server plug‐
	      in

       medsrv.socket
	      Run Mediation server web application statically on socket

       medsrv.threads [5]
	      Number of thread for mediation service web application

       medsrv.timeout [15m]
	      Session timeout for mediation service

   openac section
       openac.load
	      Plugins to load in ipsec openac tool

   pacman section
       pacman.database
	      Database	URI  for the database that stores the package informa‐
	      tion

   pki section
       pki.load
	      Plugins to load in ipsec pki tool

   pool section
       pool.load
	      Plugins to load in ipsec pool tool

   scepclient section
       scepclient.load
	      Plugins to load in ipsec scepclient tool

   starter section
       starter.load
	      Plugins to load in starter

       starter.load_warning [yes]
	      Disable charon plugin load option warning

LOGGER CONFIGURATION
       The options described below provide a much more flexible way to config‐
       ure  loggers  for  the  IKEv2  daemon charon than using the charondebug
       option in ipsec.conf(5).

       Please note that if  any	 loggers  are  specified  in  strongswan.conf,
       charondebug does not have any effect.

       There are currently two types of loggers defined:

       File loggers
	      Log  directly  to	 a file and are defined by specifying the full
	      path to the file as subsection in the charon.filelog section. To
	      log  to  the console the two special filenames stdout and stderr
	      can be used.

       Syslog loggers
	      Log into a syslog facility and are  defined  by  specifying  the
	      facility	to  log	 to  as	 the  name  of	a  subsection  in  the
	      charon.syslog section. The following  facilities	are  currently
	      supported: daemon and auth.

       Multiple	 loggers  can be defined for each type with different log ver‐
       bosity for the different subsystems of the daemon.

   Options
       charon.filelog.<filename>.default [1]
       charon.syslog.<facility>.default
	      Specifies the default loglevel to be  used  for  subsystems  for
	      which no specific loglevel is defined.

       charon.filelog.<filename>.<subsystem> [<default>]
       charon.syslog.<facility>.<subsystem>
	      Specifies the loglevel for the given subsystem.

       charon.filelog.<filename>.append [yes]
	      If this option is enabled log entries are appended to the exist‐
	      ing file.

       charon.filelog.<filename>.flush_line [no]
	      Enabling this option disables block buffering and	 enables  line
	      buffering.

       charon.filelog.<filename>.ike_name [no]
       charon.syslog.<facility>.ike_name
	      Prefix  each  log	 entry	with  the connection name and a unique
	      numerical identifier for each IKE_SA.

       charon.filelog.<filename>.time_format
	      Prefix each log entry with a timestamp.  The  option  accepts  a
	      format string as passed to strftime(3).

       charon.syslog.identifier
	      Global identifier used for an openlog(3) call, prepended to each
	      log message by syslog.  If not  configured,  openlog(3)  is  not
	      called,  so  the value will depend on system defaults (often the
	      program name).

   Subsystems
       dmn    Main daemon setup/cleanup/signal handling

       mgr    IKE_SA manager, handling synchronization for IKE_SA access

       ike    IKE_SA

       chd    CHILD_SA

       job    Jobs queueing/processing and thread pool management

       cfg    Configuration management and plugins

       knl    IPsec/Networking kernel interface

       net    IKE network communication

       asn    Low-level encoding/decoding (ASN.1, X.509 etc.)

       enc    Packet encoding/decoding encryption/decryption operations

       tls    libtls library messages

       esp    libipsec library messages

       lib    libstrongwan library messages

       tnc    Trusted Network Connect

       imc    Integrity Measurement Collector

       imv    Integrity Measurement Verifier

       pts    Platform Trust Service

   Loglevels
       -1     Absolutely silent

       0      Very basic auditing logs, (e.g. SA up/SA down)

       1      Generic control flow with errors, a good default	to  see	 whats
	      going on

       2      More detailed debugging control flow

       3      Including RAW data dumps in Hex

       4      Also include sensitive material in dumps, e.g. keys

   Example
	    charon {
		 filelog {
		      /var/log/charon.log {
			   time_format = %b %e %T
			   append = no
			   default = 1
		      }
		      stderr {
			   ike = 2
			   knl = 3
			   ike_name = yes
		      }
		 }
		 syslog {
		      # enable logging to LOG_DAEMON, use defaults
		      daemon {
		      }
		      # minimalistic IKE auditing logging to LOG_AUTHPRIV
		      auth {
			   default = -1
			   ike = 0
		      }
		 }
	    }

JOB PRIORITY MANAGEMENT
       Some  operations	 in  the IKEv2 daemon charon are currently implemented
       synchronously and blocking. Two examples for such operations are commu‐
       nication	 with  a  RADIUS  server  via EAP-RADIUS, or fetching CRL/OCSP
       information during certificate chain verification. Under high load con‐
       ditions,	 the  thread  pool  may run out of available threads, and some
       more important jobs, such as liveness checking, may not get executed in
       time.

       To  prevent  thread  starvation	in such situations job priorities were
       introduced.  The job processor will reserve  some  threads  for	higher
       priority	 jobs,	these  threads	are  not available for lower priority,
       locking jobs.

   Implementation
       Currently 4 priorities have been defined, and they are used  in	charon
       as follows:

       CRITICAL
	      Priority for long-running dispatcher jobs.

       HIGH   INFORMATIONAL exchanges, as used by liveness checking (DPD).

       MEDIUM Everything not HIGH/LOW, including IKE_SA_INIT processing.

       LOW    IKE_AUTH message processing. RADIUS and CRL fetching block here

       Although	 IKE_SA_INIT  processing  is  computationally expensive, it is
       explicitly assigned to the MEDIUM class. This allows charon to  do  the
       DH exchange while other threads are blocked in IKE_AUTH. To prevent the
       daemon from accepting more IKE_SA_INIT requests than it can handle, use
       IKE_SA_INIT DROPPING.

       The  thread  pool  processes jobs strictly by priority, meaning it will
       consume all higher priority jobs before looking	for  ones  with	 lower
       priority. Further, it reserves threads for certain priorities. A prior‐
       ity class having reserved n threads will always have n  threads	avail‐
       able  for this class (either currently processing a job, or waiting for
       one).

   Configuration
       To ensure that there are always enough  threads	available  for	higher
       priority tasks, threads must be reserved for each priority class.

       libstrongswan.processor.priority_threads.critical [0]
	      Threads reserved for CRITICAL priority class jobs

       libstrongswan.processor.priority_threads.high [0]
	      Threads reserved for HIGH priority class jobs

       libstrongswan.processor.priority_threads.medium [0]
	      Threads reserved for MEDIUM priority class jobs

       libstrongswan.processor.priority_threads.low [0]
	      Threads reserved for LOW priority class jobs

       Let's consider the following configuration:

	    libstrongswan {
		 processor {
		      priority_threads {
			   high = 1
			   medium = 4
		      }
		 }
	    }

       With  this  configuration,  one	thread	is  reserved for HIGH priority
       tasks. As currently only liveness checking and stroke message  process‐
       ing  is	done  with  high priority, one or two threads should be suffi‐
       cient.

       The MEDIUM class mostly processes non-blocking jobs. Unless your	 setup
       is  experiencing many blocks in locks while accessing shared resources,
       threads for one or two times the number of CPU cores is fine.

       It is usually not required to reserve threads for CRITICAL  jobs.  Jobs
       in  this	 class	rarely	return	and do not release their thread to the
       pool.

       The remaining threads are available for LOW  priority  jobs.  Reserving
       threads does not make sense (until we have an even lower priority).

   Monitoring
       To  see	what  the  threads are actually doing, invoke ipsec statusall.
       Under high load, something like this will show up:

	    worker threads: 2 or 32 idle, 5/1/2/22 working,
		 job queue: 0/0/1/149, scheduled: 198

       From 32 worker threads,

       2      are currently idle.

       5      are running CRITICAL priority jobs  (dispatching	from  sockets,
	      etc.).

       1      is  currently handling a HIGH priority job. This is actually the
	      thread currently providing this information via stroke.

       2      are handling MEDIUM priority jobs, likely	 IKE_SA_INIT  or  CRE‐
	      ATE_CHILD_SA messages.

       22     are  handling  LOW  priority  jobs, probably waiting for an EAP-
	      RADIUS response while processing IKE_AUTH messages.

       The job queue load shows how many jobs are queued  for  each  priority,
       ready  for  execution. The single MEDIUM priority job will get executed
       immediately, as we have two spare threads  reserved  for	 MEDIUM	 class
       jobs.

IKE_SA_INIT DROPPING
       If  a  responder	 receives more connection requests per seconds than it
       can handle, it does not make sense to accept more IKE_SA_INIT messages.
       And if they are queued but can't get processed in time, an answer might
       be sent after the client has already given up and restarted its connec‐
       tion setup. This additionally increases the load on the responder.

       To limit the responder load resulting from new connection attempts, the
       daemon can drop IKE_SA_INIT messages just after	reception.  There  are
       two  mechanisms	to  decide  if this should happen, configured with the
       following options:

       charon.init_limit_half_open [0]
	      Limit based on the  number  of  half  open  IKE_SAs.  Half  open
	      IKE_SAs are SAs in connecting state, but not yet established.

       charon.init_limit_job_load [0]
	      Limit  based on the number of jobs currently queued for process‐
	      ing (sum over all job priorities).

       The second limit includes load  from  other  jobs,  such	 as  rekeying.
       Choosing	 a  good  value	 is  difficult and depends on the hardware and
       expected load.

       The first limit is simpler to calculate, but includes the load from new
       connections  only. If your responder is capable of negotiating 100 tun‐
       nels/s, you might set this limit to 1000. The daemon will then drop new
       connection attempts if generating a response would require more than 10
       seconds. If you are allowing for a maximum response time of  more  than
       30  seconds,  consider  adjusting  the  timeout	for connecting IKE_SAs
       (charon.half_open_timeout).  A responder, by default, deletes an IKE_SA
       if  the	initiator  does not establish it within 30 seconds. Under high
       load, a higher value might be required.

LOAD TESTS
       To do stability testing and performance optimizations, the IKEv2 daemon
       charon provides the load-tester plugin. This plugin allows one to setup
       thousands of tunnels concurrently against the daemon itself or a remote
       host.

       WARNING: Never enable the load-testing plugin on productive systems. It
       provides preconfigured credentials and allows an attacker to  authenti‐
       cate as any user.

   Options
       charon.plugins.load-tester.addrs
	      Subsection  that contains key/value pairs with address pools (in
	      CIDR notation) to use for a specific network interface e.g. eth0
	      = 10.10.0.0/16

       charon.plugins.load-tester.addrs_keep [no]
	      Whether  to  keep dynamic addresses even after the associated SA
	      got terminated

       charon.plugins.load-tester.addrs_prefix [16]
	      Network prefix length to use when installing dynamic  addresses.
	      If set to -1 the full address is used (i.e. 32 or 128)

       charon.plugins.load-tester.ca_dir
	      Directory to load (intermediate) CA certificates from

       charon.plugins.load-tester.child_rekey [600]
	      Seconds to start CHILD_SA rekeying after setup

       charon.plugins.load-tester.delay [0]
	      Delay between initiatons for each thread

       charon.plugins.load-tester.delete_after_established [no]
	      Delete an IKE_SA as soon as it has been established

       charon.plugins.load-tester.digest [sha1]
	      Digest algorithm used when issuing certificates

       charon.plugins.load-tester.dpd_delay [0]
	      DPD delay to use in load test

       charon.plugins.load-tester.dynamic_port [0]
	      Base  port to be used for requests (each client uses a different
	      port)

       charon.plugins.load-tester.eap_password [default-pwd]
	      EAP secret to use in load test

       charon.plugins.load-tester.enable [no]
	      Enable the load testing plugin

       charon.plugins.load-tester.esp [aes128-sha1]
	      CHILD_SA proposal to use for load tests

       charon.plugins.load-tester.fake_kernel [no]
	      Fake the kernel interface to allow load-testing against self

       charon.plugins.load-tester.ike_rekey [0]
	      Seconds to start IKE_SA rekeying after setup

       charon.plugins.load-tester.init_limit [0]
	      Global limit of concurrently established SAs during load test

       charon.plugins.load-tester.initiator [0.0.0.0]
	      Address to initiate from

       charon.plugins.load-tester.initiators [0]
	      Number of concurrent initiator threads to use in load test

       charon.plugins.load-tester.initiator_auth [pubkey]
	      Authentication method(s) the intiator uses

       charon.plugins.load-tester.initiator_id
	      Initiator ID used in load test

       charon.plugins.load-tester.initiator_match
	      Initiator ID to match against as responder

       charon.plugins.load-tester.initiator_tsi
	      Traffic selector on initiator side, as proposed by initiator

       charon.plugins.load-tester.initiator_tsr
	      Traffic selector on responder side, as proposed by initiator

       charon.plugins.load-tester.iterations [1]
	      Number of IKE_SAs to initiate by each initiator in load test

       charon.plugins.load-tester.issuer_cert
	      Path to the issuer certificate (if not configured	 a  hard-coded
	      value is used)

       charon.plugins.load-tester.issuer_key
	      Path  to	private key that is used to issue certificates (if not
	      configured a hard-coded value is used)

       charon.plugins.load-tester.pool
	      Provide INTERNAL_IPV4_ADDRs from a named pool

       charon.plugins.load-tester.preshared_key [default-psk]
	      Preshared key to use in load test

       charon.plugins.load-tester.proposal [aes128-sha1-modp768]
	      IKE proposal to use in load test

       charon.plugins.load-tester.responder [127.0.0.1]
	      Address to initiation connections to

       charon.plugins.load-tester.responder_auth [pubkey]
	      Authentication method(s) the responder uses

       charon.plugins.load-tester.responder_id
	      Responder ID used in load test

       charon.plugins.load-tester.responder_tsi [initiator_tsi]
	      Traffic selector on initiator side, as narrowed by responder

       charon.plugins.load-tester.responder_tsr [initiator_tsr]
	      Traffic selector on responder side, as narrowed by responder

       charon.plugins.load-tester.request_virtual_ip [no]
	      Request an INTERNAL_IPV4_ADDR from the server

       charon.plugins.load-tester.shutdown_when_complete [no]
	      Shutdown the daemon after all IKE_SAs have been established

       charon.plugins.load-tester.socket [unix://${piddir}/charon.ldt]
	      Socket provided by the load-tester plugin

       charon.plugins.load-tester.version [0]
	      IKE version to use (0 means use IKEv2 as	initiator  and	accept
	      any version as responder)

   Configuration details
       For public key authentication, the responder uses the "CN=srv, OU=load-
       test,  O=strongSwan"  identity.	For  the  initiator,  each  connection
       attempt	uses a different identity in the form "CN=c1-r1, OU=load-test,
       O=strongSwan", where the first number inidicates the client number, the
       second the authentication round (if multiple authentication is used).

       For  PSK	 authentication,  FQDN	identities  are	 used. The server uses
       srv.strongswan.org,  the	 client	 uses  an   identity   in   the	  form
       c1-r1.strongswan.org.

       For   EAP   authentication,   the   client  uses	 a  NAI	 in  the  form
       100000000010001@strongswan.org.

       To configure  multiple  authentication,	concatenate  multiple  methods
       using, e.g.
	    initiator_auth = pubkey|psk|eap-md5|eap-aka

       The responder uses a hardcoded certificate based on a 1024-bit RSA key.
       This certificate additionally serves as CA certificate. A peer uses the
       same private key, but generates client certificates on demand signed by
       the CA certificate. Install the Responder/CA certificate on the	remote
       host to authenticate all clients.

       To  speed  up  testing,	the  load  tester  plugin implements a special
       Diffie-Hellman implementation called modpnull. By setting
	    proposal = aes128-sha1-modpnull
       this wicked fast DH implementation is used. It  does  not  provide  any
       security	 at  all,  but	allows one to run tests without DH calculation
       overhead.

   Examples
       In the simplest case, the daemon initiates IKE_SAs against itself using
       the  loopback interface. This will actually establish double the number
       of IKE_SAs, as the daemon is initiator and responder for each IKE_SA at
       the  same time.	Installation of IPsec SAs would fails, as each SA gets
       installed twice. To simulate the correct behavior, a fake kernel inter‐
       face  can be enabled which does not install the IPsec SAs at the kernel
       level.

       A simple loopback configuration might look like this:

	    charon {
		 # create new IKE_SAs for each CHILD_SA to simulate
		 # different clients
		 reuse_ikesa = no
		 # turn off denial of service protection
		 dos_protection = no

		 plugins {
		      load-tester {
			   # enable the plugin
			   enable = yes
			   # use 4 threads to initiate connections
			   # simultaneously
			   initiators = 4
			   # each thread initiates 1000 connections
			   iterations = 1000
			   # delay each initiation in each thread by 20ms
			   delay = 20
			   # enable the fake kernel interface to
			   # avoid SA conflicts
			   fake_kernel = yes
		      }
		 }
	    }

       This will initiate 4000 IKE_SAs within 20 seconds. You may increase the
       delay  value  if your box can not handle that much load, or decrease it
       to put more load on it. If the daemon  starts  retransmitting  messages
       your box probably can not handle all connection attempts.

       The  plugin  also  allows one to test against a remote host. This might
       help to test against a real world configuration. A connection setup  to
       do stress testing of a gateway might look like this:

	    charon {
		 reuse_ikesa = no
		 threads = 32

		 plugins {
		      load-tester {
			   enable = yes
			   # 10000 connections, ten in parallel
			   initiators = 10
			   iterations = 1000
			   # use a delay of 100ms, overall time is:
			   # iterations * delay = 100s
			   delay = 100
			   # address of the gateway
			   remote = 1.2.3.4
			   # IKE-proposal to use
			   proposal = aes128-sha1-modp1024
			   # use faster PSK authentication instead
			   # of 1024bit RSA
			   initiator_auth = psk
			   responder_auth = psk
			   # request a virtual IP using configuration
			   # payloads
			   request_virtual_ip = yes
			   # enable CHILD_SA every 60s
			   child_rekey = 60
		      }
		 }
	    }

IKEv2 RETRANSMISSION
       Retransmission  timeouts	 in  the IKEv2 daemon charon can be configured
       globally using the three keys listed below:

	      charon.retransmit_base [1.8]
	      charon.retransmit_timeout [4.0]
	      charon.retransmit_tries [5]

       The following algorithm is used to calculate the timeout:

	    relative timeout = retransmit_timeout * retransmit_base ^ (n-1)

       Where n is the current retransmission count.

       Using the default values, packets are retransmitted in:

       Retransmission	Relative Timeout   Absolute Timeout
       ─────────────────────────────────────────────────────
       1			      4s		 4s
       2			      7s		11s
       3			     13s		24s
       4			     23s		47s
       5			     42s		89s
       giving up		     76s	       165s

FILES
       /etc/strongswan.conf

SEE ALSO
       ipsec.conf(5), ipsec.secrets(5), ipsec(8), charon-cmd(8)

HISTORY
       Written	for  the  strongSwan  project  ⟨http://www.strongswan.org⟩  by
       Tobias Brunner, Andreas Steffen and Martin Willi.

5.1.0				  2013-07-22		    STRONGSWAN.CONF(5)
[top]

List of man pages available for RedHat

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net