1STRONGSWAN.CONF(5)                strongSwan                STRONGSWAN.CONF(5)
2
3
4

NAME

6       strongswan.conf - strongSwan configuration file
7

DESCRIPTION

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

SYNTAX

20       The format of the strongswan.conf file consists  of  hierarchical  sec‐
21       tions and a list of key/value pairs in each section. Each section has a
22       name, followed by C-Style curly brackets  defining  the  section  body.
23       Each section body contains a set of subsections and key/value pairs:
24
25            settings := (section|keyvalue)*
26            section  := name { settings }
27            keyvalue := key = value\n
28
29       Values must be terminated by a newline.
30
31       Comments are possible using the #-character.
32
33       Section names and keys may contain any printable character except:
34
35            . , : { } = " # \n \t space
36
37       An example file in this format might look like this:
38
39            a = b
40            section-one {
41                 somevalue = asdf
42                 subsection {
43                      othervalue = xxx
44                 }
45                 # yei, a comment
46                 yetanother = zz
47            }
48            section-two {
49                 x = 12
50            }
51
52       Indentation is optional, you may use tabs or spaces.
53
54
55

REFERENCING OTHER SECTIONS

57       It  is  possible to inherit settings and sections from another section.
58       This feature is mainly useful in swanctl.conf (which uses the same file
59       format).  The syntax is as follows:
60
61            section    := name : references { settings }
62            references := absname[, absname]*
63            absname    := name[.name]*
64
65       All key/value pairs and all subsections of the referenced sections will
66       be inherited by the section that references  them  via  their  absolute
67       name.  Values  may  be overridden in the section or any of its sub-sec‐
68       tions (use an empty assignment to clear a value so its  default  value,
69       if  any,  will apply). It is currently not possible to limit the inclu‐
70       sion level or clear/remove inherited sub-sections.
71
72       If the order is important (e.g. for auth rounds  in  a  connection,  if
73       round is not used), it should be noted that inherited settings/sections
74       will follow those defined in the current section (if multiple  sections
75       are referenced, their settings are enumerated left to right).
76
77       References  are  evaluated dynamically at runtime, so referring to sec‐
78       tions later in the config file or included via other files is no  prob‐
79       lem.
80
81       Here is an example of how this might look like:
82
83            conn-defaults {
84                 # default settings for all conns (e.g. a cert, or IP pools)
85            }
86            eap-defaults {
87                 # defaults if eap is used (e.g. a remote auth round)
88            }
89            child-defaults {
90                 # defaults for child configs (e.g. traffic selectors)
91            }
92            connections {
93                 conn-a : conn-defaults, eap-defaults {
94                      # set/override stuff specific to this connection
95                      children {
96                           child-a : child-defaults {
97                                # set/override stuff specific to this child
98                           }
99                      }
100                 }
101                 conn-b : conn-defaults {
102                      # set/override stuff specific to this connection
103                      children {
104                           child-b : child-defaults {
105                                # set/override stuff specific to this child
106                           }
107                      }
108                 }
109                 conn-c : connections.conn-a {
110                      # everything is inherited, including everything conn-a
111                      # already inherits from the sections it and its
112                      # sub-section reference
113                 }
114            }
115

INCLUDING FILES

117       Using  the include statement it is possible to include other files into
118       strongswan.conf, e.g.
119
120            include /some/path/*.conf
121
122       If the file name is not an absolute path, it is considered to be  rela‐
123       tive to the directory of the file containing the include statement. The
124       file name may include shell wildcards (see sh(1)).  Also,  such  inclu‐
125       sions can be nested.
126
127       Sections  loaded from included files extend previously loaded sections;
128       already existing values are replaced.  It is  important  to  note  that
129       settings are added relative to the section the include statement is in.
130
131       As  an example, the following three files result in the same final con‐
132       fig as the one given above:
133
134            a = b
135            section-one {
136                 somevalue = before include
137                 include include.conf
138            }
139            include other.conf
140
141       include.conf:
142            # settings loaded from this file are added to section-one
143            # the following replaces the previous value
144            somevalue = asdf
145            subsection {
146                 othervalue = yyy
147            }
148            yetanother = zz
149
150       other.conf:
151            # this extends section-one and subsection
152            section-one {
153                 subsection {
154                      # this replaces the previous value
155                      othervalue = xxx
156                 }
157            }
158            section-two {
159                 x = 12
160            }
161
162

READING VALUES

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

DEFINED KEYS

170       The following keys are currently  defined  (using  dot  notation).  The
171       default value (if any) is listed in brackets after the key.
172
173       aikgen.load []
174              Plugins to load in ipsec aikgen tool.
175
176
177       attest.database []
178              File  measurement  information  database  URI.  If it contains a
179              password, make sure to adjust the permissions of the config file
180              accordingly.
181
182
183       attest.load []
184              Plugins to load in ipsec attest tool.
185
186
187       charon
188              Options for the charon IKE daemon.
189
190              Note:  Many  of  the  options  in  this  section  also  apply to
191              charon-cmd and other charon derivatives.  Just use their respec‐
192              tive  name  (e.g.   charon-cmd  instead  of  charon).   For many
193              options defaults can be defined in the libstrongswan section.
194
195
196       charon.accept_unencrypted_mainmode_messages [no]
197              Accept unencrypted ID and HASH payloads in IKEv1 Main Mode.
198
199              Some implementations send the  third  Main  Mode  message  unen‐
200              crypted,  probably  to  find  the  PSKs for the specified ID for
201              authentication. This is very similar to Aggressive Mode, and has
202              the same security implications: A passive attacker can sniff the
203              negotiated Identity, and start brute forcing the PSK  using  the
204              HASH payload.
205
206              It  is  recommended  to  keep this option to no, unless you know
207              exactly what the implications are and require  compatibility  to
208              such devices (for example, some SonicWall boxes).
209
210
211       charon.block_threshold [5]
212              Maximum number of half-open IKE_SAs for a single peer IP.
213
214
215       charon.cache_crls [no]
216              Whether  Certificate Revocation Lists (CRLs) fetched via HTTP or
217              LDAP should be saved under a unique file name derived  from  the
218              public    key   of   the   Certification   Authority   (CA)   to
219              /etc/ipsec.d/crls  (stroke)  or   /etc/swanctl/x509crl   (vici),
220              respectively.
221
222
223       charon.cert_cache [yes]
224              Whether  relations  in  validated  certificate  chains should be
225              cached in memory.
226
227
228       charon.cisco_unity [no]
229              Send Cisco Unity vendor ID payload (IKEv1 only).
230
231
232       charon.close_ike_on_child_failure [no]
233              Close the IKE_SA if setup of the CHILD_SA  along  with  IKE_AUTH
234              failed.
235
236
237       charon.cookie_threshold [10]
238              Number of half-open IKE_SAs that activate the cookie mechanism.
239
240
241       charon.crypto_test.bench [no]
242              Benchmark crypto algorithms and order them by efficiency.
243
244
245       charon.crypto_test.bench_size [1024]
246              Buffer size used for crypto benchmark.
247
248
249       charon.crypto_test.bench_time [50]
250              Time  in  ms  during  which crypto algorithm performance is mea‐
251              sured.
252
253
254       charon.crypto_test.on_add [no]
255              Test crypto algorithms during registration (requires  test  vec‐
256              tors provided by the test-vectors plugin).
257
258
259       charon.crypto_test.on_create [no]
260              Test crypto algorithms on each crypto primitive instantiation.
261
262
263       charon.crypto_test.required [no]
264              Strictly  require  at  least  one test vector to enable an algo‐
265              rithm.
266
267
268       charon.crypto_test.rng_true [no]
269              Whether to test  RNG  with  TRUE  quality;  requires  a  lot  of
270              entropy.
271
272
273       charon.delete_rekeyed [no]
274              Delete  CHILD_SAs  right  after  they  got  successfully rekeyed
275              (IKEv1 only). Reduces the number of stale CHILD_SAs in scenarios
276              with a lot of rekeyings. However, this might cause problems with
277              implementations that continue to  use  rekeyed  SAs  until  they
278              expire.
279
280
281       charon.delete_rekeyed_delay [5]
282              Delay  in  seconds  until  inbound  IPsec  SAs are deleted after
283              rekeyings (IKEv2 only). To process delayed packets  the  inbound
284              part of a CHILD_SA is kept installed up to the configured number
285              of seconds after it got replaced during a rekeying. If set to  0
286              the  CHILD_SA  will  be  kept  installed until it expires (if no
287              lifetime is set it will be destroyed immediately).
288
289
290       charon.dh_exponent_ansi_x9_42 [yes]
291              Use ANSI X9.42 DH exponent size or optimum size matched to cryp‐
292              tographic strength.
293
294
295       charon.dlopen_use_rtld_now [no]
296              Use  RTLD_NOW  with  dlopen when loading plugins and IMV/IMCs to
297              reveal missing symbols immediately.
298
299
300       charon.dns1 []
301              DNS server assigned to peer via configuration payload (CP).
302
303
304       charon.dns2 []
305              DNS server assigned to peer via configuration payload (CP).
306
307
308       charon.dos_protection [yes]
309              Enable Denial of Service protection using  cookies  and  aggres‐
310              siveness checks.
311
312
313       charon.ecp_x_coordinate_only [yes]
314              Compliance with the errata for RFC 4753.
315
316
317       charon.filelog
318              Section  to  define  file  loggers,  see LOGGER CONFIGURATION in
319              strongswan.conf(5).
320
321
322
323       charon.filelog.<name>
324              <name> may be the full path to the log file if it only  contains
325              characters  permitted  in  section  names. Is ignored if path is
326              specified.
327
328
329       charon.filelog.<name>.<subsystem> [<default>]
330              Loglevel for a specific subsystem.
331
332
333       charon.filelog.<name>.append [yes]
334              If this option is enabled log entries are appended to the exist‐
335              ing file.
336
337
338       charon.filelog.<name>.default [1]
339              Specifies  the  default  loglevel  to be used for subsystems for
340              which no specific loglevel is defined.
341
342
343       charon.filelog.<name>.flush_line [no]
344              Enabling this option disables block buffering and  enables  line
345              buffering.
346
347
348       charon.filelog.<name>.ike_name [no]
349              Prefix  each  log  entry  with  the connection name and a unique
350              numerical identifier for each IKE_SA.
351
352
353       charon.filelog.<name>.path []
354              Optional path to the log file. Overrides the section name.  Must
355              be  used  if the path contains characters that aren't allowed in
356              section names.
357
358
359       charon.filelog.<name>.time_add_ms [no]
360              Adds the milliseconds within the current second after the  time‐
361              stamp  (separated by a dot, so time_format should end with %S or
362              %T).
363
364
365       charon.filelog.<name>.time_format []
366              Prefix each log entry with a timestamp.  The  option  accepts  a
367              format string as passed to strftime(3).
368
369
370
371       charon.flush_auth_cfg [no]
372              If  enabled  objects  used  during authentication (certificates,
373              identities etc.)  are released to free memory once an IKE_SA  is
374              established.  Enabling  this  might  conflict  with plugins that
375              later need access to e.g. the used certificates.
376
377
378       charon.follow_redirects [yes]
379              Whether to follow IKEv2 redirects (RFC 5685).
380
381
382       charon.fragment_size [1280]
383              Maximum size (complete IP datagram size in bytes) of a sent  IKE
384              fragment  when  using  proprietary  IKEv1  or standardized IKEv2
385              fragmentation, defaults to 1280 (use 0 for address  family  spe‐
386              cific  default  values,  which uses a lower value for IPv4).  If
387              specified this limit is used for both IPv4 and IPv6.
388
389
390       charon.group []
391              Name of the group the daemon changes to after startup.
392
393
394       charon.half_open_timeout [30]
395              Timeout in seconds for connecting IKE_SAs (also see  IKE_SA_INIT
396              DROPPING).
397
398
399       charon.hash_and_url [no]
400              Enable hash and URL support.
401
402
403       charon.host_resolver.max_threads [3]
404              Maximum  number  of concurrent resolver threads (they are termi‐
405              nated if unused).
406
407
408       charon.host_resolver.min_threads [0]
409              Minimum number of resolver threads to keep around.
410
411
412       charon.i_dont_care_about_security_and_use_aggressive_mode_psk [no]
413              If enabled responders are allowed to use IKEv1  Aggressive  Mode
414              with  pre-shared keys, which is discouraged due to security con‐
415              cerns (offline attacks on the openly  transmitted  hash  of  the
416              PSK).
417
418
419       charon.ignore_acquire_ts [no]
420              If  this  is  disabled  the  traffic selectors from the kernel's
421              acquire events, which are derived from  the  triggering  packet,
422              are  prepended  to  the traffic selectors from the configuration
423              for IKEv2 connection. By enabling this,  such  specific  traffic
424              selectors  will  be ignored and only the ones in the config will
425              be sent. This always happens for IKEv1 connections as the proto‐
426              col only supports one set of traffic selectors per CHILD_SA.
427
428
429       charon.ignore_routing_tables []
430              A  space-separated  list  of  routing tables to be excluded from
431              route lookups.
432
433
434       charon.ikesa_limit [0]
435              Maximum number of IKE_SAs that can be established  at  the  same
436              time before new connection attempts are blocked.
437
438
439       charon.ikesa_table_segments [1]
440              Number of exclusively locked segments in the hash table.
441
442
443       charon.ikesa_table_size [1]
444              Size of the IKE_SA hash table.
445
446
447       charon.imcv
448              Defaults  for  options  in this section can be configured in the
449              libimcv section.
450
451
452       charon.imcv.assessment_result [yes]
453              Whether IMVs send a standard IETF Assessment Result attribute.
454
455
456       charon.imcv.database []
457              Global IMV policy database URI. If it contains a password,  make
458              sure to adjust the permissions of the config file accordingly.
459
460
461       charon.imcv.os_info.default_password_enabled [no]
462              Manually set whether a default password is enabled
463
464
465       charon.imcv.os_info.name []
466              Manually set the name of the client OS (e.g. Ubuntu).
467
468
469       charon.imcv.os_info.version []
470              Manually set the version of the client OS (e.g. 12.04 i686).
471
472
473       charon.imcv.policy_script [ipsec _imv_policy]
474              Script called for each TNC connection to generate IMV policies.
475
476
477       charon.inactivity_close_ike [no]
478              Whether to close IKE_SA if the only CHILD_SA closed due to inac‐
479              tivity.
480
481
482       charon.init_limit_half_open [0]
483              Limit new connections based on the current number of  half  open
484              IKE_SAs, see IKE_SA_INIT DROPPING in strongswan.conf(5).
485
486
487
488       charon.init_limit_job_load [0]
489              Limit  new  connections  based  on  the number of jobs currently
490              queued for processing (see IKE_SA_INIT DROPPING).
491
492
493       charon.initiator_only [no]
494              Causes charon daemon to ignore IKE initiation requests.
495
496
497       charon.install_routes [yes]
498              Install routes into a separate  routing  table  for  established
499              IPsec tunnels.
500
501
502       charon.install_virtual_ip [yes]
503              Install virtual IP addresses.
504
505
506       charon.install_virtual_ip_on []
507              The  name  of the interface on which virtual IP addresses should
508              be installed. If not specified the addresses will  be  installed
509              on the outbound interface.
510
511
512       charon.integrity_test [no]
513              Check daemon, libstrongswan and plugin integrity at startup.
514
515
516       charon.interfaces_ignore []
517              A  comma-separated  list  of  network  interfaces that should be
518              ignored, if interfaces_use  is  specified  this  option  has  no
519              effect.
520
521
522       charon.interfaces_use []
523              A comma-separated list of network interfaces that should be used
524              by charon. All other interfaces are ignored.
525
526
527       charon.keep_alive [20s]
528              NAT keep alive interval.
529
530
531       charon.leak_detective.detailed [yes]
532              Includes source file names and line numbers  in  leak  detective
533              output.
534
535
536       charon.leak_detective.usage_threshold [10240]
537              Threshold in bytes for leaks to be reported (0 to report all).
538
539
540       charon.leak_detective.usage_threshold_count [0]
541              Threshold  in  number of allocations for leaks to be reported (0
542              to report all).
543
544
545       charon.load []
546              Plugins to load in the IKE daemon charon.
547
548
549       charon.load_modular [no]
550              If enabled, the list of plugins to load is  determined  via  the
551              value of the charon.plugins.<name>.load options.  In addition to
552              a simple boolean flag that option  may  take  an  integer  value
553              indicating  the  priority of a plugin, which would influence the
554              order of a plugin in the plugin list (the default is 1). If  two
555              plugins have the same priority their order in the default plugin
556              list is preserved. Enabled plugins not found in  that  list  are
557              ordered alphabetically before other plugins with the same prior‐
558              ity.
559
560
561       charon.make_before_break [no]
562              Initiate IKEv2 reauthentication with a make-before-break instead
563              of  a  break-before-make scheme. Make-before-break uses overlap‐
564              ping IKE and CHILD_SA during reauthentication by first  recreat‐
565              ing  all new SAs before deleting the old ones. This behavior can
566              be beneficial to avoid connectivity  gaps  during  reauthentica‐
567              tion,  but  requires  support  for  overlapping SAs by the peer.
568              strongSwan can handle such overlapping SAs since version 5.3.0.
569
570
571       charon.max_ikev1_exchanges [3]
572              Maximum number of IKEv1 phase 2 exchanges  per  IKE_SA  to  keep
573              state about and track concurrently.
574
575
576       charon.max_packet [10000]
577              Maximum packet size accepted by charon.
578
579
580       charon.multiple_authentication [yes]
581              Enable multiple authentication exchanges (RFC 4739).
582
583
584       charon.nbns1 []
585              WINS servers assigned to peer via configuration payload (CP).
586
587
588       charon.nbns2 []
589              WINS servers assigned to peer via configuration payload (CP).
590
591
592       charon.plugin.ha.buflen [2048]
593              Buffer  size  for  received HA messages. For IKEv1 the public DH
594              factors are also transmitted so depending on the DH group the HA
595              messages  can  get  quite  big (the default should be fine up to
596              modp4096).
597
598
599
600       charon.plugins.addrblock.strict [yes]
601              If set to yes, a subject certificate without an addrblock exten‐
602              sion is rejected if the issuer certificate has such an addrblock
603              extension. If set to no, subject certificates issued without the
604              addrblock  extension  are  accepted without any traffic selector
605              checks and no policy is enforced by the plugin.
606
607
608       charon.plugins.android_log.loglevel [1]
609              Loglevel for logging to Android specific logger.
610
611
612       charon.plugins.attr
613              Section to specify arbitrary attributes that are assigned  to  a
614              peer via configuration payload (CP).
615
616
617       charon.plugins.attr.<attr> []
618              <attr>  can be either address, netmask, dns, nbns, dhcp, subnet,
619              split-include, split-exclude or the numeric  identifier  of  the
620              attribute  type. The assigned value can be an IPv4/IPv6 address,
621              a subnet in CIDR notation or an arbitrary value depending on the
622              attribute type.  For some attribute types multiple values may be
623              specified as a comma separated list.
624
625
626       charon.plugins.attr-sql.crash_recovery [yes]
627              Release all online leases during startup.  Disable this to share
628              the DB between multiple VPN gateways.
629
630
631       charon.plugins.attr-sql.database []
632              Database  URI for attr-sql plugin used by charon. If it contains
633              a password, make sure to adjust the permissions  of  the  config
634              file accordingly.
635
636
637       charon.plugins.attr-sql.lease_history [yes]
638              Enable logging of SQL IP pool leases.
639
640
641       charon.plugins.bliss.use_bliss_b [yes]
642              Use the enhanced BLISS-B key generation and signature algorithm.
643
644
645       charon.plugins.bypass-lan.interfaces_ignore []
646              A comma-separated list of network interfaces for which connected
647              subnets should be ignored, if interfaces_use is  specified  this
648              option has no effect.
649
650
651       charon.plugins.bypass-lan.interfaces_use []
652              A comma-separated list of network interfaces for which connected
653              subnets should be considered. All other interfaces are ignored.
654
655
656       charon.plugins.bypass-lan.load [no]
657
658       charon.plugins.certexpire.csv.cron []
659              Cron style string specifying CSV export times.
660
661
662       charon.plugins.certexpire.csv.empty_string []
663              String to use in empty intermediate CA fields.
664
665
666       charon.plugins.certexpire.csv.fixed_fields [yes]
667              Use a fixed intermediate CA field count.
668
669
670       charon.plugins.certexpire.csv.force [yes]
671              Force export of all trustchains we have a private key for.
672
673
674       charon.plugins.certexpire.csv.format [%d:%m:%Y]
675              strftime(3) format string to export expiration dates as.
676
677
678       charon.plugins.certexpire.csv.local []
679              strftime(3) format string for the CSV file name to export  local
680              certificates to.
681
682
683       charon.plugins.certexpire.csv.remote []
684              strftime(3) format string for the CSV file name to export remote
685              certificates to.
686
687
688       charon.plugins.certexpire.csv.separator [,]
689              CSV field separator.
690
691
692       charon.plugins.coupling.file []
693              File to store coupling list to.
694
695
696       charon.plugins.coupling.hash [sha1]
697              Hashing algorithm to fingerprint coupled certificates.
698
699
700       charon.plugins.coupling.max [1]
701              Maximum number of coupling entries to create.
702
703
704       charon.plugins.curl.redir [-1]
705              Maximum number of redirects followed by the plugin, set to 0  to
706              disable following redirects, set to -1 for no limit.
707
708
709       charon.plugins.dhcp.force_server_address [no]
710              Always  use the configured server address. This might be helpful
711              if the DHCP server runs on the same host as strongSwan, and  the
712              DHCP  daemon does not listen on the loopback interface.  In that
713              case  the  server  cannot  be  reached  via  unicast  (or   even
714              255.255.255.255)  as  that would be routed via loopback. Setting
715              this option to yes and configuring the local  broadcast  address
716              (e.g.  192.168.0.255) as server address might work.
717
718
719       charon.plugins.dhcp.identity_lease [no]
720              Derive  user-defined  MAC  address from hash of IKE identity and
721              send client identity DHCP option.
722
723
724       charon.plugins.dhcp.interface []
725              Interface name the  plugin  uses  for  address  allocation.  The
726              default  is  to  bind to any (0.0.0.0) and let the system decide
727              which way to route the packets to the DHCP server.
728
729
730       charon.plugins.dhcp.server [255.255.255.255]
731              DHCP server unicast or broadcast IP address.
732
733
734       charon.plugins.dhcp.use_server_port [no]
735              Use the DHCP server port (67) as source  port,  instead  of  the
736              DHCP  client port (68), when a unicast server address is config‐
737              ured and the plugin acts as relay agent.  When replying in  this
738              mode the DHCP server will always send packets to the DHCP server
739              port and if no process binds that port an ICMP port unreachables
740              will  be  sent  back,  which  might be problematic for some DHCP
741              servers.  To avoid that, enabling this  option  will  cause  the
742              plugin  to  bind  the DHCP server port to send its requests when
743              acting as relay agent. This is not necessary if a DHCP server is
744              already  running on the same host and might even cause conflicts
745              (and since the server port is already bound, ICMPs should not be
746              an issue).
747
748
749       charon.plugins.dnscert.enable [no]
750              Enable fetching of CERT RRs via DNS.
751
752
753       charon.plugins.duplicheck.enable [yes]
754              Enable duplicheck plugin (if loaded).
755
756
757       charon.plugins.duplicheck.socket [unix://${piddir}/charon.dck]
758              Socket provided by the duplicheck plugin.
759
760
761       charon.plugins.eap-aka.request_identity [yes]
762
763       charon.plugins.eap-aka-3gpp.seq_check []
764              Enable to activate sequence check of the AKA SQN values in order
765              to trigger resync cycles.
766
767
768       charon.plugins.eap-aka-3gpp2.seq_check []
769              Enable to activate sequence check of the AKA SQN values in order
770              to trigger resync cycles.
771
772
773       charon.plugins.eap-dynamic.prefer_user [no]
774              If  enabled  the EAP methods proposed in an EAP-Nak message sent
775              by the peer are preferred over the methods registered locally.
776
777
778       charon.plugins.eap-dynamic.preferred []
779              The preferred EAP method(s) to be used.  If it is not given  the
780              first registered method will be used initially.  If a comma sep‐
781              arated list is given the methods are tried in  the  given  order
782              before trying the rest of the registered methods.
783
784
785       charon.plugins.eap-gtc.backend [pam]
786              XAuth backend to be used for credential verification.
787
788
789       charon.plugins.eap-peap.fragment_size [1024]
790              Maximum size of an EAP-PEAP packet.
791
792
793       charon.plugins.eap-peap.include_length [no]
794              Include length in non-fragmented EAP-PEAP packets.
795
796
797       charon.plugins.eap-peap.max_message_count [32]
798              Maximum number of processed EAP-PEAP packets (0 = no limit).
799
800
801       charon.plugins.eap-peap.phase2_method [mschapv2]
802              Phase2 EAP client authentication method.
803
804
805       charon.plugins.eap-peap.phase2_piggyback [no]
806              Phase2  EAP Identity request piggybacked by server onto TLS Fin‐
807              ished message.
808
809
810       charon.plugins.eap-peap.phase2_tnc [no]
811              Start phase2 EAP TNC protocol after successful client  authenti‐
812              cation.
813
814
815       charon.plugins.eap-peap.request_peer_auth [no]
816              Request peer authentication based on a client certificate.
817
818
819       charon.plugins.eap-radius.accounting [no]
820              Send RADIUS accounting information to RADIUS servers.
821
822
823       charon.plugins.eap-radius.accounting_close_on_timeout [yes]
824              Close  the  IKE_SA  if  there is a timeout during interim RADIUS
825              accounting updates.
826
827
828       charon.plugins.eap-radius.accounting_interval [0]
829              Interval in seconds for interim RADIUS  accounting  updates,  if
830              not specified by the RADIUS server in the Access-Accept message.
831
832
833       charon.plugins.eap-radius.accounting_requires_vip [no]
834              If enabled, accounting is disabled unless an IKE_SA has at least
835              one virtual IP.  Only for IKEv2,  for  IKEv1  a  virtual  IP  is
836              strictly necessary.
837
838
839       charon.plugins.eap-radius.accounting_send_class [no]
840              If  enabled, adds the Class attributes received in Access-Accept
841              message to the RADIUS accounting messages.
842
843
844       charon.plugins.eap-radius.class_group [no]
845              Use the class attribute sent in  the  RADIUS-Accept  message  as
846              group  membership  information  that  is  compared to the groups
847              specified in the rightgroups option in ipsec.conf(5).
848
849
850
851       charon.plugins.eap-radius.close_all_on_timeout [no]
852              Closes all IKE_SAs if communication with the RADIUS server times
853              out. If it is not set only the current IKE_SA is closed.
854
855
856       charon.plugins.eap-radius.dae.enable [no]
857              Enables  support  for  the  Dynamic Authorization Extension (RFC
858              5176).
859
860
861       charon.plugins.eap-radius.dae.listen [0.0.0.0]
862              Address to listen for DAE messages from the RADIUS server.
863
864
865       charon.plugins.eap-radius.dae.port [3799]
866              Port to listen for DAE requests.
867
868
869       charon.plugins.eap-radius.dae.secret []
870              Shared secret used to verify/sign DAE  messages.  If  set,  make
871              sure to adjust the permissions of the config file accordingly.
872
873
874       charon.plugins.eap-radius.eap_start [no]
875              Send EAP-Start instead of EAP-Identity to start RADIUS conversa‐
876              tion.
877
878
879       charon.plugins.eap-radius.filter_id [no]
880              If the RADIUS tunnel_type attribute with value ESP is  received,
881              use the filter_id attribute sent in the RADIUS-Accept message as
882              group membership information that  is  compared  to  the  groups
883              specified in the rightgroups option in ipsec.conf(5).
884
885
886
887       charon.plugins.eap-radius.forward.ike_to_radius []
888              RADIUS  attributes  to be forwarded from IKEv2 to RADIUS (can be
889              defined by name or attribute number, a  colon  can  be  used  to
890              specify  vendor-specific  attributes, e.g. Reply-Message, or 11,
891              or 36906:12).
892
893
894       charon.plugins.eap-radius.forward.radius_to_ike []
895              Same as charon.plugins.eap-radius.forward.ike_to_radius but from
896              RADIUS to IKEv2, a strongSwan specific private notify (40969) is
897              used to transmit the attributes.
898
899
900       charon.plugins.eap-radius.id_prefix []
901              Prefix to EAP-Identity, some AAA servers use a  IMSI  prefix  to
902              select the EAP method.
903
904
905       charon.plugins.eap-radius.nas_identifier [strongSwan]
906              NAS-Identifier to include in RADIUS messages.
907
908
909       charon.plugins.eap-radius.port [1812]
910              Port of RADIUS server (authentication).
911
912
913       charon.plugins.eap-radius.retransmit_base [1.4]
914              Base to use for calculating exponential back off.
915
916
917       charon.plugins.eap-radius.retransmit_timeout [2.0]
918              Timeout in seconds before sending first retransmit.
919
920
921       charon.plugins.eap-radius.retransmit_tries [4]
922              Number of times to retransmit a packet before giving up.
923
924
925       charon.plugins.eap-radius.secret []
926              Shared  secret  between  RADIUS  and  NAS.  If set, make sure to
927              adjust the permissions of the config file accordingly.
928
929
930       charon.plugins.eap-radius.server []
931              IP/Hostname of RADIUS server.
932
933
934       charon.plugins.eap-radius.servers
935              Section to specify multiple RADIUS servers. The  nas_identifier,
936              secret, sockets and port (or auth_port) options can be specified
937              for each server. A server's IP/Hostname can be configured  using
938              the  address option.  The acct_port [1813] option can be used to
939              specify the port used for RADIUS  accounting.  For  each  RADIUS
940              server  a  priority  can  be  specified using the preference [0]
941              option. The retransmission time for  each  server  can  set  set
942              using retransmit_base, retransmit_timeout and retransmit_tries.
943
944
945
946       charon.plugins.eap-radius.sockets [1]
947              Number of sockets (ports) to use, increase for high load.
948
949
950       charon.plugins.eap-radius.station_id_with_port [yes]
951              Whether  to include the UDP port in the Called- and Calling-Sta‐
952              tion-Id RADIUS attributes.
953
954
955       charon.plugins.eap-radius.xauth
956              Section to configure multiple XAuth  authentication  rounds  via
957              RADIUS. The subsections define so called authentication profiles
958              with arbitrary names. In each profile section one or more  XAuth
959              types can be configured, with an assigned message. For each type
960              a separate XAuth exchange will be initiated and all replies  get
961              concatenated  into  the User-Password attribute, which then gets
962              verified over RADIUS.
963
964              Available XAuth  types  are  password,  passcode,  nextpin,  and
965              answer.   This  type  is  not  relevant to strongSwan or the AAA
966              server, but the client may show a different dialog  (along  with
967              the configured message).
968
969              To  use  the  configured profiles, they have to be configured in
970              the respective connection in ipsec.conf(5) by appending the pro‐
971              file  name,  separated  by  a  colon, to the xauth-radius XAauth
972              backend configuration in rightauth or rightauth2, for  instance,
973              rightauth2=xauth-radius:profile.
974
975
976
977       charon.plugins.eap-sim.request_identity [yes]
978
979       charon.plugins.eap-simaka-sql.database []
980
981       charon.plugins.eap-simaka-sql.remove_used [no]
982
983       charon.plugins.eap-tls.fragment_size [1024]
984              Maximum size of an EAP-TLS packet.
985
986
987       charon.plugins.eap-tls.include_length [yes]
988              Include length in non-fragmented EAP-TLS packets.
989
990
991       charon.plugins.eap-tls.max_message_count [32]
992              Maximum number of processed EAP-TLS packets (0 = no limit).
993
994
995       charon.plugins.eap-tnc.max_message_count [10]
996              Maximum number of processed EAP-TNC packets (0 = no limit).
997
998
999       charon.plugins.eap-tnc.protocol [tnccs-2.0]
1000              IF-TNCCS  protocol  version  to  be  used (tnccs-1.1, tnccs-2.0,
1001              tnccs-dynamic).
1002
1003
1004
1005       charon.plugins.eap-ttls.fragment_size [1024]
1006              Maximum size of an EAP-TTLS packet.
1007
1008
1009       charon.plugins.eap-ttls.include_length [yes]
1010              Include length in non-fragmented EAP-TTLS packets.
1011
1012
1013       charon.plugins.eap-ttls.max_message_count [32]
1014              Maximum number of processed EAP-TTLS packets (0 = no limit).
1015
1016
1017       charon.plugins.eap-ttls.phase2_method [md5]
1018              Phase2 EAP client authentication method.
1019
1020
1021       charon.plugins.eap-ttls.phase2_piggyback [no]
1022              Phase2 EAP Identity request piggybacked by server onto TLS  Fin‐
1023              ished message.
1024
1025
1026       charon.plugins.eap-ttls.phase2_tnc [no]
1027              Start  phase2 EAP TNC protocol after successful client authenti‐
1028              cation.
1029
1030
1031       charon.plugins.eap-ttls.phase2_tnc_method [pt]
1032              Phase2 EAP TNC transport protocol (pt as IETF standard or legacy
1033              tnc)
1034
1035
1036
1037       charon.plugins.eap-ttls.request_peer_auth [no]
1038              Request peer authentication based on a client certificate.
1039
1040
1041       charon.plugins.error-notify.socket [unix://${piddir}/charon.enfy]
1042              Socket provided by the error-notify plugin.
1043
1044
1045       charon.plugins.ext-auth.script []
1046              Command  to  pass  to  the  system shell for peer authorization.
1047              Authorization is considered successful if the  command  executes
1048              normally  with  an  exit  code of zero. For all other exit codes
1049              IKE_SA authorization is rejected.
1050
1051              The following environment variables get passed  to  the  script:
1052              IKE_UNIQUE_ID:   The   IKE_SA   numerical   unique   identifier.
1053              IKE_NAME:    The    peer    configuration    connection    name.
1054              IKE_LOCAL_HOST:  Local  IKE IP address.  IKE_REMOTE_HOST: Remote
1055              IKE   IP   address.    IKE_LOCAL_ID:   Local    IKE    identity.
1056              IKE_REMOTE_ID:  Remote  IKE identity.  IKE_REMOTE_EAP_ID: Remote
1057              EAP or XAuth identity, if used.
1058
1059
1060       charon.plugins.forecast.groups
1061       [224.0.0.1,224.0.0.22,224.0.0.251,224.0.0.252,239.255.255.250]
1062              Comma  separated  list  of multicast groups to join locally. The
1063              local host receives and forwards packets in the  local  LAN  for
1064              joined multicast groups only.  Packets matching the list of mul‐
1065              ticast groups get forwarded to connected  clients.  The  default
1066              group   includes   host   multicasts,   IGMP,  mDNS,  LLMNR  and
1067              SSDP/WS-Discovery, and is usually  a  good  choice  for  Windows
1068              clients.
1069
1070
1071       charon.plugins.forecast.interface []
1072              Name of the local interface to listen for broadcasts messages to
1073              forward. If no interface is configured, the first usable  inter‐
1074              face is used, which is usually just fine for single-homed hosts.
1075              If your host has multiple interfaces, set  this  option  to  the
1076              local LAN interface you want to forward broadcasts from/to.
1077
1078
1079       charon.plugins.forecast.reinject []
1080              Comma  separated  list of CHILD_SA configuration names for which
1081              to perform multi/broadcast reinjection. For  clients  connecting
1082              over such a configuration, any multi/broadcast received over the
1083              tunnel gets reinjected to all active  tunnels.  This  makes  the
1084              broadcasts  visible  to  other  peers,  and  for examples allows
1085              clients to see others shares. If disabled, multi/broadcast  mes‐
1086              sages  received  over a tunnel are injected to the local network
1087              only, but not to other IPsec clients.
1088
1089
1090       charon.plugins.gcrypt.quick_random [no]
1091              Use faster random numbers in gcrypt; for testing only,  produces
1092              weak keys!
1093
1094
1095       charon.plugins.ha.autobalance [0]
1096              Interval  in  seconds  to automatically balance handled segments
1097              between nodes. Set to 0 to disable.
1098
1099
1100       charon.plugins.ha.fifo_interface [yes]
1101
1102       charon.plugins.ha.heartbeat_delay [1000]
1103
1104       charon.plugins.ha.heartbeat_timeout [2100]
1105
1106       charon.plugins.ha.local []
1107
1108       charon.plugins.ha.monitor [yes]
1109
1110       charon.plugins.ha.pools []
1111
1112       charon.plugins.ha.remote []
1113
1114       charon.plugins.ha.resync [yes]
1115
1116       charon.plugins.ha.secret []
1117
1118       charon.plugins.ha.segment_count [1]
1119
1120       charon.plugins.ipseckey.enable [no]
1121              Enable fetching of IPSECKEY RRs via DNS.
1122
1123
1124       charon.plugins.kernel-libipsec.allow_peer_ts [no]
1125              Allow that the remote traffic selector equals the IKE peer.  The
1126              route  installed  for such traffic (via TUN device) usually pre‐
1127              vents further IKE traffic.  The  fwmark  options  for  the  ker‐
1128              nel-netlink and socket-default plugins can be used to circumvent
1129              that problem.
1130
1131
1132       charon.plugins.kernel-netlink.buflen [<min(PAGE_SIZE, 8192)>]
1133              Buffer size for received Netlink messages.
1134
1135
1136       charon.plugins.kernel-netlink.force_receive_buffer_size [no]
1137              If the maximum Netlink socket receive buffer  in  bytes  set  by
1138              receive_buffer_size   exceeds   the   system-wide  maximum  from
1139              /proc/sys/net/core/rmem_max, this option can be used to override
1140              the  limit.   Enabling  this  option requires special privileges
1141              (CAP_NET_ADMIN).
1142
1143
1144       charon.plugins.kernel-netlink.fwmark []
1145              Firewall mark to set on the routing rule that directs traffic to
1146              our  routing  table.  The  format  is  [!]mark[/mask], where the
1147              optional exclamation mark inverts the  meaning  (i.e.  the  rule
1148              only applies to packets that don't match the mark).
1149
1150
1151       charon.plugins.kernel-netlink.ignore_retransmit_errors [no]
1152              Whether  to  ignore errors potentially resulting from a retrans‐
1153              mission.
1154
1155
1156       charon.plugins.kernel-netlink.mss [0]
1157              MSS to set on installed routes, 0 to disable.
1158
1159
1160       charon.plugins.kernel-netlink.mtu [0]
1161              MTU to set on installed routes, 0 to disable.
1162
1163
1164       charon.plugins.kernel-netlink.parallel_route [no]
1165              Whether to perform concurrent Netlink ROUTE queries on a  single
1166              socket.  While  parallel  queries can improve throughput, it has
1167              more overhead. On vanilla Linux, DUMP queries  fail  with  EBUSY
1168              and must be retried, further decreasing performance.
1169
1170
1171       charon.plugins.kernel-netlink.parallel_xfrm [no]
1172              Whether  to  perform concurrent Netlink XFRM queries on a single
1173              socket.
1174
1175
1176       charon.plugins.kernel-netlink.policy_update [no]
1177              Whether to always use XFRM_MSG_UPDPOLICY to install policies.
1178
1179
1180       charon.plugins.kernel-netlink.port_bypass [no]
1181              Whether to use port or socket based IKE  XFRM  bypass  policies.
1182              IKE  bypass  policies  are  used to exempt IKE traffic from XFRM
1183              processing. The default socket based policies are directly  tied
1184              to  the  IKE  UDP  sockets,  port based policies use global XFRM
1185              bypass policies for the used IKE UDP ports.
1186
1187
1188       charon.plugins.kernel-netlink.process_rules [no]
1189              Whether to process changes in  routing  rules  to  trigger  roam
1190              events.  This is currently only useful if the kernel based route
1191              lookup is used (i.e. if route installation  is  disabled  or  an
1192              inverted fwmark match is configured).
1193
1194
1195       charon.plugins.kernel-netlink.receive_buffer_size [0]
1196              Maximum  Netlink socket receive buffer in bytes. This value con‐
1197              trols how many bytes of Netlink messages can be  received  on  a
1198              Netlink    socket.    The    default    value    is    set    by
1199              /proc/sys/net/core/rmem_default.  The  specified  value   cannot
1200              exceed the system-wide maximum from /proc/sys/net/core/rmem_max,
1201              unless force_receive_buffer_size is enabled.
1202
1203
1204       charon.plugins.kernel-netlink.retries [0]
1205              Number of Netlink message retransmissions to send on timeout.
1206
1207
1208       charon.plugins.kernel-netlink.roam_events [yes]
1209              Whether to trigger roam events  when  interfaces,  addresses  or
1210              routes change.
1211
1212
1213       charon.plugins.kernel-netlink.set_proto_port_transport_sa [no]
1214              Whether  to  set protocol and ports in the selector installed on
1215              transport mode IPsec SAs in the kernel. While doing so  enforces
1216              policies for inbound traffic, it also prevents the use of a sin‐
1217              gle IPsec SA by more than one traffic selector.
1218
1219
1220       charon.plugins.kernel-netlink.spdh_thresh
1221              XFRM policy hashing threshold configuration for IPv4 and IPv6.
1222
1223              The section defines hashing thresholds to configure in the  ker‐
1224              nel during daemon startup. Each address family takes a threshold
1225              for the local subnet of an IPsec policy  (src  in  out-policies,
1226              dst  in  in- and forward-policies) and the remote subnet (dst in
1227              out-policies, src in in- and forward-policies).
1228
1229              If the subnet has more or equal net bits than the threshold, the
1230              first  threshold bits are used to calculate a hash to lookup the
1231              policy.
1232
1233              Policy hashing thresholds are not supported  before  Linux  3.18
1234              and might conflict with socket policies before Linux 4.8.
1235
1236
1237       charon.plugins.kernel-netlink.spdh_thresh.ipv4.lbits [32]
1238              Local subnet XFRM policy hashing threshold for IPv4.
1239
1240
1241       charon.plugins.kernel-netlink.spdh_thresh.ipv4.rbits [32]
1242              Remote subnet XFRM policy hashing threshold for IPv4.
1243
1244
1245       charon.plugins.kernel-netlink.spdh_thresh.ipv6.lbits [128]
1246              Local subnet XFRM policy hashing threshold for IPv6.
1247
1248
1249       charon.plugins.kernel-netlink.spdh_thresh.ipv6.rbits [128]
1250              Remote subnet XFRM policy hashing threshold for IPv6.
1251
1252
1253       charon.plugins.kernel-netlink.timeout [0]
1254              Netlink message retransmission timeout, 0 to disable retransmis‐
1255              sions.
1256
1257
1258       charon.plugins.kernel-netlink.xfrm_acq_expires [165]
1259              Lifetime of XFRM acquire state created by the kernel when  traf‐
1260              fic   matches   a   trap  policy.  The  value  gets  written  to
1261              /proc/sys/net/core/xfrm_acq_expires.   Indirectly  controls  the
1262              delay  between XFRM acquire messages triggered by the kernel for
1263              a trap policy. The same value is used as timeout for SPIs  allo‐
1264              cated  by  the  kernel.  The  default  value  equals  the  total
1265              retransmission timeout for IKE messages, see  IKEv2  RETRANSMIS‐
1266              SION in strongswan.conf(5).
1267
1268
1269
1270       charon.plugins.kernel-pfkey.events_buffer_size [0]
1271              Size  of  the receive buffer for the event socket (0 for default
1272              size). Because events  are  received  asynchronously  installing
1273              e.g.  lots  of  policies  may  require  a larger buffer than the
1274              default on certain platforms in order to receive all messages.
1275
1276
1277       charon.plugins.kernel-pfkey.route_via_internal [no]
1278              Whether to use the internal or external interface  in  installed
1279              routes.  The  internal interface is the one where the IP address
1280              contained in the local traffic selector is located, the external
1281              interface  is  the one over which the destination address of the
1282              IPsec tunnel can be reached. This is not relevant if virtual IPs
1283              are  used,  for which a TUN device is created that's used in the
1284              routes.
1285
1286
1287       charon.plugins.kernel-pfroute.vip_wait [1000]
1288              Time in ms to wait until virtual IP  addresses  appear/disappear
1289              before failing.
1290
1291
1292       charon.plugins.led.activity_led []
1293
1294       charon.plugins.led.blink_time [50]
1295
1296       charon.plugins.load-tester
1297              Section  to  configure the load-tester plugin, see LOAD TESTS in
1298              strongswan.conf(5) for details.
1299
1300
1301       charon.plugins.load-tester.addrs
1302              Section that contains key/value pairs  with  address  pools  (in
1303              CIDR notation) to use for a specific network interface e.g. eth0
1304              = 10.10.0.0/16.
1305
1306
1307       charon.plugins.load-tester.addrs_keep [no]
1308              Whether to keep dynamic addresses even after the  associated  SA
1309              got terminated.
1310
1311
1312       charon.plugins.load-tester.addrs_prefix [16]
1313              Network  prefix length to use when installing dynamic addresses.
1314              If set to -1 the full address is used (i.e. 32 or 128).
1315
1316
1317       charon.plugins.load-tester.ca_dir []
1318              Directory to load (intermediate) CA certificates from.
1319
1320
1321       charon.plugins.load-tester.child_rekey [600]
1322              Seconds to start CHILD_SA rekeying after setup.
1323
1324
1325       charon.plugins.load-tester.crl []
1326              URI to a CRL to include as  certificate  distribution  point  in
1327              generated certificates.
1328
1329
1330       charon.plugins.load-tester.delay [0]
1331              Delay between initiatons for each thread.
1332
1333
1334       charon.plugins.load-tester.delete_after_established [no]
1335              Delete an IKE_SA as soon as it has been established.
1336
1337
1338       charon.plugins.load-tester.digest [sha1]
1339              Digest algorithm used when issuing certificates.
1340
1341
1342       charon.plugins.load-tester.dpd_delay [0]
1343              DPD delay to use in load test.
1344
1345
1346       charon.plugins.load-tester.dynamic_port [0]
1347              Base  port to be used for requests (each client uses a different
1348              port).
1349
1350
1351       charon.plugins.load-tester.eap_password [default-pwd]
1352              EAP secret to use in load test.
1353
1354
1355       charon.plugins.load-tester.enable [no]
1356              Enable the load testing  plugin.   WARNING:  Never  enable  this
1357              plugin  on productive systems. It provides preconfigured creden‐
1358              tials and allows an attacker to authenticate as any user.
1359
1360
1361       charon.plugins.load-tester.esp [aes128-sha1]
1362              CHILD_SA proposal to use for load tests.
1363
1364
1365       charon.plugins.load-tester.fake_kernel [no]
1366              Fake the kernel interface to allow load-testing against self.
1367
1368
1369       charon.plugins.load-tester.ike_rekey [0]
1370              Seconds to start IKE_SA rekeying after setup.
1371
1372
1373       charon.plugins.load-tester.init_limit [0]
1374              Global limit of concurrently established SAs during load test.
1375
1376
1377       charon.plugins.load-tester.initiator [0.0.0.0]
1378              Address to initiate from.
1379
1380
1381       charon.plugins.load-tester.initiator_auth [pubkey]
1382              Authentication method(s) the intiator uses.
1383
1384
1385       charon.plugins.load-tester.initiator_id []
1386              Initiator ID used in load test.
1387
1388
1389       charon.plugins.load-tester.initiator_match []
1390              Initiator ID to match against as responder.
1391
1392
1393       charon.plugins.load-tester.initiator_tsi []
1394              Traffic selector on initiator side, as proposed by initiator.
1395
1396
1397       charon.plugins.load-tester.initiator_tsr []
1398              Traffic selector on responder side, as proposed by initiator.
1399
1400
1401       charon.plugins.load-tester.initiators [0]
1402              Number of concurrent initiator threads to use in load test.
1403
1404
1405       charon.plugins.load-tester.issuer_cert []
1406              Path to the issuer certificate (if not configured  a  hard-coded
1407              default value is used).
1408
1409
1410       charon.plugins.load-tester.issuer_key []
1411              Path  to  private key that is used to issue certificates (if not
1412              configured a hard-coded default value is used).
1413
1414
1415       charon.plugins.load-tester.iterations [1]
1416              Number of IKE_SAs to initiate by each initiator in load test.
1417
1418
1419       charon.plugins.load-tester.mode [tunnel]
1420              IPsec mode to use, one of tunnel, transport, or beet.
1421
1422
1423
1424       charon.plugins.load-tester.pool []
1425              Provide INTERNAL_IPV4_ADDRs from a named pool.
1426
1427
1428       charon.plugins.load-tester.preshared_key [<default-psk>]
1429              Preshared key to use in load test.
1430
1431
1432       charon.plugins.load-tester.proposal [aes128-sha1-modp768]
1433              IKE proposal to use in load test.
1434
1435
1436       charon.plugins.load-tester.request_virtual_ip [no]
1437              Request an INTERNAL_IPV4_ADDR from the server.
1438
1439
1440       charon.plugins.load-tester.responder [127.0.0.1]
1441              Address to initiation connections to.
1442
1443
1444       charon.plugins.load-tester.responder_auth [pubkey]
1445              Authentication method(s) the responder uses.
1446
1447
1448       charon.plugins.load-tester.responder_id []
1449              Responder ID used in load test.
1450
1451
1452       charon.plugins.load-tester.responder_tsi [initiator_tsi]
1453              Traffic selector on initiator side, as narrowed by responder.
1454
1455
1456       charon.plugins.load-tester.responder_tsr [initiator_tsr]
1457              Traffic selector on responder side, as narrowed by responder.
1458
1459
1460       charon.plugins.load-tester.shutdown_when_complete [no]
1461              Shutdown the daemon after all IKE_SAs have been established.
1462
1463
1464       charon.plugins.load-tester.socket [unix://${piddir}/charon.ldt]
1465              Socket provided by the load-tester plugin.
1466
1467
1468       charon.plugins.load-tester.version [0]
1469              IKE version to use (0 means use IKEv2 as  initiator  and  accept
1470              any version as responder).
1471
1472
1473       charon.plugins.lookip.socket [unix://${piddir}/charon.lkp]
1474              Socket provided by the lookip plugin.
1475
1476
1477       charon.plugins.ntru.max_drbg_requests [4294967294]
1478              Number  of  pseudo-random  bit  requests from the DRBG before an
1479              automatic reseeding occurs.
1480
1481
1482       charon.plugins.ntru.parameter_set [optimum]
1483              The  following  parameter  sets  are   available:   x9_98_speed,
1484              x9_98_bandwidth,  x9_98_balance  and  optimum,  the last set not
1485              being part of the X9.98 standard but  having  the  best  perfor‐
1486              mance.
1487
1488
1489       charon.plugins.openssl.engine_id [pkcs11]
1490              ENGINE ID to use in the OpenSSL plugin.
1491
1492
1493       charon.plugins.openssl.fips_mode [0]
1494              Set   OpenSSL   FIPS  mode:  disabled(0),  enabled(1),  Suite  B
1495              enabled(2).
1496
1497
1498       charon.plugins.osx-attr.append [yes]
1499              Whether DNS servers are appended to existing entries, instead of
1500              replacing them.
1501
1502
1503       charon.plugins.p-cscf.enable
1504              Section  to  enable requesting P-CSCF server addresses for indi‐
1505              vidual connections.
1506
1507
1508       charon.plugins.p-cscf.enable.<conn> [no]
1509              <conn> is the name of a connection with an ePDG  from  which  to
1510              request  P-CSCF  server  addresses.   Requests  will be sent for
1511              addresses of the  same  families  for  which  internal  IPs  are
1512              requested.
1513
1514
1515       charon.plugins.pkcs11.modules
1516              List of available PKCS#11 modules.
1517
1518
1519       charon.plugins.pkcs11.modules.<name>.load_certs [yes]
1520              Whether to automatically load certificates from tokens.
1521
1522
1523       charon.plugins.pkcs11.modules.<name>.os_locking [no]
1524              Whether OS locking should be enabled for this module.
1525
1526
1527       charon.plugins.pkcs11.modules.<name>.path []
1528              Full path to the shared object file of this PKCS#11 module.
1529
1530
1531       charon.plugins.pkcs11.reload_certs [no]
1532              Reload certificates from all tokens if charon receives a SIGHUP.
1533
1534
1535       charon.plugins.pkcs11.use_dh [no]
1536              Whether  the PKCS#11 modules should be used for DH and ECDH (see
1537              use_ecc option).
1538
1539
1540       charon.plugins.pkcs11.use_ecc [no]
1541              Whether the PKCS#11 modules should be used for  ECDH  and  ECDSA
1542              public key operations. ECDSA private keys can be used regardless
1543              of this option.
1544
1545
1546       charon.plugins.pkcs11.use_hasher [no]
1547              Whether the PKCS#11 modules should be used to hash data.
1548
1549
1550       charon.plugins.pkcs11.use_pubkey [no]
1551              Whether the PKCS#11 modules should be used for public key opera‐
1552              tions, even for keys not stored on tokens.
1553
1554
1555       charon.plugins.pkcs11.use_rng [no]
1556              Whether the PKCS#11 modules should be used as RNG.
1557
1558
1559       charon.plugins.radattr.dir []
1560              Directory  where  RADIUS attributes are stored in client-ID spe‐
1561              cific files.
1562
1563
1564       charon.plugins.radattr.message_id [-1]
1565              Attributes are added to all IKE_AUTH messages by  default  (-1),
1566              or only to the IKE_AUTH message with the given IKEv2 message ID.
1567
1568
1569       charon.plugins.random.random [${random_device}]
1570              File to read random bytes from.
1571
1572
1573       charon.plugins.random.strong_equals_true [no]
1574              If  set  to yes the RNG_STRONG class reads random bytes from the
1575              same source as the RNG_TRUE class.
1576
1577
1578       charon.plugins.random.urandom [${urandom_device}]
1579              File to read pseudo random bytes from.
1580
1581
1582       charon.plugins.resolve.file [/etc/resolv.conf]
1583              File where to add DNS server entries.
1584
1585
1586       charon.plugins.resolve.resolvconf.iface_prefix [lo.inet.ipsec.]
1587              Prefix used for interface  names  sent  to  resolvconf(8).   The
1588              nameserver address is appended to this prefix to make it unique.
1589              The result has to be a valid interface  name  according  to  the
1590              rules defined by resolvconf.  Also, it should have a high prior‐
1591              ity according to the order defined in interface-order(5).
1592
1593
1594
1595       charon.plugins.revocation.enable_crl [yes]
1596              Whether CRL validation should be enabled.
1597
1598
1599       charon.plugins.revocation.enable_ocsp [yes]
1600              Whether OCSP validation should be enabled.
1601
1602
1603       charon.plugins.save-keys.esp [no]
1604              Whether to save ESP keys.
1605
1606
1607       charon.plugins.save-keys.ike [no]
1608              Whether to save IKE keys.
1609
1610
1611       charon.plugins.save-keys.load [no]
1612              Whether to load the plugin.
1613
1614
1615       charon.plugins.save-keys.wireshark_keys []
1616              Directory where the keys are stored in the format  supported  by
1617              Wireshark.  IKEv1  keys are stored in the ikev1_decryption_table
1618              file. IKEv2 keys are stored in the ikev2_decryption_table  file.
1619              Keys for ESP CHILD_SAs are stored in the esp_sa file.
1620
1621
1622       charon.plugins.socket-default.fwmark []
1623              Firewall mark to set on outbound packets.
1624
1625
1626       charon.plugins.socket-default.set_source [yes]
1627              Set source address on outbound packets, if possible.
1628
1629
1630       charon.plugins.socket-default.set_sourceif [no]
1631              Force  sending  interface on outbound packets, if possible. This
1632              allows using IPv6 link-local addresses as tunnel endpoints.
1633
1634
1635       charon.plugins.socket-default.use_ipv4 [yes]
1636              Listen on IPv4, if possible.
1637
1638
1639       charon.plugins.socket-default.use_ipv6 [yes]
1640              Listen on IPv6, if possible.
1641
1642
1643       charon.plugins.sql.database []
1644              Database URI for charon's SQL plugin. If it contains a password,
1645              make  sure  to adjust the permissions of the config file accord‐
1646              ingly.
1647
1648
1649       charon.plugins.sql.loglevel [-1]
1650              Loglevel for logging to SQL database.
1651
1652
1653       charon.plugins.stroke.allow_swap [yes]
1654              Analyze addresses/hostnames in left|right to detect  which  side
1655              is  local  and  swap configuration options if necessary. If dis‐
1656              abled left is always local.
1657
1658
1659
1660       charon.plugins.stroke.ignore_missing_ca_basic_constraint [no]
1661              Treat certificates in ipsec.d/cacerts and ipsec.conf ca sections
1662              as  CA  certificates  even if they don't contain a CA basic con‐
1663              straint.
1664
1665
1666       charon.plugins.stroke.max_concurrent [4]
1667              Maximum number of stroke messages handled concurrently.
1668
1669
1670       charon.plugins.stroke.prevent_loglevel_changes [no]
1671              If enabled log level changes via stroke socket are not allowed.
1672
1673
1674       charon.plugins.stroke.secrets_file [${sysconfdir}/ipsec.secrets]
1675              Location of the ipsec.secrets file
1676
1677
1678       charon.plugins.stroke.socket [unix://${piddir}/charon.ctl]
1679              Socket provided by the stroke plugin.
1680
1681
1682       charon.plugins.stroke.timeout [0]
1683              Timeout in ms for any stroke command. Use 0 to disable the time‐
1684              out.
1685
1686
1687       charon.plugins.systime-fix.interval [0]
1688              Interval  in  seconds  to check system time for validity. 0 dis‐
1689              ables the check.
1690
1691
1692       charon.plugins.systime-fix.reauth [no]
1693              Whether to use reauth or delete if an invalid cert  lifetime  is
1694              detected.
1695
1696
1697       charon.plugins.systime-fix.threshold []
1698              Threshold  date  where system time is considered valid. Disabled
1699              if not specified.
1700
1701
1702       charon.plugins.systime-fix.threshold_format [%Y]
1703              strptime(3) format used to parse threshold option.
1704
1705
1706       charon.plugins.systime-fix.timeout [0s]
1707              How long to wait for a valid system time if an interval is  con‐
1708              figured. 0 to recheck indefinitely.
1709
1710
1711       charon.plugins.tnc-ifmap.client_cert []
1712              Path to X.509 certificate file of IF-MAP client.
1713
1714
1715       charon.plugins.tnc-ifmap.client_key []
1716              Path to private key file of IF-MAP client.
1717
1718
1719       charon.plugins.tnc-ifmap.device_name []
1720              Unique name of strongSwan server as a PEP and/or PDP device.
1721
1722
1723       charon.plugins.tnc-ifmap.renew_session_interval [150]
1724              Interval   in   seconds  between  periodic  IF-MAP  RenewSession
1725              requests.
1726
1727
1728       charon.plugins.tnc-ifmap.server_cert []
1729              Path to X.509 certificate file of IF-MAP server.
1730
1731
1732       charon.plugins.tnc-ifmap.server_uri [https://localhost:8444/imap]
1733              URI of the form [https://]servername[:port][/path].
1734
1735
1736       charon.plugins.tnc-ifmap.username_password []
1737              Credentials of IF-MAP client of the form  username:password.  If
1738              set,  make  sure  to  adjust  the permissions of the config file
1739              accordingly.
1740
1741
1742       charon.plugins.tnc-imc.dlclose [yes]
1743              Unload IMC after use.
1744
1745
1746       charon.plugins.tnc-imc.preferred_language [en]
1747              Preferred language for TNC recommendations.
1748
1749
1750       charon.plugins.tnc-imv.dlclose [yes]
1751              Unload IMV after use.
1752
1753
1754       charon.plugins.tnc-imv.recommendation_policy [default]
1755              TNC recommendation policy, one of default, any, or all.
1756
1757
1758
1759       charon.plugins.tnc-pdp.pt_tls.enable [yes]
1760              Enable PT-TLS protocol on the strongSwan PDP.
1761
1762
1763       charon.plugins.tnc-pdp.pt_tls.port [271]
1764              PT-TLS server port the strongSwan PDP is listening on.
1765
1766
1767       charon.plugins.tnc-pdp.radius.enable [yes]
1768              Enable RADIUS protocol on the strongSwan PDP.
1769
1770
1771       charon.plugins.tnc-pdp.radius.method [ttls]
1772              EAP tunnel method to be used.
1773
1774
1775       charon.plugins.tnc-pdp.radius.port [1812]
1776              RADIUS server port the strongSwan PDP is listening on.
1777
1778
1779       charon.plugins.tnc-pdp.radius.secret []
1780              Shared RADIUS secret between strongSwan PDP  and  NAS.  If  set,
1781              make  sure  to adjust the permissions of the config file accord‐
1782              ingly.
1783
1784
1785       charon.plugins.tnc-pdp.server []
1786              Name of the strongSwan PDP as contained in the AAA certificate.
1787
1788
1789       charon.plugins.tnc-pdp.timeout []
1790              Timeout in seconds before closing incomplete connections.
1791
1792
1793       charon.plugins.tnccs-11.max_message_size [45000]
1794              Maximum size of a PA-TNC message (XML & Base64 encoding).
1795
1796
1797       charon.plugins.tnccs-20.max_batch_size [65522]
1798              Maximum size of a PB-TNC batch (upper limit via PT-EAP = 65529).
1799
1800
1801       charon.plugins.tnccs-20.max_message_size [65490]
1802              Maximum size of a PA-TNC  message  (upper  limit  via  PT-EAP  =
1803              65497).
1804
1805
1806       charon.plugins.tnccs-20.mutual [no]
1807              Enable PB-TNC mutual protocol.
1808
1809
1810       charon.plugins.tnccs-20.tests.pb_tnc_noskip [no]
1811              Send  an  unsupported  PB-TNC  message type with the NOSKIP flag
1812              set.
1813
1814
1815       charon.plugins.tnccs-20.tests.pb_tnc_version [2]
1816              Send a PB-TNC batch with a modified PB-TNC version.
1817
1818
1819       charon.plugins.tpm.fips_186_4 [no]
1820              Is the TPM 2.0 FIPS-186-4 compliant, forcing e.g. the use of the
1821              default  salt  length instead of maximum salt length with RSAPSS
1822              padding.
1823
1824
1825       charon.plugins.tpm.tcti.name [device|tabrmd]
1826              Name of TPM 2.0 TCTI library. Valid values:  tabrmd,  device  or
1827              mssim.  Defaults are device if the /dev/tpmrm0 in-kernel TPM 2.0
1828              resource manager device exists, and tabrmd otherwise,  requiring
1829              the d-bus based TPM 2.0 access broker and resource manager to be
1830              available.
1831
1832
1833       charon.plugins.tpm.tcti.opts [/dev/tpmrm0|<none>]
1834              Options for the TPM 2.0 TCTI library. Defaults  are  /dev/tpmrm0
1835              if the TCTI library name is device and no options otherwise.
1836
1837
1838       charon.plugins.tpm.use_rng [no]
1839              Whether the TPM should be used as RNG.
1840
1841
1842       charon.plugins.unbound.dlv_anchors []
1843              File  to read trusted keys for DLV (DNSSEC Lookaside Validation)
1844              from. It uses the same format as trust_anchors.   Only  one  DLV
1845              can  be  configured,  which  is then used as a root trusted DLV,
1846              this means that it is a lookaside for the root.
1847
1848
1849       charon.plugins.unbound.resolv_conf [/etc/resolv.conf]
1850              File to read DNS resolver configuration from.
1851
1852
1853       charon.plugins.unbound.trust_anchors [/etc/ipsec.d/dnssec.keys]
1854              File to read DNSSEC trust anchors from (usually root zone  KSK).
1855              The  format  of  the  file is the standard DNS Zone file format,
1856              anchors can be stored as DS or DNSKEY entries in the file.
1857
1858
1859       charon.plugins.updown.dns_handler [no]
1860              Whether the updown script should handle DNS servers assigned via
1861              IKEv1  Mode  Config  or  IKEv2  Config Payloads (if enabled they
1862              can't be handled by other plugins, like resolve)
1863
1864
1865       charon.plugins.vici.socket [unix://${piddir}/charon.vici]
1866              Socket the vici plugin serves clients.
1867
1868
1869       charon.plugins.whitelist.enable [yes]
1870              Enable loaded whitelist plugin.
1871
1872
1873       charon.plugins.whitelist.socket [unix://${piddir}/charon.wlst]
1874              Socket provided by the whitelist plugin.
1875
1876
1877       charon.plugins.xauth-eap.backend [radius]
1878              EAP plugin to be used as backend for XAuth credential  verifica‐
1879              tion.
1880
1881
1882       charon.plugins.xauth-pam.pam_service [login]
1883              PAM service to be used for authentication.
1884
1885
1886       charon.plugins.xauth-pam.session [no]
1887              Open/close a PAM session for each active IKE_SA.
1888
1889
1890       charon.plugins.xauth-pam.trim_email [yes]
1891              If an email address is received as an XAuth username, trim it to
1892              just the username part.
1893
1894
1895       charon.port [500]
1896              UDP port used locally. If set to 0 a random port will  be  allo‐
1897              cated.
1898
1899
1900       charon.port_nat_t [4500]
1901              UDP  port  used  locally  in case of NAT-T. If set to 0 a random
1902              port will be allocated.  Has to be different  from  charon.port,
1903              otherwise a random port will be allocated.
1904
1905
1906       charon.prefer_best_path [no]
1907              By  default, charon keeps SAs on the routing path with addresses
1908              it previously used if that path is still usable. By setting this
1909              option  to  yes,  it  tries more aggressively to update SAs with
1910              MOBIKE on routing priority changes using the cheapest path. This
1911              adds  more noise, but allows to dynamically adapt SAs to routing
1912              priority changes. This option has no effect  if  MOBIKE  is  not
1913              supported or disabled.
1914
1915
1916       charon.prefer_configured_proposals [yes]
1917              Prefer  locally configured proposals for IKE/IPsec over supplied
1918              ones as responder (disabling this can avoid keying  retries  due
1919              to INVALID_KE_PAYLOAD notifies).
1920
1921
1922       charon.prefer_temporary_addrs [no]
1923              By  default  public  IPv6 addresses are preferred over temporary
1924              ones (RFC 4941), to make connections more  stable.  Enable  this
1925              option to reverse this.
1926
1927
1928       charon.process_route [yes]
1929              Process RTM_NEWROUTE and RTM_DELROUTE events.
1930
1931
1932       charon.processor.priority_threads
1933              Section to configure the number of reserved threads per priority
1934              class see JOB PRIORITY MANAGEMENT in strongswan.conf(5).
1935
1936
1937
1938       charon.receive_delay [0]
1939              Delay in ms for receiving packets, to simulate larger RTT.
1940
1941
1942       charon.receive_delay_request [yes]
1943              Delay request messages.
1944
1945
1946       charon.receive_delay_response [yes]
1947              Delay response messages.
1948
1949
1950       charon.receive_delay_type [0]
1951              Specific IKEv2 message type to delay, 0 for any.
1952
1953
1954       charon.replay_window [32]
1955              Size of the AH/ESP replay window, in packets.
1956
1957
1958       charon.retransmit_base [1.8]
1959              Base to use for calculating  exponential  back  off,  see  IKEv2
1960              RETRANSMISSION in strongswan.conf(5).
1961
1962
1963
1964       charon.retransmit_jitter [0]
1965              Maximum  jitter  in  percent  to  apply  randomly  to calculated
1966              retransmission timeout (0 to disable).
1967
1968
1969       charon.retransmit_limit [0]
1970              Upper limit in seconds for calculated retransmission timeout  (0
1971              to disable).
1972
1973
1974       charon.retransmit_timeout [4.0]
1975              Timeout in seconds before sending first retransmit.
1976
1977
1978       charon.retransmit_tries [5]
1979              Number of times to retransmit a packet before giving up.
1980
1981
1982       charon.retry_initiate_interval [0]
1983              Interval  in  seconds to use when retrying to initiate an IKE_SA
1984              (e.g. if DNS resolution failed), 0 to disable retries.
1985
1986
1987       charon.reuse_ikesa [yes]
1988              Initiate CHILD_SA within existing IKE_SAs  (always  enabled  for
1989              IKEv1).
1990
1991
1992       charon.routing_table []
1993              Numerical routing table to install routes to.
1994
1995
1996       charon.routing_table_prio []
1997              Priority of the routing table.
1998
1999
2000       charon.rsa_pss [no]
2001              Whether to use RSA with PSS padding instead of PKCS#1 padding by
2002              default.
2003
2004
2005       charon.send_delay [0]
2006              Delay in ms for sending packets, to simulate larger RTT.
2007
2008
2009       charon.send_delay_request [yes]
2010              Delay request messages.
2011
2012
2013       charon.send_delay_response [yes]
2014              Delay response messages.
2015
2016
2017       charon.send_delay_type [0]
2018              Specific IKEv2 message type to delay, 0 for any.
2019
2020
2021       charon.send_vendor_id [no]
2022              Send strongSwan vendor ID payload
2023
2024
2025       charon.signature_authentication [yes]
2026              Whether to enable Signature Authentication as per RFC 7427.
2027
2028
2029       charon.signature_authentication_constraints [yes]
2030              If enabled, signature schemes configured in rightauth, in  addi‐
2031              tion  to  getting  used as constraints against signature schemes
2032              employed in the certificate chain, are also used as  constraints
2033              against the signature scheme used by peers during IKEv2.
2034
2035
2036       charon.spi_max [0xcfffffff]
2037              The  upper  limit  for  SPIs requested from the kernel for IPsec
2038              SAs.
2039
2040
2041       charon.spi_min [0xc0000000]
2042              The lower limit for SPIs requested from  the  kernel  for  IPsec
2043              SAs.  Should  not  be  set  lower than 0x00000100 (256), as SPIs
2044              between 1 and 255 are reserved by IANA.
2045
2046
2047       charon.start-scripts
2048              Section containing a list of scripts (name = path) that are exe‐
2049              cuted when the daemon is started.
2050
2051
2052       charon.stop-scripts
2053              Section containing a list of scripts (name = path) that are exe‐
2054              cuted when the daemon is terminated.
2055
2056
2057       charon.syslog
2058              Section to define syslog loggers, see  LOGGER  CONFIGURATION  in
2059              strongswan.conf(5).
2060
2061
2062
2063       charon.syslog.<facility>
2064              <facility> is one of the supported syslog facilities, see LOGGER
2065              CONFIGURATION in strongswan.conf(5).
2066
2067
2068
2069       charon.syslog.<facility>.<subsystem> [<default>]
2070              Loglevel for a specific subsystem.
2071
2072
2073       charon.syslog.<facility>.default [1]
2074              Specifies the default loglevel to be  used  for  subsystems  for
2075              which no specific loglevel is defined.
2076
2077
2078       charon.syslog.<facility>.ike_name [no]
2079              Prefix  each  log  entry  with  the connection name and a unique
2080              numerical identifier for each IKE_SA.
2081
2082
2083       charon.syslog.identifier []
2084              Global identifier used for an openlog(3) call, prepended to each
2085              log  message  by  syslog.   If not configured, openlog(3) is not
2086              called, so the value will depend on system defaults  (often  the
2087              program name).
2088
2089
2090       charon.threads [16]
2091              Number  of  worker  threads  in  charon.  Several  of  these are
2092              reserved for long running tasks in internal modules and plugins.
2093              Therefore,  make sure you don't set this value too low. The num‐
2094              ber of idle worker threads listed in ipsec  statusall  might  be
2095              used as indicator on the number of reserved threads.
2096
2097
2098       charon.tls.cipher []
2099              List of TLS encryption ciphers.
2100
2101
2102       charon.tls.key_exchange []
2103              List of TLS key exchange methods.
2104
2105
2106       charon.tls.mac []
2107              List of TLS MAC algorithms.
2108
2109
2110       charon.tls.suites []
2111              List of TLS cipher suites.
2112
2113
2114       charon.tnc.tnc_config [/etc/tnc_config]
2115              TNC IMC/IMV configuration file.
2116
2117
2118       charon.user []
2119              Name of the user the daemon changes to after startup.
2120
2121
2122       charon.x509.enforce_critical [yes]
2123              Discard certificates with unsupported or unknown critical exten‐
2124              sions.
2125
2126
2127       charon-nm.ca_dir [<default>]
2128              Directory from which to load CA certificates if  no  certificate
2129              is configured.
2130
2131
2132       charon-systemd.journal
2133              Section to configure native systemd journal logger, very similar
2134              to the syslog logger as described  in  LOGGER  CONFIGURATION  in
2135              strongswan.conf(5).
2136
2137
2138
2139       charon-systemd.journal.<subsystem> [<default>]
2140              Loglevel for a specific subsystem.
2141
2142
2143       charon-systemd.journal.default [1]
2144              Specifies  the  default  loglevel  to be used for subsystems for
2145              which no specific loglevel is defined.
2146
2147
2148       imv_policy_manager.command_allow []
2149              Shell command to be executed with recommendation allow.
2150
2151
2152       imv_policy_manager.command_block []
2153              Shell command to be executed with all other recommendations.
2154
2155
2156       imv_policy_manager.database []
2157              Database URI for the database that stores the  package  informa‐
2158              tion. If it contains a password, make sure to adjust the permis‐
2159              sions of the config file accordingly.
2160
2161
2162       imv_policy_manager.load [sqlite]
2163              Plugins to load in IMV policy manager.
2164
2165
2166       libimcv.debug_level [1]
2167              Debug level for a stand-alone libimcv library.
2168
2169
2170       libimcv.load [random nonce gmp pubkey x509]
2171              Plugins to load in IMC/IMVs with stand-alone libimcv library.
2172
2173
2174       libimcv.plugins.imc-attestation.aik_blob []
2175              AIK encrypted private key blob file.
2176
2177
2178       libimcv.plugins.imc-attestation.aik_cert []
2179              AIK certificate file.
2180
2181
2182       libimcv.plugins.imc-attestation.aik_handle []
2183              AIK object handle.
2184
2185
2186       libimcv.plugins.imc-attestation.aik_pubkey []
2187              AIK public key file.
2188
2189
2190       libimcv.plugins.imc-attestation.mandatory_dh_groups [yes]
2191              Enforce mandatory Diffie-Hellman groups.
2192
2193
2194       libimcv.plugins.imc-attestation.nonce_len [20]
2195              DH nonce length.
2196
2197
2198       libimcv.plugins.imc-attestation.pcr17_after []
2199              PCR17 value after measurement.
2200
2201
2202       libimcv.plugins.imc-attestation.pcr17_before []
2203              PCR17 value before measurement.
2204
2205
2206       libimcv.plugins.imc-attestation.pcr17_meas []
2207              Dummy measurement value extended into PCR17 if the TBOOT log  is
2208              not available.
2209
2210
2211       libimcv.plugins.imc-attestation.pcr18_after []
2212              PCR18 value after measurement.
2213
2214
2215       libimcv.plugins.imc-attestation.pcr18_before []
2216              PCR18 value before measurement.
2217
2218
2219       libimcv.plugins.imc-attestation.pcr18_meas []
2220              Dummy  measurement value extended into PCR17 if the TBOOT log is
2221              not available.
2222
2223
2224       libimcv.plugins.imc-attestation.pcr_info [no]
2225              Whether to send pcr_before and pcr_after info.
2226
2227
2228       libimcv.plugins.imc-attestation.use_quote2 [yes]
2229              Use Quote2 AIK signature instead of Quote signature.
2230
2231
2232       libimcv.plugins.imc-attestation.use_version_info [no]
2233              Version Info is included in Quote2 signature.
2234
2235
2236       libimcv.plugins.imc-hcd.push_info [yes]
2237              Send quadruple info without being prompted.
2238
2239
2240       libimcv.plugins.imc-hcd.subtypes []
2241              Section to define PWG HCD PA subtypes.
2242
2243
2244       libimcv.plugins.imc-hcd.subtypes.<section> []
2245              Defines a PWG HCD PA subtype section. Recognized subtype section
2246              names are system, control, marker, finisher, interface and scan‐
2247              ner.
2248
2249
2250
2251       libimcv.plugins.imc-hcd.subtypes.<section>.<sw_type> []
2252              Defines a software type section. Recognized software  type  sec‐
2253              tion  names are firmware, resident_application and user_applica‐
2254              tion.
2255
2256
2257
2258       libimcv.plugins.imc-hcd.subtypes.<section>.<sw_type>.<software> []
2259              Defines a software section having an arbitrary name.
2260
2261
2262       libimcv.plugins.imc-hcd.subtypes.<section>.<sw_type>.<software>.name []
2263              Name of the software installed on the hardcopy device.
2264
2265
2266       libimcv.plugins.imc-hcd.subtypes.<section>.<sw_type>.<software>.patches
2267       []
2268              String  describing  all patches applied to the given software on
2269              this hardcopy device. The individual patches are separated by  a
2270              newline character '\n'.
2271
2272
2273       libimcv.plugins.imc-hcd.subtypes.<section>.<sw_type>.<soft‐
2274       ware>.string_version []
2275              String describing the version of  the  given  software  on  this
2276              hardcopy device.
2277
2278
2279       libimcv.plugins.imc-hcd.subtypes.<section>.<sw_type>.<software>.version
2280       []
2281              Hex-encoded version string with a length of 16 octets consisting
2282              of  the  fields  major  version number (4 octets), minor version
2283              number (4 octets), build number (4 octets), service  pack  major
2284              number (2 octets) and service pack minor number (2 octets).
2285
2286
2287       libimcv.plugins.imc-hcd.subtypes.<section>.attributes_natural_language
2288       [en]
2289              Variable length natural language  tag  conforming  to  RFC  5646
2290              specifies  the language to be used in the health assessment mes‐
2291              sage of a given subtype.
2292
2293
2294       libimcv.plugins.imc-hcd.subtypes.system.certification_state []
2295              Hex-encoded certification state.
2296
2297
2298       libimcv.plugins.imc-hcd.subtypes.system.configuration_state []
2299              Hex-encoded configuration state.
2300
2301
2302       libimcv.plugins.imc-hcd.subtypes.system.machine_type_model []
2303              String specifying the machine type and  model  of  the  hardcopy
2304              device.
2305
2306
2307       libimcv.plugins.imc-hcd.subtypes.system.pstn_fax_enabled [no]
2308              Specifies if a PSTN facsimile interface is installed and enabled
2309              on the hardcopy device.
2310
2311
2312       libimcv.plugins.imc-hcd.subtypes.system.time_source []
2313              String specifying the hostname of the network time  server  used
2314              by the hardcopy device.
2315
2316
2317       libimcv.plugins.imc-hcd.subtypes.system.user_application_enabled [no]
2318              Specifies if users can dynamically download and execute applica‐
2319              tions on the hardcopy device.
2320
2321
2322       libimcv.plugins.imc-hcd.subtypes.system.user_application_persis‐
2323       tence_enabled [no]
2324              Specifies  if  user dynamically downloaded applications can per‐
2325              sist outside the boundaries of a  single  job  on  the  hardcopy
2326              device.
2327
2328
2329       libimcv.plugins.imc-hcd.subtypes.system.vendor_name []
2330              String specifying the manufacturer of the hardcopy device.
2331
2332
2333       libimcv.plugins.imc-hcd.subtypes.system.vendor_smi_code []
2334              Integer  specifying the globally unique 24-bit SMI code assigned
2335              to the manufacturer of the hardcopy device.
2336
2337
2338       libimcv.plugins.imc-os.device_cert []
2339              Manually set the path to the  client  device  certificate  (e.g.
2340              /etc/pts/aikCert.der)
2341
2342
2343       libimcv.plugins.imc-os.device_handle []
2344              Manually set handle to a private key bound to a smartcard or TPM
2345              (e.g.  0x81010004)
2346
2347
2348       libimcv.plugins.imc-os.device_id []
2349              Manually set the client device ID in  hexadecimal  format  (e.g.
2350              1083f03988c9762703b1c1080c2e46f72b99cc31)
2351
2352
2353       libimcv.plugins.imc-os.device_pubkey []
2354              Manually  set  the  path  to  the client device public key (e.g.
2355              /etc/pts/aikPub.der)
2356
2357
2358       libimcv.plugins.imc-os.push_info [yes]
2359              Send operating system info without being prompted.
2360
2361
2362       libimcv.plugins.imc-scanner.push_info [yes]
2363              Send open listening ports without being prompted.
2364
2365
2366       libimcv.plugins.imc-swima.eid_epoch [0x11223344]
2367              Set 32 bit epoch value for event IDs manually if  software  col‐
2368              lector database is not available.
2369
2370
2371       libimcv.plugins.imc-swima.subscriptions [no]
2372              Accept SW Inventory or SW Events subscriptions.
2373
2374
2375       libimcv.plugins.imc-swima.swid_database []
2376              URI  to software collector database containing event timestamps,
2377              software creation and deletion  events  and  collected  software
2378              identifiers.  If it contains a password, make sure to adjust the
2379              permissions of the config file accordingly.
2380
2381
2382       libimcv.plugins.imc-swima.swid_directory [${prefix}/share]
2383              Directory where SWID tags are located.
2384
2385
2386       libimcv.plugins.imc-swima.swid_full [no]
2387              Include file information in the XML-encoded SWID tags.
2388
2389
2390       libimcv.plugins.imc-swima.swid_pretty [no]
2391              Generate XML-encoded SWID tags with pretty indentation.
2392
2393
2394       libimcv.plugins.imc-test.additional_ids [0]
2395              Number of additional IMC IDs.
2396
2397
2398       libimcv.plugins.imc-test.command [none]
2399              Command to be sent to the Test IMV.
2400
2401
2402       libimcv.plugins.imc-test.dummy_size [0]
2403              Size of dummy attribute to be sent to the Test  IMV  (0  =  dis‐
2404              abled).
2405
2406
2407       libimcv.plugins.imc-test.retry [no]
2408              Do a handshake retry.
2409
2410
2411       libimcv.plugins.imc-test.retry_command []
2412              Command to be sent to the Test IMV in the handshake retry.
2413
2414
2415       libimcv.plugins.imv-attestation.cadir []
2416              Path to directory with AIK cacerts.
2417
2418
2419       libimcv.plugins.imv-attestation.dh_group [ecp256]
2420              Preferred Diffie-Hellman group.
2421
2422
2423       libimcv.plugins.imv-attestation.hash_algorithm [sha256]
2424              Preferred measurement hash algorithm.
2425
2426
2427       libimcv.plugins.imv-attestation.mandatory_dh_groups [yes]
2428              Enforce mandatory Diffie-Hellman groups.
2429
2430
2431       libimcv.plugins.imv-attestation.min_nonce_len [0]
2432              DH minimum nonce length.
2433
2434
2435       libimcv.plugins.imv-os.remediation_uri []
2436              URI pointing to operating system remediation instructions.
2437
2438
2439       libimcv.plugins.imv-scanner.remediation_uri []
2440              URI pointing to scanner remediation instructions.
2441
2442
2443       libimcv.plugins.imv-swima.rest_api.timeout [120]
2444              Timeout of SWID REST API HTTP POST transaction.
2445
2446
2447       libimcv.plugins.imv-swima.rest_api.uri []
2448              HTTP URI of the SWID REST API.
2449
2450
2451       libimcv.plugins.imv-test.rounds [0]
2452              Number of IMC-IMV retry rounds.
2453
2454
2455       libimcv.stderr_quiet [no]
2456              Disable output to stderr with a stand-alone libimcv library.
2457
2458
2459       libimcv.swid_gen.command [/usr/local/bin/swid_generator]
2460              SWID generator command to be executed.
2461
2462
2463       libimcv.swid_gen.tag_creator.name [strongSwan Project]
2464              Name of the tagCreator entity.
2465
2466
2467       libimcv.swid_gen.tag_creator.regid [strongswan.org]
2468              regid of the tagCreator entity.
2469
2470
2471       manager.database []
2472              Credential  database URI for manager. If it contains a password,
2473              make sure to adjust the permissions of the config  file  accord‐
2474              ingly.
2475
2476
2477       manager.debug [no]
2478              Enable debugging in manager.
2479
2480
2481       manager.load []
2482              Plugins to load in manager.
2483
2484
2485       manager.socket []
2486              FastCGI socket of manager, to run it statically.
2487
2488
2489       manager.threads [10]
2490              Threads to use for request handling.
2491
2492
2493       manager.timeout [15m]
2494              Session timeout for manager.
2495
2496
2497       medsrv.database []
2498              Mediation  server  database URI. If it contains a password, make
2499              sure to adjust the permissions of the config file accordingly.
2500
2501
2502       medsrv.debug [no]
2503              Debugging in mediation server web application.
2504
2505
2506       medsrv.dpd [5m]
2507              DPD timeout to use in mediation server plugin.
2508
2509
2510       medsrv.load []
2511              Plugins to load in mediation server plugin.
2512
2513
2514       medsrv.password_length [6]
2515              Minimum password  length  required  for  mediation  server  user
2516              accounts.
2517
2518
2519       medsrv.rekey [20m]
2520              Rekeying time on mediation connections in mediation server plug‐
2521              in.
2522
2523
2524       medsrv.socket []
2525              Run Mediation server web application statically on socket.
2526
2527
2528       medsrv.threads [5]
2529              Number of thread for mediation service web application.
2530
2531
2532       medsrv.timeout [15m]
2533              Session timeout for mediation service.
2534
2535
2536       pki.load []
2537              Plugins to load in ipsec pki tool.
2538
2539
2540       pool.database []
2541              Database URI for the database that stores IP pools and  configu‐
2542              ration  attributes.  If it contains a password, make        sure
2543              to adjust the permissions of the config file accordingly.
2544
2545
2546       pool.load []
2547              Plugins to load in ipsec pool tool.
2548
2549
2550       scepclient.load []
2551              Plugins to load in ipsec scepclient tool.
2552
2553
2554       sec-updater
2555              Options for the sec-updater tool.
2556
2557
2558       sec-updater.database []
2559              Global IMV policy database URI. If it contains a password,  make
2560              sure to adjust the permissions of the config file accordingly.
2561
2562
2563       sec-updater.load []
2564              Plugins to load in sec-updater tool.
2565
2566
2567       sec-updater.swid_gen.command [/usr/local/bin/swid_generator]
2568              SWID generator command to be executed.
2569
2570
2571       sec-updater.swid_gen.tag_creator.name [strongSwan Project]
2572              Name of the tagCreator entity.
2573
2574
2575       sec-updater.swid_gen.tag_creator.regid [strongswan.org]
2576              regid of the tagCreator entity.
2577
2578
2579       sec-updater.tmp.deb_file [/tmp/sec-updater.deb]
2580              Temporary storage for downloaded deb package file.
2581
2582
2583       sec-updater.tmp.tag_file [/tmp/sec-updater.tag]
2584              Temporary storage for generated SWID tags.
2585
2586
2587       sec-updater.tnc_manage_command [/var/www/tnc/manage.py]
2588              strongTNC manage.py command used to import SWID tags.
2589
2590
2591       starter.config_file [${sysconfdir}/ipsec.conf]
2592              Location of the ipsec.conf file
2593
2594
2595       starter.load_warning [yes]
2596              Disable charon plugin load option warning.
2597
2598
2599       sw-collector
2600              Options for the sw-collector tool.
2601
2602
2603       sw-collector.database []
2604              URI  to software collector database containing event timestamps,
2605              software creation and deletion  events  and  collected  software
2606              identifiers.  If it contains a password, make sure to adjust the
2607              permissions of the config file accordingly.
2608
2609
2610       sw-collector.first_file [/var/log/bootstrap.log]
2611              Path pointing to file created when the Linux OS was installed.
2612
2613
2614       sw-collector.first_time [0000-00-00T00:00:00Z]
2615              Time in UTC when the Linux OS was installed.
2616
2617
2618       sw-collector.history []
2619              Path pointing to apt history.log file.
2620
2621
2622       sw-collector.load []
2623              Plugins to load in sw-collector tool.
2624
2625
2626       sw-collector.rest_api.timeout [120]
2627              Timeout of REST API HTTP POST transaction.
2628
2629
2630       sw-collector.rest_api.uri []
2631              HTTP URI of the central collector's REST API.
2632
2633
2634       swanctl.load []
2635              Plugins to load in swanctl.
2636
2637
2638       swanctl.socket [unix://${piddir}/charon.vici]
2639              VICI socket to connect to by default.
2640
2641

LOGGER CONFIGURATION

2643       Options in strongswan.conf(5) provide a much more flexible way to  con‐
2644       figure  loggers  for  the  IKE daemon charon than using the charondebug
2645       option in ipsec.conf(5).
2646
2647       Note: If any loggers are specified in strongswan.conf, charondebug does
2648       not have any effect.
2649
2650       There are currently two types of loggers:
2651
2652       File loggers
2653              Log  directly  to  a file and are defined by specifying an arbi‐
2654              trarily named subsection in the charon.filelog section. The full
2655              path  to the file is configured in the path setting of that sub‐
2656              section, however, if it only contains  characters  permitted  in
2657              section  names,  the  setting  may  also be omitted and the path
2658              specified as name of the subsection. To log to the  console  the
2659              two special filenames stdout and stderr may be used.
2660
2661       Syslog loggers
2662              Log  into  a  syslog  facility and are defined by specifying the
2663              facility  to  log  to  as  the  name  of  a  subsection  in  the
2664              charon.syslog  section.  The  following facilities are currently
2665              supported: daemon and auth.
2666
2667       Multiple loggers can be defined for each type with different  log  ver‐
2668       bosity for the different subsystems of the daemon.
2669
2670
2671   Subsystems
2672       dmn    Main daemon setup/cleanup/signal handling
2673
2674       mgr    IKE_SA manager, handling synchronization for IKE_SA access
2675
2676       ike    IKE_SA
2677
2678       chd    CHILD_SA
2679
2680       job    Jobs queueing/processing and thread pool management
2681
2682       cfg    Configuration management and plugins
2683
2684       knl    IPsec/Networking kernel interface
2685
2686       net    IKE network communication
2687
2688       asn    Low-level encoding/decoding (ASN.1, X.509 etc.)
2689
2690       enc    Packet encoding/decoding encryption/decryption operations
2691
2692       tls    libtls library messages
2693
2694       esp    libipsec library messages
2695
2696       lib    libstrongwan library messages
2697
2698       tnc    Trusted Network Connect
2699
2700       imc    Integrity Measurement Collector
2701
2702       imv    Integrity Measurement Verifier
2703
2704       pts    Platform Trust Service
2705
2706   Loglevels
2707       -1     Absolutely silent
2708
2709       0      Very basic auditing logs, (e.g. SA up/SA down)
2710
2711       1      Generic  control  flow with errors, a good default to see what's
2712              going on
2713
2714       2      More detailed debugging control flow
2715
2716       3      Including RAW data dumps in Hex
2717
2718       4      Also include sensitive material in dumps, e.g. keys
2719
2720   Example
2721            charon {
2722                 filelog {
2723                      charon {
2724                           path = /var/log/charon.log
2725                           time_format = %b %e %T
2726                           append = no
2727                           default = 1
2728                      }
2729                      stderr {
2730                           ike = 2
2731                           knl = 3
2732                           ike_name = yes
2733                      }
2734                 }
2735                 syslog {
2736                      # enable logging to LOG_DAEMON, use defaults
2737                      daemon {
2738                      }
2739                      # minimalistic IKE auditing logging to LOG_AUTHPRIV
2740                      auth {
2741                           default = -1
2742                           ike = 0
2743                      }
2744                 }
2745            }
2746
2747

JOB PRIORITY MANAGEMENT

2749       Some operations in the IKEv2 daemon charon  are  currently  implemented
2750       synchronously and blocking. Two examples for such operations are commu‐
2751       nication with a RADIUS server  via  EAP-RADIUS,  or  fetching  CRL/OCSP
2752       information during certificate chain verification. Under high load con‐
2753       ditions, the thread pool may run out of  available  threads,  and  some
2754       more important jobs, such as liveness checking, may not get executed in
2755       time.
2756
2757       To prevent thread starvation in such  situations  job  priorities  were
2758       introduced.   The  job  processor  will reserve some threads for higher
2759       priority jobs, these threads are  not  available  for  lower  priority,
2760       locking jobs.
2761
2762   Implementation
2763       Currently  4  priorities have been defined, and they are used in charon
2764       as follows:
2765
2766       CRITICAL
2767              Priority for long-running dispatcher jobs.
2768
2769       HIGH   INFORMATIONAL exchanges, as used by liveness checking (DPD).
2770
2771       MEDIUM Everything not HIGH/LOW, including IKE_SA_INIT processing.
2772
2773       LOW    IKE_AUTH message processing. RADIUS and CRL fetching block here
2774
2775       Although IKE_SA_INIT processing is  computationally  expensive,  it  is
2776       explicitly  assigned  to the MEDIUM class. This allows charon to do the
2777       DH exchange while other threads are blocked in IKE_AUTH. To prevent the
2778       daemon from accepting more IKE_SA_INIT requests than it can handle, use
2779       IKE_SA_INIT DROPPING.
2780
2781       The thread pool processes jobs strictly by priority,  meaning  it  will
2782       consume  all  higher  priority  jobs before looking for ones with lower
2783       priority. Further, it reserves threads for certain priorities. A prior‐
2784       ity  class  having reserved n threads will always have n threads avail‐
2785       able for this class (either currently processing a job, or waiting  for
2786       one).
2787
2788   Configuration
2789       To  ensure  that  there  are always enough threads available for higher
2790       priority tasks, threads must be reserved for each priority class.
2791
2792       charon.processor.priority_threads.critical [0]
2793              Threads reserved for CRITICAL priority class jobs
2794
2795       charon.processor.priority_threads.high [0]
2796              Threads reserved for HIGH priority class jobs
2797
2798       charon.processor.priority_threads.medium [0]
2799              Threads reserved for MEDIUM priority class jobs
2800
2801       charon.processor.priority_threads.low [0]
2802              Threads reserved for LOW priority class jobs
2803
2804       Let's consider the following configuration:
2805
2806            charon {
2807                 processor {
2808                      priority_threads {
2809                           high = 1
2810                           medium = 4
2811                      }
2812                 }
2813            }
2814
2815       With this configuration, one  thread  is  reserved  for  HIGH  priority
2816       tasks.  As currently only liveness checking and stroke message process‐
2817       ing is done with high priority, one or two  threads  should  be  suffi‐
2818       cient.
2819
2820       The  MEDIUM class mostly processes non-blocking jobs. Unless your setup
2821       is experiencing many blocks in locks while accessing shared  resources,
2822       threads for one or two times the number of CPU cores is fine.
2823
2824       It  is  usually not required to reserve threads for CRITICAL jobs. Jobs
2825       in this class rarely return and do not  release  their  thread  to  the
2826       pool.
2827
2828       The  remaining  threads  are available for LOW priority jobs. Reserving
2829       threads does not make sense (until we have an even lower priority).
2830
2831   Monitoring
2832       To see what the threads are actually  doing,  invoke  ipsec  statusall.
2833       Under high load, something like this will show up:
2834
2835            worker threads: 2 or 32 idle, 5/1/2/22 working,
2836                 job queue: 0/0/1/149, scheduled: 198
2837
2838       From 32 worker threads,
2839
2840       2      are currently idle.
2841
2842       5      are  running  CRITICAL  priority jobs (dispatching from sockets,
2843              etc.).
2844
2845       1      is currently handling a HIGH priority job. This is actually  the
2846              thread currently providing this information via stroke.
2847
2848       2      are  handling  MEDIUM  priority jobs, likely IKE_SA_INIT or CRE‐
2849              ATE_CHILD_SA messages.
2850
2851       22     are handling LOW priority jobs, probably  waiting  for  an  EAP-
2852              RADIUS response while processing IKE_AUTH messages.
2853
2854       The  job  queue  load shows how many jobs are queued for each priority,
2855       ready for execution. The single MEDIUM priority job will  get  executed
2856       immediately,  as  we  have  two spare threads reserved for MEDIUM class
2857       jobs.
2858
2859

IKE_SA_INIT DROPPING

2861       If a responder receives more connection requests per  seconds  than  it
2862       can handle, it does not make sense to accept more IKE_SA_INIT messages.
2863       And if they are queued but can't get processed in time, an answer might
2864       be sent after the client has already given up and restarted its connec‐
2865       tion setup. This additionally increases the load on the responder.
2866
2867       To limit the responder load resulting from new connection attempts, the
2868       daemon  can  drop  IKE_SA_INIT messages just after reception. There are
2869       two mechanisms to decide if this should  happen,  configured  with  the
2870       following options:
2871
2872       charon.init_limit_half_open [0]
2873              Limit  based  on  the  number  of  half  open IKE_SAs. Half open
2874              IKE_SAs are SAs in connecting state, but not yet established.
2875
2876       charon.init_limit_job_load [0]
2877              Limit based on the number of jobs currently queued for  process‐
2878              ing (sum over all job priorities).
2879
2880       The  second  limit  includes  load  from  other jobs, such as rekeying.
2881       Choosing a good value is difficult and  depends  on  the  hardware  and
2882       expected load.
2883
2884       The first limit is simpler to calculate, but includes the load from new
2885       connections only. If your responder is capable of negotiating 100  tun‐
2886       nels/s, you might set this limit to 1000. The daemon will then drop new
2887       connection attempts if generating a response would require more than 10
2888       seconds.  If  you are allowing for a maximum response time of more than
2889       30 seconds, consider  adjusting  the  timeout  for  connecting  IKE_SAs
2890       (charon.half_open_timeout).  A responder, by default, deletes an IKE_SA
2891       if the initiator does not establish it within 30  seconds.  Under  high
2892       load, a higher value might be required.
2893
2894

LOAD TESTS

2896       To  do  stability testing and performance optimizations, the IKE daemon
2897       charon provides the load-tester plugin. This plugin allows one to setup
2898       thousands of tunnels concurrently against the daemon itself or a remote
2899       host.
2900
2901       WARNING: Never enable the load-testing plugin on productive systems. It
2902       provides  preconfigured credentials and allows an attacker to authenti‐
2903       cate as any user.
2904
2905   Configuration details
2906       For public key authentication, the responder uses the "CN=srv, OU=load-
2907       test,  O=strongSwan"  identity.  For  the  initiator,  each  connection
2908       attempt uses a different identity in the form "CN=c1-r1,  OU=load-test,
2909       O=strongSwan",  where the first number indicates the client number, the
2910       second the authentication round (if multiple authentication rounds  are
2911       used).
2912
2913       For  PSK  authentication,  FQDN  identities  are  used. The server uses
2914       srv.strongswan.org,  the  client  uses  an   identity   in   the   form
2915       c1-r1.strongswan.org.
2916
2917       For   EAP   authentication,   the   client  uses  a  NAI  in  the  form
2918       100000000010001@strongswan.org.
2919
2920       To configure multiple authentication rounds, concatenate multiple meth‐
2921       ods using, e.g.
2922            initiator_auth = pubkey|psk|eap-md5|eap-aka
2923
2924       The responder uses a hardcoded certificate based on a 1024-bit RSA key.
2925       This certificate additionally serves as CA certificate. A peer uses the
2926       same private key, but generates client certificates on demand signed by
2927       the CA certificate. Install the Responder/CA certificate on the  remote
2928       host to authenticate all clients.
2929
2930       To  speed  up  testing,  the  load  tester  plugin implements a special
2931       Diffie-Hellman implementation called modpnull. By setting
2932            proposal = aes128-sha1-modpnull
2933       this wicked fast DH implementation is used. It  does  not  provide  any
2934       security  at  all,  but  allows one to run tests without DH calculation
2935       overhead.
2936
2937   Examples
2938       In the simplest case, the daemon initiates IKE_SAs against itself using
2939       the  loopback interface. This will actually establish double the number
2940       of IKE_SAs, as the daemon is initiator and responder for each IKE_SA at
2941       the  same  time.  Installation of IPsec SAs would fail, as each SA gets
2942       installed twice. To simulate the correct behavior, a fake kernel inter‐
2943       face  can be enabled which does not install the IPsec SAs at the kernel
2944       level.
2945
2946       A simple loopback configuration might look like this:
2947
2948            charon {
2949                 # create new IKE_SAs for each CHILD_SA to simulate
2950                 # different clients
2951                 reuse_ikesa = no
2952                 # turn off denial of service protection
2953                 dos_protection = no
2954
2955                 plugins {
2956                      load-tester {
2957                           # enable the plugin
2958                           enable = yes
2959                           # use 4 threads to initiate connections
2960                           # simultaneously
2961                           initiators = 4
2962                           # each thread initiates 1000 connections
2963                           iterations = 1000
2964                           # delay each initiation in each thread by 20ms
2965                           delay = 20
2966                           # enable the fake kernel interface to
2967                           # avoid SA conflicts
2968                           fake_kernel = yes
2969                      }
2970                 }
2971            }
2972
2973       This will initiate 4000 IKE_SAs within 20 seconds. You may increase the
2974       delay  value  if your box can not handle that much load, or decrease it
2975       to put more load on it. If the daemon  starts  retransmitting  messages
2976       your box probably can not handle all connection attempts.
2977
2978       The  plugin  also  allows one to test against a remote host. This might
2979       help to test against a real world configuration. A connection setup  to
2980       do stress testing of a gateway might look like this:
2981
2982            charon {
2983                 reuse_ikesa = no
2984                 threads = 32
2985
2986                 plugins {
2987                      load-tester {
2988                           enable = yes
2989                           # 10000 connections, ten in parallel
2990                           initiators = 10
2991                           iterations = 1000
2992                           # use a delay of 100ms, overall time is:
2993                           # iterations * delay = 100s
2994                           delay = 100
2995                           # address of the gateway
2996                           remote = 1.2.3.4
2997                           # IKE-proposal to use
2998                           proposal = aes128-sha1-modp1024
2999                           # use faster PSK authentication instead
3000                           # of 1024bit RSA
3001                           initiator_auth = psk
3002                           responder_auth = psk
3003                           # request a virtual IP using configuration
3004                           # payloads
3005                           request_virtual_ip = yes
3006                           # enable CHILD_SA every 60s
3007                           child_rekey = 60
3008                      }
3009                 }
3010            }
3011
3012

IKEv2 RETRANSMISSION

3014       Retransmission  timeouts  in  the IKEv2 daemon charon can be configured
3015       globally using the three keys listed below:
3016
3017              charon.retransmit_base [1.8]
3018              charon.retransmit_timeout [4.0]
3019              charon.retransmit_tries [5]
3020              charon.retransmit_jitter [0]
3021              charon.retransmit_limit [0]
3022
3023       The following algorithm is used to calculate the timeout:
3024
3025            relative timeout = retransmit_timeout * retransmit_base ^ (n-1)
3026
3027       Where n is the current retransmission  count.  The  calculated  timeout
3028       can't  exceed the configured retransmit_limit (if any), which is useful
3029       if the number of retries is high.
3030
3031       If a jitter in percent is configured, the timeout is modified  as  fol‐
3032       lows:
3033
3034            relative timeout -= random(0, retransmit_jitter * relative timeout)
3035
3036       Using the default values, packets are retransmitted in:
3037
3038
3039       Retransmission   Relative Timeout   Absolute Timeout
3040       ─────────────────────────────────────────────────────
3041       1                              4s                 4s
3042       2                              7s                11s
3043       3                             13s                24s
3044       4                             23s                47s
3045       5                             42s                89s
3046       giving up                     76s               165s
3047

VARIABLES

3049       The variables used above are configured as follows:
3050
3051       ${piddir}               /var/run
3052       ${prefix}               /usr
3053       ${random_device}        /dev/random
3054       ${urandom_device}       /dev/urandom
3055

FILES

3057       /etc/strongswan.conf       configuration file
3058       /etc/strongswan.d/         directory containing included config snippets
3059       /etc/strongswan.d/charon/  plugin specific config snippets
3060

SEE ALSO

3062       ipsec.conf(5), ipsec.secrets(5), ipsec(8), charon-cmd(8)
3063
3064

HISTORY

3066       Written  for  the  strongSwan  project  ⟨http://www.strongswan.org⟩  by
3067       Tobias Brunner, Andreas Steffen and Martin Willi.
3068
3069
3070
30715.7.2                                                       STRONGSWAN.CONF(5)
Impressum