]> git.feebdaed.xyz Git - 0xmirror/libreswan.git/commitdiff
documentation: split d.ipsec.conf/ into setup/, conn/, and sect/ subdirs
authorAndrew Cagney <cagney@gnu.org>
Sun, 7 Dec 2025 21:37:38 +0000 (16:37 -0500)
committerAndrew Cagney <cagney@gnu.org>
Sun, 7 Dec 2025 22:56:17 +0000 (17:56 -0500)
matching conn and setup options, and sect/ for section files

356 files changed:
configs/Makefile
configs/d.ipsec.conf/accept-redirect-to.xml [deleted file]
configs/d.ipsec.conf/accept-redirect.xml [deleted file]
configs/d.ipsec.conf/addresspool.xml [deleted file]
configs/d.ipsec.conf/aggressive.xml [deleted file]
configs/d.ipsec.conf/ah.xml [deleted file]
configs/d.ipsec.conf/audit-log.xml [deleted file]
configs/d.ipsec.conf/auth.xml [deleted file]
configs/d.ipsec.conf/authby.xml [deleted file]
configs/d.ipsec.conf/autheap.xml [deleted file]
configs/d.ipsec.conf/author.xml [deleted file]
configs/d.ipsec.conf/auto.xml [deleted file]
configs/d.ipsec.conf/bugs.xml [deleted file]
configs/d.ipsec.conf/ca.xml [deleted file]
configs/d.ipsec.conf/cat.xml [deleted file]
configs/d.ipsec.conf/cert.xml [deleted file]
configs/d.ipsec.conf/choosing_a_connection.xml [deleted file]
configs/d.ipsec.conf/cisco-split.xml [deleted file]
configs/d.ipsec.conf/cisco-unity.xml [deleted file]
configs/d.ipsec.conf/ckaid.xml [deleted file]
configs/d.ipsec.conf/clientaddrfamily.xml [deleted file]
configs/d.ipsec.conf/compress.xml [deleted file]
configs/d.ipsec.conf/conn/accept-redirect-to.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/accept-redirect.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/addresspool.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/aggressive.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/ah.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/auth.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/authby.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/autheap.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/auto.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/ca.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/cat.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/cert.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/cisco-split.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/cisco-unity.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/ckaid.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/clientaddrfamily.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/compress.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/debug.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/decap-dscp.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/dns-match-id.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/dpddelay.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/dpdtimeout.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/enable-tcp.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/encap-dscp.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/encapsulation.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/esn.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/esp.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/failureshunt.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/fake-strongswan.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/firewall.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/fragmentation.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/host.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/hostaddrfamily.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/id.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/ignore-peer-dns.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/ike.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/ikelifetime.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/ikepad.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/ikeport.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/initial-contact.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/interface-ip.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/intermediate.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/ipsec-interface.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/ipsec-max-bytes.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/ipsec-max-packets.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/iptfs.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/keyexchange.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/mark-in.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/mark-out.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/mark.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/metric.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/mobike.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/modecfgclient.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/modecfgoptions.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/modecfgpull.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/modecfgserver.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/ms-dh-downgrade.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/mtu.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/narrowing.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/nat-ikev1-method.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/nat-keepalive.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/negotiationshunt.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/nexthop.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/nflog-group.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/nic-offload.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/nm-configured.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/nopmtudisc.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/overlapip.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/pam-authorize.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/pfs.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/phase2.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/policy-label.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/ppk-ids.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/ppk.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/priority.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/protoport.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/redirect-to.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/reject-simultaneous-ike-auth.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/rekey.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/rekeyfuzz.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/rekeymargin.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/remote-peer-type.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/replay-window.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/reqid.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/require-id-on-certificate.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/retransmit-interval.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/retransmit-timeout.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/rsasigkey.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/salifetime.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/send-no-esp-tfc.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/send-redirect.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/send-vendorid.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/sendca.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/sendcert.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/sha2-truncbug.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/share-lease.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/sourceip.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/subnet.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/subnets.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/tcp-remoteport.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/tfc.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/type.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/updown.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/username.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/vti-interface.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/vti-routing.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/vti-shared.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/vti.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/xauthby.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/xauthclient.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/xauthfail.xml [new file with mode: 0644]
configs/d.ipsec.conf/conn/xauthserver.xml [new file with mode: 0644]
configs/d.ipsec.conf/connsections.xml [deleted file]
configs/d.ipsec.conf/crl-strict.xml [deleted file]
configs/d.ipsec.conf/crl-timeout.xml [deleted file]
configs/d.ipsec.conf/crlcheckinterval.xml [deleted file]
configs/d.ipsec.conf/curl-iface.xml [deleted file]
configs/d.ipsec.conf/ddos-ike-threshold.xml [deleted file]
configs/d.ipsec.conf/ddos-mode.xml [deleted file]
configs/d.ipsec.conf/debug.xml [deleted file]
configs/d.ipsec.conf/decap-dscp.xml [deleted file]
configs/d.ipsec.conf/default_policy_groups.xml [deleted file]
configs/d.ipsec.conf/dns-match-id.xml [deleted file]
configs/d.ipsec.conf/dns-resolver.xml [deleted file]
configs/d.ipsec.conf/dnssec-anchors.xml [deleted file]
configs/d.ipsec.conf/dnssec-enable.xml [deleted file]
configs/d.ipsec.conf/dnssec-rootkey-file.xml [deleted file]
configs/d.ipsec.conf/dpddelay.xml [deleted file]
configs/d.ipsec.conf/dpdtimeout.xml [deleted file]
configs/d.ipsec.conf/dumpdir.xml [deleted file]
configs/d.ipsec.conf/enable-tcp.xml [deleted file]
configs/d.ipsec.conf/encap-dscp.xml [deleted file]
configs/d.ipsec.conf/encapsulation.xml [deleted file]
configs/d.ipsec.conf/esn.xml [deleted file]
configs/d.ipsec.conf/esp.xml [deleted file]
configs/d.ipsec.conf/exampleleftright.xml [deleted file]
configs/d.ipsec.conf/expire-lifetime.xml [deleted file]
configs/d.ipsec.conf/expire-shunt-interval.xml [deleted file]
configs/d.ipsec.conf/failureshunt.xml [deleted file]
configs/d.ipsec.conf/fake-strongswan.xml [deleted file]
configs/d.ipsec.conf/files.xml [deleted file]
configs/d.ipsec.conf/firewall.xml [deleted file]
configs/d.ipsec.conf/fragmentation.xml [deleted file]
configs/d.ipsec.conf/global-redirect-to.xml [deleted file]
configs/d.ipsec.conf/global-redirect.xml [deleted file]
configs/d.ipsec.conf/history.xml [deleted file]
configs/d.ipsec.conf/host.xml [deleted file]
configs/d.ipsec.conf/hostaddrfamily.xml [deleted file]
configs/d.ipsec.conf/id.xml [deleted file]
configs/d.ipsec.conf/ignore-peer-dns.xml [deleted file]
configs/d.ipsec.conf/ike-socket-bufsize.xml [deleted file]
configs/d.ipsec.conf/ike-socket-errqueue.xml [deleted file]
configs/d.ipsec.conf/ike.xml [deleted file]
configs/d.ipsec.conf/ikelifetime.xml [deleted file]
configs/d.ipsec.conf/ikepad.xml [deleted file]
configs/d.ipsec.conf/ikeport.xml [deleted file]
configs/d.ipsec.conf/ikev1-policy.xml [deleted file]
configs/d.ipsec.conf/initial-contact.xml [deleted file]
configs/d.ipsec.conf/interface-ip.xml [deleted file]
configs/d.ipsec.conf/intermediate.xml [deleted file]
configs/d.ipsec.conf/ipsec-interface-managed.xml [deleted file]
configs/d.ipsec.conf/ipsec-interface.xml [deleted file]
configs/d.ipsec.conf/ipsec-max-bytes.xml [deleted file]
configs/d.ipsec.conf/ipsec-max-packets.xml [deleted file]
configs/d.ipsec.conf/ipsecdir.xml [deleted file]
configs/d.ipsec.conf/iptfs.xml [deleted file]
configs/d.ipsec.conf/keep-alive.xml [deleted file]
configs/d.ipsec.conf/keyexchange.xml [deleted file]
configs/d.ipsec.conf/listen-tcp.xml [deleted file]
configs/d.ipsec.conf/listen-udp.xml [deleted file]
configs/d.ipsec.conf/listen.xml [deleted file]
configs/d.ipsec.conf/logappend.xml [deleted file]
configs/d.ipsec.conf/logfile.xml [deleted file]
configs/d.ipsec.conf/logip.xml [deleted file]
configs/d.ipsec.conf/logtime.xml [deleted file]
configs/d.ipsec.conf/mark-in.xml [deleted file]
configs/d.ipsec.conf/mark-out.xml [deleted file]
configs/d.ipsec.conf/mark.xml [deleted file]
configs/d.ipsec.conf/max-halfopen-ike.xml [deleted file]
configs/d.ipsec.conf/metric.xml [deleted file]
configs/d.ipsec.conf/mobike.xml [deleted file]
configs/d.ipsec.conf/modecfgclient.xml [deleted file]
configs/d.ipsec.conf/modecfgoptions.xml [deleted file]
configs/d.ipsec.conf/modecfgpull.xml [deleted file]
configs/d.ipsec.conf/modecfgserver.xml [deleted file]
configs/d.ipsec.conf/ms-dh-downgrade.xml [deleted file]
configs/d.ipsec.conf/mtu.xml [deleted file]
configs/d.ipsec.conf/myvendorid.xml [deleted file]
configs/d.ipsec.conf/narrowing.xml [deleted file]
configs/d.ipsec.conf/nat-ikev1-method.xml [deleted file]
configs/d.ipsec.conf/nat-keepalive.xml [deleted file]
configs/d.ipsec.conf/negotiationshunt.xml [deleted file]
configs/d.ipsec.conf/nexthop.xml [deleted file]
configs/d.ipsec.conf/nflog-all.xml [deleted file]
configs/d.ipsec.conf/nflog-group.xml [deleted file]
configs/d.ipsec.conf/nhelpers.xml [deleted file]
configs/d.ipsec.conf/nic-offload.xml [deleted file]
configs/d.ipsec.conf/nm-configured.xml [deleted file]
configs/d.ipsec.conf/nopmtudisc.xml [deleted file]
configs/d.ipsec.conf/nssdir.xml [deleted file]
configs/d.ipsec.conf/ocsp-cache-max-age.xml [deleted file]
configs/d.ipsec.conf/ocsp-cache-min-age.xml [deleted file]
configs/d.ipsec.conf/ocsp-cache-size.xml [deleted file]
configs/d.ipsec.conf/ocsp-enable.xml [deleted file]
configs/d.ipsec.conf/ocsp-method.xml [deleted file]
configs/d.ipsec.conf/ocsp-strict.xml [deleted file]
configs/d.ipsec.conf/ocsp-timeout.xml [deleted file]
configs/d.ipsec.conf/ocsp-trustname.xml [deleted file]
configs/d.ipsec.conf/ocsp-uri.xml [deleted file]
configs/d.ipsec.conf/oe_conns.xml [deleted file]
configs/d.ipsec.conf/overlapip.xml [deleted file]
configs/d.ipsec.conf/pam-authorize.xml [deleted file]
configs/d.ipsec.conf/pfs.xml [deleted file]
configs/d.ipsec.conf/phase2.xml [deleted file]
configs/d.ipsec.conf/plutodebug.xml [deleted file]
configs/d.ipsec.conf/policy-label.xml [deleted file]
configs/d.ipsec.conf/policy_group_files.xml [deleted file]
configs/d.ipsec.conf/ppk-ids.xml [deleted file]
configs/d.ipsec.conf/ppk.xml [deleted file]
configs/d.ipsec.conf/priority.xml [deleted file]
configs/d.ipsec.conf/protoport.xml [deleted file]
configs/d.ipsec.conf/protostack.xml [deleted file]
configs/d.ipsec.conf/redirect-to.xml [deleted file]
configs/d.ipsec.conf/reject-simultaneous-ike-auth.xml [deleted file]
configs/d.ipsec.conf/rekey.xml [deleted file]
configs/d.ipsec.conf/rekeyfuzz.xml [deleted file]
configs/d.ipsec.conf/rekeymargin.xml [deleted file]
configs/d.ipsec.conf/remote-peer-type.xml [deleted file]
configs/d.ipsec.conf/replay-window.xml [deleted file]
configs/d.ipsec.conf/reqid.xml [deleted file]
configs/d.ipsec.conf/require-id-on-certificate.xml [deleted file]
configs/d.ipsec.conf/retransmit-interval.xml [deleted file]
configs/d.ipsec.conf/retransmit-timeout.xml [deleted file]
configs/d.ipsec.conf/rsasigkey.xml [deleted file]
configs/d.ipsec.conf/salifetime.xml [deleted file]
configs/d.ipsec.conf/seccomp.xml [deleted file]
configs/d.ipsec.conf/secretsfile.xml [deleted file]
configs/d.ipsec.conf/sect/author.xml [new file with mode: 0644]
configs/d.ipsec.conf/sect/bugs.xml [new file with mode: 0644]
configs/d.ipsec.conf/sect/choosing_a_connection.xml [new file with mode: 0644]
configs/d.ipsec.conf/sect/connsections.xml [new file with mode: 0644]
configs/d.ipsec.conf/sect/default_policy_groups.xml [new file with mode: 0644]
configs/d.ipsec.conf/sect/exampleleftright.xml [new file with mode: 0644]
configs/d.ipsec.conf/sect/files.xml [new file with mode: 0644]
configs/d.ipsec.conf/sect/history.xml [new file with mode: 0644]
configs/d.ipsec.conf/sect/oe_conns.xml [new file with mode: 0644]
configs/d.ipsec.conf/sect/policy_group_files.xml [new file with mode: 0644]
configs/d.ipsec.conf/sect/see_also.xml [new file with mode: 0644]
configs/d.ipsec.conf/sect/units.xml [new file with mode: 0644]
configs/d.ipsec.conf/see_also.xml [deleted file]
configs/d.ipsec.conf/seedbits.xml [deleted file]
configs/d.ipsec.conf/send-no-esp-tfc.xml [deleted file]
configs/d.ipsec.conf/send-redirect.xml [deleted file]
configs/d.ipsec.conf/send-vendorid.xml [deleted file]
configs/d.ipsec.conf/sendca.xml [deleted file]
configs/d.ipsec.conf/sendcert.xml [deleted file]
configs/d.ipsec.conf/setup/audit-log.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/crl-strict.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/crl-timeout.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/crlcheckinterval.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/curl-iface.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/ddos-ike-threshold.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/ddos-mode.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/dns-resolver.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/dnssec-anchors.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/dnssec-enable.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/dnssec-rootkey-file.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/dumpdir.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/expire-lifetime.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/expire-shunt-interval.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/global-redirect-to.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/global-redirect.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/ike-socket-bufsize.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/ike-socket-errqueue.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/ikev1-policy.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/ipsec-interface-managed.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/ipsecdir.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/keep-alive.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/listen-tcp.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/listen-udp.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/listen.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/logappend.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/logfile.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/logip.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/logtime.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/max-halfopen-ike.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/myvendorid.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/nflog-all.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/nhelpers.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/nssdir.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/ocsp-cache-max-age.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/ocsp-cache-min-age.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/ocsp-cache-size.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/ocsp-enable.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/ocsp-method.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/ocsp-strict.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/ocsp-timeout.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/ocsp-trustname.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/ocsp-uri.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/plutodebug.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/protostack.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/seccomp.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/secretsfile.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/seedbits.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/shuntlifetime.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/statsbin.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/syslog.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/uniqueids.xml [new file with mode: 0644]
configs/d.ipsec.conf/setup/virtual-private.xml [new file with mode: 0644]
configs/d.ipsec.conf/sha2-truncbug.xml [deleted file]
configs/d.ipsec.conf/share-lease.xml [deleted file]
configs/d.ipsec.conf/shuntlifetime.xml [deleted file]
configs/d.ipsec.conf/sourceip.xml [deleted file]
configs/d.ipsec.conf/statsbin.xml [deleted file]
configs/d.ipsec.conf/subnet.xml [deleted file]
configs/d.ipsec.conf/subnets.xml [deleted file]
configs/d.ipsec.conf/syslog.xml [deleted file]
configs/d.ipsec.conf/tcp-remoteport.xml [deleted file]
configs/d.ipsec.conf/tfc.xml [deleted file]
configs/d.ipsec.conf/type.xml [deleted file]
configs/d.ipsec.conf/uniqueids.xml [deleted file]
configs/d.ipsec.conf/units.xml [deleted file]
configs/d.ipsec.conf/updown.xml [deleted file]
configs/d.ipsec.conf/username.xml [deleted file]
configs/d.ipsec.conf/virtual-private.xml [deleted file]
configs/d.ipsec.conf/vti-interface.xml [deleted file]
configs/d.ipsec.conf/vti-routing.xml [deleted file]
configs/d.ipsec.conf/vti-shared.xml [deleted file]
configs/d.ipsec.conf/vti.xml [deleted file]
configs/d.ipsec.conf/xauthby.xml [deleted file]
configs/d.ipsec.conf/xauthclient.xml [deleted file]
configs/d.ipsec.conf/xauthfail.xml [deleted file]
configs/d.ipsec.conf/xauthserver.xml [deleted file]
configs/ipsec.conf.5.xml

index 8576191abfb5a185ac8a6f600ffd23edf0329b1e..a605476b7c278495356e04e791bf071f8ff2e4d6 100644 (file)
@@ -121,18 +121,21 @@ list-local-base:
 # Custom rules for ipsec.conf.5; manpages.mk should be updated to
 # mimic this behaviour.
 
-$(builddir)/ipsec.conf.5.man: $(srcdir)/ipsec.conf.5.xml $(srcdir)/d.ipsec.conf/*.xml
+
+
+$(builddir)/ipsec.conf.5.man: $(srcdir)/ipsec.conf.5.xml
+$(builddir)/ipsec.conf.5.man: $(srcdir)/d.ipsec.conf/*/*.xml
 $(builddir)/ipsec.conf.5.man: $(builddir)/ipsec.conf.5.ok
-$(builddir)/ipsec.conf.5.ok:  $(srcdir)/d.ipsec.conf/*.xml
        : do all d.ipsec.conf/*.xml files appear in ipsec.conf.5.xml?
-       for x in d.ipsec.conf/*.xml ; do \
+       for x in d.ipsec.conf/*/*.xml ; do \
+               d=$$(basename $$(dirname $${x})) ; \
                b=$$(basename $${x} .xml) ; \
                if ! grep '"'$${x}'"' ipsec.conf.5.xml > /dev/null ; then \
-                       echo '"'$${x}'"' missing ; \
+                       echo 'ENTITY ... "'$${x}'"' missing ; \
                        exit 1 ; \
                fi ; \
-               if ! grep '&'$${b}';' ipsec.conf.5.xml > /dev/null ; then \
-                       echo $${b} missing ; \
+               if ! grep '&'$${d}.$${b}';' ipsec.conf.5.xml > /dev/null ; then \
+                       echo '&'$${d}.$${b}';' missing ; \
                        exit 1 ; \
                fi ; \
        done
diff --git a/configs/d.ipsec.conf/accept-redirect-to.xml b/configs/d.ipsec.conf/accept-redirect-to.xml
deleted file mode 100644 (file)
index 26b75b9..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-<varlistentry>
-  <term>
-    <option>accept-redirect-to</option>
-  </term>
-  <listitem>
-    <para>
-      Specify the comma separated list of addresses we accept being
-      redirected to. Both IPv4 and IPv6 addresses are supported as
-      well the FQDNs. The value <option>%any</option>, as well as not
-      specifying any address, signifes that we will redirect to any
-      address gateway sends us in REDIRECT notify payload.
-    </para>
-    <para>
-      The value of this option is not considered at all if
-      accept-redirect is set to no.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/accept-redirect.xml b/configs/d.ipsec.conf/accept-redirect.xml
deleted file mode 100644 (file)
index e3f7d06..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<varlistentry>
-  <term>
-    <option>accept-redirect</option>
-  </term>
-  <listitem>
-    <para>
-      Whether requests of the remote peer to redirect IKE/IPsec SA's
-      are accepted. Valid options are <option>no</option> (the
-      default) and <option>yes</option>. See also
-      <option>accept-redirect-to</option>.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/addresspool.xml b/configs/d.ipsec.conf/addresspool.xml
deleted file mode 100644 (file)
index df7dfc6..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-<varlistentry>
-  <term>
-    <option>leftaddresspool=&ip_pool;,...</option>
-  </term>
-  <term>
-    <option>rightaddresspool=&ip_pool;...</option>
-  </term>
-  <listitem>
-    <para>
-      Comma separated list of address pools from where the IKEv1 (IPv4
-      Mode Config server) and IKEv2 (IPv4 and IPv6 configuration
-      payload server) can assign IP addresses to clients.  At most one
-      one IPv4 and one IPv6 pool may be specified.  The
-      <option>leftaddresspool=</option> option can not be combined
-      with with either the <option>leftsubnet=</option> or
-      <option>leftsubnets=</option> options.
-    </para>
-    <para>
-      A pool is specified using either an address range (for instance,
-      <option>leftaddresspool=192.168.1.100-192.168.1.200</option> or
-      CIDR (for instance,
-      <option>leftaddresspool=2001:db8:0:3:1::/97)</option> syntax.
-      For IPv6, the CIDR syntax has been extended to also allow the
-      specification of a subnet, for instance
-      <option>leftaddresspool=2001:db8:0:3:1::/60/64</option> will
-      allocate <option>/64</option> leases.  While address pools are
-      grown as required and leases are reclaimed, the size of an
-      address pool should be reasonable.  For instance, the pool
-      <option>leftaddresspool=10.0.0.0-11.0.0.0</option> will
-      eventually result in an in-memory structure containing 16
-      million leases.
-    </para>
-    <para>
-      Address pools specifying the exact same range are shared between
-      connections.  Different addresspools cannot partially overlap.
-    </para>
-    <para>
-      For IKEv1, when <option>right</option> is configured as a server
-      using <option>rightxauthserver=yes</option>, this option
-      specifies the address pool from which IP addresses are taken to
-      assign the <option>left</option> clients during the Mode Config
-      exchange.  Generally, the <option>leftaddresspool=</option>
-      option will be accompanied by
-      <option>leftxauthclient=yes</option>,
-      <option>rightxauthserver=yes</option> and
-      <option>rightsubnet=0.0.0.0/0</option> option.
-    </para>
-    <para>
-      History: &Libreswan; version 3.30 added support for IPv6
-      addresses, and replaced a static table with dynamic O(1)
-      structures; &Libreswan; 5.0 added support for combined IPv4 and
-      IPv6 address pools; &Libreswan; 5.4 added support for IPv6
-      subnets.  &Libreswan; should allow the combination of
-      <option>addresspool</option> and <option>subnet</option>,
-      patches would be welcome.
-    </para>
-
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/aggressive.xml b/configs/d.ipsec.conf/aggressive.xml
deleted file mode 100644 (file)
index 2c6629a..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<varlistentry>
-  <term>
-    <option>aggressive</option>
-  </term>
-  <listitem>
-
-    <para>
-      Use IKEv1 Aggressive Mode instead of IKEv1 Main Mode. This
-      option has no effect when IKEv2 is used.  Acceptable values are
-      <option>no</option> (the default) or <option>yes</option>.
-      When this option is enabled, IKEv1 Main Mode will no longer be
-      allowed for this connection. The old name of this option was
-      <option>aggrmode</option>.
-    </para>
-
-    <para>
-      Aggressive Mode is less secure, and more vulnerable to Denial Of
-      Service attacks. It is also vulnerable to brute force attacks
-      with software such as <option>ikecrack</option>.
-      It should not be used, and it should especially not be used with
-      XAUTH and group secrets (PSK).  If the remote system administrator
-      insists on staying irresponsible, enable this option.
-    </para>
-
-    <para>
-      Aggressive Mode is further limited to only proposals with one DH
-      group as there is no room to negotiate the DH group. Therefore
-      it is mandatory for Aggressive Mode connections that both
-      <option>ike=</option> and <option>esp=</option> options
-      are specified with only one fully specified proposal using one DH group.
-    </para>
-
-    <para>
-      The KE payload is created in the first exchange packet when
-      using aggressive mode. The KE payload depends on the DH group
-      used.  This is why there cannot be multiple DH groups in IKEv1
-      aggressive mode.  In IKEv2, which uses a similar method to IKEv1
-      Aggressive Mode, there is an INVALID_KE response payload that
-      can inform the initiator of the responder's desired DH group and
-      so an IKEv2 connection can actually recover from picking the
-      wrong DH group by restarting its negotiation.
-    </para>
-
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/ah.xml b/configs/d.ipsec.conf/ah.xml
deleted file mode 100644 (file)
index 250224b..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-<varlistentry>
-  <term>
-    <option>ah</option>
-  </term>
-  <listitem>
-    <para>
-      A comma separated list of AH algorithms that will be
-      offered/accepted when negotiating the Child SA.  The general
-      syntax is:
-    </para>
-    <para>
-      <simplelist columns='1'>
-       <member>AH = PROPOSAL[,PROPOSAL...]</member>
-       <member>PROPOSAL = INTEG_ALGS[-DH_ALGS]</member>
-       <member>INTEG_ALGS = INTEG_ALG[+INTEG_ALG...]</member>
-       <member>DH_ALGS = DH_ALG[+DH_ALG...]</member>
-      </simplelist>
-    </para>
-    <para>
-      During startup, &ipsec-pluto.8; will log all supported AH
-      algorithms.
-    </para>
-    <para>
-      Specifying the DH algorithms explicitly is
-      <option>not</option> recommended.  When PFS is enabled, and
-      the DH algorithms are omitted, each PROPOSAL will automatically
-      include the DH algorithm negotiated during the IKE exchange.
-    </para>
-    <para>
-      The default is not to use AH. If for some (invalid) reason you
-      still think you need AH, please use esp with the null encryption
-      cipher instead.
-    </para>
-    <para>
-      For instance:
-    </para>
-    <para>
-      <simplelist columns='1'>
-       <member><computeroutput>ah=sha2_256+sha2_512</computeroutput></member>
-       <member><computeroutput>ah=sha2_256+sha2_512-dh14+dh19</computeroutput></member>
-      </simplelist>
-    </para>
-    <para>
-      If not specified, a secure set of defaults will be used.  The
-      command <command>ipsec algparse ah=...</command> can be used to
-      query these defaults.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/audit-log.xml b/configs/d.ipsec.conf/audit-log.xml
deleted file mode 100644 (file)
index f8dd937..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-<varlistentry>
-  <term>
-    <option>audit-log</option>=&Yn_options;
-  </term>
-  <listitem>
-    <para>
-      Whether pluto should produce Linux Auditing System log messages.
-      If enabled, pluto will log <option>start</option>,
-      <command>stop</command> and <option>fail</option> for the
-      negotiation of IKE and IPsec SA's.  The kernel will also log
-      success and failures for actually adding and removing IPsec SA's
-      from the kernel's SADB.  Valid options are
-      <option>yes</option>(the default) and <option>no</option>.  On
-      non-Linux systems, this option is ignored.  If enabled but the
-      kernel is lacking audit support, audit messages are not sent.
-      If the kernel has audit support and using it fails, pluto will
-      abort.  Note that for compliance reasons, audit log messages
-      contain the relevant IP addresses, even if
-      <option>logip=no</option>.
-    </para>
-    <para>
-      Prior to &Libreswan; version 5.3, when <command>pluto</command>
-      was invoked directly and without a configuration file, this
-      option was set to <option>no</option>.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/auth.xml b/configs/d.ipsec.conf/auth.xml
deleted file mode 100644 (file)
index 3de5fe7..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<varlistentry>
-  <term>
-    <option>leftauth</option>
-  </term>
-  <term>
-    <option>rightauth</option>
-  </term>
-  <listitem>
-    <para>
-      How the security gateways will authenticate to the other side in
-      the case of asymmetric authentication; acceptable values are
-      <option>rsasig</option> or <option>rsa</option>
-      for RSA Authentication with SHA-1, <option>rsa-sha2</option>
-      for RSA-PSS digital signatures based authentication with SHA2-256,
-      <option>rsa-sha2_384</option> for RSA-PSS digital signatures
-      based authentication with SHA2-384, <option>rsa-sha2_512</option>
-      for RSA-PSS digital signatures based authentication with SHA2-512,
-      <option>ecdsa</option> for ECDSA digital signatures based
-      authentication, <option>secret</option> for shared
-      secrets (PSK) authentication and <option>null</option> for
-      null-authentication. There is no default value - if unset, the
-      symmetrical <option>authby=</option> keyword is used to
-      determine the authentication policy of the connection.
-    </para>
-
-    <para>
-      Asymmetric authentication is only supported with IKEv2. If symmetric
-      authentication is required, use <option>authby=</option> instead
-      of leftauth and rightauth. If leftauth is set, rightauth must also be set and
-      authby= must not be set. Asymmetric authentication cannot use secret (psk) on one
-      side and null on the other side - use psk on both ends instead.
-    </para>
-    <para>
-      When using EAPONLY authentication, which omits the regular IKEv2
-      AUTH payload, leftauth= (or rightauth=) should be set to
-      <option>eaponly</option>.
-    </para>
-    <para>
-      Be aware that the symmetric keyword is <option>authby=</option>
-      but the asymmetric keyword is <option>leftauth</option> and
-      <option>rightauth</option> (without the "by").
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/authby.xml b/configs/d.ipsec.conf/authby.xml
deleted file mode 100644 (file)
index 612f2fe..0000000
+++ /dev/null
@@ -1,205 +0,0 @@
-<varlistentry>
-  <term>
-    <option>authby=</option>
-  </term>
-  <listitem>
-
-    <para>
-      How the two security gateways should authenticate each other.  A
-      comma separated list of one or more of the following:
-    </para>
-
-    <variablelist>
-
-      <varlistentry>
-       <term>
-         <option>ecdsa</option>
-       </term>
-       <term>
-         <option>ecdsa-sha2</option>
-       </term>
-       <listitem>
-         <para>
-           ECDSA digital signature based authentication with any of
-           the hash algorithms SHA2_256, SHA2_384, or SHA2_512.
-         </para>
-       </listitem>
-      </varlistentry>
-
-      <varlistentry>
-       <term>
-         <option>ecdsa-sha2_256</option>
-       </term>
-       <term>
-         <option>ecdsa-sha2_384</option>
-       </term>
-       <term>
-         <option>ecdsa-sha2_512</option>
-       </term>
-       <listitem>
-         <para>
-           ECDSA digital signature based authentication with the
-           specified SHA2_256, SHA2_384, or SHA2_512 hash algorithm.
-         </para>
-       </listitem>
-      </varlistentry>
-
-      <varlistentry>
-       <term>
-         <option>eddsa</option>
-       </term>
-       <listitem>
-         <para>
-           EDDSA digital signature based authentication on curve on
-           curve 25519.
-         </para>
-       </listitem>
-      </varlistentry>
-
-      <varlistentry>
-       <term>
-         <option>rsa</option>
-       </term>
-       <term>
-         <option>rsasig</option>
-       </term>
-       <listitem>
-         <para>
-           RSA-PKCSv1.5 digital signature based authentication with
-           SHA1; and, when IKEv2, RSASSA-PSS digital signature
-           authentication with either SHA2_256, SHA2_384, or
-           SHA2_512.
-         </para>
-       </listitem>
-      </varlistentry>
-
-      <varlistentry>
-       <term>
-         <option>rsa-sha1</option>
-       </term>
-       <listitem>
-         <para>
-           RSA-PKCSv1.5 digital signature based authentication with
-           SHA1
-         </para>
-       </listitem>
-      </varlistentry>
-
-      <varlistentry>
-       <term>
-         <option>rsa-sha2</option>
-       </term>
-       <listitem>
-         <para>
-           RSASSA-PSS digital signature based authentication with any
-           of the hash algorithms SHA2_256, SHA2_384, or SHA2_512.
-         </para>
-       </listitem>
-      </varlistentry>
-
-      <varlistentry>
-       <term>
-         <option>rsa-sha2_256</option>
-       </term>
-       <term>
-         <option>rsa-sha2_384</option>
-       </term>
-       <term>
-         <option>rsa-sha2_512</option>
-       </term>
-       <listitem>
-         <para>
-             RSASSA-PSS digital signature based authentication with
-             the specified SHA2_256, SHA2_384, or SHA2_512 hash
-             algorithm.
-         </para>
-       </listitem>
-      </varlistentry>
-
-      <varlistentry>
-       <term>
-         <option>secret</option>
-       </term>
-       <listitem>
-         <para>
-           Shared secrets (PSK) authentication; cannot be combined
-           with other authentication methods.
-         </para>
-       </listitem>
-      </varlistentry>
-
-      <varlistentry>
-       <term>
-         <option>never</option>
-       </term>
-       <listitem>
-         <para>
-           Negotiation is never to be attempted or accepted; cannot
-           be combined with other authentication methods.
-         </para>
-       </listitem>
-      </varlistentry>
-
-      <varlistentry>
-       <term>
-         <option>null</option>
-       </term>
-       <listitem>
-         <para>
-           NULL-authentication; cannot be combined with other
-           authentication methods.
-         </para>
-       </listitem>
-      </varlistentry>
-    </variablelist>
-
-    <para>
-      For IKEv1, SHA2 based signatures are not defined and ECDSA is
-      not implemented, so the default <option>authby</option> value is
-      <option>rsa-sha1</option>.  Using <option>authby=rsasig</option>
-      results in only <option>rsa-sha1</option> as well.
-    </para>
-
-    <para>
-      For IKEv2, <option>rsasig,ecdsa</option> which allows ECDSA with
-      SHA-2 and RSA with SHA2 or SHA1.  Using
-      <option>authby=rsasig</option> means using
-      <option>rsa-sha2_512</option>, <option>rsa-sha2_384</option>,
-      <option>rsa-sha2_256</option> and <option>rsa-sha1</option>,
-      where <option>rsa-sha1</option> will used only if RFC 7427 is
-      not supported by the peer.
-    </para>
-
-    <para>
-      Note that <option>authby</option> cannot be used for asymmetric
-      authentication.  Instead, IKEv2 must be enabled and the options
-      <option>leftauth</option> and <option>rightauth</option> used.
-    </para>
-
-    <para>
-      As per RFC 8221, <option>authby=rsa-sha1</option> is only
-      supported in the old style, meaning RSA-PKCSv1.5.  The SHA2
-      variants are only supported for the new style of RFC 7427, so
-      <option>authby=rsa-sha2</option> will use the new style. The
-      default <option>authby=</option> will remove
-      <option>rsa-sha1</option> in the near future.  It is strongly
-      recommended that when certificates are used, the certificates
-      and the <option>authby=</option> signature methods used are the
-      same, as it increases interoperability and keeps the
-      authentication of everything within one digital signature
-      system.
-    </para>
-
-    <para>
-      Digital signatures are superior in every way to shared secrets.
-      Especially IKEv1 in Aggressive Mode is vulnerable to offline
-      dictionary attacks and is performed routinely by at least the
-      NSA on monitored internet traffic globally.  The never option is
-      only used for connections that do not actually start an IKE
-      negotiation, such as type=passthrough connections. The auth
-      method null is used for "anonymous opportunistic IPsec" and
-      should not be used for regular pre-configured IPsec VPNs.
-    </para>
-
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/autheap.xml b/configs/d.ipsec.conf/autheap.xml
deleted file mode 100644 (file)
index 01978b0..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-<varlistentry>
-  <term>
-    <option>leftautheap</option>
-  </term>
-  <term>
-    <option>rightautheap</option>
-  </term>
-  <listitem>
-    <para>
-      Whether the security gateways will authenticate uing an EAP
-      method.  Acceptable values are <option>none</option>
-      (the default) and <option>tls</option> for EAPTLS. If EAP
-      is the only authentication method, set <option>leftauth=none</option>
-      in addition to <option>leftautheap=tls=</option>.
-    </para>
-
-    <para>
-      The EAP authentication mechanisms are only available for IKEv2
-      based connections.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/author.xml b/configs/d.ipsec.conf/author.xml
deleted file mode 100644 (file)
index ec1ab32..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-<refsect1 id='author'>
-  <title>AUTHOR</title>
-  <para>
-    <author><personname><firstname>Paul</firstname><surname>Wouters</surname></personname></author>
-  </para>
-</refsect1>
diff --git a/configs/d.ipsec.conf/auto.xml b/configs/d.ipsec.conf/auto.xml
deleted file mode 100644 (file)
index 1a7550d..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-<varlistentry>
-  <term>
-    <option>auto=</option>
-  </term>
-  <listitem>
-    <para>
-      what operation, if any, should be done automatically at IPsec
-      startup; currently-accepted values are:
-    </para>
-    <variablelist>
-      <varlistentry>
-       <term>
-         <option>auto=add</option>
-       </term>
-       <listitem>
-         <para>
-           equivalent to:
-           <simplelist>
-             <member>
-               <command>ipsec add <replaceable>connection</replaceable></command>
-             </member>
-           </simplelist>
-         </para>
-       </listitem>
-      </varlistentry>
-      <varlistentry>
-       <term>
-         <option>auto=ondemand</option>
-       </term>
-       <listitem>
-         <para>
-           equivalent to:
-           <simplelist>
-             <member>
-               <command>ipsec add <replaceable>connection</replaceable></command>
-             </member>
-             <member>
-               <command>ipsec route <replaceable>connection</replaceable></command>
-             </member>
-           </simplelist>
-           (<option>auto=route</option> is an alias)
-         </para>
-       </listitem>
-      </varlistentry>
-      <varlistentry>
-       <term>
-         <option>auto=up</option>
-       </term>
-       <term>
-         <option>auto=start</option>
-       </term>
-       <listitem>
-         <para>
-           equivalent to:
-           <simplelist>
-             <member>
-               <command>ipsec add <replaceable>connection</replaceable></command>
-             </member>
-             <member>
-               <command>ipsec up <replaceable>connection</replaceable></command>
-             </member>
-           </simplelist>
-         </para>
-       </listitem>
-      </varlistentry>
-      <varlistentry>
-       <term>
-         <option>auto=ignore</option>
-       </term>
-       <listitem>
-         <para>
-           signifying no automatic operation when
-           &Libreswan; is starting (also the
-           default)
-         </para>
-       </listitem>
-      </varlistentry>
-      <varlistentry>
-       <term>
-         <option>auto=keep</option>
-       </term>
-       <listitem>
-         <para>
-           signifying an add plus an attempt to keep the connection
-           up once the remote peer brought it up
-         </para>
-       </listitem>
-      </varlistentry>
-    </variablelist>
-    <para>
-      Relevant only locally, other end need not agree on it (but in
-      general, for an intended-to-be-permanent connection, both ends
-      should use <option>auto=up</option> to ensure that any reboot
-      causes immediate renegotiation).
-    </para>
-    <para>
-      See the <option>config setup</option> discussion below.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/bugs.xml b/configs/d.ipsec.conf/bugs.xml
deleted file mode 100644 (file)
index c38f8e0..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-<refsect1 id='bugs'>
-  <title>
-    BUGS
-  </title>
-  <para>
-    Before reporting new bugs, please ensure you are using the latest
-    version of Libreswan.
-  </para>
-
-  <para>
-    When <option>type</option> or <option>failureshunt</option> is set
-    to <option>drop</option> or <option>reject,</option> &Libreswan;
-    blocks outbound packets using eroutes, but assumes inbound
-    blocking is handled by the firewall.  &Libreswan; offers firewall
-    hooks via an &ldquo;updown&rdquo; script.  However, the default
-    <command>ipsec _updown</command> provides no help in controlling a
-    modern firewall.
-  </para>
-
-  <para>
-    Including attributes of the keying channel (authentication
-    methods, <option>ikelifetime</option>, etc.) as an
-    attribute of a connection, rather than of a participant pair, is
-    dubious and incurs limitations.
-  </para>
-
-  <para>
-    The use of <option>%any</option> with the <option>protoport=</option>
-    option is ambiguous. Should the SA permits any port through or should
-    the SA negotiate any single port through?  The first is a basic conn with
-    a wildcard. The second is a template. The second is the current behaviour,
-    and it's wrong for quite a number of uses involving TCP. The keyword
-    <option>%one</option> may be introduced in the
-    future to separate these two cases.
-  </para>
-
-  <para>
-    It would be good to have a line-continuation syntax, especially
-    for the very long lines involved in RSA signature keys.
-  </para>
-
-  <para>
-    The ability to specify different identities, <option>authby</option>,
-    and public keys for different automatic-keyed connections between
-    the same participants is misleading; this doesn't work dependably
-    because the identity of the participants is not known early enough.
-    This is especially awkward for the &ldquo;Road Warrior&rdquo; case,
-    where the remote IP address is specified as <literal>0.0.0.0</literal>,
-    and that is considered to be the &ldquo;participant&rdquo; for such
-    connections.
-  </para>
-
-  <para>
-    If conns are to be added before DNS is available, <option>left=</option>
-    <option>FQDN</option>, <option>leftnextop=</option><option>FQDN</option>,
-    and <option>leftrsasigkey=%dnsonload</option> will fail.
-    &ipsec-pluto.8;
-    does not actually use the public key for our side of a conn but it
-    isn't generally known at a add-time which side is ours (Road
-    Warrior and Opportunistic conns are currently exceptions).
-  </para>
-
-</refsect1>
diff --git a/configs/d.ipsec.conf/ca.xml b/configs/d.ipsec.conf/ca.xml
deleted file mode 100644 (file)
index 65e2b3e..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-<varlistentry>
-  <term>
-    <option>leftca</option>
-  </term>
-  <term>
-    <option>rightca</option>
-  </term>
-  <listitem>
-    <para>
-      Specifies the Distinguished Name of the authorized Certificate
-      Authority (CA) that signed the certificate of the peer.  When
-      unspecified, it defaults to the CA that signed the certificate
-      specified in <option>leftcert</option>.
-    </para>
-    <para>
-      The special
-      <option>rightca=%same</option> is implied when not specifying a
-      <option>rightca</option> and means that only peers with
-      certificates signed by the same CA as the leftca will be
-      allowed. This option is only useful in complex multi CA
-      certificate situations. When using a single CA, it can be safely
-      omitted for both left and right.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/cat.xml b/configs/d.ipsec.conf/cat.xml
deleted file mode 100644 (file)
index eddd2a0..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<varlistentry>
-  <term>
-    <option>leftcat</option>
-  </term>
-  <term>
-    <option>rightcat</option>
-  </term>
-  <listitem>
-    <para>
-      Whether to perform Client Address Translation ("CAT") when using
-      Opportunistic IPsec behind NAT.  Accepted values are <option>no</option>
-      (the default) and <option>yes</option>. This option should
-      only be enabled on the special Opportunistic IPsec connections,
-      usually called "private" and "private-or-clear". When set, this
-      option causes the given addresspool IP from the remote peer to be
-      NATed with nftables or iptables. It will also install an additional
-      IPsec SA policy to cover the pre-NAT IP. See the Opportunistic IPsec
-      information on the libreswan website for more information and examples.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/cert.xml b/configs/d.ipsec.conf/cert.xml
deleted file mode 100644 (file)
index 6bc239a..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<varlistentry>
-  <term>
-    <option>leftcert</option>
-  </term>
-  <term>
-    <option>rightcert</option>
-  </term>
-  <listitem>
-    <para>
-      If you are using <option>leftrsasigkey=%cert</option>
-      this defines the certificate nickname of your certificate in the NSS
-      database. This can be on software or hardware security device.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/choosing_a_connection.xml b/configs/d.ipsec.conf/choosing_a_connection.xml
deleted file mode 100644 (file)
index da36d12..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-<refsect1 id='choosing_a_connection'>
-  <title>
-    CHOOSING A CONNECTION [THIS SECTION IS EXTREMELY OUT OF DATE
-  </title>
-  <para>
-    When choosing a connection to apply to an outbound packet caught
-    with a <option>%trap,</option> the system prefers
-    the one with the most specific eroute that includes the packet's
-    source and destination IP addresses.  Source subnets are examined
-    before destination subnets.  For initiating, only routed
-    connections are considered. For responding, unrouted but added
-    connections are considered.
-  </para>
-  <para>
-    When choosing a connection to use to respond to a negotiation
-    that doesn't match an ordinary conn, an opportunistic connection may
-    be instantiated. Eventually, its instance will be /32 -&gt; /32, but
-    for earlier stages of the negotiation, there will not be enough
-    information about the client subnets to complete the
-    instantiation.
-  </para>
-</refsect1>
diff --git a/configs/d.ipsec.conf/cisco-split.xml b/configs/d.ipsec.conf/cisco-split.xml
deleted file mode 100644 (file)
index 8eed943..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<varlistentry>
-  <term>
-    <option>cisco-split</option>=&yN_options;
-  </term>
-  <listitem>
-    <para>
-      Use the IKEv1 MODE_CFG CISCO_SPLIT_INCLUDE payload to transfer
-      the server's <option>subnet=</option> list to the client.
-      During the Quick Mode exchange, the client and server will then
-      install kernel policy that includes all the subnets.  Acceptable
-      values are: <option>no</option> (the default) and
-      <option>yes</option>.
-    </para>
-    <para>
-      The <option>cisco-split</option> option was added in &Libreswan;
-      version 5.3.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/cisco-unity.xml b/configs/d.ipsec.conf/cisco-unity.xml
deleted file mode 100644 (file)
index 1dde779..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-<varlistentry>
-  <term>
-    <option>cisco-unity</option>
-  </term>
-  <listitem>
-    <para>
-      whether to send a CISCO_UNITY payload to the peer.  Acceptable
-      values are: <option>no</option> (the default) and
-      <option>yes</option>.
-    </para>
-    <para>
-      It is recommended to leave this option unset, unless the remote
-      peer (Cisco client or server) requires it. This option does not
-      modify local behaviour. It can be needed to connect as a client
-      to a Cisco server. It can also be needed to act as a server for
-      a Cisco client, which otherwise might send back an error
-      DEL_REASON_NON_UNITY_PEER.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/ckaid.xml b/configs/d.ipsec.conf/ckaid.xml
deleted file mode 100644 (file)
index ec3aa9f..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<varlistentry>
-  <term>
-    <option>leftckaid</option>
-  </term>
-  <term>
-    <option>rightckaid</option>
-  </term>
-  <listitem>
-    <para>
-      The CKAID of the X.509 certificate or host key.
-    </para>
-    <para>
-      For X.509 certificates, the CKAID is either the certificate's
-      SubjectKeyIdentifier or the public key's SHA1 fingerprint (when
-      the SubjectKeyIdentifier isn't specified).  For host keys the
-      CKAID is the SHA1 fingerprint of the public key.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/clientaddrfamily.xml b/configs/d.ipsec.conf/clientaddrfamily.xml
deleted file mode 100644 (file)
index 0b539c1..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<varlistentry>
-  <term>
-    <option>clientaddrfamily={ipv4,ipv6}</option>
-  </term>
-  <listitem>
-    <para>
-      This option was removed in &Libreswan; version 5.3.
-    </para>
-    <para>
-      Since &Libreswan; version 5.0, <option>subnet=</option>
-      <option>subnets=</option> have allowed a mixture of IKEv1 and
-      IKEv2 addresses, making <option>clientaddrfamily=</option>
-      redundant.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/compress.xml b/configs/d.ipsec.conf/compress.xml
deleted file mode 100644 (file)
index 19e7aa1..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<varlistentry>
-  <term><option>compress</option></term>
-  <listitem>
-    <para>
-      whether IPComp compression of content is proposed on the
-      connection (link-level compression does not work on encrypted
-      data, so to be effective, compression must be done
-      <option>before</option> encryption); acceptable values are
-      <option>yes</option> and <option>no</option> (the default).
-    </para>
-    <para>
-      For IKEv1, compress settings on both peers must match. For
-      IKEv2, compression can only be suggested and a mismatched
-      compress setting results in connection without compression.
-    </para>
-    <para>
-      When set to yes, compression is negotiated for the DEFLATE
-      compression algorithm.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/accept-redirect-to.xml b/configs/d.ipsec.conf/conn/accept-redirect-to.xml
new file mode 100644 (file)
index 0000000..26b75b9
--- /dev/null
@@ -0,0 +1,18 @@
+<varlistentry>
+  <term>
+    <option>accept-redirect-to</option>
+  </term>
+  <listitem>
+    <para>
+      Specify the comma separated list of addresses we accept being
+      redirected to. Both IPv4 and IPv6 addresses are supported as
+      well the FQDNs. The value <option>%any</option>, as well as not
+      specifying any address, signifes that we will redirect to any
+      address gateway sends us in REDIRECT notify payload.
+    </para>
+    <para>
+      The value of this option is not considered at all if
+      accept-redirect is set to no.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/accept-redirect.xml b/configs/d.ipsec.conf/conn/accept-redirect.xml
new file mode 100644 (file)
index 0000000..e3f7d06
--- /dev/null
@@ -0,0 +1,13 @@
+<varlistentry>
+  <term>
+    <option>accept-redirect</option>
+  </term>
+  <listitem>
+    <para>
+      Whether requests of the remote peer to redirect IKE/IPsec SA's
+      are accepted. Valid options are <option>no</option> (the
+      default) and <option>yes</option>. See also
+      <option>accept-redirect-to</option>.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/addresspool.xml b/configs/d.ipsec.conf/conn/addresspool.xml
new file mode 100644 (file)
index 0000000..df7dfc6
--- /dev/null
@@ -0,0 +1,59 @@
+<varlistentry>
+  <term>
+    <option>leftaddresspool=&ip_pool;,...</option>
+  </term>
+  <term>
+    <option>rightaddresspool=&ip_pool;...</option>
+  </term>
+  <listitem>
+    <para>
+      Comma separated list of address pools from where the IKEv1 (IPv4
+      Mode Config server) and IKEv2 (IPv4 and IPv6 configuration
+      payload server) can assign IP addresses to clients.  At most one
+      one IPv4 and one IPv6 pool may be specified.  The
+      <option>leftaddresspool=</option> option can not be combined
+      with with either the <option>leftsubnet=</option> or
+      <option>leftsubnets=</option> options.
+    </para>
+    <para>
+      A pool is specified using either an address range (for instance,
+      <option>leftaddresspool=192.168.1.100-192.168.1.200</option> or
+      CIDR (for instance,
+      <option>leftaddresspool=2001:db8:0:3:1::/97)</option> syntax.
+      For IPv6, the CIDR syntax has been extended to also allow the
+      specification of a subnet, for instance
+      <option>leftaddresspool=2001:db8:0:3:1::/60/64</option> will
+      allocate <option>/64</option> leases.  While address pools are
+      grown as required and leases are reclaimed, the size of an
+      address pool should be reasonable.  For instance, the pool
+      <option>leftaddresspool=10.0.0.0-11.0.0.0</option> will
+      eventually result in an in-memory structure containing 16
+      million leases.
+    </para>
+    <para>
+      Address pools specifying the exact same range are shared between
+      connections.  Different addresspools cannot partially overlap.
+    </para>
+    <para>
+      For IKEv1, when <option>right</option> is configured as a server
+      using <option>rightxauthserver=yes</option>, this option
+      specifies the address pool from which IP addresses are taken to
+      assign the <option>left</option> clients during the Mode Config
+      exchange.  Generally, the <option>leftaddresspool=</option>
+      option will be accompanied by
+      <option>leftxauthclient=yes</option>,
+      <option>rightxauthserver=yes</option> and
+      <option>rightsubnet=0.0.0.0/0</option> option.
+    </para>
+    <para>
+      History: &Libreswan; version 3.30 added support for IPv6
+      addresses, and replaced a static table with dynamic O(1)
+      structures; &Libreswan; 5.0 added support for combined IPv4 and
+      IPv6 address pools; &Libreswan; 5.4 added support for IPv6
+      subnets.  &Libreswan; should allow the combination of
+      <option>addresspool</option> and <option>subnet</option>,
+      patches would be welcome.
+    </para>
+
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/aggressive.xml b/configs/d.ipsec.conf/conn/aggressive.xml
new file mode 100644 (file)
index 0000000..2c6629a
--- /dev/null
@@ -0,0 +1,45 @@
+<varlistentry>
+  <term>
+    <option>aggressive</option>
+  </term>
+  <listitem>
+
+    <para>
+      Use IKEv1 Aggressive Mode instead of IKEv1 Main Mode. This
+      option has no effect when IKEv2 is used.  Acceptable values are
+      <option>no</option> (the default) or <option>yes</option>.
+      When this option is enabled, IKEv1 Main Mode will no longer be
+      allowed for this connection. The old name of this option was
+      <option>aggrmode</option>.
+    </para>
+
+    <para>
+      Aggressive Mode is less secure, and more vulnerable to Denial Of
+      Service attacks. It is also vulnerable to brute force attacks
+      with software such as <option>ikecrack</option>.
+      It should not be used, and it should especially not be used with
+      XAUTH and group secrets (PSK).  If the remote system administrator
+      insists on staying irresponsible, enable this option.
+    </para>
+
+    <para>
+      Aggressive Mode is further limited to only proposals with one DH
+      group as there is no room to negotiate the DH group. Therefore
+      it is mandatory for Aggressive Mode connections that both
+      <option>ike=</option> and <option>esp=</option> options
+      are specified with only one fully specified proposal using one DH group.
+    </para>
+
+    <para>
+      The KE payload is created in the first exchange packet when
+      using aggressive mode. The KE payload depends on the DH group
+      used.  This is why there cannot be multiple DH groups in IKEv1
+      aggressive mode.  In IKEv2, which uses a similar method to IKEv1
+      Aggressive Mode, there is an INVALID_KE response payload that
+      can inform the initiator of the responder's desired DH group and
+      so an IKEv2 connection can actually recover from picking the
+      wrong DH group by restarting its negotiation.
+    </para>
+
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/ah.xml b/configs/d.ipsec.conf/conn/ah.xml
new file mode 100644 (file)
index 0000000..250224b
--- /dev/null
@@ -0,0 +1,49 @@
+<varlistentry>
+  <term>
+    <option>ah</option>
+  </term>
+  <listitem>
+    <para>
+      A comma separated list of AH algorithms that will be
+      offered/accepted when negotiating the Child SA.  The general
+      syntax is:
+    </para>
+    <para>
+      <simplelist columns='1'>
+       <member>AH = PROPOSAL[,PROPOSAL...]</member>
+       <member>PROPOSAL = INTEG_ALGS[-DH_ALGS]</member>
+       <member>INTEG_ALGS = INTEG_ALG[+INTEG_ALG...]</member>
+       <member>DH_ALGS = DH_ALG[+DH_ALG...]</member>
+      </simplelist>
+    </para>
+    <para>
+      During startup, &ipsec-pluto.8; will log all supported AH
+      algorithms.
+    </para>
+    <para>
+      Specifying the DH algorithms explicitly is
+      <option>not</option> recommended.  When PFS is enabled, and
+      the DH algorithms are omitted, each PROPOSAL will automatically
+      include the DH algorithm negotiated during the IKE exchange.
+    </para>
+    <para>
+      The default is not to use AH. If for some (invalid) reason you
+      still think you need AH, please use esp with the null encryption
+      cipher instead.
+    </para>
+    <para>
+      For instance:
+    </para>
+    <para>
+      <simplelist columns='1'>
+       <member><computeroutput>ah=sha2_256+sha2_512</computeroutput></member>
+       <member><computeroutput>ah=sha2_256+sha2_512-dh14+dh19</computeroutput></member>
+      </simplelist>
+    </para>
+    <para>
+      If not specified, a secure set of defaults will be used.  The
+      command <command>ipsec algparse ah=...</command> can be used to
+      query these defaults.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/auth.xml b/configs/d.ipsec.conf/conn/auth.xml
new file mode 100644 (file)
index 0000000..3de5fe7
--- /dev/null
@@ -0,0 +1,44 @@
+<varlistentry>
+  <term>
+    <option>leftauth</option>
+  </term>
+  <term>
+    <option>rightauth</option>
+  </term>
+  <listitem>
+    <para>
+      How the security gateways will authenticate to the other side in
+      the case of asymmetric authentication; acceptable values are
+      <option>rsasig</option> or <option>rsa</option>
+      for RSA Authentication with SHA-1, <option>rsa-sha2</option>
+      for RSA-PSS digital signatures based authentication with SHA2-256,
+      <option>rsa-sha2_384</option> for RSA-PSS digital signatures
+      based authentication with SHA2-384, <option>rsa-sha2_512</option>
+      for RSA-PSS digital signatures based authentication with SHA2-512,
+      <option>ecdsa</option> for ECDSA digital signatures based
+      authentication, <option>secret</option> for shared
+      secrets (PSK) authentication and <option>null</option> for
+      null-authentication. There is no default value - if unset, the
+      symmetrical <option>authby=</option> keyword is used to
+      determine the authentication policy of the connection.
+    </para>
+
+    <para>
+      Asymmetric authentication is only supported with IKEv2. If symmetric
+      authentication is required, use <option>authby=</option> instead
+      of leftauth and rightauth. If leftauth is set, rightauth must also be set and
+      authby= must not be set. Asymmetric authentication cannot use secret (psk) on one
+      side and null on the other side - use psk on both ends instead.
+    </para>
+    <para>
+      When using EAPONLY authentication, which omits the regular IKEv2
+      AUTH payload, leftauth= (or rightauth=) should be set to
+      <option>eaponly</option>.
+    </para>
+    <para>
+      Be aware that the symmetric keyword is <option>authby=</option>
+      but the asymmetric keyword is <option>leftauth</option> and
+      <option>rightauth</option> (without the "by").
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/authby.xml b/configs/d.ipsec.conf/conn/authby.xml
new file mode 100644 (file)
index 0000000..612f2fe
--- /dev/null
@@ -0,0 +1,205 @@
+<varlistentry>
+  <term>
+    <option>authby=</option>
+  </term>
+  <listitem>
+
+    <para>
+      How the two security gateways should authenticate each other.  A
+      comma separated list of one or more of the following:
+    </para>
+
+    <variablelist>
+
+      <varlistentry>
+       <term>
+         <option>ecdsa</option>
+       </term>
+       <term>
+         <option>ecdsa-sha2</option>
+       </term>
+       <listitem>
+         <para>
+           ECDSA digital signature based authentication with any of
+           the hash algorithms SHA2_256, SHA2_384, or SHA2_512.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>
+         <option>ecdsa-sha2_256</option>
+       </term>
+       <term>
+         <option>ecdsa-sha2_384</option>
+       </term>
+       <term>
+         <option>ecdsa-sha2_512</option>
+       </term>
+       <listitem>
+         <para>
+           ECDSA digital signature based authentication with the
+           specified SHA2_256, SHA2_384, or SHA2_512 hash algorithm.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>
+         <option>eddsa</option>
+       </term>
+       <listitem>
+         <para>
+           EDDSA digital signature based authentication on curve on
+           curve 25519.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>
+         <option>rsa</option>
+       </term>
+       <term>
+         <option>rsasig</option>
+       </term>
+       <listitem>
+         <para>
+           RSA-PKCSv1.5 digital signature based authentication with
+           SHA1; and, when IKEv2, RSASSA-PSS digital signature
+           authentication with either SHA2_256, SHA2_384, or
+           SHA2_512.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>
+         <option>rsa-sha1</option>
+       </term>
+       <listitem>
+         <para>
+           RSA-PKCSv1.5 digital signature based authentication with
+           SHA1
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>
+         <option>rsa-sha2</option>
+       </term>
+       <listitem>
+         <para>
+           RSASSA-PSS digital signature based authentication with any
+           of the hash algorithms SHA2_256, SHA2_384, or SHA2_512.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>
+         <option>rsa-sha2_256</option>
+       </term>
+       <term>
+         <option>rsa-sha2_384</option>
+       </term>
+       <term>
+         <option>rsa-sha2_512</option>
+       </term>
+       <listitem>
+         <para>
+             RSASSA-PSS digital signature based authentication with
+             the specified SHA2_256, SHA2_384, or SHA2_512 hash
+             algorithm.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>
+         <option>secret</option>
+       </term>
+       <listitem>
+         <para>
+           Shared secrets (PSK) authentication; cannot be combined
+           with other authentication methods.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>
+         <option>never</option>
+       </term>
+       <listitem>
+         <para>
+           Negotiation is never to be attempted or accepted; cannot
+           be combined with other authentication methods.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>
+         <option>null</option>
+       </term>
+       <listitem>
+         <para>
+           NULL-authentication; cannot be combined with other
+           authentication methods.
+         </para>
+       </listitem>
+      </varlistentry>
+    </variablelist>
+
+    <para>
+      For IKEv1, SHA2 based signatures are not defined and ECDSA is
+      not implemented, so the default <option>authby</option> value is
+      <option>rsa-sha1</option>.  Using <option>authby=rsasig</option>
+      results in only <option>rsa-sha1</option> as well.
+    </para>
+
+    <para>
+      For IKEv2, <option>rsasig,ecdsa</option> which allows ECDSA with
+      SHA-2 and RSA with SHA2 or SHA1.  Using
+      <option>authby=rsasig</option> means using
+      <option>rsa-sha2_512</option>, <option>rsa-sha2_384</option>,
+      <option>rsa-sha2_256</option> and <option>rsa-sha1</option>,
+      where <option>rsa-sha1</option> will used only if RFC 7427 is
+      not supported by the peer.
+    </para>
+
+    <para>
+      Note that <option>authby</option> cannot be used for asymmetric
+      authentication.  Instead, IKEv2 must be enabled and the options
+      <option>leftauth</option> and <option>rightauth</option> used.
+    </para>
+
+    <para>
+      As per RFC 8221, <option>authby=rsa-sha1</option> is only
+      supported in the old style, meaning RSA-PKCSv1.5.  The SHA2
+      variants are only supported for the new style of RFC 7427, so
+      <option>authby=rsa-sha2</option> will use the new style. The
+      default <option>authby=</option> will remove
+      <option>rsa-sha1</option> in the near future.  It is strongly
+      recommended that when certificates are used, the certificates
+      and the <option>authby=</option> signature methods used are the
+      same, as it increases interoperability and keeps the
+      authentication of everything within one digital signature
+      system.
+    </para>
+
+    <para>
+      Digital signatures are superior in every way to shared secrets.
+      Especially IKEv1 in Aggressive Mode is vulnerable to offline
+      dictionary attacks and is performed routinely by at least the
+      NSA on monitored internet traffic globally.  The never option is
+      only used for connections that do not actually start an IKE
+      negotiation, such as type=passthrough connections. The auth
+      method null is used for "anonymous opportunistic IPsec" and
+      should not be used for regular pre-configured IPsec VPNs.
+    </para>
+
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/autheap.xml b/configs/d.ipsec.conf/conn/autheap.xml
new file mode 100644 (file)
index 0000000..01978b0
--- /dev/null
@@ -0,0 +1,22 @@
+<varlistentry>
+  <term>
+    <option>leftautheap</option>
+  </term>
+  <term>
+    <option>rightautheap</option>
+  </term>
+  <listitem>
+    <para>
+      Whether the security gateways will authenticate uing an EAP
+      method.  Acceptable values are <option>none</option>
+      (the default) and <option>tls</option> for EAPTLS. If EAP
+      is the only authentication method, set <option>leftauth=none</option>
+      in addition to <option>leftautheap=tls=</option>.
+    </para>
+
+    <para>
+      The EAP authentication mechanisms are only available for IKEv2
+      based connections.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/auto.xml b/configs/d.ipsec.conf/conn/auto.xml
new file mode 100644 (file)
index 0000000..1a7550d
--- /dev/null
@@ -0,0 +1,100 @@
+<varlistentry>
+  <term>
+    <option>auto=</option>
+  </term>
+  <listitem>
+    <para>
+      what operation, if any, should be done automatically at IPsec
+      startup; currently-accepted values are:
+    </para>
+    <variablelist>
+      <varlistentry>
+       <term>
+         <option>auto=add</option>
+       </term>
+       <listitem>
+         <para>
+           equivalent to:
+           <simplelist>
+             <member>
+               <command>ipsec add <replaceable>connection</replaceable></command>
+             </member>
+           </simplelist>
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term>
+         <option>auto=ondemand</option>
+       </term>
+       <listitem>
+         <para>
+           equivalent to:
+           <simplelist>
+             <member>
+               <command>ipsec add <replaceable>connection</replaceable></command>
+             </member>
+             <member>
+               <command>ipsec route <replaceable>connection</replaceable></command>
+             </member>
+           </simplelist>
+           (<option>auto=route</option> is an alias)
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term>
+         <option>auto=up</option>
+       </term>
+       <term>
+         <option>auto=start</option>
+       </term>
+       <listitem>
+         <para>
+           equivalent to:
+           <simplelist>
+             <member>
+               <command>ipsec add <replaceable>connection</replaceable></command>
+             </member>
+             <member>
+               <command>ipsec up <replaceable>connection</replaceable></command>
+             </member>
+           </simplelist>
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term>
+         <option>auto=ignore</option>
+       </term>
+       <listitem>
+         <para>
+           signifying no automatic operation when
+           &Libreswan; is starting (also the
+           default)
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term>
+         <option>auto=keep</option>
+       </term>
+       <listitem>
+         <para>
+           signifying an add plus an attempt to keep the connection
+           up once the remote peer brought it up
+         </para>
+       </listitem>
+      </varlistentry>
+    </variablelist>
+    <para>
+      Relevant only locally, other end need not agree on it (but in
+      general, for an intended-to-be-permanent connection, both ends
+      should use <option>auto=up</option> to ensure that any reboot
+      causes immediate renegotiation).
+    </para>
+    <para>
+      See the <option>config setup</option> discussion below.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/ca.xml b/configs/d.ipsec.conf/conn/ca.xml
new file mode 100644 (file)
index 0000000..65e2b3e
--- /dev/null
@@ -0,0 +1,25 @@
+<varlistentry>
+  <term>
+    <option>leftca</option>
+  </term>
+  <term>
+    <option>rightca</option>
+  </term>
+  <listitem>
+    <para>
+      Specifies the Distinguished Name of the authorized Certificate
+      Authority (CA) that signed the certificate of the peer.  When
+      unspecified, it defaults to the CA that signed the certificate
+      specified in <option>leftcert</option>.
+    </para>
+    <para>
+      The special
+      <option>rightca=%same</option> is implied when not specifying a
+      <option>rightca</option> and means that only peers with
+      certificates signed by the same CA as the leftca will be
+      allowed. This option is only useful in complex multi CA
+      certificate situations. When using a single CA, it can be safely
+      omitted for both left and right.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/cat.xml b/configs/d.ipsec.conf/conn/cat.xml
new file mode 100644 (file)
index 0000000..eddd2a0
--- /dev/null
@@ -0,0 +1,21 @@
+<varlistentry>
+  <term>
+    <option>leftcat</option>
+  </term>
+  <term>
+    <option>rightcat</option>
+  </term>
+  <listitem>
+    <para>
+      Whether to perform Client Address Translation ("CAT") when using
+      Opportunistic IPsec behind NAT.  Accepted values are <option>no</option>
+      (the default) and <option>yes</option>. This option should
+      only be enabled on the special Opportunistic IPsec connections,
+      usually called "private" and "private-or-clear". When set, this
+      option causes the given addresspool IP from the remote peer to be
+      NATed with nftables or iptables. It will also install an additional
+      IPsec SA policy to cover the pre-NAT IP. See the Opportunistic IPsec
+      information on the libreswan website for more information and examples.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/cert.xml b/configs/d.ipsec.conf/conn/cert.xml
new file mode 100644 (file)
index 0000000..6bc239a
--- /dev/null
@@ -0,0 +1,15 @@
+<varlistentry>
+  <term>
+    <option>leftcert</option>
+  </term>
+  <term>
+    <option>rightcert</option>
+  </term>
+  <listitem>
+    <para>
+      If you are using <option>leftrsasigkey=%cert</option>
+      this defines the certificate nickname of your certificate in the NSS
+      database. This can be on software or hardware security device.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/cisco-split.xml b/configs/d.ipsec.conf/conn/cisco-split.xml
new file mode 100644 (file)
index 0000000..8eed943
--- /dev/null
@@ -0,0 +1,19 @@
+<varlistentry>
+  <term>
+    <option>cisco-split</option>=&yN_options;
+  </term>
+  <listitem>
+    <para>
+      Use the IKEv1 MODE_CFG CISCO_SPLIT_INCLUDE payload to transfer
+      the server's <option>subnet=</option> list to the client.
+      During the Quick Mode exchange, the client and server will then
+      install kernel policy that includes all the subnets.  Acceptable
+      values are: <option>no</option> (the default) and
+      <option>yes</option>.
+    </para>
+    <para>
+      The <option>cisco-split</option> option was added in &Libreswan;
+      version 5.3.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/cisco-unity.xml b/configs/d.ipsec.conf/conn/cisco-unity.xml
new file mode 100644 (file)
index 0000000..1dde779
--- /dev/null
@@ -0,0 +1,20 @@
+<varlistentry>
+  <term>
+    <option>cisco-unity</option>
+  </term>
+  <listitem>
+    <para>
+      whether to send a CISCO_UNITY payload to the peer.  Acceptable
+      values are: <option>no</option> (the default) and
+      <option>yes</option>.
+    </para>
+    <para>
+      It is recommended to leave this option unset, unless the remote
+      peer (Cisco client or server) requires it. This option does not
+      modify local behaviour. It can be needed to connect as a client
+      to a Cisco server. It can also be needed to act as a server for
+      a Cisco client, which otherwise might send back an error
+      DEL_REASON_NON_UNITY_PEER.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/ckaid.xml b/configs/d.ipsec.conf/conn/ckaid.xml
new file mode 100644 (file)
index 0000000..ec3aa9f
--- /dev/null
@@ -0,0 +1,19 @@
+<varlistentry>
+  <term>
+    <option>leftckaid</option>
+  </term>
+  <term>
+    <option>rightckaid</option>
+  </term>
+  <listitem>
+    <para>
+      The CKAID of the X.509 certificate or host key.
+    </para>
+    <para>
+      For X.509 certificates, the CKAID is either the certificate's
+      SubjectKeyIdentifier or the public key's SHA1 fingerprint (when
+      the SubjectKeyIdentifier isn't specified).  For host keys the
+      CKAID is the SHA1 fingerprint of the public key.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/clientaddrfamily.xml b/configs/d.ipsec.conf/conn/clientaddrfamily.xml
new file mode 100644 (file)
index 0000000..0b539c1
--- /dev/null
@@ -0,0 +1,16 @@
+<varlistentry>
+  <term>
+    <option>clientaddrfamily={ipv4,ipv6}</option>
+  </term>
+  <listitem>
+    <para>
+      This option was removed in &Libreswan; version 5.3.
+    </para>
+    <para>
+      Since &Libreswan; version 5.0, <option>subnet=</option>
+      <option>subnets=</option> have allowed a mixture of IKEv1 and
+      IKEv2 addresses, making <option>clientaddrfamily=</option>
+      redundant.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/compress.xml b/configs/d.ipsec.conf/conn/compress.xml
new file mode 100644 (file)
index 0000000..19e7aa1
--- /dev/null
@@ -0,0 +1,21 @@
+<varlistentry>
+  <term><option>compress</option></term>
+  <listitem>
+    <para>
+      whether IPComp compression of content is proposed on the
+      connection (link-level compression does not work on encrypted
+      data, so to be effective, compression must be done
+      <option>before</option> encryption); acceptable values are
+      <option>yes</option> and <option>no</option> (the default).
+    </para>
+    <para>
+      For IKEv1, compress settings on both peers must match. For
+      IKEv2, compression can only be suggested and a mismatched
+      compress setting results in connection without compression.
+    </para>
+    <para>
+      When set to yes, compression is negotiated for the DEFLATE
+      compression algorithm.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/debug.xml b/configs/d.ipsec.conf/conn/debug.xml
new file mode 100644 (file)
index 0000000..6af1b84
--- /dev/null
@@ -0,0 +1,19 @@
+<varlistentry>
+  <term>
+    <option>debug=<replaceable>option</replaceable></option>
+  </term>
+  <listitem>
+    <para>
+      A comma separated list of options that enable internal debug
+      logs of the connection.  For more information see the global
+      <option>plutodebug=</option> option.
+    </para>
+    <note>
+      <para>
+       This feature is used by &Libreswan;
+       developers.  The default logs should provide sufficient
+       information to diagnose configuration and connection problems.
+      </para>
+    </note>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/decap-dscp.xml b/configs/d.ipsec.conf/conn/decap-dscp.xml
new file mode 100644 (file)
index 0000000..888b6d8
--- /dev/null
@@ -0,0 +1,15 @@
+<varlistentry>
+  <term>
+    <option>decap-dscp</option>
+  </term>
+  <listitem>
+    <para>
+      Enable decapsulating the Differentiated Services Code Point
+      (DSCP, formerly known as Terms Of Service (TOS)) bits. If these
+      bits are set on the inner (encrypted) IP packets, these bits are
+      set on the decrypted IP packets.  Acceptable values are
+      <option>no</option> (the default) or <option>yes</option>.
+      Currently this feature is only implemented for the Linux XFRM stack.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/dns-match-id.xml b/configs/d.ipsec.conf/conn/dns-match-id.xml
new file mode 100644 (file)
index 0000000..f7ec0af
--- /dev/null
@@ -0,0 +1,27 @@
+<varlistentry>
+  <term>
+    <option>dns-match-id</option>
+  </term>
+  <listitem>
+    <para>
+      Whether to perform an additional DNS lookup and confirm the
+      remote ID payload with the DNS name in the reverse DNS PTR
+      record. Accepted values are <option>no</option> (the default) or
+      <option>yes</option>.  This check should be enabled when
+      Opportunistic IPsec is enabled in a mode that is based on packet
+      triggers (on-demand) using IPSECKEY records in DNS. Since in
+      that case the IKE daemon pluto does not know the remote ID, it
+      only knows the remote IP address, this option forces it to
+      confirm the peer's proposed ID (and thus its public/private key)
+      with its actual IP address as listed in the DNS. This prevents
+      attacks where mail.example.com's IP address is taken over by a
+      neighbour machine with a valid web.example.com setup. This check
+      is not needed for certificate based Opportunistic IPsec, as
+      "mail.example.com"s certificate does not have an entry for
+      "web.example.com". It is also not needed for DNS server
+      triggered Opportunistic IPsec, as in that case the IKE daemon
+      pluto is informed of both the IP address, and the
+      hostname/public key.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/dpddelay.xml b/configs/d.ipsec.conf/conn/dpddelay.xml
new file mode 100644 (file)
index 0000000..67c1970
--- /dev/null
@@ -0,0 +1,18 @@
+<varlistentry>
+  <term>
+    <option>dpddelay</option>
+  </term>
+  <listitem>
+    <para>
+      Set the delay (in time units, defaults to seconds) between Dead
+      Peer Detection (IKEv1 RFC 3706) or IKEv2 Liveness keepalives
+      that are sent for this connection (default <literal>0</literal>
+      seconds). Set to enable checking.
+    </para>
+    <para>
+      If dpddelay is set, you might need to adjust
+      <option>retransmit-timeout</option> for IKEv2
+      and you must set <option>dpdtimeout</option> for IKEv1.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/dpdtimeout.xml b/configs/d.ipsec.conf/conn/dpdtimeout.xml
new file mode 100644 (file)
index 0000000..d727dd6
--- /dev/null
@@ -0,0 +1,22 @@
+<varlistentry>
+  <term>
+    <option>dpdtimeout</option>
+  </term>
+  <listitem>
+    <para>
+      Set the length of time (in time units, defaults to seconds) that
+      pluto will idle without hearing back from the peer. After this
+      period has elapsed with no response and no traffic, pluto will
+      declare the peer dead, and remove the SA (default
+      <literal>0</literal> meaning disabled). Set value bigger than
+      dpddelay to enable. If dpdtimeout is set, dpddelay also needs to
+      be set.
+    </para>
+    <para>
+      This option is only valid for IKEv1. For IKEv2, this value is
+      always the same as the retransmit-timeout, as IKEv2 is blocked
+      from sending further IKE messages if an answer is not
+      received.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/enable-tcp.xml b/configs/d.ipsec.conf/conn/enable-tcp.xml
new file mode 100644 (file)
index 0000000..e5c30d5
--- /dev/null
@@ -0,0 +1,26 @@
+<varlistentry>
+  <term>
+    <option>enable-tcp</option>
+  </term>
+  <listitem>
+    <para>
+      Normally, IKE negotiation and ESP encapsulation happens over
+      UDP. This option enables support for IKE and ESP over TCP as per
+      RFC 8229. Acceptable values are <option>no</option>(the default),
+      <option>yes</option> meaning only TCP will be used, or
+      <option>fallback</option> meaning that TCP will be
+      attempted only after negotiation over UDP failed. Since
+      performance over TCP is much less, and TCP sessions are
+      vulnerable to simply RST resets and MITM attacks causing the TCP
+      connection to close, this option should really only be used in
+      fallback mode.  If used in fallback mode, it is recommend to
+      reduce the <option>retransmit-timeout</option>
+      from the default 60s to a much shorter value such as 10s, so
+      that one does not have to wait a minute for the TCP fallback to
+      be attempted. To receive incoming TCP connections, the
+      <option>config setup</option> option <option>listen-tcp</option>
+      needs to be enabled.
+    </para>
+  </listitem>
+</varlistentry>
+
diff --git a/configs/d.ipsec.conf/conn/encap-dscp.xml b/configs/d.ipsec.conf/conn/encap-dscp.xml
new file mode 100644 (file)
index 0000000..b65dca7
--- /dev/null
@@ -0,0 +1,16 @@
+<varlistentry>
+  <term>
+    <option>encap-dscp</option>
+  </term>
+  <listitem>
+    <para>
+      Enable encapsulating the Differentiated Services Code Point
+      (DSCP, formerly known as Terms Of Service (TOS)) bits. The extra
+      xfrm flag "dont-encap-dscp" prevents these bits from being
+      copied from the unencrypted IP packets to the encrypted IP
+      packets.  Acceptable values are <option>yes</option>
+      (the default) or <option>no</option>.
+      Currently this feature is only implemented for the Linux XFRM stack.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/encapsulation.xml b/configs/d.ipsec.conf/conn/encapsulation.xml
new file mode 100644 (file)
index 0000000..0350ef9
--- /dev/null
@@ -0,0 +1,24 @@
+<varlistentry>
+  <term>
+    <option>encapsulation</option>
+  </term>
+  <listitem>
+    <para>
+      In some cases, for example when ESP packets are filtered or when
+      a broken IPsec peer does not properly recognise NAT, it can be
+      useful to force RFC-3948 encapsulation. In other cases, where
+      IKE is NAT'ed but ESP packets can or should flow without
+      encapsulation, it can be useful to ignore the NAT-Traversal
+      auto-detection.
+      <option>encapsulation=yes</option> forces the NAT detection
+      code to lie and tell the remote peer that RFC-3948 encapsulation
+      (ESP in port 4500 packets) is required.
+      <option>encapsulation=no</option> ignores the NAT detection
+      causing ESP packets to send send without encapsulation. The
+      default value of <option>encapsulation=auto</option> follows
+      the regular outcome of the NAT auto-detection code performed in IKE.
+      This option replaced the obsoleted forceencaps option.
+    </para>
+  </listitem>
+</varlistentry>
+
diff --git a/configs/d.ipsec.conf/conn/esn.xml b/configs/d.ipsec.conf/conn/esn.xml
new file mode 100644 (file)
index 0000000..16f0255
--- /dev/null
@@ -0,0 +1,25 @@
+<varlistentry>
+  <term>
+    <option>esn</option>
+  </term>
+  <listitem>
+    <para>
+      Whether or not to enable Extended Sequence Number (ESN) for the
+      IPsec SA. This option is only implemented for IKEv2. ESN is
+      typically used for very high-speed links (10Gbps or faster)
+      where the standard 32 bit sequence number is exhausted too
+      quickly, causing IPsec SA's rekeys to happen too often. Accepted
+      values are <option>either</option> (the default),
+      <option>yes</option> and <option>no</option>.
+      If <option>either</option> is specified as an initiator,
+      the responder will make the choice. As a responder,
+      if <option>either</option> is received,
+      <option>yes</option> is picked.
+    </para>
+    <para>
+      If replay-window is set to 0, ESN is disabled as some (most?)
+      IPsec stacks won't support ESN in such a configuration.
+    </para>
+  </listitem>
+</varlistentry>
+
diff --git a/configs/d.ipsec.conf/conn/esp.xml b/configs/d.ipsec.conf/conn/esp.xml
new file mode 100644 (file)
index 0000000..3a9be45
--- /dev/null
@@ -0,0 +1,61 @@
+<varlistentry>
+  <term>
+    <option>esp</option>
+  </term>
+  <listitem>
+    <para>
+      Specifies the algorithms that will be offered/accepted when
+      negotiating a Child SA with ESP encapsulation.  The general
+      syntax is:
+    </para>
+    <para>
+      <!-- should use EBNF -->
+      <simplelist columns='1'>
+       <member>ESP = PROPOSAL[,PROPOSAL...]</member>
+       <member>PROPOSAL = ENCRYPT_ALGS[-INTEG_ALGS[-DH_ALGS]]</member>
+       <member>ENCRYPT_ALGS = ENCRYPT_ALG[+ENCRYPT_ALG...]</member>
+       <member>INTEG_ALGS = INTEG_ALG[+INTEG_ALG...]</member>
+       <member>DH_ALGS = DH_ALG[+DH_ALG...]</member>
+      </simplelist>
+    </para>
+    <para>
+      During startup, &ipsec-pluto.8; will log all supported ESP
+      algorithms.
+    </para>
+    <para>
+      Specifying the DH algorithms explicitly is <option>not</option>
+      recommended.  When PFS is enabled, and the DH algorithms are
+      omitted, each PROPOSAL will automatically include the DH
+      algorithm negotiated during the IKE exchange.
+    </para>
+    <para>
+      AEAD algorithms such as AES_GCM and AES_CCM do not not require a
+      separate integrity algorithm.  For example
+      <option>esp=aes_gcm256</option> or <option>esp=aes_ccm</option>.
+    </para>
+    <para>
+      Note that AES_GCM and AES_CCM for ESP come in 8, 12 and 16 byte
+      ICV versions.  RFC 8221 only requires AES_GCM with 16 byte ICV
+      and AES_CCM with 8 byte ICV to be implemented, and "aes_gcm" and
+      "aes_ccm" refer to these variants. The other variants can be
+      specified using an _a (8), _b(12) or _c(16) postfix, eg
+      esp=aes_gcm_a for the 8 byte ICV and esp=aes_gcm_b for the 12
+      byte ICV.
+    </para>
+    <para>
+      For instance:
+    </para>
+    <para>
+      <simplelist columns='1'>
+       <member><computeroutput>esp=aes_gcm;aes128+aes256-sha2_512+sha2_256</computeroutput></member>
+       <member><computeroutput>esp=aes128-sha2_512;dh19</computeroutput></member>
+      </simplelist>
+    </para>
+    <para>
+      If not specified, a secure set of defaults will be used.  The
+      program <command>ipsec algparse</command> can be used to query
+      these defaults for instance: <command>ipsec algparse
+      esp=</command> (see &ipsec-algparse.8;).
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/failureshunt.xml b/configs/d.ipsec.conf/conn/failureshunt.xml
new file mode 100644 (file)
index 0000000..51726b2
--- /dev/null
@@ -0,0 +1,12 @@
+<varlistentry>
+  <term>
+    <option>failureshunt</option>
+  </term>
+  <listitem>
+    <para>
+      what to do with packets when negotiation fails.  The default is
+      <option>none</option>: no shunt; <option>pass</option>,
+      <option>drop</option>, and <option>reject</option> have the
+      obvious meanings.</para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/fake-strongswan.xml b/configs/d.ipsec.conf/conn/fake-strongswan.xml
new file mode 100644 (file)
index 0000000..bd2f0e3
--- /dev/null
@@ -0,0 +1,22 @@
+<varlistentry>
+  <term>
+    <option>fake-strongswan</option>=&yN_options;
+  </term>
+  <listitem>
+    <para>
+      whether to send a STRONGSWAN Vendor ID payload to the peer.
+      Acceptable values are: <option>no</option> (the
+      default) and <option>yes</option>. Strongswan enables some
+      non-standard features and private algorithms only when it detects
+      the strongswan Vendor ID. The exact capabilities depend on the
+      strongswan version. At the time of writing this entry this option
+      can enable negotiation of BEET mode (until the IETF assigns a
+      code point), enable some private algorithms (eg some experimental
+      post-quantum algorithms) and eanbles forwarding RADIUS attributes
+      (which should not have any affects with the current EAP support
+      in libreswan). Note that experimental algorithms on strongswan
+      can also be enabled using charon.accept_private_algs and then this
+      option is not needed.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/firewall.xml b/configs/d.ipsec.conf/conn/firewall.xml
new file mode 100644 (file)
index 0000000..721b14a
--- /dev/null
@@ -0,0 +1,14 @@
+<varlistentry>
+  <term>
+    <option>leftfirewall</option>
+  </term>
+  <term>
+    <option>rightirewall</option>
+  </term>
+  <listitem>
+    <para>
+      This option is obsolete and should not used anymore.
+    </para>
+  </listitem>
+</varlistentry>
+
diff --git a/configs/d.ipsec.conf/conn/fragmentation.xml b/configs/d.ipsec.conf/conn/fragmentation.xml
new file mode 100644 (file)
index 0000000..fab3c7a
--- /dev/null
@@ -0,0 +1,28 @@
+<varlistentry>
+  <term>
+    <option>fragmentation</option>
+  </term>
+  <listitem>
+    <para>
+      Whether or not to allow IKE fragmentation.  Valid values are
+      <option>yes</option> (the default) and <option>no</option>.
+      In addition IKEv1 allows <option>force</option>.
+    </para>
+    <para>
+      IKEv2 fragmentation support is implemented using RFC 7383.
+    </para>
+    <para>
+      IKEv1 fragmentation capabilities are negotiated via a well-known
+      private <option>vendor id</option>.  If pluto does
+      not receive the fragmentation payload, no IKE fragments will be
+      sent, regardless of the <option>fragmentation=</option> setting.
+      When set to <option>yes</option>, IKE fragmentation will be
+      attempted on the first re-transmit of an IKE packet of a size
+      larger then 576 bytes for IPv4 and 1280 bytes for IPv6.  If
+      fragmentation is set to force, IKE fragmentation is used on
+      initial transmits of such sized packets as well.  When we have
+      received IKE fragments for a connection, pluto behaves as if in
+      force mode.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/host.xml b/configs/d.ipsec.conf/conn/host.xml
new file mode 100644 (file)
index 0000000..da9a534
--- /dev/null
@@ -0,0 +1,52 @@
+<varlistentry>
+  <term>
+    <option>left</option>
+  </term>
+  <term>
+    <option>right</option>
+  </term>
+  <listitem>
+    <para>
+      (required) the IP address or DNS hostname of the left
+      participant's public-network interface, Currently, IPv4 and IPv6
+      IP addresses are supported. If a DNS hostname is used, it will
+      be resolved to an IP address on load time, and whenever a
+      connection is rekeying or restarting (such as when restarted via
+      a DPD failure detection). This allows one to use a DNS hostname
+      when the endpoint is on a dynamic IP address.
+    </para>
+    <para>
+      There are several magic values.  If it is
+      <option>%defaultroute</option>, <option>left</option> will be
+      filled in automatically with the local address of the
+      default-route interface (as determined at IPsec startup time);
+      this also overrides any value supplied for
+      <option>leftnexthop</option>.  (Either <option>left</option> or
+      <option>right</option> may be <option>%defaultroute</option>,
+      but not both.)  The value <option>%any</option> signifies an
+      address to be filled in (by automatic keying) during
+      negotiation.  The value <option>%opportunistic</option>
+      signifies that both <option>left</option> and
+      <option>leftnexthop</option> are to be filled in (by automatic
+      keying) from DNS data for <option>left</option>'s client.  The
+      value can also contain the interface name, which will then later
+      be used to obtain the IP address from to fill in. For example
+      <option>%ppp0</option>.
+    </para>
+    <para>
+      The values <option>%group</option> and
+      <option>%opportunisticgroup</option> makes this a policy group
+      conn: one that will be instantiated into a regular or
+      opportunistic conn for each CIDR block listed in the policy
+      group file with the same name as the conn.
+    </para>
+    <para>
+      If using IP addresses in combination with NAT, always use the
+      actual local machine's (NATed) IP address, and if the remote (eg
+      right=) is NATed as well, the remote's public
+      (<option>not</option> NATed) IP address. Note that this makes
+      the configuration no longer symmetrical on both sides, so you
+      cannot use an identical configuration file on both hosts.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/hostaddrfamily.xml b/configs/d.ipsec.conf/conn/hostaddrfamily.xml
new file mode 100644 (file)
index 0000000..7c8720b
--- /dev/null
@@ -0,0 +1,19 @@
+<varlistentry>
+  <term>
+    <option>hostaddrfamily</option>
+  </term>
+  <listitem>
+    <para>
+      the address family of the hosts; currently the accepted values
+      are <option>ipv4</option> and <option>ipv6</option>.
+      The default is to detect this based on the IP addresses specified
+      or the IP addresses resolved, so this option is not needed, unless
+      you specify hostnames that resolve to both IPv4 and IPv6.
+    </para>
+    <para>
+      This option used to be named connaddrfamily but its use was broken
+      so it was obsoleted in favour or using the new hostaddrfamily and
+      clientaddrfamily.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/id.xml b/configs/d.ipsec.conf/conn/id.xml
new file mode 100644 (file)
index 0000000..f960c19
--- /dev/null
@@ -0,0 +1,37 @@
+<varlistentry>
+  <term>
+    <option>leftid</option>
+  </term>
+  <term>
+    <option>rightid</option>
+  </term>
+  <listitem>
+    <para>
+      how the left participant should be identified for
+      authentication; defaults to <option>left</option>.
+      Can be an IP address or a fully-qualified domain name which will
+      be resolved.  If preceded by <option>@</option>,
+      the value is used as a literal string and will not be resolved.
+
+      To support opaque identifiers (usually of type ID_KEY_ID, such
+      as used by Cisco to specify Group Name, use square brackets, eg
+      <option>rightid=@[GroupName]</option>.
+
+      The magic value <option>%fromcert</option> causes
+      the ID to be set to a DN taken from a certificate that is
+      loaded.  Prior to 2.5.16, this was the default if a certificate
+      was specified.
+
+      The magic value <option>%none</option> sets the ID
+      to no ID. This is included for completeness, as the ID may have
+      been set in the default conn, and one wishes for it to default
+      instead of being explicitly set.
+    </para>
+    <para>
+      When using certificate based ID's, one need to specify the full
+      RDN, optionally using wildcard matching (eg CN='*').  If the RDN
+      contains a comma, this can be masked using a backslash (eg
+      OU='Foo\, Bar and associates')
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/ignore-peer-dns.xml b/configs/d.ipsec.conf/conn/ignore-peer-dns.xml
new file mode 100644 (file)
index 0000000..b22ed7f
--- /dev/null
@@ -0,0 +1,22 @@
+<varlistentry>
+  <term>
+    <option>ignore-peer-dns</option>
+  </term>
+  <listitem>
+    <para>
+      whether to ignore received DNS configuration.  Acceptable values
+      are: <option>no</option> (the default) and
+      <option>yes</option>.  Normally, when a
+      roadwarrior connects to a remote VPN, the remote VPN server
+      sends a list of DNS domains and DNS nameserver IP addresses that
+      the roadwarrior can use to reach internal only resources through
+      the VPN. This option allows the roadwarrior to ignore the
+      server's suggestion. The roadwarrior will normally use this
+      information to update the DNS resolving process. What is changed
+      depends on the detected DNS configuration. It can modify
+      /etc/resolv.conf directly, or reconfigure a locally running DNS
+      server (unbound, knot, stubby or systemd-resolved) or inform
+      NetworkManager.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/ike.xml b/configs/d.ipsec.conf/conn/ike.xml
new file mode 100644 (file)
index 0000000..168bb04
--- /dev/null
@@ -0,0 +1,105 @@
+<varlistentry>
+  <term><option>ike</option></term>
+  <listitem>
+    <para>
+      IKE encryption/authentication algorithm to be used for the
+      connection (phase 1 aka ISAKMP SA or IKE SA). If this option is
+      not set, the builtin defaults will be used. This is the
+      preferred method, and allows for gradual automatic updates using
+      the same configuration. Some distributions, such as Fedora and
+      RHEL/CentOS, use a System Wide Crypto Policy that sets the
+      default ike= (and esp=) lines. Specifying your own ike= line
+      means overriding all these system or software recommended
+      defaults, but can be necessary at times. Note that libreswan
+      does not support using a PRF algorithm that is different from
+      the INTEGRITY (hash) algorithm by design.
+    </para>
+    <para> 
+      The format is <option>"cipher-hash-modpgroup,
+      cipher-hash-modpgroup, ..."</option> Any omitited option will
+      be filled in with <option>all</option> allowed
+      default values. Multiple proposals are separated by a comma. If
+      an <option>ike=</option> line is specified, no
+      other received proposals will be accepted than those specified
+      on the IKE line.  Some examples are <option>ike=3des-sha1,aes-sha1</option>,
+      <option>ike=aes</option>,
+      <option>ike=aes_ctr</option>,
+      <option>ike=aes_gcm256;sha2_256</option>,
+      <option>ike=aes128-sha1;modp2048</option>,
+      <option>ike=aes256-sha2;dh19</option>,
+      <option>ike=aes128-sha1;dh22</option>,
+      <option>ike=3des-md5;modp1024,aes-sha1;modp1536</option>.
+      </para><para> IKEv2 allows combining elements into a single
+      proposal. These can be specified by using the + symbol. An
+      example is:
+      <option>ike=aes_gcm+chacha20_poly1305;dh14+dh19,aes+3des-sha2+sha1;dh14</option>.
+      Note that AEAD algorithms (aes_gcm, aes_ccm, chacha20_poly1305)
+      and non-AEAD algorithms (aes, 3des) cannot be combined into a
+      single proposal. To support aes and aes_gcm, two proposals
+      separated by a comma must be used.
+    </para>
+    <para>
+      The default IKE proposal depends on the version of libreswan
+      used. It follow the recommendations of RFC4306, RFC7321 and as
+      of this writing their successor draft documents RFC4306bis and
+      RFC7321bis.  As for libreswan 3.32, SHA1 and MODP1536(dh5) are
+      still allowed per default for backwards compatibility, but 3DES
+      and MODP1024(dh2) are not allowed per default. As of libreswan
+      4.x, modp1024(dh2) support is no longer compiled in at all. For
+      IKEv2, the defaults include AES, AES-GCM, DH14 and stronger, and
+      SHA2.  The default key size is 256 bits. The default AES_GCM ICV
+      is 16 bytes.
+    </para>
+    <para>
+      Note that AES-GCM is an AEAD algorithm, meaning that it performs
+      encryption+authentication in one step. This means that AES-GCM
+      must not specify an authentication algorithm. However, for IKE
+      it does require a PRF function, so the second argument to an
+      AEAD algorithm denotes the PRF. So ike=aes_gcm-sha2_256 means
+      propose AES_GCM with SHA2_256 as the prf. Note that for
+      esp, there is no prf, so AES-GCM is specified for ESP as
+      esp=aes_gcm. The AES-GCM and AES-CCM algorithms support 8,12 and
+      16 byte ICV's.  These can be specified using a postfix, for
+      example aes_gcm_a (for 8), aes_gcm_b (for 12) and aes_gcm_c (for
+      16).  The default (aes_gcm without postfix) refers to the 16
+      byte ICV version. RFC 8247 only mandates the 16 byte ICV version
+      is implemented, so it is recommended to NOT use the 8 or 12 byte
+      versions of GCM or CCM. These versions are NOT included in the
+      default proposal list and will be removed in a future version.
+    </para>
+    <para>
+      Weak algorithms are regularly removed from libreswan. Currently,
+      1DES and modp768(DH1) have been removed and modp1024(DH2) has
+      been disabled at compile time. Additionally, MD5 and SHA1 will
+      be removed within the next few years. Null encryption is
+      available, and should only be used for testing or benchmarking
+      purposes. Please do not request for insecure algorithms to be
+      re-added to libreswan. IKEv1 has been disabled per default, and
+      will soon no longer be compiled in by default.
+    </para>
+    <para>
+      For all Diffie-Hellman groups, the "dh" keyword can be used
+      instead of the "modp" keyword. For example
+      <option>ike=3des-sha1-dh19</option>. Diffie-Hellman groups
+      19,20 and 21 from RFC-5903 are supported. Curve25519 from
+      RFC-8031 is supported as "dh31". Curve448 and GOST DH groups are
+      not yet supported in libreswan because these are not supported
+      yet in the NSS crypto library.
+    </para>
+    <para>
+      Diffie-Hellman groups 22, 23 and 24 from RFC-5114 are
+      implemented but not compiled in by default.  These DH groups are
+      extremely controversial and MUST NOT be used unless forced
+      (administratively) by the other party. This is further
+      documented in RFC 8247, but the summary is that it cannot be
+      proven that these DH groups do not contain a cryptographic
+      trapdoor (a backdoor by the USG who provided these primes
+      without revealing the seeds and generation process used).
+    </para>
+    <para>
+      The modp syntax will be removed in favour of the dh syntax in
+      the future
+    </para>
+  </listitem>
+</varlistentry>
+
diff --git a/configs/d.ipsec.conf/conn/ikelifetime.xml b/configs/d.ipsec.conf/conn/ikelifetime.xml
new file mode 100644 (file)
index 0000000..be6b5fa
--- /dev/null
@@ -0,0 +1,17 @@
+<varlistentry>
+  <term>
+    <option>ikelifetime</option>
+  </term>
+  <listitem>
+    <para>
+      how long the keying channel of a connection (buzzphrase:
+      &ldquo;IKE SA&rdquo; or &ldquo;ISAKMP SA&rdquo;) should last
+      before being renegotiated; acceptable values as for
+      <option>salifetime</option>. The default as of version 4.2
+      is <option>8h</option>, before that it was 1h. The
+      maximum is <option>24h</option>. The
+      two-ends-disagree case is similar to that of
+      <option>salifetime</option>.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/ikepad.xml b/configs/d.ipsec.conf/conn/ikepad.xml
new file mode 100644 (file)
index 0000000..1eca1ae
--- /dev/null
@@ -0,0 +1,58 @@
+<varlistentry>
+  <term>
+    <option>ikepad=</option>
+  </term>
+  <listitem>
+    <para>
+      Work around IKEv1 padding issues when inter-operating with other
+      IKE daemons.
+    </para>
+    <para>
+      By default, &Libreswan; pads messages
+      to a minimum of 4-bytes.  While this is allowed it may cause
+      interoperability issues.  To remove this padding, specify
+      <option>ikepad=no</option> (note that this does not affect
+      messages encrypted using a block-mode cipher where padding is
+      always added).
+    </para>
+    <para>
+      Prior to &Libreswan; version 5.2, some MODECFG payloads were
+      incorrectly padded to 4-bytes which caused interoperability
+      issues.  To restore this behaviour, specify
+      <option>ikepad=yes</option>.
+    </para>
+    <para>
+      In IKEv2, this option is ignored.
+    </para>
+    <sidebar>
+      <title>
+       Background
+      </title>
+      <para>
+       It was thought that padding messages by 4-bytes was causing
+       interoperability issues with
+       &Checkpoint;
+       (<option>ikepad=no</option> was added as a workaround).
+       However, it's since been determined that &Racoon; also had
+       interoperability issues and the cause was the padding of some
+       XAUTH and MODECFG payloads.  Setting
+       <option>ikepad=no</option> fixed interoperability because it
+       was also disabling that padding.  The padding of XAUTH and
+       MODECFG was removed in &Libreswan; version 5.2.
+      </para>
+      <para>
+       Further details can be found in the RFCs, see: RFC-2409
+       section 5.3, Phase 1 Authenticated With a Revised Mode of
+       Public Key Encryption, <quote>the last byte of the padding
+       contains the number of padding bytes</quote> and <quote>there
+       will always be padding</quote>; RFC-2408 section 3.5, Proposal
+       Payload, <quote>there is no padding applied to the payload,
+       however, it can be applied at the end of the message</quote>;
+       RFC-2408 section 3.6, Transform Payload, <quote>then
+       subsequent payloads will not be aligned and any padding will
+       be added at the end of the message to make the message 4-octet
+       aligned</quote>.
+      </para>
+    </sidebar>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/ikeport.xml b/configs/d.ipsec.conf/conn/ikeport.xml
new file mode 100644 (file)
index 0000000..24f6b9a
--- /dev/null
@@ -0,0 +1,14 @@
+<varlistentry>
+  <term>
+    <option>leftikeport</option>
+  </term>
+  <term>
+    <option>rightikeport</option>
+  </term>
+  <listitem>
+    <para>
+      The UDP IKE port to listen on or send data to. This port cannot
+      be 0 or 500. For TCP, see <option>tcp-remoteport=</option>
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/initial-contact.xml b/configs/d.ipsec.conf/conn/initial-contact.xml
new file mode 100644 (file)
index 0000000..df6e598
--- /dev/null
@@ -0,0 +1,18 @@
+<varlistentry>
+  <term>
+    <option>initial-contact</option>
+  </term>
+  <listitem>
+    <para>
+      whether to send an INITIAL_CONTACT payload to the peer we are
+      initiating to, if we currently have no IPsec SAs up with that
+      peer.  Acceptable values are: <option>yes</option>
+      (the default) and <option>no</option>.  It is
+      recommended to leave this option set, unless multiple clients
+      with the same identity are expected to connect using the same
+      subnets and should operate at the same time. Or if a
+      reconnecting client should not delete its old instance (eg
+      perhaps it is still running). This is unlikely to be true.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/interface-ip.xml b/configs/d.ipsec.conf/conn/interface-ip.xml
new file mode 100644 (file)
index 0000000..e2e0553
--- /dev/null
@@ -0,0 +1,22 @@
+<varlistentry>
+  <term>
+    <option>leftinterface-ip=&ip_cidr;</option>
+  </term>
+  <term>
+    <option>rightinterface-ip=&ip_cidr;</option>
+  </term>
+  <listitem>
+    <para>
+      The IP address and netmask to configure on a virtual device (eg
+      <filename>ipsec<replaceable>N</replaceable></filename>).  This
+      is often used when building Routing based IPsec tunnels using
+      transport mode and GRE, but can also be useful in other
+      scenarios.  Currently requires
+      <option>ipsec-interface=</option>.
+    </para>
+    <para>
+      See also <option>leftvti=</option> for configuring IP addresses
+      when using deprecated VTI.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/intermediate.xml b/configs/d.ipsec.conf/conn/intermediate.xml
new file mode 100644 (file)
index 0000000..a11ec05
--- /dev/null
@@ -0,0 +1,15 @@
+<varlistentry>
+  <term>
+    <option>intermediate</option>
+  </term>
+  <listitem>
+    <para>
+      EXPERIMENTAL: Whether to enable the INTERMEDIATE exchange in
+      IKEv2 (RFC 9242).  Currently the accepted values are
+      <option>yes</option>, signifying we propose to use the
+      INTERMEDIATE exchange for this connection;
+      <option>no</option> (the default), signifying we will not
+      use the INTERMEDIATE exchange for this connection.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/ipsec-interface.xml b/configs/d.ipsec.conf/conn/ipsec-interface.xml
new file mode 100644 (file)
index 0000000..df772dd
--- /dev/null
@@ -0,0 +1,130 @@
+<varlistentry>
+  <term>
+    <option>ipsec-interface</option>
+  </term>
+  <listitem>
+    <para>
+      Specify the IPsec Interface for "Routing based IPsec VPNs" (as
+      opposed to "Policy based VPNs").  The IPsec Interface is used to
+      route outbound traffic that needs to be encrypted, and will
+      decrypt inbound traffic that arrives on this interface.  All
+      traffic that is routed to this interface will be automatically
+      encrypted providing the IPsec SA policy covers this traffic.
+      Traffic not matching the IPsec SA will be dropped.  Tools such
+      as <command>tcpdump</command>, <command>iptables</command>,
+      <command>ifconfig</command> and tools that need traffic counters
+      can be used on all cleartext pre-encrypt and post-decrypt
+      traffic on the device.  When <option>leftsubnet=</option> is
+      equal to <option>rightsubnet=</option>, the routing needs to be
+      managed by an external routing daemon or manually by the
+      administrator.
+    </para>
+    <para>
+      By default, &Libreswan; is configured in managed mode.  In
+      managed mode, &Libreswan; will create, configure
+      <option>up</option>, <option>down</option>, and delete the IPsec
+      Interface device (on &Linux;, &FreeBSD;, and &NetBSD; that
+      device is named <option>ipsec</option>; &OpenBSD; it is named
+      <option>sec</option>).  To specify the IP address to configure
+      when creating the device also specify
+      <option>interface-ip=</option>.
+    </para>
+    <para>
+      Alternatively, &Libreswan; can be configured in unmanaged mode.
+      In unmanaged mode, &Libreswan; does not manipulate the IPsec
+      Interface Device directly.  Instead &Libreswan; will assume the
+      IPsec Interface device already exists, manipulating it directly
+      using the low-level kernel ID (on &Linux; that is the XFRMi
+      if_id).  A typical use is with namespaces where the IPsec
+      Interface Device and &Libreswan; are in separate namespace.
+    </para>
+    <para>
+    </para>
+    <para>
+    </para>
+    <para>
+      Possible values are:
+    </para>
+    <variablelist>
+      <varlistentry>
+       <term>
+         <option>no</option> (default)
+       </term>
+       <listitem>
+         <para>
+           Do not use "Routing based IPsec VPN".
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term>
+         <option>yes</option>
+       </term>
+       <listitem>
+         <para>
+           Enable "Routing based IPsec VPNs".  In managed mode, use
+           IPsec Interface device 1 (for instance,
+           <option>ipsec1</option>).  In unmanaged mode, use the
+           kernel device 1.
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term>
+         <option><replaceable>number</replaceable></option>
+       </term>
+       <listitem>
+         <para>
+           Enable "Routing based IPsec VPNs" using the device
+           <replaceable>number</replaceable>.  For instance,
+           <option>ipsec-interface=5</option> will use
+           <option>ipsec5</option> in managed mode, and kernel xfrm interface
+           with if_id <option>5</option> in unmanaged mode.
+         </para>
+       </listitem>
+      </varlistentry>
+    </variablelist>
+    <para>
+      Kernel Support:
+    </para>
+    <variablelist>
+      <varlistentry>
+       <term>
+         &Linux; (since 4.19)
+       </term>
+       <listitem>
+         <para>
+           This option is currently only supported on Linux kernels
+           when compiled with XFRMi support
+           (<option>CONFIG_XFRM_INTERFACE</option>).  The number of
+           the ipsecX device corresponds with the <option>XFRM
+           IF_ID</option> policy option of the IPsec SA in the Linux
+           kernel. On Linux, XFRMi interfaces can be managed by
+           &Libreswan; automatically or can be preconfigured on the
+           system using the existing init system or via networking
+           tools such as systemd-networkd and NetworkManager. The
+           _updown script handles certain Linux specific interfaces
+           settings required for proper functioning, such as
+           forwarding and routing rules for IPsec traffic.
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term>
+         &NetBSD; (since 8.0)
+       </term>
+       <term>
+         &OpenBSD; (since 7.4)
+       </term>
+       <term>
+         &FreeBSD; (since 11.0)
+       </term>
+       <listitem>
+         <para>
+           Supported since &Libreswan; 5.2.
+         </para>
+       </listitem>
+      </varlistentry>
+    </variablelist>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/ipsec-max-bytes.xml b/configs/d.ipsec.conf/conn/ipsec-max-bytes.xml
new file mode 100644 (file)
index 0000000..a531cdd
--- /dev/null
@@ -0,0 +1,55 @@
+<varlistentry>
+  <term>
+    <option>ipsec-max-bytes</option>
+  </term>
+  <listitem>
+    <para>
+      how many bytes can be sent, or how many bytes can be received on
+      an IPsec SA instance for a connection; acceptable values are an
+      integer optionally followed by
+
+      <option>KiB</option>,
+      <option>MiB</option>,
+      <option>GiB</option>,
+      <option>TiB</option>,
+      <option>PiB</option> or
+      <option>EiB</option>
+
+      to signify kilobytes, megabytes, gigabytes, terabytes, petabytes
+      or exabytes.
+
+    </para>
+    <para>
+      An IPsec SA contains two keys, one for inbound and one for
+      outbound traffic.  The
+      <replaceable>ipsec-max-bytes</replaceable> sets two limits on
+      each of these keys: the hard limit which is the total number of
+      bytes that a given key can encrypt, and the soft limit which is
+      the number of bytes that can be encrypted before a renegotiation
+      of the IPsec SA is initiated.  Normally the renegotiation (via
+      the IKE SA) is completed before the
+      <replaceable>ipsec-max-bytes</replaceable> value is reached.
+    </para>
+    <para>
+      Pluto sets the the original initiator's soft limit to 25% of
+      <replaceable>ipsec-max-bytes</replaceable> (with 12% fuzz) and
+      on the original responder's soft limit to 50% of
+      <replaceable>ipsec-max-bytes</replaceable> (with 12% fuzz).
+      This way the original initiator hopefully is the one initiating
+      the renegotiation of the IPsec SA.
+    </para>
+    <para>
+      This option is not negotiated between IKE peers.  Each end of
+      the IPsec SA sets their own limits independently.
+    </para>
+    <para>
+      The default (hard limit) is 2^63 bytes.  The original
+      initiator's soft limit is 2^61 bytes (approx.) and the original
+      responder's soft limit is 2^62 bytes (approx.).
+    </para>
+    <para>
+      When using Linux with <option>nic-offload=packet</option> set,
+      Linux 6.7 or later is required.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/ipsec-max-packets.xml b/configs/d.ipsec.conf/conn/ipsec-max-packets.xml
new file mode 100644 (file)
index 0000000..25e5836
--- /dev/null
@@ -0,0 +1,21 @@
+<varlistentry>
+  <term>
+    <option>ipsec-max-packets</option>
+  </term>
+  <listitem>
+    <para>
+      How many packets can be sent/received on a particular instance
+      of a connection (a set of encryption/authentication keys for
+      user packets) , from successful negotiation to expiry.
+    </para>
+    <para>
+      Default values and caveats are the same as for
+      <option>ipsec-max-bytes</option>. This option uses a prefix
+      without "B" for bytes.
+    </para>
+    <para>
+      When using Linux with <option>nic-offload=packet</option> set,
+      Linux 6.7 or later is required.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/iptfs.xml b/configs/d.ipsec.conf/conn/iptfs.xml
new file mode 100644 (file)
index 0000000..073b82d
--- /dev/null
@@ -0,0 +1,99 @@
+<varlistentry>
+  <term>
+    <option>iptfs</option>
+  </term>
+  <listitem>
+    <para>
+      Enable "Aggregation and Fragmentation Mode for Encapsulating
+      Security Payload (ESP) and its use for IP Traffic Flow Security
+      (IP-TFS) as defined in RFC 9347.  Currently, this is only
+      supported for the Linux XFRM stack and will likely be merged
+      into Linux 6.7 or 6.8. Valid options are <option>no</option>
+      (the default) or <option>yes</option>.  IP-TFS allow the kernel
+      to combine multiple small packets into one ESP packet, which
+      should cause a performance gain when many small packets (eg
+      iperf packets) are sent.  It also allows the kernel to fragment
+      the outgoing packet stream so that the ESP packets have a fixed
+      size that can be set manually or fit the path MTU.  This should
+      avoid common MTU issues with IPsec.  IP-TFS can only be used
+      with tunnel mode and ESP.  It cannot be combined with
+      <option>type=transport</option>, <option>phase2=ah</option>,
+      <option>compress=yes</option> or <option>tfc=yes</option>.  A
+      number of IP-TFS options can be tuned.
+    </para>
+  </listitem>
+</varlistentry>
+<varlistentry>
+  <term>
+    <option>iptfs-fragmentation={yes,no}</option>
+  </term>
+  <listitem>
+    <para>
+      Whether or not to fragment IP-TFS.
+    </para>
+    <para>
+      On &Linux; and
+      <option>iptfs-fragmentation=no</option>, this passes
+      <option>XFRMA_IPTFS_DONT_FRAG</option> to the kernel.  (Unclear
+      to at least one author if this means regular ICMP Dont Fragment
+      sending, or whether it stops IP-TFS from fragmenting).
+    </para>
+    <para>
+      Default is <option>iptfs-fragmentation=yes</option>
+    </para>
+  </listitem>
+</varlistentry>
+<varlistentry>
+  <term><option>iptfs-max-queue-size</option></term>
+  <listitem>
+    <para>
+      The default IP-TFS max output queue size in octets. The output
+      queue is where received packets destined for output over an
+      IP-TFS tunnel are stored prior to being output in
+      aggregated/fragmented form over the IP-TFS tunnel.
+    </para>
+    <para>
+      Default 1000000.
+    </para>
+  </listitem>
+</varlistentry>
+<varlistentry>
+  <term><option>iptfs-drop-time=<replaceable>duration</replaceable></option></term>
+  <listitem>
+    <para>
+      The amount of time before a missing out-of-order IP-TFS tunnel
+      packet is considered lost.  See also
+      <option>iptfs-reorder-window</option>.
+    </para>
+    <para>
+      The default is 1s.  The default time unit is seconds (see
+      <replaceable>duration</replaceable>).
+    </para>
+  </listitem>
+</varlistentry>
+<varlistentry>
+  <term><option>iptfs-init-delay=<replaceable>duration</replaceable></option></term>
+  <listitem>
+    <para>
+      The amount of time prior to servicing the output queue after
+      queueing the first packet on said queue.
+    </para>
+    <para>
+      The default is 0s.  The default time unit is seconds (see
+      <replaceable>duration</replaceable>).
+    </para>
+  </listitem>
+</varlistentry>
+<varlistentry>
+  <term><option>iptfs-reorder-window</option></term>
+  <listitem>
+    <para>
+      The default IP-TFS reorder window size. The reorder window size
+      dictates the maximum number of IP-TFS tunnel packets in a
+      sequence that may arrive out of order.
+    </para>
+    <para>
+      Default 3.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/keyexchange.xml b/configs/d.ipsec.conf/conn/keyexchange.xml
new file mode 100644 (file)
index 0000000..0e372c3
--- /dev/null
@@ -0,0 +1,18 @@
+<varlistentry>
+  <term>
+    <option>keyexchange</option>
+  </term>
+  <listitem>
+    <para>
+      Whether to use IKEv2 (RFC 7296) or IKEv1 (RFC 4301). Currently the
+      accepted values are <option>ikev2</option> (the default) and
+      <option>ikev1</option>.
+    </para>
+    <para>
+      This option replaces ikev2=yes|no. Old values yes, propose and instist
+      all map to keyexchange=ikev2. Values no and permit are map to
+      keyexchange=ikev1.
+    </para>
+  </listitem>
+</varlistentry>
+
diff --git a/configs/d.ipsec.conf/conn/mark-in.xml b/configs/d.ipsec.conf/conn/mark-in.xml
new file mode 100644 (file)
index 0000000..4c72efa
--- /dev/null
@@ -0,0 +1,12 @@
+<varlistentry>
+  <term>
+    <option>mark-in</option>
+  </term>
+  <listitem>
+    <para>
+      The same as <option>mark</option>, but mark-in only applies to
+      the inbound half of the IPsec SA. It overrides any mark=
+      setting.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/mark-out.xml b/configs/d.ipsec.conf/conn/mark-out.xml
new file mode 100644 (file)
index 0000000..5673a7d
--- /dev/null
@@ -0,0 +1,12 @@
+<varlistentry>
+  <term>
+    <option>mark-out</option>
+  </term>
+  <listitem>
+    <para>
+      The same as <option>mark</option>, but mark-out only applies to
+      the outbound half of the IPsec SA. It overrides any mark=
+      setting.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/mark.xml b/configs/d.ipsec.conf/conn/mark.xml
new file mode 100644 (file)
index 0000000..d9598c3
--- /dev/null
@@ -0,0 +1,18 @@
+<varlistentry>
+  <term>
+    <option>mark</option>
+  </term>
+  <listitem>
+    <para>
+      If set, the MARK to set for the IPsec SA of this connection. The
+      format of a CONNMARK is <option>mark/mask</option>. If the mask
+      is left out, a default mask of 0xffffffff is used. A mark value
+      of -1 means to assign a new global unique mark number for each
+      instance of the connection. Global marks start at 1001.  This
+      option is only available on linux XFRM kernels. It can be used
+      with iptables to create custom iptables rules using CONNMARK. It
+      can also be used with Virtual Tunnel Interfaces ("VTI") to
+      direct marked traffic to specific vtiXX devices.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/metric.xml b/configs/d.ipsec.conf/conn/metric.xml
new file mode 100644 (file)
index 0000000..6fa7bc6
--- /dev/null
@@ -0,0 +1,17 @@
+<varlistentry>
+  <term>
+    <option>metric</option>
+  </term>
+  <listitem>
+    <para>
+      Set the metric for added routes.  This value is passed to the
+      <command>ipsec _updown</command> scripts as
+      <envar>PLUTO_METRIC</envar> (see &ipsec-updown.8;).
+    </para>
+    <para>
+      Acceptable values are positive numbers, with the default being
+      <option>1</option>.
+    </para>
+  </listitem>
+</varlistentry>
+
diff --git a/configs/d.ipsec.conf/conn/mobike.xml b/configs/d.ipsec.conf/conn/mobike.xml
new file mode 100644 (file)
index 0000000..1d64a33
--- /dev/null
@@ -0,0 +1,20 @@
+<varlistentry>
+  <term>
+    <option>mobike</option>
+  </term>
+  <listitem>
+    <para>
+      Whether to allow MOBIKE (RFC 4555) to enable a connection to
+      migrate its endpoint without needing to restart the connection
+      from scratch. This is used on mobile devices that switch between
+      wired, wireless or mobile data connections. Current values are
+      <option>no</option> (the default) or <option>yes</option>, Only
+      connection acting as modecfgclient will allow the initiator to
+      migrate using mobike. Only connections acting as modecfgserver
+      will allow clients to migrate.
+    </para>
+    <para>
+      VTI and MOBIKE might not work well when used together.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/modecfgclient.xml b/configs/d.ipsec.conf/conn/modecfgclient.xml
new file mode 100644 (file)
index 0000000..cbf2c2b
--- /dev/null
@@ -0,0 +1,16 @@
+<varlistentry>
+  <term>
+    <option>leftmodecfgclient</option>
+  </term>
+  <term>
+    <option>rightmodecfgclient</option>
+  </term>
+  <listitem>
+    <para>Left is a Mode Config client. It can receive network
+    configuration from the server.  Acceptable values are
+    <option>yes</option> or <option>no</option> (the
+    default).</para>
+  </listitem>
+</varlistentry>
+
+
diff --git a/configs/d.ipsec.conf/conn/modecfgoptions.xml b/configs/d.ipsec.conf/conn/modecfgoptions.xml
new file mode 100644 (file)
index 0000000..b523246
--- /dev/null
@@ -0,0 +1,33 @@
+<varlistentry>
+  <term>
+    <option>modecfgdns</option>
+  </term>
+  <term>
+    <option>modecfgdomains</option>
+  </term>
+  <term>
+    <option>modecfgbanner</option>
+  </term>
+  <listitem>
+    <para>
+      When configured as IKEv1 ModeCFG or IKEv2 server, specifying any
+      of these options will cause those options and values to be sent
+      to the connecting client.  &Libreswan; as a client will use
+      these received options to either update /etc/resolv.conf or the
+      running unbound DNS server. When the connection is brought down,
+      the previous DNS resolving state is restored.
+    </para>
+    <para>
+      The modecfgdns option takes a comma or space separated list of
+      IP addresses that can be used for DNS resolution. The
+      modecfgdomains option takes a comma or space separated list of
+      internal domain names that are reachable via the supplied
+      modecfgdns DNS servers.
+    </para>
+    <para>
+      The IKEv1 split tunnel directive will be sent automatically if
+      the xauth server side has configured a network other than
+      0.0.0.0/0. For IKEv2, this is automated via narrowing.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/modecfgpull.xml b/configs/d.ipsec.conf/conn/modecfgpull.xml
new file mode 100644 (file)
index 0000000..76c4ef4
--- /dev/null
@@ -0,0 +1,13 @@
+<varlistentry>
+  <term>
+    <option>modecfgpull</option>
+  </term>
+  <listitem>
+    <para>
+      Pull the Mode Config network information from the server.
+      Both server and client must use same setting.
+      Acceptable values are <option>yes</option> or
+      <option>no</option> (the default).
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/modecfgserver.xml b/configs/d.ipsec.conf/conn/modecfgserver.xml
new file mode 100644 (file)
index 0000000..b438061
--- /dev/null
@@ -0,0 +1,16 @@
+<varlistentry>
+  <term>
+    <option>leftmodecfgserver</option>
+  </term>
+  <term>
+    <option>rightmodecfgserver</option>
+  </term>
+  <listitem>
+    <para>
+      Left is a Mode Config server. It can push network configuration
+      to the client.  Acceptable values are <option>yes</option>
+      or <option>no</option> (the default).
+    </para>
+  </listitem>
+</varlistentry>
+
diff --git a/configs/d.ipsec.conf/conn/ms-dh-downgrade.xml b/configs/d.ipsec.conf/conn/ms-dh-downgrade.xml
new file mode 100644 (file)
index 0000000..65b4fab
--- /dev/null
@@ -0,0 +1,23 @@
+<varlistentry>
+  <term><option>ms-dh-downgrade</option></term>
+  <listitem>
+    <para>
+      Whether to allow a downgrade of Diffie-Hellman group during
+      rekey (using CREATE_CHILD_SA).
+    </para>
+    <para>
+      Microsoft Windows (at the time of writing, Feb 2018) defaults to
+      using the very weak modp1024 (DH2).  This can be changed using a
+      Windows registry setting to use modp2048 (DH14).  However, at
+      rekey times, it will shamelessly use modp1024 again and the
+      connection might fail.  Setting <option>ms-dh-downgrade=yes</option>
+      (and adding modp1024 proposals to the ike line) will allow this
+      downgrade attack to happen. This should only be used to support
+      Windows that feature this bug.
+    </para>
+    <para>
+      The accepted values are <option>no</option>, (the
+      default) or <option>yes</option>.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/mtu.xml b/configs/d.ipsec.conf/conn/mtu.xml
new file mode 100644 (file)
index 0000000..d72fe35
--- /dev/null
@@ -0,0 +1,19 @@
+<varlistentry>
+  <term>
+    <option>mtu</option>
+  </term>
+  <listitem>
+    <para>
+      Set the MTU for the route(s) to the remote endpoint and/or
+      subnets. This is sometimes required when the overhead of the
+      IPsec encapsulation would cause the packet the become too big
+      for a router on the path. Since IPsec cannot trust any
+      unauthenticated ICMP messages, PATH MTU discovery does not
+      work. This can also be needed when using "6to4" IPV6
+      deployments, which adds another header on the packet size.
+    </para>
+    <para>
+      Acceptable values are positive numbers. There is no default.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/narrowing.xml b/configs/d.ipsec.conf/conn/narrowing.xml
new file mode 100644 (file)
index 0000000..0741764
--- /dev/null
@@ -0,0 +1,28 @@
+<varlistentry>
+  <term>
+    <option>narrowing</option>
+  </term>
+  <listitem>
+    <para>
+      IKEv2 (RFC5996) Section 2.9 Traffic Selector narrowing options.
+      Currently the accepted values are <option>no</option>, (the
+      default) signifying no narrowing will be proposed or accepted,
+      or <option>yes</option>, signifying IKEv2 negotiation may allow
+      establishing an IPsec connection with narrowed down traffic
+      selectors. This option is ignored for IKEv1.
+    </para>
+    <para>
+      There are security implications in allowing narrowing down the
+      proposal. For one, what should be done with packets that we
+      hoped to tunnel, but cannot. Should these be dropped or send in
+      the clear? Second, this could cause thousands of narrowed down
+      Child SAs to be created if the conn has a broad policy (eg 0/0
+      to 0/0).  One possible good use case scenario is that a remote
+      end (that you fully trust) allows you to define a 0/0 to them,
+      while adjusting what traffic you route via them, and what
+      traffic remains outside the tunnel. However, it is always
+      preferred to setup the exact tunnel policy you want, as this
+      will be much clearer to the user.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/nat-ikev1-method.xml b/configs/d.ipsec.conf/conn/nat-ikev1-method.xml
new file mode 100644 (file)
index 0000000..eb69dc8
--- /dev/null
@@ -0,0 +1,30 @@
+<varlistentry>
+  <term>
+    <option>nat-ikev1-method</option>
+  </term>
+  <listitem>
+    <para>
+      NAT Traversal in IKEv1 is negotiated via Vendor ID options as
+      specified in RFC 3947.  However, many implementations only
+      support the draft version of the RFC. &Libreswan; sends both the
+      RFC and the most common draft versions (02, 02_n and 03) to
+      maximize interoperability.  Unfortunately, there are known
+      broken implementations of RFC 3947, notably Cisco routers that
+      have not been updated to the latest firmware. As the NAT-T
+      payload is sent in the very first packet of the initiator, there
+      is no method to auto-detect this problem and initiate a
+      workaround.
+    </para>
+    <para>
+      This option allows fine tuning which of the NAT-T payloads to
+      consider for sending and processing.  Currently the accepted
+      values are <option>drafts</option>, <option>rfc</option>,
+      <option>both</option> (the default) and
+      <option>none</option>. To interoperate with known broken
+      devices, use nat-ikev1-method=drafts.  To prevent the other end
+      from triggering IKEv1 NAT-T encapsulation, set this to
+      none. This will omit the NAT-T payloads used to determine NAT,
+      forcing the other end not to use encapsulation.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/nat-keepalive.xml b/configs/d.ipsec.conf/conn/nat-keepalive.xml
new file mode 100644 (file)
index 0000000..9e49636
--- /dev/null
@@ -0,0 +1,13 @@
+<varlistentry>
+  <term>
+    <option>nat-keepalive</option>
+  </term>
+  <listitem>
+    <para>
+      whether to send any NAT-T keep-alives. These one byte packets
+      prevent the NAT router from closing its port when there is not
+      enough traffic on the IPsec connection.  Acceptable values are:
+      <option>yes</option> (the default) and <option>no</option>.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/negotiationshunt.xml b/configs/d.ipsec.conf/conn/negotiationshunt.xml
new file mode 100644 (file)
index 0000000..426e008
--- /dev/null
@@ -0,0 +1,18 @@
+<varlistentry>
+  <term>
+    <option>negotiationshunt</option>
+  </term>
+  <listitem>
+    <para>
+      What to do with packets during the IKE negotiation.  Valid
+      options are <option>hold</option> (the default) or
+      <option>pass</option>. This should almost always be left to the
+      default <option>hold</option> value to avoid cleartext packet
+      leaking. The only reason to set this to <option>pass</option> is
+      if plaintext service availability is more important than service
+      security or privacy, a scenario that also implies
+      <option>failureshunt=pass</option> and most likely
+      <option>authby=%null</option> using Opportunistic Encryption.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/nexthop.xml b/configs/d.ipsec.conf/conn/nexthop.xml
new file mode 100644 (file)
index 0000000..4019c76
--- /dev/null
@@ -0,0 +1,24 @@
+<varlistentry>
+  <term>
+    <option>leftnexthop</option>
+  </term>
+  <term>
+    <option>rightnexthop</option>
+  </term>
+  <listitem>
+    <para>
+      next-hop gateway IP address for the left participant's
+      connection to the public network; defaults to <option>%direct</option>
+      (meaning <option>right</option>). If the value is to be overridden
+      by the <option>left=%defaultroute</option> method
+      (see above), an explicit value must <option>not</option> be given.
+      If that method is not being used, but <option>leftnexthop</option> is
+      <option>%defaultroute</option>, the next-hop
+      gateway address of the default-route interface will be used.
+      The magic value <option>%direct</option> signifies
+      a value to be filled in (by automatic keying) with the peer's
+      address.  Relevant only locally, other end need not agree on
+      it.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/nflog-group.xml b/configs/d.ipsec.conf/conn/nflog-group.xml
new file mode 100644 (file)
index 0000000..7b5ef29
--- /dev/null
@@ -0,0 +1,24 @@
+<varlistentry>
+  <term>
+    <option>nflog-group</option>
+  </term>
+  <listitem>
+    <para>
+      If set, the NFLOG group number to log this connection's
+      pre-crypt and post-decrypt traffic to.  The default value of
+      <option>0</option> means no logging at all.  This option is only
+      available on linux kernel 2.6.14 and later.  It allows common
+      network utilities such as tcpdump, wireshark and dumpcap, to use
+      nflog:XXX pseudo interfaces where XXX is the nflog group
+      number. During the updown phase of a connection, iptables will
+      be used to add and remove the source/destination pair to the
+      nflog group specified.  The rules are setup with the
+      nflog-prefix matching the connection name. See also the global
+      <option>nflog-all</option> option.
+    </para>
+    <para>
+      Prior to &Libreswan; version 5.3, this option was called
+      <option>nflog</option>.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/nic-offload.xml b/configs/d.ipsec.conf/conn/nic-offload.xml
new file mode 100644 (file)
index 0000000..e391305
--- /dev/null
@@ -0,0 +1,47 @@
+<varlistentry>
+  <term>
+    <option>nic-offload</option>
+  </term>
+  <listitem>
+    <para>
+      Set the method of Network Interface Controller (NIC) hardware
+      offload for ESP/AH packet processing.  Acceptable values are
+      <option>no</option> (the default),
+      <option>crypto</option> or <option>packet</option>.  The
+      value <option>yes</option> is a backwards compatible value
+      for <option>crypto</option>.  The nic-offload option is
+      separate from any CPU hardware offload available.  When set to
+      <option>crypto</option>, only cryptographic operations are
+      offloaded to the NIC card.  When set to
+      <option>packet</option>, the entire packet processing
+      including the encryption/decryption is offloaded to the NIC
+      card.
+    </para>
+    <para>
+      Crypto nic-offload is available starting Linux 4.13 using the
+      XFRM IPsec stack.  Packet nic-offload is available starting
+      Linux 6.3.  Both require that the Linux kernel is compiled with
+      the options CONFIG_XFRM_OFFLOAD, CONFIG_INET_ESP_OFFLOAD and
+      CONFIG_INET6_ESP_OFFLOAD.  Network card support can be seen by
+      the presence of the <option>esp-hw-offload</option>
+      capability using the <option>ethtool -S</option> command.
+      The Linux kernel attempts to fall back from crypto hardware
+      offload to software, but only for some algorithms (AEADs only?).
+      There is no fallback from packet offload to crypto offload.  At
+      the time of libreswan 5.0, we are only aware of the
+      Nvidia/Mellanox ConnectX-7 (and to some extend ConnectX-6) cards
+      supporting packet offload.
+    </para>
+    <para>
+      In general, it makes no sense to try to offload older (non-AEAD)
+      cryptographic algorithms such as AES-CBC or 3DES, as these
+      algorithms are so much slower than AEAD algorithms (such as
+      AES-GCM) that one would gain more performance by switching the
+      algorithm to AEAD than by offloading.  As such, AES-CBC tends to
+      not be implemented in offload hardware.  This option has also no
+      effect on IKE packets, which are never offloaded, although IKE
+      encryption does use supported CPU hardware instructions, such as
+      AESNI.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/nm-configured.xml b/configs/d.ipsec.conf/conn/nm-configured.xml
new file mode 100644 (file)
index 0000000..6e4a0d1
--- /dev/null
@@ -0,0 +1,14 @@
+<varlistentry>
+  <term>
+    <option>nm-configured</option>
+  </term>
+  <listitem>
+    <para>
+      Mark this connection as controlled by Network Manager.
+      Acceptable values are <option>yes</option> or
+      <option>no</option> (the default). Currently, setting this to
+      yes will cause libreswan to skip reconfiguring resolv.conf when
+      used with XAUTH and ModeConfig.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/nopmtudisc.xml b/configs/d.ipsec.conf/conn/nopmtudisc.xml
new file mode 100644 (file)
index 0000000..b76425f
--- /dev/null
@@ -0,0 +1,13 @@
+<varlistentry>
+  <term>
+    <option>nopmtudisc</option>
+  </term>
+  <listitem>
+    <para>
+      Disable Path MTU discovery for the IPsec SA. Acceptable values
+      are <option>no</option> (the default) or <option>yes</option>.
+      Currently this feature is only implemented for the Linux XFRM
+      stack.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/overlapip.xml b/configs/d.ipsec.conf/conn/overlapip.xml
new file mode 100644 (file)
index 0000000..5429b19
--- /dev/null
@@ -0,0 +1,26 @@
+<varlistentry>
+  <term>
+    <option>overlapip</option>
+  </term>
+  <listitem>
+    <para>
+      a boolean (yes/no) that determines, when
+      (left|right)subnet=vhost: is used, if the virtual IP claimed by
+      this states created from this connection can with states created
+      from other connections.
+    </para>
+    <para>
+      Note that connection instances created by the Opportunistic
+      Encryption or PKIX (x.509) instantiation system are distinct
+      internally. They will inherit this policy bit.
+    </para>
+    <para>
+      The default is no.
+    </para>
+    <para>
+      This feature is only available with kernel drivers that support
+      SAs to overlapping conns.  At present only the (klips) mast
+      protocol stack supports this feature.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/pam-authorize.xml b/configs/d.ipsec.conf/conn/pam-authorize.xml
new file mode 100644 (file)
index 0000000..435ebee
--- /dev/null
@@ -0,0 +1,19 @@
+<varlistentry>
+  <term>
+    <option>pam-authorize</option>
+  </term>
+  <listitem>
+    <para>
+      IKEv2 does not support receiving a plaintext username and
+      password.  &Libreswan; does not yet support EAP authentication
+      methods for IKE.  The pam-authorize=yes option performs an
+      authorization call via PAM, but only includes the remote ID (not
+      username or password). This allows for backends to disallow an
+      ID based on non-password situations, such as "user disabled" or
+      "user over quota".
+    </para>
+    <para>
+      See also the IKEv1 option <option>xauthby=pam</option>
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/pfs.xml b/configs/d.ipsec.conf/conn/pfs.xml
new file mode 100644 (file)
index 0000000..2f95244
--- /dev/null
@@ -0,0 +1,14 @@
+<varlistentry>
+  <term>
+    <option>pfs</option>
+  </term>
+  <listitem>
+    <para>
+      whether Perfect Forward Secrecy of keys is desired on the
+      connection's keying channel (with PFS, penetration of the
+      key-exchange protocol does not compromise keys negotiated
+      earlier); Acceptable values are <option>yes</option> (the
+      default) and <option>no</option>.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/phase2.xml b/configs/d.ipsec.conf/conn/phase2.xml
new file mode 100644 (file)
index 0000000..d5df4f0
--- /dev/null
@@ -0,0 +1,23 @@
+<varlistentry>
+  <term>
+    <option>phase2</option>
+  </term>
+  <listitem>
+    <para>
+      Sets the type of SA that will be produced.  Valid options are:
+      <option>esp</option> for encryption (the default),
+      <option>ah</option> for authentication only.
+    </para>
+    <para>
+      The very first IPsec designs called for use of AH plus ESP to
+      offer authentication, integrity and confidentiality. That dual
+      protocol use was a significant burden, so ESP was extended to
+      offer all three services, and AH remained as an auth/integ. The
+      old mode of <option>ah+esp</option> is no longer supported in
+      compliance with RFC 8221 Section 4.  Additionally, AH does not
+      play well with NATs, so it is strongly recommended to use ESP
+      with the null cipher if you require unencrypted authenticated
+      transport.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/policy-label.xml b/configs/d.ipsec.conf/conn/policy-label.xml
new file mode 100644 (file)
index 0000000..3ffaef5
--- /dev/null
@@ -0,0 +1,18 @@
+<varlistentry>
+  <term>
+    <option>policy-label</option>
+  </term>
+  <listitem>
+    <para>
+      The string representation of an access control security label
+      that is interpreted by the Linux Security Module (e.g. SELinux)
+      for use with Labeled IPsec.
+    </para>
+    <para>
+      For example, <option>policy-label=system_u:object_r:ipsec_spd_t:s0-s15:c0.c1023</option>
+    </para>
+    <para>
+      Labeled IPsec support is IKEv2 only.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/ppk-ids.xml b/configs/d.ipsec.conf/conn/ppk-ids.xml
new file mode 100644 (file)
index 0000000..8d4aff2
--- /dev/null
@@ -0,0 +1,18 @@
+<varlistentry>
+  <term>
+    <option>ppk-ids</option>
+  </term>
+  <listitem>
+    <para>
+      EXPERIMENTAL: Specify which PPK_ID's to look for in .secrets
+      file.  The value must be a string (enclosed in quotes)
+      containing a comma-separated list with PPK_ID's. Whitespaces
+      cannot be a part of PPK_ID, i.e., they will be seen as a
+      delimiter. If some PPK_ID's are specified and PPK feature is
+      enabled (<option>ppk=</option>), one of the PPK secrets must
+      have an ID matching one of the specified PPK_ID's. If this
+      option is not set and the PPK feature is enabled, any matching
+      PPK secret will be used.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/ppk.xml b/configs/d.ipsec.conf/conn/ppk.xml
new file mode 100644 (file)
index 0000000..e2dac91
--- /dev/null
@@ -0,0 +1,19 @@
+<varlistentry>
+  <term>
+    <option>ppk</option>
+  </term>
+  <listitem>
+    <para>
+      EXPERIMENTAL: Post-quantum preshared keys (PPKs) to be
+      used. Currently the accepted values are <option>propose</option>
+      or <option>yes</option> (the default), signifying we propose to
+      use PPK for this connection; <option>insist</option>, signifying
+      we allow communication only if PPK is used for key derivation;
+      <option>never</option> or <option>no</option>, signifying that
+      PPK should not be used for key derivation.  PPKs can be used in
+      connections that allow only IKEv2. In libreswan that would mean
+      that ikev2 option must have value <option>insist</option>.  This
+      feature is based on RFC 8784.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/priority.xml b/configs/d.ipsec.conf/conn/priority.xml
new file mode 100644 (file)
index 0000000..dd3b051
--- /dev/null
@@ -0,0 +1,29 @@
+<varlistentry>
+  <term>
+    <option>priority</option>
+  </term>
+  <listitem>
+    <para>
+      The priority in the kernel SPD/SAD database, when matching up
+      packets.  Each kernel (XFRM, OSX, etc) has its own mechanism
+      for setting the priority. Setting this option to non-zero
+      passes the priority to the kernel stack unmodified. The
+      maximum value depends on the stack. It is recommended not to
+      exceed 65536
+    </para>
+    <para>
+      XFRM use a priority system based on "most specific match
+      first". It uses an internal algorithm to calculate these based
+      on network prefix length, protocol and port selectors. A lower
+      value means a higher priority.
+    </para>
+    <para>
+      Typical values are about the 2000 range. These can be seen on
+      the XFRM stack using <option>ip xfrm policy</option> when the
+      connection is up.  For "anonymous IPsec" or Opportunistic
+      Encryption based connections, a much lower priority (65535) is
+      used to ensure administrator configured IPsec always takes
+      precedence over opportunistic IPsec.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/protoport.xml b/configs/d.ipsec.conf/conn/protoport.xml
new file mode 100644 (file)
index 0000000..5096003
--- /dev/null
@@ -0,0 +1,72 @@
+<varlistentry>
+  <term>
+    <option>leftprotoport=&ip_protoport;</option>
+  </term>
+  <term>
+    <option>rightprotoport=&ip_protoport;</option>
+  </term>
+  <listitem>
+    <para>
+      allowed protocols and ports over connection, also called Port
+      Selectors. The argument is in the form <option>protocol</option>,
+      which can be a number or a name
+      that will be looked up in <option>/etc/protocols</option>,
+      such as <option>leftprotoport=icmp</option>, or in the form of
+      <option>protocol/port</option>, such as <option>tcp/smtp</option>.
+      Ports can be defined as a number
+      (eg. 25) or as a name (eg smtp) which will be looked up in
+      <option>/etc/services</option>. A special keyword
+      <option>%any</option> can be used to allow all
+      ports of a certain protocol. The most common use of this option
+      is for L2TP connections to only allow l2tp packets (UDP port
+      1701), eg: <option>leftprotoport=17/1701</option>.
+    </para>
+
+    <para>
+      To filter on specific icmp type and code, use the higher 8 bits
+      for type and the lower 8 bits for port. For example, to allow
+      icmp echo packets (type 8, code 0) the 'port' would be 0x0800,
+      or 2048 in decimal, so you configure
+      <option>leftprotoport=icmp/2048</option>. Similarly, to
+      allow ipv6-icmp Neighbour Discovery which has type 136 (0x88)
+      and code 0(0x00) this becomes 0x8800 or in decimal 34816
+      resulting in <option>leftprotoport=ipv6-icmp/34816</option>.
+    </para>
+
+    <para>
+      Some clients, notably older Windows XP and some Mac OSX clients,
+      use a random high port as source port.  In those cases
+      <option>rightprotoport=17/%any</option> can be used to allow all
+      UDP traffic on the connection.  Note that this option is part of
+      the proposal, so it cannot be arbitrarily left out if one end
+      does not care about the traffic selection over this connection -
+      both peers have to agree.  The Port Selectors show up in the
+      output of <command>ipsec status</command> eg:<option>"l2tp":
+      193.110.157.131[@aivd.libreswan.org]:7/1701...%any:17/1701</option>.
+      This option only filters outbound traffic.  Inbound traffic
+      selection must still be based on firewall rules activated by an
+      updown script.  The environment variables
+      <envar>PLUTO_MY_PROTOCOL</envar>,
+      <envar>PLUTO_PEER_PROTOCOL</envar>,
+      <envar>PLUTO_MY_PORT</envar>, and <envar>PLUTO_PEER_PORT</envar>
+      are available for use in <command>ipsec _updown</command>
+      scripts (see &ipsec-updown.8;).  Older workarounds for bugs
+      involved a setting of <option>17/0</option> to denote
+      <option>any single UDP port</option> (not UDP port 0).  Some
+      clients, most notably OSX, uses a random high port, instead of
+      port 1701 for L2TP.
+    </para>
+
+    <important>
+      <title>
+       Use with <option>leftsubnet=</option>.
+      </title>
+      <para>
+       With IKEv2, the <option>leftsubnet=</option> specification can
+       include the protocol and port.  Combining that syntax with
+       <option>protoport=</option> is not supported.
+      </para>
+    </important>
+
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/redirect-to.xml b/configs/d.ipsec.conf/conn/redirect-to.xml
new file mode 100644 (file)
index 0000000..294fdce
--- /dev/null
@@ -0,0 +1,12 @@
+<varlistentry>
+  <term>
+    <option>redirect-to</option>
+  </term>
+  <listitem>
+    <para>
+      Where to send remote peers to via the
+      <option>send-redirect</option> option. This can be an IP address
+      or hostname (FQDN).
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/reject-simultaneous-ike-auth.xml b/configs/d.ipsec.conf/conn/reject-simultaneous-ike-auth.xml
new file mode 100644 (file)
index 0000000..7c3f68c
--- /dev/null
@@ -0,0 +1,21 @@
+<varlistentry>
+  <term>
+    <option>reject-simultaneous-ike-auth</option>
+  </term>
+  <listitem>
+
+    <para>
+      When libreswan receives IKE_AUTH request from the peer while having
+      an outstanding IKE_AUTH request for the same connection, reject with
+      AUTHENTICATION_FAILED to avoid potential SA mismatch issues. This only
+      applies to permanent IKEv2 connections so that the revival mechanism
+      ensures connection retry.
+    </para>
+
+    <para>
+      The accepted values are <option>yes</option> (the default) or
+      <option>no</option>.
+    </para>
+
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/rekey.xml b/configs/d.ipsec.conf/conn/rekey.xml
new file mode 100644 (file)
index 0000000..88e2f0d
--- /dev/null
@@ -0,0 +1,16 @@
+<varlistentry>
+  <term>
+    <option>rekey</option>
+  </term>
+  <listitem>
+    <para>
+      whether a connection should be renegotiated when it is about to
+      expire; acceptable values are <option>yes</option> (the default)
+      and <option>no</option>.  The two ends need not agree, but while
+      a value of <option>no</option> prevents Pluto from requesting
+      renegotiation, it does not prevent responding to renegotiation
+      requested from the other end, so <option>no</option> will be
+      largely ineffective unless both ends agree on it.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/rekeyfuzz.xml b/configs/d.ipsec.conf/conn/rekeyfuzz.xml
new file mode 100644 (file)
index 0000000..233f49c
--- /dev/null
@@ -0,0 +1,19 @@
+<varlistentry>
+  <term>
+    <option>rekeyfuzz</option>
+  </term>
+  <listitem>
+    <para>
+      maximum percentage by which <option>rekeymargin</option> should
+      be randomly increased to randomize rekeying intervals (important
+      for hosts with many connections); acceptable values are an
+      integer, which may exceed 100, followed by a `%' (default set by
+      &ipsec-pluto.8;,
+      currently <option>100%</option>).  The value of
+      <option>rekeymargin</option>, after this random increase, must
+      not exceed <option>salifetime</option>.  The value
+      <option>0%</option> will suppress time randomization.  Relevant
+      only locally, other end need not agree on it.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/rekeymargin.xml b/configs/d.ipsec.conf/conn/rekeymargin.xml
new file mode 100644 (file)
index 0000000..02cab9d
--- /dev/null
@@ -0,0 +1,14 @@
+<varlistentry>
+  <term>
+    <option>rekeymargin</option>
+  </term>
+  <listitem>
+    <para>
+      how long before connection expiry or keying-channel expiry
+      should attempts to negotiate a replacement begin; acceptable
+      values as for <option>salifetime</option> (default
+      <option>9m</option>).  Relevant only locally, other end need not
+      agree on it.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/remote-peer-type.xml b/configs/d.ipsec.conf/conn/remote-peer-type.xml
new file mode 100644 (file)
index 0000000..c1775a9
--- /dev/null
@@ -0,0 +1,17 @@
+<varlistentry>
+  <term>
+    <option>remote-peer-type</option>
+  </term>
+  <listitem>
+    <para>
+      Set the remote peer type. This can enable additional processing
+      during the IKEv1 negotiation. Acceptable values are
+      <option>cisco</option> or <option>ietf</option> (the
+      default). When set to cisco, support for Cisco IPsec gateway
+      redirection and Cisco obtained DNS and domainname are
+      enabled. This includes automatically updating (and restoring)
+      /etc/resolv.conf. These options require that XAUTH is also
+      enabled on this connection.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/replay-window.xml b/configs/d.ipsec.conf/conn/replay-window.xml
new file mode 100644 (file)
index 0000000..925b8f0
--- /dev/null
@@ -0,0 +1,38 @@
+<varlistentry>
+  <term>
+    <option>replay-window</option>
+  </term>
+  <listitem>
+    <para>
+      The size of the IPsec SA replay window protection in packets.
+      Kernels (Linux, and most BSDs) support a window size of at least
+      2040 packets.  The default replay window size is 128 packets.
+    </para>
+    <para>
+      A value of 0 disables replay protection.  Disabling of replay
+      protection is sometimes used on a pair of IPsec servers in a
+      High Availability setup, or on servers with very unpredictable
+      latency, such as mobile networks, which can cause an excessive
+      amount of out of order packets.
+    </para>
+    <para>
+      Disabling replay protection will also disable Extended Sequence
+      Numbers (esn=no), as advise from RFC 4303 caused some stacks to
+      not support ESN without a replay-window.
+    </para>
+    <para>
+      Note: on Linux, sequence errors can be seen in
+      /proc/net/xfrm_stat.
+    </para>
+    <para>
+      Note: the BSD <option>setkey</option> utility displays the
+      replay window size in bytes (8 packets per byte) and not
+      packets.
+    </para>
+    <para>
+      Technically, at least the Linux kernel can install IPsec SA's
+      with an IPsec SA Sequence Number, but this is currently not
+      supported by libreswan.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/reqid.xml b/configs/d.ipsec.conf/conn/reqid.xml
new file mode 100644 (file)
index 0000000..b1112d8
--- /dev/null
@@ -0,0 +1,30 @@
+<varlistentry>
+  <term>
+    <option>reqid</option>
+  </term>
+  <listitem>
+    <para>
+      a unique identifier used to match IPsec SAs using iptables with
+      XFRM. This identifier is normally automatically allocated in
+      groups of 4. It is exported to the _updown script as REQID. On
+      Linux, reqids are supported with IP Connection Tracking and NAT
+      (iptables). Automatically generated values use the range 16380
+      and higher. Manually specified reqid values therefore must be
+      between 1 and 16379.
+    </para>
+    <para>
+      Automatically generated reqids use a range of 0-3 (eg 16380-16383 for the
+      first reqid). These are used depending on the exact policy (AH, AH+ESP,
+      IPCOMP, etc).
+    </para>
+    <para>
+      WARNING: Manually assigned reqids are all
+      identical. Instantiations of connections (those using %any
+      wildcards) will all use the same reqid.  If you use manual
+      assigning you should make sure your connections only match
+      single road warrior only or you break multiple road warriors
+      behind same NAT router because this feature requires unique
+      reqids to work.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/require-id-on-certificate.xml b/configs/d.ipsec.conf/conn/require-id-on-certificate.xml
new file mode 100644 (file)
index 0000000..2f9b3f4
--- /dev/null
@@ -0,0 +1,19 @@
+<varlistentry>
+  <term>
+    <option>require-id-on-certificate</option>
+  </term>
+  <listitem>
+    <para>
+      When using certificates, check whether the IKE peer ID is
+      present as a subjectAltName (SAN) on the peer
+      certificate. Accepted values are <option>yes</option> (the
+      default) or <option>no</option>.  This check should only be
+      disabled when intentionally using certificates that do not have
+      their peer ID specified as a SAN on the certificate. These
+      certificates violate RFC 4945 Section 3.1 and are normally
+      rejected to prevent a compromised host from assuming the IKE
+      identity of another host. The SAN limits the IDs that the peer
+      is able to assume.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/retransmit-interval.xml b/configs/d.ipsec.conf/conn/retransmit-interval.xml
new file mode 100644 (file)
index 0000000..24637d0
--- /dev/null
@@ -0,0 +1,19 @@
+<varlistentry>
+  <term>
+    <option>retransmit-interval</option>
+  </term>
+  <listitem>
+    <para>
+      the initial interval time period, specified in msecs, that pluto
+      waits before retransmitting an IKE packet. This interval is
+      doubled for each attempt (exponential back-off).  The default
+      set by
+      &ipsec-pluto.8;,
+      currently is <option>500</option>.
+    </para>
+    <para>
+      See also: <option>retransmit-timeout</option> and
+      <option>rekey</option>
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/retransmit-timeout.xml b/configs/d.ipsec.conf/conn/retransmit-timeout.xml
new file mode 100644 (file)
index 0000000..ab882f5
--- /dev/null
@@ -0,0 +1,17 @@
+<varlistentry>
+  <term>
+    <option>retransmit-timeout</option>
+  </term>
+  <listitem>
+    <para>
+      how long a single packet, including retransmits of that packet,
+      may take before the IKE attempt is aborted. If rekeying is
+      enabled, a new IKE attempt is started.  The default set by
+      &ipsec-pluto.8;, currently is <option>60s</option>.
+    </para>
+    <para>
+      See also: <option>retransmit-interval</option> and
+      <option>rekey</option>.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/rsasigkey.xml b/configs/d.ipsec.conf/conn/rsasigkey.xml
new file mode 100644 (file)
index 0000000..44bc71b
--- /dev/null
@@ -0,0 +1,87 @@
+<varlistentry>
+  <term>
+    <option>leftrsasigkey</option>
+  </term>
+  <term>
+    <option>rightrsasigkey</option>
+  </term>
+  <listitem>
+    <para>
+      the left participant's public key for RSA signature
+      authentication, in base-64 encoded RFC 2537 format (with 0s
+      prepended), or one of the following:
+      <variablelist>
+       <varlistentry>
+         <term>
+           <option>%none</option>
+         </term>
+         <listitem>
+           <para>
+             the same as not specifying a value (useful to override a
+             default)
+           </para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term>
+           <option>%dnsondemand</option>
+         </term>
+         <listitem>
+           <para>
+             (the default) the key is to be fetched from DNS at the
+             time it is needed.
+           </para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term>
+           <option>%dnsonload</option>
+         </term>
+         <listitem>
+           <para>
+             the key is to be fetched from DNS at the time the
+             connection description is read from
+             <option>ipsec.conf</option>; currently this will be
+             treated as <option>%none</option> if
+             <option>right=%any</option> or
+             <option>right=%opportunistic</option>.
+           </para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term>
+           <option>%dns</option>
+         </term>
+         <listitem>
+           <para>
+             currently treated as <option>%dnsonload</option> but
+             will change to <option>%dnsondemand</option> in the
+             future.  The identity used for the left participant must
+             be a specific host, not <option>%any</option> or
+             another magic value.
+           </para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term>
+           <option>%cert</option>
+         </term>
+         <listitem>
+           <para>
+             the information required from a certificate defined in
+             <option>%leftcert</option> and automatically define
+             leftid for you
+           </para>
+         </listitem>
+       </varlistentry>
+      </variablelist>
+    </para>
+    <caution>
+      <para>
+       If two connection descriptions specify different public keys
+       for the same <option>leftid</option>, confusion and
+       madness will ensue.
+      </para>
+    </caution>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/salifetime.xml b/configs/d.ipsec.conf/conn/salifetime.xml
new file mode 100644 (file)
index 0000000..6601dfc
--- /dev/null
@@ -0,0 +1,26 @@
+<varlistentry>
+  <term>
+    <option>salifetime</option>
+  </term>
+  <listitem>
+    <para>
+      how long a particular instance of a connection (a set of
+      encryption/authentication keys for user packets) should last,
+      from successful negotiation to expiry; acceptable values are an
+      integer optionally followed by <option>s</option> (a time in
+      seconds) or a decimal number followed by <option>m</option>,
+      <option>h</option>, or <option>d</option> (a time in minutes,
+      hours, or days respectively) (default <option>8h</option>,
+      maximum <option>24h</option>).  Normally, the connection is
+      renegotiated (via the keying channel) before it expires.  The
+      two ends need not exactly agree on <option>salifetime</option>,
+      although if they do not, there will be some clutter of
+      superseded connections on the end which thinks the lifetime is
+      longer.
+    </para>
+    <para>
+      The keywords "keylife" and "lifetime" are obsoleted aliases for
+      "salifetime."  Change your configs to use "salifetime" instead.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/send-no-esp-tfc.xml b/configs/d.ipsec.conf/conn/send-no-esp-tfc.xml
new file mode 100644 (file)
index 0000000..ada0d57
--- /dev/null
@@ -0,0 +1,12 @@
+<varlistentry>
+  <term><option>send-no-esp-tfc</option></term>
+  <listitem>
+    <para>
+      Whether or not to tell the remote peer that we do not support Traffic Flow Confidentiality ("TFC")
+      (RFC-4303). Possible values are <option>no</option> (the default) which allows the
+      peer to use TFC or <option>yes</option> which prevents to peer from using TFC.
+      This does not affect whether this endpoint uses TFC, which only depends on the
+      local <option>tfc</option> setting. This option is only valid for IKEv2.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/send-redirect.xml b/configs/d.ipsec.conf/conn/send-redirect.xml
new file mode 100644 (file)
index 0000000..f1b9548
--- /dev/null
@@ -0,0 +1,18 @@
+<varlistentry>
+  <term>
+    <option>send-redirect</option>
+  </term>
+  <listitem>
+    <para>
+      Whether to send requests for the remote peer to redirect
+      IKE/IPsec SA's during IKE_AUTH. Valid options are
+      <option>no</option> (the default) and <option>yes</option>. If
+      set, the option <option>redirect-to=</option> must also be set
+      to indicate where to redirect peers to. For redirection during
+      IKE_SA_INIT exchange, see the <option>global-redirect=</option>
+      and <option>global-redirect-to=</option> options. Runtime
+      redirects can be triggered via the <command>ipsec
+      redirect</command> command.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/send-vendorid.xml b/configs/d.ipsec.conf/conn/send-vendorid.xml
new file mode 100644 (file)
index 0000000..59ebf52
--- /dev/null
@@ -0,0 +1,27 @@
+<varlistentry>
+  <term>
+    <option>send-vendorid</option>&yN_options;
+  </term>
+  <listitem>
+    <para>
+      whether to send our Vendor ID during IKE.  Acceptable values
+      are: <option>no</option> (the default) and
+      <option>yes</option>. The vendor id sent can be configured using
+      the "config setup" option <option>myvendorid=</option>.  It
+      defaults to OE-Libreswan-VERSION.
+    </para>
+    <para>
+      Vendor ID's can be useful in tracking interoperability
+      problems. However, specific vendor identification and software
+      versions can be useful to an attacker when there are known
+      vulnerabilities to a specific vendor/version.
+    </para>
+    <para>
+      The prefix OE stands for "Opportunistic Encryption". This prefix
+      was historically used by The FreeS/WAN Project and The Openswan
+      Project (openswan up to version 2.6.38) and in one Xeleranized
+      openswan versions (2.6.39). Further Xeleranized openswan's use
+      the prefix OSW.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/sendca.xml b/configs/d.ipsec.conf/conn/sendca.xml
new file mode 100644 (file)
index 0000000..5b6f707
--- /dev/null
@@ -0,0 +1,21 @@
+<varlistentry>
+  <term>
+    <option>sendca</option>
+  </term>
+  <listitem>
+    <para>
+      How many of the available X.509 intermediate CA certificates to
+      send with the End certificate (root CA's are never sent).
+      Specifying <option>none</option> sends no intermediate
+      certificates, <option>issuer</option> sends the End
+      certificate's issuing intermediate CA, and <option>all</option>
+      sends all intermediate CAs (the default).
+    </para>
+    <para>
+      Prior to &Libreswan; version 5.3, the default was
+      <option>none</option> (that is, no intermediate CAs were sent).
+      &Libreswan; never sends intermediate certificates when
+      establishing a connection using IKEv1's Agressive Mode.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/sendcert.xml b/configs/d.ipsec.conf/conn/sendcert.xml
new file mode 100644 (file)
index 0000000..dcb9c06
--- /dev/null
@@ -0,0 +1,53 @@
+<varlistentry>
+  <term>
+    <option>leftsendcert</option>
+  </term>
+  <term>
+    <option>rightsendcert</option>
+  </term>
+  <listitem>
+    <para>
+      This option configures when &Libreswan; will send &X.509;
+      certificates to the remote host.  Acceptable values are:
+
+      <variablelist spacing="compact">
+
+       <varlistentry>
+         <term><option>yes</option></term>
+         <term><option>always</option></term>
+         <listitem><para>always send a certificate</para></listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term><option>sendifasked</option></term>
+         <listitem><para>send a certificate when the peer asks for it
+         (for instance by sending a CERTREQ
+         payload)</para></listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term><option>no</option></term>
+         <term><option>never</option></term>
+         <listitem><para>never send a certificate</para></listitem>
+       </varlistentry>
+
+      </variablelist>
+
+      The default for this option is <option>always</option>.  Note
+      that while <option>always</option> is suboptimal, setting this
+      to <option>sendifasked</option> may break compatibility with
+      other vendor's IPsec implementations, such as &Cisco;.  If you
+      find that you are getting errors about no ID/Key found, you
+      likely need to revert this option to <option>always</option>.
+    </para>
+
+    <para>
+      This option was added in &Libreswan; 2.5.14; in &Libreswan;
+      2.28, the default was changed from <option>sendifasked</option>
+      to <option>always</option>; and in &Libreswan; 3.0, the related
+      and obsolete global option <option>nocrsend=</option> was
+      removed.
+    </para>
+
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/sha2-truncbug.xml b/configs/d.ipsec.conf/conn/sha2-truncbug.xml
new file mode 100644 (file)
index 0000000..3d92e03
--- /dev/null
@@ -0,0 +1,25 @@
+<varlistentry>
+  <term>
+    <option>sha2-truncbug</option>
+  </term>
+  <listitem>
+    <para>
+      The default ESP hash truncation for sha2_256 is 128 bits. Some
+      IPsec implementations (Linux before 2.6.33, some Cisco (2811?)
+      routers) implement the draft version which stated 96 bits. If a
+      draft implementation communicates with an RFC implementation,
+      both ends will reject encrypted packets from each other.
+    </para>
+    <para>
+      This option enables using the draft 96 bits version to interop
+      with those implementations.  Currently the accepted values are
+      <option>no</option>, (the default) signifying default RFC
+      truncation of 128 bits, or <option>yes</option>, signifying the
+      draft 96 bits truncation.
+    </para>
+    <para>
+      Another workaround is to switch from sha2_256 to sha2_128 or
+      sha2_512.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/share-lease.xml b/configs/d.ipsec.conf/conn/share-lease.xml
new file mode 100644 (file)
index 0000000..77a41f4
--- /dev/null
@@ -0,0 +1,14 @@
+<varlistentry>
+  <term>
+    <option>share-lease</option>
+  </term>
+  <listitem>
+    <para>
+      Whether multiple outoging IKEv1 connections that are not
+      specifying a local subnet should use the lease IP given by
+      the server of the first connection. The default and expected
+      behaviour (of emulating a Cisco client) is <option>yes</option>.
+      It can be disabled by setting it to <option>no</option>.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/sourceip.xml b/configs/d.ipsec.conf/conn/sourceip.xml
new file mode 100644 (file)
index 0000000..c4b1757
--- /dev/null
@@ -0,0 +1,25 @@
+<varlistentry>
+  <term>
+    <option>leftsourceip</option>
+  </term>
+  <term>
+    <option>rightsourceip</option>
+  </term>
+  <listitem>
+    <para>
+      the IP address for this host to use when transmitting a packet
+      to the other side of this link.  Relevant only locally, the
+      other end need not agree.  This option is used to make the
+      gateway itself use its internal IP, which is part of the
+      leftsubnet, to communicate to the rightsubnet or
+      right. Otherwise, it will use its <option>nearest</option> IP
+      address, which is its public IP address. This option is mostly
+      used when defining subnet-subnet connections, so that the
+      gateways can talk to each other and the subnet at the other end,
+      without the need to build additional host-subnet, subnet-host
+      and host-host tunnels. Both IPv4 and IPv6 addresses are
+      supported.
+    </para>
+  </listitem>
+</varlistentry>
+
diff --git a/configs/d.ipsec.conf/conn/subnet.xml b/configs/d.ipsec.conf/conn/subnet.xml
new file mode 100644 (file)
index 0000000..3167392
--- /dev/null
@@ -0,0 +1,89 @@
+<varlistentry>
+  <term>
+    <option>leftsubnet=&ip_selector;[,...]</option>
+  </term>
+  <term>
+    <option>rightsubnet=&ip_selector;[,...]</option>
+  </term>
+  <listitem>
+    <para>
+      A comma separated list of traffic selectors behind the
+      <option>left</option> or <option>right</option> participant.
+    </para>
+    <para>
+      Each traffic selector expressed as: <systemitem
+      class="ipaddress"> <replaceable>network-prefix</replaceable> /
+      <replaceable>netmask</replaceable>/
+      <replaceable>protocol</replaceable>/
+      <replaceable>port</replaceable> </systemitem> where trailing
+      elements may be omitted.  For instance:
+      <code>leftsubnet=1.2.3.0/24,1:2::/64</code>,
+      <code>leftsubnet=1.2.3.4/32/tcp,1:2::/128/tcp</code>,
+      <code>leftsubnet=1.2.3.4/31/tcp/22,1:2::/128/tcp/22</code>.
+    </para>
+    <para>
+      If both <code>leftsubnet=</code> and <code>rightsubnet=</code>
+      are specified, all combinations will be established as a single
+      IPsec tunnel.
+    </para>
+    <para>
+      When omitted, essentially assumed to be <code>left</code>,
+      signifying that the left end of the connection goes to the left
+      participant only.
+    </para>
+
+    <note>
+      <para>
+       Support for specifying multiple selectors and the protocol and
+       port was added in &Libreswan; version 5.
+      </para>
+    </note>
+
+    <important>
+      <title>
+       IKEv1
+      </title>
+      <para>
+       In IKEv1 only a single selector is allowed and it is limited
+       to specifying a subnet as in: <code>
+       <replaceable>network</replaceable> /
+       <replaceable>netmask</replaceable> </code>
+      </para>
+    </important>
+
+    <important>
+      <title>
+       IKEv1
+      </title>
+      <para>
+       IKEv1 supports two magic shorthands <code>vhost:</code> and
+       <code>vnet:</code>, which can list subnets in the same syntax
+       as <replaceable>virtual-private</replaceable>.  The value
+       <code>%priv</code> expands to the networks specified in
+       <code>virtual-private</code>.  The value <code>%no</code>
+       means no subnet. A common use for allowing roadwarriors to
+       come in on public IPs or via accepted NATed networks from
+       RFC1918 is to use <code>leftsubnet=vhost:%no,%priv</code>. The
+       <code>vnet:</code> option can be used to allow RFC1918 subnets
+       without hardcoding them.  When using vnet the connection will
+       instantiate, allowing for multiple tunnels with different
+       subnets.
+      </para>
+    </important>
+
+    <important>
+      <title>
+       Use with <code>leftprotport</code> and
+       <code>leftsubnets</code>
+      </title>
+      <para>
+       Compatible with libreswan version 4, a simple
+       <code>leftsubnet</code> (specifying a single network prefix
+       and netmask) may be combined with <code>leftprotoport</code>
+       and <code>leftsubnets</code>.  Anything more complicated
+       should be converted to use the selector syntax.
+      </para>
+    </important>
+
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/subnets.xml b/configs/d.ipsec.conf/conn/subnets.xml
new file mode 100644 (file)
index 0000000..0171609
--- /dev/null
@@ -0,0 +1,23 @@
+<varlistentry>
+  <term>
+    <option>leftsubnets=&ip_subnet;[,...]</option>
+  </term>
+  <term>
+    <option>rightsubnets=&ip_subnet;[,...]</option>
+  </term>
+  <listitem>
+    <para>
+      Specify multiple private subnets behind the participant,
+      expressed as
+      <option>networkA</option><option>/</option><option>netmaskA</option>,<option>networkB</option><option>/</option><option>netmaskB</option><option>[,...]</option>.
+      If both a <option>leftsubnets=</option> and
+      <option>rightsubnets=</option> are defined, all combinations of
+      subnet tunnels will be established as separate IPsec tunnels.
+      You cannot use <option>leftsubnet=</option> and
+      <option>leftsubnets=</option> together. For examples see
+      <option>testing/pluto/multinet-*</option>.  Be aware that when
+      using spaces as separator, that the entire option value needs to
+      be in double quotes.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/tcp-remoteport.xml b/configs/d.ipsec.conf/conn/tcp-remoteport.xml
new file mode 100644 (file)
index 0000000..b101bd6
--- /dev/null
@@ -0,0 +1,16 @@
+<varlistentry>
+  <term>
+    <option>tcp-remoteport</option>
+  </term>
+  <listitem>
+    <para>
+      Which remote TCP port to use when IKE over TCP is attempted. The
+      default value is to use the NAT-T IKE port (4500). This value is
+      not negotiated and should be configured properly on all
+      endpoints. When opening a TCP socket to the remote host in this
+      port, a regular ephemeral source port is obtained from the
+      OS. For changing the UDP ports, see
+      <option>leftikeport=</option>
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/tfc.xml b/configs/d.ipsec.conf/conn/tfc.xml
new file mode 100644 (file)
index 0000000..aa8a9a0
--- /dev/null
@@ -0,0 +1,18 @@
+<varlistentry>
+  <term><option>tfc</option></term>
+  <listitem>
+    <para>
+      Enable Traffic Flow Confidentiality ("TFC") (RFC-4303) for outgoing ESP
+      packets in Tunnel Mode.  When enabled, ESP packets are padded to the
+      specified size (up to the PMTU size) to prevent leaking information based
+      on ESP packet size. This option is ignored for AH and for ESP in Transport
+      Mode as those always leak traffic characteristics and applying TFC will
+      not do anything. Acceptable values are positive numbers. The value 0 means
+      TFC padding is not performed. Currently this feature is only implemented
+      for the Linux XFRM stack. In IKEv2, when the notify payload
+      ESP_TFC_PADDING_NOT_SUPPORTED is received, TFC padding is disabled. The
+      default is not to do any TFC padding, but this might change in the near
+      future.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/type.xml b/configs/d.ipsec.conf/conn/type.xml
new file mode 100644 (file)
index 0000000..06d8376
--- /dev/null
@@ -0,0 +1,22 @@
+<varlistentry>
+  <term>
+    <option>type</option>
+  </term>
+  <listitem>
+    <para>
+      the type of the connection; currently the accepted values are
+      <option>tunnel</option> (the default) signifying a host-to-host,
+      host-to-subnet, or subnet-to-subnet tunnel;
+      <option>transport</option>, signifying host-to-host transport
+      mode; <option>passthrough</option>, signifying that no IPsec
+      processing should be done at all; <option>drop</option>,
+      signifying that packets should be discarded.
+    </para>
+    <para>
+      Historic Note: &KLIPS; supported the option
+      <option>reject</option> signifying that packets should be
+      discarded and a diagnostic ICMP returned.  Support for &KLIPS;,
+      and this option, have been removed.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/updown.xml b/configs/d.ipsec.conf/conn/updown.xml
new file mode 100644 (file)
index 0000000..ab692a8
--- /dev/null
@@ -0,0 +1,39 @@
+<varlistentry>
+  <term>
+    <option>leftupdown</option>
+  </term>
+  <term>
+    <option>rightupdown</option>
+  </term>
+  <listitem>
+    <para>
+      The script to run to adjust routing and/or firewalling when the
+      status of the connection changes (default <command>ipsec
+      _updown</command>).  May include positional parameters separated
+      by white space (although this requires enclosing the whole
+      string in quotes); including shell metacharacters is unwise.  An
+      example to enable routing when using the XFRM stack, one can
+      use:
+    </para>
+    <para>
+      <simplelist columns='1'>
+        <member><computeroutput>updown="ipsec _updown --route yes"</computeroutput></member>
+      </simplelist>
+    </para>
+    <para>
+      To disable calling an updown script, set it to the empty string,
+      eg leftupdown="" or leftupdown="%disabled".
+    </para>
+    <para>
+      Connections with <option>type=</option> set to
+      <option>passthrough</option>, <option>reject</option> or
+      <option>drop</option> never run <command>ipsec _updown</command>.
+    </para>
+    <para>
+      See &libreswan.7; for details.
+    </para>
+    <para>
+      Relevant only locally, other end need not agree on it.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/username.xml b/configs/d.ipsec.conf/conn/username.xml
new file mode 100644 (file)
index 0000000..f9c6d52
--- /dev/null
@@ -0,0 +1,16 @@
+<varlistentry>
+  <term>
+    <option>leftusername</option>
+  </term>
+  <term>
+    <option>rightusername</option>
+  </term>
+  <listitem>
+    <para>
+      The username associated with this connection. The username can
+      be the IKEv2 XAUTH username, a GSSAPI username or IKEv2 CP
+      username. For the XAUTH username, the XAUTH password can be
+      configured in the <option>ipsec.secrets</option> file. This
+      option was previously called leftxauthusername.</para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/vti-interface.xml b/configs/d.ipsec.conf/conn/vti-interface.xml
new file mode 100644 (file)
index 0000000..3a37a0e
--- /dev/null
@@ -0,0 +1,35 @@
+<varlistentry>
+  <term>
+    <option>vti-interface</option>
+  </term>
+  <listitem>
+    <para>
+      This option is deprecated. See <option>ipsec-interface</option>
+      instead.
+    </para>
+    <para>
+      This option is used to create "Routing based VPNs"
+      (as opposed to "Policy based VPNs"). It will create a new interface
+      that can be used to route traffic in for encryption/decryption. The Virtual
+      Tunnel Interface ("VTI") interface name is used to for all IPsec SA's created by
+      this connection. This requires that the connection also enables either
+      the <option>mark=</option> or <option>mark-in= /
+      mark-out-</option> option(s). All traffic marked with the proper MARKs
+      will be automatically encrypted if there is an IPsec SA policy covering the
+      source/destination traffic. Tools such as tcpdump and iptables can be
+      used on all cleartext pre-encrypt and post-decrypt traffic on the device.
+      See the libreswan wiki for example configurations that use VTI.
+    </para>
+    <para>
+      VTI interfaces are currently only supported on Linux with
+      XFRM. The _updown script handles certain Linux specific
+      interfaces settings required for proper functioning
+      (disable_policy, rp_filter, forwarding, etc). Interface names
+      are limited to 16 characters and may not allow all characters to
+      be used. If marking and <option>vti-routing=yes</option> is
+      used, no manual iptables should be required. However,
+      administrators can use the iptables mangle table to mark traffic
+      manually if desired.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/vti-routing.xml b/configs/d.ipsec.conf/conn/vti-routing.xml
new file mode 100644 (file)
index 0000000..fae3b5f
--- /dev/null
@@ -0,0 +1,19 @@
+<varlistentry>
+  <term>
+    <option>vti-routing</option>
+  </term>
+  <listitem>
+    <para>
+      Whether or not to add network rules or routes for IPsec
+      SA's to the respective VTI devices. Valid values are
+      <option>yes</option> (the default) or <option>no</option>.
+      When using "routing based VPNs" with a subnets policy of 0.0.0.0/0,
+      this setting needs to set to <option>no</option> to prevent
+      imploding the tunnel, and the administrator is expected to manually
+      add ip rules and ip routes to configure what traffic must be encrypted.
+      When set to <option>yes</option>, the _updown script will
+      automatically route the leftsubnet/rightsubnet traffic into the
+      VTI device specified with <option>vti-interface</option>
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/vti-shared.xml b/configs/d.ipsec.conf/conn/vti-shared.xml
new file mode 100644 (file)
index 0000000..309bcf0
--- /dev/null
@@ -0,0 +1,16 @@
+<varlistentry>
+  <term>
+    <option>vti-shared</option>
+  </term>
+  <listitem>
+    <para>
+      Whether or not the VTI device is shared amongst connections.
+      Valid values are <option>no</option> (the default) or
+      <option>yes</option>. When set to no, the VTI device is
+      automatically deleted if the connection is a single
+      non-instantiated connection. If a connection instantiates (eg
+      right=%any) then this option has no effect, as the VTI device is
+      not removed as it is shared with multiple roadwarriors.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/vti.xml b/configs/d.ipsec.conf/conn/vti.xml
new file mode 100644 (file)
index 0000000..f8e9774
--- /dev/null
@@ -0,0 +1,18 @@
+<varlistentry>
+  <term>
+    <option>leftvti</option>
+  </term>
+  <term>
+    <option>rightvti</option>
+  </term>
+  <listitem>
+    <para>
+      the address/mask to configure on the VTI interface when
+      <option>vti-interface</option> is set.  It takes the form of
+      <option>network</option><option>/</option><option>netmask</option>
+      Currently, IPv4 and IPv6 addresses with cidr netmask are
+      supported.  This option is often used in combination with routed
+      based VPNs.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/xauthby.xml b/configs/d.ipsec.conf/conn/xauthby.xml
new file mode 100644 (file)
index 0000000..6e7f3ef
--- /dev/null
@@ -0,0 +1,33 @@
+<varlistentry>
+  <term>
+    <option>xauthby</option>
+  </term>
+  <listitem>
+    <para>
+      When IKEv1 XAUTH support is available, set the method used by
+      XAUTH to authenticate the user with IKEv1. The currently
+      supported values are <option>file</option> (the default),
+      <option>pam</option> or <option>alwaysok</option>.  The password
+      file is located at <option>/etc/ipsec.d/passwd</option>, and
+      follows a syntax similar to the Apache htpasswd file, except an
+      additional connection name argument (and optional static IP
+      address) are also present:
+    </para>
+    <para>
+      <option>username:password:conname:ipaddress</option>
+    </para>
+    <para>
+      For supported password hashing methods, see &crypt.3;.  If pluto
+      is running in FIPS mode, some hash methods, such as MD5, might
+      not be available. Threads are used to launch an xauth
+      authentication helper for file as well as PAM methods.
+    </para>
+    <para>
+      The <option>alwaysok</option> should only be used if the XAUTH
+      user authentication is not really used, but is required for
+      interoperability, as it defeats the whole point of XAUTH which
+      is to rely on a secret only known by a human.  See also
+      <option>pam-authorize=yes</option>
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/xauthclient.xml b/configs/d.ipsec.conf/conn/xauthclient.xml
new file mode 100644 (file)
index 0000000..f9c8bfd
--- /dev/null
@@ -0,0 +1,26 @@
+<varlistentry>
+  <term>
+    <option>leftxauthclient</option>
+  </term>
+  <term>
+    <option>rightxauthclient</option>
+  </term>
+  <listitem>
+    <para>
+      Left is an XAUTH client. The xauth connection will have to be
+      started interactively and cannot be configured using
+      <option>auto=start</option>.  Instead, it has to be started from
+      the commandline using <command>ipsec up
+      <replaceable>connection</replaceable></command>.  You will then
+      be prompted for the username and password. To setup an XAUTH
+      connection non-interactively, which defeats the whole purpose of
+      XAUTH, but is regularly requested by users, it is possible to
+      use a whack command - <command>ipsec whack --name baduser
+      --ipsecgroup-xauth --xauthname badusername --xauthpass password
+      --initiate</command> The other side of the connection should be
+      configured as <option>rightxauthserver</option>.  Acceptable
+      values are <option>yes</option> or <option>no</option> (the
+      default).
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/xauthfail.xml b/configs/d.ipsec.conf/conn/xauthfail.xml
new file mode 100644 (file)
index 0000000..e731137
--- /dev/null
@@ -0,0 +1,18 @@
+<varlistentry>
+  <term>
+    <option>xauthfail</option>
+  </term>
+  <listitem>
+    <para>
+      When XAUTH support is available, set the failure method desired
+      when authentication has failed.  The currently supported values
+      are <option>hard</option> (the default) and
+      <option>soft</option>. A soft failure means the IPsec SA is
+      allowed to be established, as if authentication had passed
+      successfully, but the XAUTH_FAILED environment variable will be
+      set to 1 for the updown script, which can then be used to
+      redirect the user into a walled garden, for example a payment
+      portal.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/conn/xauthserver.xml b/configs/d.ipsec.conf/conn/xauthserver.xml
new file mode 100644 (file)
index 0000000..2cadb19
--- /dev/null
@@ -0,0 +1,24 @@
+<varlistentry>
+  <term>
+    <option>leftxauthserver</option>
+  </term>
+  <term>
+    <option>rightxauthserver</option>
+  </term>
+  <listitem>
+    <para>
+      Left is an XAUTH server. This can use PAM for authentication or
+      md5 passwords in <option>/etc/ipsec.d/passwd</option>. These are
+      additional credentials to verify the user identity, and should
+      not be confused with the XAUTH <option>group secret</option>,
+      which is just a regular PSK defined in
+      <option>ipsec.secrets</option>.  The other side of the
+      connection should be configured as
+      <option>rightxauthclient</option>. XAUTH connections cannot
+      rekey, so <option>rekey=no</option> should be specified in this
+      conn.  For further details on how to compile and use XAUTH, see
+      README.XAUTH.  Acceptable values are <option>yes</option> or
+      <option>no</option> (the default).
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/connsections.xml b/configs/d.ipsec.conf/connsections.xml
deleted file mode 100644 (file)
index 04f7606..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-<refsect1 id='description'>
-
-  <title>
-    DESCRIPTION
-  </title>
-
-  <para>
-    The <filename>ipsec.conf</filename> file specifies most
-    configuration and control information for the &Libreswan; IPsec
-    subsystem (the major exception is secrets for authentication; see
-    &ipsec.secrets.5;).  &Libreswan; reads this file during start up
-    (technically, if &Libreswan;'s daemon &ipsec-pluto.8; is invoked
-    directly then the file <filename>ipsec.conf</filename> is not
-    needed; however, this is not recommended).  Configurations can be
-    added using eithe this configuration file or by using
-    <command>ipsec whack</command> directly.
-  </para>
-
-  <para>
-    <filename>ipsec.conf</filename> is a text file, consisting of one
-    or more <option>sections</option>.
-  </para>
-
-  <para>
-    Within the file, white space followed by <option>#</option>
-    followed by anything to the end of the line is a comment and is
-    ignored, as are empty lines that are not within a section.
-  </para>
-
-  <para>
-    A line that contains <option>include</option> and a file name,
-    separated by white space, is replaced by the contents of that
-    file.  If the file name is not a full pathname, it is considered
-    to be relative to the directory that contains the including file.
-    Such inclusions can be nested.  Only a single filename may be
-    supplied, and it may not contain white space, but it may include
-    shell wildcards (see &glob.3;); for example:
-  </para>
-
-  <para>
-    <option>include</option> <filename>/etc/ipsec.d/*.conf</filename>
-  </para>
-
-  <para>
-    The intention of the include facility is mostly to permit keeping
-    information on connections, or sets of connections, separate from
-    the main configuration file.  This permits such connection
-    descriptions to be changed, copied to the other security gateways
-    involved, etc., without having to constantly extract them from the
-    configuration file and then insert them back into it.  Note also
-    the <option>also</option> parameters (described below) which
-    permit splitting a single logical section (e.g. a connection
-    description) into several distinct sections.
-  </para>
-
-  <para>
-    The first significant line of the file may specify a version of
-    this specification for backwards compatibility with freeswan and
-    openswan. It is ignored and unused. For compatibility with
-    openswan, specify:
-  </para>
-
-  <para>
-    <option>version 2</option>
-  </para>
-
-  <para>
-    A section begins with a line of the form:
-  </para>
-
-  <para>
-    <replaceable>type</replaceable> <replaceable>name</replaceable>
-  </para>
-
-  <para>
-    where <replaceable>type</replaceable> indicates what type of
-    section follows, and <replaceable>name</replaceable> is an
-    arbitrary name that distinguishes the section from others of the
-    same type.  Names must start with a letter and may contain only
-    letters, digits, periods, underscores, and hyphens.  All
-    subsequent non-empty lines that begin with white space are part of
-    the section; comments within a section must begin with white space
-    too.  There may be only one section of a given type with a given
-    name.
-  </para>
-
-  <para>
-    There are two types of section: a <option>config</option>
-    section specifies general configuration information for
-    &Libreswan;, and a
-    <option>conn</option> section specifies an IPsec connection.
-  </para>
-
-  <para>
-    Lines within the section are generally of the form
-  </para>
-
-  <para>
-    <replaceable>parameter</replaceable>=<replaceable>value</replaceable>
-  </para>
-
-  <para>
-    (note the mandatory preceding white space).  There can be white
-    space on either side of the <option>=</option>.  Parameter
-    names follow the same syntax as section names, and are specific to
-    a section type.  Unless otherwise explicitly specified, no
-    parameter name may appear more than once in a section.
-  </para>
-
-  <para>
-    An empty <replaceable>value</replaceable> stands for the empty
-    string.  A non-empty <replaceable>value</replaceable> may contain
-    white space only if the entire <replaceable>value</replaceable> is
-    enclosed in double quotes (<option>"</option>); a
-    <replaceable>value</replaceable> cannot itself contain a double
-    quote, nor may it be continued across more than one line.
-  </para>
-
-  <para>
-    Numeric values are specified to be either an integer (a sequence
-    of digits) or a decimal number (sequence of digits optionally
-    followed by `.' and another sequence of digits).
-  </para>
-
-  <para>
-    There is currently one parameter that is available in any type of
-    section:
-  </para>
-
-  <variablelist>
-    <varlistentry>
-      <term><option>also=<replaceable>value</replaceable></option></term>
-      <listitem>
-       <para>
-         The <replaceable>value</replaceable> is a section name.  The
-         parameters of that section are inserted, in place, into this
-         section (i.e., as if they had been written as part of and at
-         that point in the section's definition).  The specified
-         section must exist, and must have the same section type.
-         Multiple and nested <option>also</option> are permitted
-         (duplicate insertions of the same section are ignored).
-         When the same <option>parameter</option> appears in
-         multiple sections, the first definition encountered is used.
-         This allows, for example, keeping the encryption keys for a
-         connection in a separate file from the rest of the
-         description, by using both an <option>also</option> parameter
-         and an <option>include</option> line.
-       </para>
-       <para>
-         Putting <option>also</option> at the end of the section after
-         any <option>parameter</option> definitions is
-         recommended.  This way, the section's
-         <option>parameter</option>
-         <replaceable>value</replaceable> overrides
-         <option>also</option> sections.
-       </para>
-      </listitem>
-    </varlistentry>
-  </variablelist>
-
-  <para>
-    A section with name <option>%default</option> specifies
-    defaults for sections of the same type.  For each parameter in it,
-    any section of that type that does not have a parameter of the
-    same name gets a copy of the one from the
-    <option>%default</option> section.  There may be multiple
-    <option>%default</option> sections of a given type and
-    multiple default values for a given parameter (the last
-    <option>value</option> is used).
-    <option>%default</option> sections may not contain any
-    <option>also</option> parameters.
-  </para>
-
-</refsect1>
diff --git a/configs/d.ipsec.conf/crl-strict.xml b/configs/d.ipsec.conf/crl-strict.xml
deleted file mode 100644 (file)
index fdfcc42..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-<varlistentry>
-  <term>
-    <option>crl-strict=</option>
-  </term>
-  <listitem>
-    <para>
-      if not set, pluto is tolerant about missing or expired X.509
-      Certificate Revocation Lists (CRL's), and will allow peer
-      certificates as long as they do not appear on an expired CRL.
-      When this option is enabled, all connections with an expired or
-      missing CRL will be denied.  Active connections will be
-      terminated at rekey time.  This setup is more secure, but
-      vulnerable to downtime if the CRL expires.  Acceptable values
-      are <option>yes</option> or <option>no</option> (the default).
-    </para>
-    <para>
-      This option used to be called <option>strictcrlpolicy</option>.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/crl-timeout.xml b/configs/d.ipsec.conf/crl-timeout.xml
deleted file mode 100644 (file)
index cc66d51..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-<varlistentry>
-  <term><option>crl-timeout</option></term>
-  <listitem>
-    <para>
-      The timeout for used when fetching CRLs.  The default is 5s.
-    </para>
-  </listitem>
-</varlistentry>
-
diff --git a/configs/d.ipsec.conf/crlcheckinterval.xml b/configs/d.ipsec.conf/crlcheckinterval.xml
deleted file mode 100644 (file)
index 3058489..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-<varlistentry>
-  <term>
-    <option>crlcheckinterval</option>
-  </term>
-  <listitem>
-    <para>
-      interval expressed in second units, for example
-      crlcheckinterval=8h for 8 hours, after which pluto will fetch
-      new Certificate Revocation List (CRL) from crl distribution
-      points. List of used CRL distribution points are collected from
-      CA certificates and end certificates. Loaded X.509 CRL's are
-      verified to be valid and updates are imported to NSS database.
-      If set to <option>0</option>, which is also the
-      default value if this option is not specified, CRL updating is
-      disabled.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/curl-iface.xml b/configs/d.ipsec.conf/curl-iface.xml
deleted file mode 100644 (file)
index 4437f45..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<varlistentry>
-  <term>
-    <option>curl-iface</option>
-  </term>
-  <listitem>
-    <para>
-      The name of the interface that is used for CURL lookups. This is
-      needed on rare situations where the interface needs to be forced
-      to be different from the default interface used based on the
-      routing table.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/ddos-ike-threshold.xml b/configs/d.ipsec.conf/ddos-ike-threshold.xml
deleted file mode 100644 (file)
index dce872a..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-<varlistentry>
-  <term>
-    <option>ddos-ike-threshold</option>
-  </term>
-  <listitem>
-    <para>
-      The number of half-open IKE SAs before the pluto IKE daemon will
-      be placed in busy mode. When in busy mode, pluto activates
-      anti-DDoS counter measures. The default is 25000.  See also
-      <option>ddos-mode</option> and <command>ipsec whack
-      --ddos-XXX</command>.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/ddos-mode.xml b/configs/d.ipsec.conf/ddos-mode.xml
deleted file mode 100644 (file)
index 4833038..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<varlistentry>
-  <term>
-    <option>ddos-mode</option>
-  </term>
-  <listitem>
-    <para>
-      The startup mode of the DDoS defense mechanism.  Acceptable
-      values are <option>busy</option>, <option>unlimited</option>
-      or <option>auto</option> (the default). This option can also be
-      given to the IKE daemon while running, for example by issuing
-      <command>ipsec whack --ddos--busy</command>.  When
-      in busy mode, pluto activates anti-DDoS counter
-      measures. Currently, counter measures consist of requiring IKEv2
-      anti-DDoS cookies on new incoming IKE requests, and a more
-      aggressive cleanup of partially established or AUTH_NULL
-      connections.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/debug.xml b/configs/d.ipsec.conf/debug.xml
deleted file mode 100644 (file)
index 6af1b84..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<varlistentry>
-  <term>
-    <option>debug=<replaceable>option</replaceable></option>
-  </term>
-  <listitem>
-    <para>
-      A comma separated list of options that enable internal debug
-      logs of the connection.  For more information see the global
-      <option>plutodebug=</option> option.
-    </para>
-    <note>
-      <para>
-       This feature is used by &Libreswan;
-       developers.  The default logs should provide sufficient
-       information to diagnose configuration and connection problems.
-      </para>
-    </note>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/decap-dscp.xml b/configs/d.ipsec.conf/decap-dscp.xml
deleted file mode 100644 (file)
index 888b6d8..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<varlistentry>
-  <term>
-    <option>decap-dscp</option>
-  </term>
-  <listitem>
-    <para>
-      Enable decapsulating the Differentiated Services Code Point
-      (DSCP, formerly known as Terms Of Service (TOS)) bits. If these
-      bits are set on the inner (encrypted) IP packets, these bits are
-      set on the decrypted IP packets.  Acceptable values are
-      <option>no</option> (the default) or <option>yes</option>.
-      Currently this feature is only implemented for the Linux XFRM stack.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/default_policy_groups.xml b/configs/d.ipsec.conf/default_policy_groups.xml
deleted file mode 100644 (file)
index cb18382..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<refsect1 id='default_policy_groups'>
-  <title>
-    DEFAULT POLICY GROUPS
-  </title>
-  <para>
-    The standard &Libreswan; install includes several policy groups
-    which provide a way of classifying possible peers into IPsec
-    security classes: <option>private</option> (talk encrypted only),
-    <option>private-or-clear</option> (prefer encryption),
-    <option>clear-or-private</option> (respond to requests for
-    encryption), <option>clear</option> and <option>block</option>.
-  </para>
-</refsect1>
diff --git a/configs/d.ipsec.conf/dns-match-id.xml b/configs/d.ipsec.conf/dns-match-id.xml
deleted file mode 100644 (file)
index f7ec0af..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-<varlistentry>
-  <term>
-    <option>dns-match-id</option>
-  </term>
-  <listitem>
-    <para>
-      Whether to perform an additional DNS lookup and confirm the
-      remote ID payload with the DNS name in the reverse DNS PTR
-      record. Accepted values are <option>no</option> (the default) or
-      <option>yes</option>.  This check should be enabled when
-      Opportunistic IPsec is enabled in a mode that is based on packet
-      triggers (on-demand) using IPSECKEY records in DNS. Since in
-      that case the IKE daemon pluto does not know the remote ID, it
-      only knows the remote IP address, this option forces it to
-      confirm the peer's proposed ID (and thus its public/private key)
-      with its actual IP address as listed in the DNS. This prevents
-      attacks where mail.example.com's IP address is taken over by a
-      neighbour machine with a valid web.example.com setup. This check
-      is not needed for certificate based Opportunistic IPsec, as
-      "mail.example.com"s certificate does not have an entry for
-      "web.example.com". It is also not needed for DNS server
-      triggered Opportunistic IPsec, as in that case the IKE daemon
-      pluto is informed of both the IP address, and the
-      hostname/public key.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/dns-resolver.xml b/configs/d.ipsec.conf/dns-resolver.xml
deleted file mode 100644 (file)
index c952d06..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<varlistentry>
-  <term>
-    <option>dns-resolver=</option>
-  </term>
-  <listitem>
-    <para>
-      The DNS resolver to be configured by &ipsec-updown.8;.  Both
-      <parameter>file</parameter>
-      (<filename>/etc/resolve.conf</filename>)
-      <parameter>systemd</parameter>
-      (<command>systemd-resolved</command> are recognized.  The
-      configured value is passed to &ipsec-updown.8; in the
-      environment variable <envar>PLUTO_DNS_RESOLVER</envar>.
-    </para>
-    <para>
-      The default is <parameter>file</parameter>.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/dnssec-anchors.xml b/configs/d.ipsec.conf/dnssec-anchors.xml
deleted file mode 100644 (file)
index 07f387f..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<varlistentry>
-  <term>
-    <option>dnssec-anchors=<filename>file</filename></option>
-  </term>
-  <listitem>
-    <para>
-      The location of a file containing additional DNSSEC Trust
-      Anchors.  This can be used when a network is using split-DNS and
-      the internal hierarchy is using DNSSEC trust anchors.
-    </para>
-    <para>
-      There is no default value.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/dnssec-enable.xml b/configs/d.ipsec.conf/dnssec-enable.xml
deleted file mode 100644 (file)
index 09841f5..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<varlistentry>
-  <term>
-    <option>dnssec-enable</option>
-  </term>
-  <listitem>
-    <para>
-      Whether pluto should perform dnssec validation using libunbound,
-      provided libreswan was compiled with USE_DNSSEC. A value of
-      <option>yes</option> (the default) means pluto
-      should perform DNSSEC validation. Note that pluto reads the file
-      <option>/etc/resolv.conf</option> to determine
-      which nameservers to use.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/dnssec-rootkey-file.xml b/configs/d.ipsec.conf/dnssec-rootkey-file.xml
deleted file mode 100644 (file)
index a3d9294..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<varlistentry>
-  <term>
-    <option>dnssec-rootkey-file=<filename>rootkey</filename></option>
-  </term>
-  <listitem>
-    <para>
-      The location of the DNSSEC root zone public key file.
-    </para>
-    <para>
-      The default is <option>@@DEFAULT_DNSSEC_ROOTKEY_FILE@@</option>.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/dpddelay.xml b/configs/d.ipsec.conf/dpddelay.xml
deleted file mode 100644 (file)
index 67c1970..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-<varlistentry>
-  <term>
-    <option>dpddelay</option>
-  </term>
-  <listitem>
-    <para>
-      Set the delay (in time units, defaults to seconds) between Dead
-      Peer Detection (IKEv1 RFC 3706) or IKEv2 Liveness keepalives
-      that are sent for this connection (default <literal>0</literal>
-      seconds). Set to enable checking.
-    </para>
-    <para>
-      If dpddelay is set, you might need to adjust
-      <option>retransmit-timeout</option> for IKEv2
-      and you must set <option>dpdtimeout</option> for IKEv1.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/dpdtimeout.xml b/configs/d.ipsec.conf/dpdtimeout.xml
deleted file mode 100644 (file)
index d727dd6..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-<varlistentry>
-  <term>
-    <option>dpdtimeout</option>
-  </term>
-  <listitem>
-    <para>
-      Set the length of time (in time units, defaults to seconds) that
-      pluto will idle without hearing back from the peer. After this
-      period has elapsed with no response and no traffic, pluto will
-      declare the peer dead, and remove the SA (default
-      <literal>0</literal> meaning disabled). Set value bigger than
-      dpddelay to enable. If dpdtimeout is set, dpddelay also needs to
-      be set.
-    </para>
-    <para>
-      This option is only valid for IKEv1. For IKEv2, this value is
-      always the same as the retransmit-timeout, as IKEv2 is blocked
-      from sending further IKE messages if an answer is not
-      received.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/dumpdir.xml b/configs/d.ipsec.conf/dumpdir.xml
deleted file mode 100644 (file)
index a725b3f..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-<varlistentry>
-  <term>
-    <option>dumpdir=<filename><replaceable>directory</replaceable></filename></option>
-  </term>
-  <listitem>
-    <para>
-      in what directory should things started by
-      <option>setup</option> (notably the Pluto daemon) be allowed to
-      dump core?  The default value is <filename>@@RUNDIR@@</filename>.
-      When SELinux runs in enforced mode, changing this requires a
-      similar change in the SELinux policy for the pluto daemon.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/enable-tcp.xml b/configs/d.ipsec.conf/enable-tcp.xml
deleted file mode 100644 (file)
index e5c30d5..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-<varlistentry>
-  <term>
-    <option>enable-tcp</option>
-  </term>
-  <listitem>
-    <para>
-      Normally, IKE negotiation and ESP encapsulation happens over
-      UDP. This option enables support for IKE and ESP over TCP as per
-      RFC 8229. Acceptable values are <option>no</option>(the default),
-      <option>yes</option> meaning only TCP will be used, or
-      <option>fallback</option> meaning that TCP will be
-      attempted only after negotiation over UDP failed. Since
-      performance over TCP is much less, and TCP sessions are
-      vulnerable to simply RST resets and MITM attacks causing the TCP
-      connection to close, this option should really only be used in
-      fallback mode.  If used in fallback mode, it is recommend to
-      reduce the <option>retransmit-timeout</option>
-      from the default 60s to a much shorter value such as 10s, so
-      that one does not have to wait a minute for the TCP fallback to
-      be attempted. To receive incoming TCP connections, the
-      <option>config setup</option> option <option>listen-tcp</option>
-      needs to be enabled.
-    </para>
-  </listitem>
-</varlistentry>
-
diff --git a/configs/d.ipsec.conf/encap-dscp.xml b/configs/d.ipsec.conf/encap-dscp.xml
deleted file mode 100644 (file)
index b65dca7..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<varlistentry>
-  <term>
-    <option>encap-dscp</option>
-  </term>
-  <listitem>
-    <para>
-      Enable encapsulating the Differentiated Services Code Point
-      (DSCP, formerly known as Terms Of Service (TOS)) bits. The extra
-      xfrm flag "dont-encap-dscp" prevents these bits from being
-      copied from the unencrypted IP packets to the encrypted IP
-      packets.  Acceptable values are <option>yes</option>
-      (the default) or <option>no</option>.
-      Currently this feature is only implemented for the Linux XFRM stack.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/encapsulation.xml b/configs/d.ipsec.conf/encapsulation.xml
deleted file mode 100644 (file)
index 0350ef9..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-<varlistentry>
-  <term>
-    <option>encapsulation</option>
-  </term>
-  <listitem>
-    <para>
-      In some cases, for example when ESP packets are filtered or when
-      a broken IPsec peer does not properly recognise NAT, it can be
-      useful to force RFC-3948 encapsulation. In other cases, where
-      IKE is NAT'ed but ESP packets can or should flow without
-      encapsulation, it can be useful to ignore the NAT-Traversal
-      auto-detection.
-      <option>encapsulation=yes</option> forces the NAT detection
-      code to lie and tell the remote peer that RFC-3948 encapsulation
-      (ESP in port 4500 packets) is required.
-      <option>encapsulation=no</option> ignores the NAT detection
-      causing ESP packets to send send without encapsulation. The
-      default value of <option>encapsulation=auto</option> follows
-      the regular outcome of the NAT auto-detection code performed in IKE.
-      This option replaced the obsoleted forceencaps option.
-    </para>
-  </listitem>
-</varlistentry>
-
diff --git a/configs/d.ipsec.conf/esn.xml b/configs/d.ipsec.conf/esn.xml
deleted file mode 100644 (file)
index 16f0255..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-<varlistentry>
-  <term>
-    <option>esn</option>
-  </term>
-  <listitem>
-    <para>
-      Whether or not to enable Extended Sequence Number (ESN) for the
-      IPsec SA. This option is only implemented for IKEv2. ESN is
-      typically used for very high-speed links (10Gbps or faster)
-      where the standard 32 bit sequence number is exhausted too
-      quickly, causing IPsec SA's rekeys to happen too often. Accepted
-      values are <option>either</option> (the default),
-      <option>yes</option> and <option>no</option>.
-      If <option>either</option> is specified as an initiator,
-      the responder will make the choice. As a responder,
-      if <option>either</option> is received,
-      <option>yes</option> is picked.
-    </para>
-    <para>
-      If replay-window is set to 0, ESN is disabled as some (most?)
-      IPsec stacks won't support ESN in such a configuration.
-    </para>
-  </listitem>
-</varlistentry>
-
diff --git a/configs/d.ipsec.conf/esp.xml b/configs/d.ipsec.conf/esp.xml
deleted file mode 100644 (file)
index 3a9be45..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-<varlistentry>
-  <term>
-    <option>esp</option>
-  </term>
-  <listitem>
-    <para>
-      Specifies the algorithms that will be offered/accepted when
-      negotiating a Child SA with ESP encapsulation.  The general
-      syntax is:
-    </para>
-    <para>
-      <!-- should use EBNF -->
-      <simplelist columns='1'>
-       <member>ESP = PROPOSAL[,PROPOSAL...]</member>
-       <member>PROPOSAL = ENCRYPT_ALGS[-INTEG_ALGS[-DH_ALGS]]</member>
-       <member>ENCRYPT_ALGS = ENCRYPT_ALG[+ENCRYPT_ALG...]</member>
-       <member>INTEG_ALGS = INTEG_ALG[+INTEG_ALG...]</member>
-       <member>DH_ALGS = DH_ALG[+DH_ALG...]</member>
-      </simplelist>
-    </para>
-    <para>
-      During startup, &ipsec-pluto.8; will log all supported ESP
-      algorithms.
-    </para>
-    <para>
-      Specifying the DH algorithms explicitly is <option>not</option>
-      recommended.  When PFS is enabled, and the DH algorithms are
-      omitted, each PROPOSAL will automatically include the DH
-      algorithm negotiated during the IKE exchange.
-    </para>
-    <para>
-      AEAD algorithms such as AES_GCM and AES_CCM do not not require a
-      separate integrity algorithm.  For example
-      <option>esp=aes_gcm256</option> or <option>esp=aes_ccm</option>.
-    </para>
-    <para>
-      Note that AES_GCM and AES_CCM for ESP come in 8, 12 and 16 byte
-      ICV versions.  RFC 8221 only requires AES_GCM with 16 byte ICV
-      and AES_CCM with 8 byte ICV to be implemented, and "aes_gcm" and
-      "aes_ccm" refer to these variants. The other variants can be
-      specified using an _a (8), _b(12) or _c(16) postfix, eg
-      esp=aes_gcm_a for the 8 byte ICV and esp=aes_gcm_b for the 12
-      byte ICV.
-    </para>
-    <para>
-      For instance:
-    </para>
-    <para>
-      <simplelist columns='1'>
-       <member><computeroutput>esp=aes_gcm;aes128+aes256-sha2_512+sha2_256</computeroutput></member>
-       <member><computeroutput>esp=aes128-sha2_512;dh19</computeroutput></member>
-      </simplelist>
-    </para>
-    <para>
-      If not specified, a secure set of defaults will be used.  The
-      program <command>ipsec algparse</command> can be used to query
-      these defaults for instance: <command>ipsec algparse
-      esp=</command> (see &ipsec-algparse.8;).
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/exampleleftright.xml b/configs/d.ipsec.conf/exampleleftright.xml
deleted file mode 100644 (file)
index 9381a1d..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-
-  <title>CONN SECTIONS</title>
-  <para>
-    A <option>conn</option> section contains a <option>connection
-    specification</option>, defining a network connection to be made
-    using IPsec.  The name given is arbitrary, and is used to identify
-    the connection to &ipsec.8; sub-commands.  Here's a simple
-    example:
-  </para>
-
-  <programlisting><xi:include  href="d.ipsec.conf/exampleleftright.example"  parse="text"
-  xmlns:xi="http://www.w3.org/2001/XInclude"/></programlisting>
-
-  <para>
-    A note on terminology...  In automatic keying, there are two
-    kinds of communications going on: transmission of user IP packets, and
-    gateway-to-gateway negotiations for keying, rekeying, and general
-    control.  The data path (a set of &ldquo;Child SAs&rdquo;) used for
-    user packets is herein referred to as the &ldquo;connection&rdquo;;
-    the path used for negotiations (built with &ldquo;IKE SAs&rdquo;)
-    is referred to as the &ldquo;keying channel&rdquo;.
-  </para>
-
-  <para>
-    To avoid trivial editing of the configuration file to suit it to each system
-    involved in a connection,
-    connection specifications are written in terms of
-    <option>left</option>
-    and
-    <option>right</option>
-    participants,
-    rather than in terms of local and remote.
-    Which participant is considered
-    <option>left</option>
-    or
-    <option>right</option>
-    is arbitrary;
-    IPsec figures out which one it is being run on based on internal information.
-    This permits using identical connection specifications on both ends.
-    There are cases where there is no symmetry; a good convention is to
-    use
-    <option>left</option>
-    for the local side and
-    <option>right</option>
-    for the remote side (the first letters are a good mnemonic).
-  </para>
-
-  <para>
-    Many of the parameters relate to one participant or the other;
-    only the ones for
-    <option>left</option>
-    are listed here, but every parameter whose name begins with
-    <option>left</option>
-    has a
-    <option>right</option>
-    counterpart,
-    whose description is the same but with
-    <option>left</option>
-    and
-    <option>right</option>
-    reversed.
-  </para>
-
-  <para>
-    Parameters are optional unless marked &ldquo;(required)&rdquo;
-  </para>
-
diff --git a/configs/d.ipsec.conf/expire-lifetime.xml b/configs/d.ipsec.conf/expire-lifetime.xml
deleted file mode 100644 (file)
index 9a79796..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-<varlistentry>
-  <term>
-    <option>expire-lifetime</option>
-  </term>
-  <listitem>
-    <para>
-      The time in seconds until the acquire kernel state times out.
-      On &Linux;, the default value, determined by
-      <filename>/proc/sys/net/core/xfrm_acq_expires</filename> is 30
-      seconds.  On BSD, this option is ignored.
-    </para>
-    <para>
-      On-demand connections (such as Opportunistic,
-      <option>auto=ondemand</option>, or <command>ipsec
-      route</command>) have an IPsec trap policy installed in the
-      kernel.  If an outgoing (or inbound) packet matches this policy,
-      a state is created in the kernel and then the kernel sends an
-      ACQUIRE message to the IKE daemon pluto.  While this state is in
-      place, no new acquires will come in for this connection.  The
-      default should be fine for most people.  One use case of
-      shortening these is if opportunistc encryption is used towards
-      cloud instances that can quickly re-use IP addresses.
-    </para>
-    <para>
-      See also <option>failureshunt</option> and
-      <option>negotiationshunt</option>
-    </para>
-    <para>
-      Prior to &Libreswan; version 5.3 this option was called
-      <option>xfrmlifetime</option>.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/expire-shunt-interval.xml b/configs/d.ipsec.conf/expire-shunt-interval.xml
deleted file mode 100644 (file)
index fe090c2..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-<varlistentry>
-  <term>
-    <option>expire-shunt-interval=<replaceable>seconds</replaceable></option>
-  </term>
-  <listitem>
-    <para>
-      How often to scan for Opportunistic Encryption failure shunts
-      (kernel policies) that have expired and should be removed.
-    </para>
-    <para>
-      When an Opportuistic Encryption negotiation fails, a failure
-      shunt is installed to either block (<option>drop</option>) or
-      allows(<option>pass</option>) traffic to the peer.  These shunts
-      are given a lifetime of 15 minutes (see
-      <option>shuntlifetime</option>) after which time they expire and
-      should be removed.  The option
-      <option>expire-shunt-interval</option> determines how frequently
-      these shunts are checked.  The default interval is 20 seconds.
-    </para>
-    <para>
-      Note: because these shunts (kernel policies) are not
-      bound to a connection instance they are refered to as bare.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/failureshunt.xml b/configs/d.ipsec.conf/failureshunt.xml
deleted file mode 100644 (file)
index 51726b2..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-<varlistentry>
-  <term>
-    <option>failureshunt</option>
-  </term>
-  <listitem>
-    <para>
-      what to do with packets when negotiation fails.  The default is
-      <option>none</option>: no shunt; <option>pass</option>,
-      <option>drop</option>, and <option>reject</option> have the
-      obvious meanings.</para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/fake-strongswan.xml b/configs/d.ipsec.conf/fake-strongswan.xml
deleted file mode 100644 (file)
index bd2f0e3..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-<varlistentry>
-  <term>
-    <option>fake-strongswan</option>=&yN_options;
-  </term>
-  <listitem>
-    <para>
-      whether to send a STRONGSWAN Vendor ID payload to the peer.
-      Acceptable values are: <option>no</option> (the
-      default) and <option>yes</option>. Strongswan enables some
-      non-standard features and private algorithms only when it detects
-      the strongswan Vendor ID. The exact capabilities depend on the
-      strongswan version. At the time of writing this entry this option
-      can enable negotiation of BEET mode (until the IETF assigns a
-      code point), enable some private algorithms (eg some experimental
-      post-quantum algorithms) and eanbles forwarding RADIUS attributes
-      (which should not have any affects with the current EAP support
-      in libreswan). Note that experimental algorithms on strongswan
-      can also be enabled using charon.accept_private_algs and then this
-      option is not needed.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/files.xml b/configs/d.ipsec.conf/files.xml
deleted file mode 100644 (file)
index 21b7458..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<refsect1 id='files'>
-  <title>
-    FILES
-  </title>
-  <para>
-    <filename>/etc/ipsec.conf</filename>
-    <filename>/etc/ipsec.d/policies/clear</filename>
-    <filename>/etc/ipsec.d/policies/clear-or-private</filename>
-    <filename>/etc/ipsec.d/policies/private-or-clear</filename>
-    <filename>/etc/ipsec.d/policies/private</filename>
-    <filename>/etc/ipsec.d/policies/block</filename>
-  </para>
-</refsect1>
diff --git a/configs/d.ipsec.conf/firewall.xml b/configs/d.ipsec.conf/firewall.xml
deleted file mode 100644 (file)
index 721b14a..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-<varlistentry>
-  <term>
-    <option>leftfirewall</option>
-  </term>
-  <term>
-    <option>rightirewall</option>
-  </term>
-  <listitem>
-    <para>
-      This option is obsolete and should not used anymore.
-    </para>
-  </listitem>
-</varlistentry>
-
diff --git a/configs/d.ipsec.conf/fragmentation.xml b/configs/d.ipsec.conf/fragmentation.xml
deleted file mode 100644 (file)
index fab3c7a..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-<varlistentry>
-  <term>
-    <option>fragmentation</option>
-  </term>
-  <listitem>
-    <para>
-      Whether or not to allow IKE fragmentation.  Valid values are
-      <option>yes</option> (the default) and <option>no</option>.
-      In addition IKEv1 allows <option>force</option>.
-    </para>
-    <para>
-      IKEv2 fragmentation support is implemented using RFC 7383.
-    </para>
-    <para>
-      IKEv1 fragmentation capabilities are negotiated via a well-known
-      private <option>vendor id</option>.  If pluto does
-      not receive the fragmentation payload, no IKE fragments will be
-      sent, regardless of the <option>fragmentation=</option> setting.
-      When set to <option>yes</option>, IKE fragmentation will be
-      attempted on the first re-transmit of an IKE packet of a size
-      larger then 576 bytes for IPv4 and 1280 bytes for IPv6.  If
-      fragmentation is set to force, IKE fragmentation is used on
-      initial transmits of such sized packets as well.  When we have
-      received IKE fragments for a connection, pluto behaves as if in
-      force mode.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/global-redirect-to.xml b/configs/d.ipsec.conf/global-redirect-to.xml
deleted file mode 100644 (file)
index 6f942d4..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<varlistentry>
-  <term>
-    <option>global-redirect-to</option>
-  </term>
-  <listitem>
-    <para>
-      Where to send remote peers to via the <option>global-redirect</option>
-      option. This can be a list, or a single entry, of IP addresses or hostnames
-      (FQDNs). If there is a list of entries, they must be separated with
-      comma's. One specified entry means all peers will be redirected
-      to it, while multiple specified entries means peers will be
-      evenly distributed across the specified servers. This
-      configuration can be changed at runtime via the
-      <command>ipsec whack --global-redirect-to</command> command.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/global-redirect.xml b/configs/d.ipsec.conf/global-redirect.xml
deleted file mode 100644 (file)
index 68f4582..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<varlistentry>
-  <term>
-    <option>global-redirect</option>
-  </term>
-  <listitem>
-    <para>
-      Whether to send requests for the remote peer to redirect
-      IKE/IPsec SA's during IKE_SA_INIT. Valid options are
-      <option>no</option> (the default),
-      <option>yes</option> and <option>auto</option>,
-      where auto means that the requests will be sent if DDoS mode
-      is active (see <option>ddos-mode</option>). If set,
-      the option <option>global-redirect-to=</option> must also be
-      set to indicate where to redirect peers to. For specific connection
-      redirection after IKE SA authentication, see the
-      <option>send-redirect=</option> and <option>redirect-to=</option>
-      options. This configuration can be changed at runtime via the
-      <command>ipsec whack --global-redirect</command> command.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/history.xml b/configs/d.ipsec.conf/history.xml
deleted file mode 100644 (file)
index b251aab..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-<refsect1 id='history'>
-  <title>
-    HISTORY
-  </title>
-  <para>
-    Designed for the FreeS/WAN project &lt;<ulink
-    url='https://www.freeswan.org'>https://www.freeswan.org</ulink>&gt;
-    by Henry Spencer.
-  </para>
-</refsect1>
diff --git a/configs/d.ipsec.conf/host.xml b/configs/d.ipsec.conf/host.xml
deleted file mode 100644 (file)
index da9a534..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-<varlistentry>
-  <term>
-    <option>left</option>
-  </term>
-  <term>
-    <option>right</option>
-  </term>
-  <listitem>
-    <para>
-      (required) the IP address or DNS hostname of the left
-      participant's public-network interface, Currently, IPv4 and IPv6
-      IP addresses are supported. If a DNS hostname is used, it will
-      be resolved to an IP address on load time, and whenever a
-      connection is rekeying or restarting (such as when restarted via
-      a DPD failure detection). This allows one to use a DNS hostname
-      when the endpoint is on a dynamic IP address.
-    </para>
-    <para>
-      There are several magic values.  If it is
-      <option>%defaultroute</option>, <option>left</option> will be
-      filled in automatically with the local address of the
-      default-route interface (as determined at IPsec startup time);
-      this also overrides any value supplied for
-      <option>leftnexthop</option>.  (Either <option>left</option> or
-      <option>right</option> may be <option>%defaultroute</option>,
-      but not both.)  The value <option>%any</option> signifies an
-      address to be filled in (by automatic keying) during
-      negotiation.  The value <option>%opportunistic</option>
-      signifies that both <option>left</option> and
-      <option>leftnexthop</option> are to be filled in (by automatic
-      keying) from DNS data for <option>left</option>'s client.  The
-      value can also contain the interface name, which will then later
-      be used to obtain the IP address from to fill in. For example
-      <option>%ppp0</option>.
-    </para>
-    <para>
-      The values <option>%group</option> and
-      <option>%opportunisticgroup</option> makes this a policy group
-      conn: one that will be instantiated into a regular or
-      opportunistic conn for each CIDR block listed in the policy
-      group file with the same name as the conn.
-    </para>
-    <para>
-      If using IP addresses in combination with NAT, always use the
-      actual local machine's (NATed) IP address, and if the remote (eg
-      right=) is NATed as well, the remote's public
-      (<option>not</option> NATed) IP address. Note that this makes
-      the configuration no longer symmetrical on both sides, so you
-      cannot use an identical configuration file on both hosts.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/hostaddrfamily.xml b/configs/d.ipsec.conf/hostaddrfamily.xml
deleted file mode 100644 (file)
index 7c8720b..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<varlistentry>
-  <term>
-    <option>hostaddrfamily</option>
-  </term>
-  <listitem>
-    <para>
-      the address family of the hosts; currently the accepted values
-      are <option>ipv4</option> and <option>ipv6</option>.
-      The default is to detect this based on the IP addresses specified
-      or the IP addresses resolved, so this option is not needed, unless
-      you specify hostnames that resolve to both IPv4 and IPv6.
-    </para>
-    <para>
-      This option used to be named connaddrfamily but its use was broken
-      so it was obsoleted in favour or using the new hostaddrfamily and
-      clientaddrfamily.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/id.xml b/configs/d.ipsec.conf/id.xml
deleted file mode 100644 (file)
index f960c19..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-<varlistentry>
-  <term>
-    <option>leftid</option>
-  </term>
-  <term>
-    <option>rightid</option>
-  </term>
-  <listitem>
-    <para>
-      how the left participant should be identified for
-      authentication; defaults to <option>left</option>.
-      Can be an IP address or a fully-qualified domain name which will
-      be resolved.  If preceded by <option>@</option>,
-      the value is used as a literal string and will not be resolved.
-
-      To support opaque identifiers (usually of type ID_KEY_ID, such
-      as used by Cisco to specify Group Name, use square brackets, eg
-      <option>rightid=@[GroupName]</option>.
-
-      The magic value <option>%fromcert</option> causes
-      the ID to be set to a DN taken from a certificate that is
-      loaded.  Prior to 2.5.16, this was the default if a certificate
-      was specified.
-
-      The magic value <option>%none</option> sets the ID
-      to no ID. This is included for completeness, as the ID may have
-      been set in the default conn, and one wishes for it to default
-      instead of being explicitly set.
-    </para>
-    <para>
-      When using certificate based ID's, one need to specify the full
-      RDN, optionally using wildcard matching (eg CN='*').  If the RDN
-      contains a comma, this can be masked using a backslash (eg
-      OU='Foo\, Bar and associates')
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/ignore-peer-dns.xml b/configs/d.ipsec.conf/ignore-peer-dns.xml
deleted file mode 100644 (file)
index b22ed7f..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-<varlistentry>
-  <term>
-    <option>ignore-peer-dns</option>
-  </term>
-  <listitem>
-    <para>
-      whether to ignore received DNS configuration.  Acceptable values
-      are: <option>no</option> (the default) and
-      <option>yes</option>.  Normally, when a
-      roadwarrior connects to a remote VPN, the remote VPN server
-      sends a list of DNS domains and DNS nameserver IP addresses that
-      the roadwarrior can use to reach internal only resources through
-      the VPN. This option allows the roadwarrior to ignore the
-      server's suggestion. The roadwarrior will normally use this
-      information to update the DNS resolving process. What is changed
-      depends on the detected DNS configuration. It can modify
-      /etc/resolv.conf directly, or reconfigure a locally running DNS
-      server (unbound, knot, stubby or systemd-resolved) or inform
-      NetworkManager.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/ike-socket-bufsize.xml b/configs/d.ipsec.conf/ike-socket-bufsize.xml
deleted file mode 100644 (file)
index b287575..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-<varlistentry>
-  <term>
-    <option>ike-socket-bufsize</option>
-  </term>
-  <listitem>
-    <para>
-      Set the IKE socket buffer size. Default size is determined by
-      the OS (as of writing, this seems to be set to 212992. On Linux
-      this is visible via /proc/sys/net/core/rmem_default and
-      /proc/sys/net/core/wmem_default. On Linux, this option uses
-      SO_RCVBUFFORCE and SO_SNDBUFFORCE so that it can override
-      rmem_max/wmem_max values of the OS. This requires CAP_NET_ADMIN
-      (which is also required for other tasks). This option can also
-      be toggled on a running system using <option>ipsec
-      whack --ike-socket-bufsize bufsize</option>.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/ike-socket-errqueue.xml b/configs/d.ipsec.conf/ike-socket-errqueue.xml
deleted file mode 100644 (file)
index 1f9c5e3..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<varlistentry>
-  <term>
-    <option>ike-socket-errqueue</option>
-  </term>
-  <listitem>
-    <para>
-      Whether to enable or disable receiving socket errors via
-      IP_RECVERR. The default is enabled. This will cause the socket
-      to receive, process and log socket errors, such as ICMP
-      unreachable messages or Connection Refused messages. Disabling
-      this only makes sense on very busy servers, and even then it
-      might not make much of a difference. This option can also be
-      toggled on a running system using <option>ipsec
-      whack --ike-socket-errqueue-toggle</option>.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/ike.xml b/configs/d.ipsec.conf/ike.xml
deleted file mode 100644 (file)
index 168bb04..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-<varlistentry>
-  <term><option>ike</option></term>
-  <listitem>
-    <para>
-      IKE encryption/authentication algorithm to be used for the
-      connection (phase 1 aka ISAKMP SA or IKE SA). If this option is
-      not set, the builtin defaults will be used. This is the
-      preferred method, and allows for gradual automatic updates using
-      the same configuration. Some distributions, such as Fedora and
-      RHEL/CentOS, use a System Wide Crypto Policy that sets the
-      default ike= (and esp=) lines. Specifying your own ike= line
-      means overriding all these system or software recommended
-      defaults, but can be necessary at times. Note that libreswan
-      does not support using a PRF algorithm that is different from
-      the INTEGRITY (hash) algorithm by design.
-    </para>
-    <para> 
-      The format is <option>"cipher-hash-modpgroup,
-      cipher-hash-modpgroup, ..."</option> Any omitited option will
-      be filled in with <option>all</option> allowed
-      default values. Multiple proposals are separated by a comma. If
-      an <option>ike=</option> line is specified, no
-      other received proposals will be accepted than those specified
-      on the IKE line.  Some examples are <option>ike=3des-sha1,aes-sha1</option>,
-      <option>ike=aes</option>,
-      <option>ike=aes_ctr</option>,
-      <option>ike=aes_gcm256;sha2_256</option>,
-      <option>ike=aes128-sha1;modp2048</option>,
-      <option>ike=aes256-sha2;dh19</option>,
-      <option>ike=aes128-sha1;dh22</option>,
-      <option>ike=3des-md5;modp1024,aes-sha1;modp1536</option>.
-      </para><para> IKEv2 allows combining elements into a single
-      proposal. These can be specified by using the + symbol. An
-      example is:
-      <option>ike=aes_gcm+chacha20_poly1305;dh14+dh19,aes+3des-sha2+sha1;dh14</option>.
-      Note that AEAD algorithms (aes_gcm, aes_ccm, chacha20_poly1305)
-      and non-AEAD algorithms (aes, 3des) cannot be combined into a
-      single proposal. To support aes and aes_gcm, two proposals
-      separated by a comma must be used.
-    </para>
-    <para>
-      The default IKE proposal depends on the version of libreswan
-      used. It follow the recommendations of RFC4306, RFC7321 and as
-      of this writing their successor draft documents RFC4306bis and
-      RFC7321bis.  As for libreswan 3.32, SHA1 and MODP1536(dh5) are
-      still allowed per default for backwards compatibility, but 3DES
-      and MODP1024(dh2) are not allowed per default. As of libreswan
-      4.x, modp1024(dh2) support is no longer compiled in at all. For
-      IKEv2, the defaults include AES, AES-GCM, DH14 and stronger, and
-      SHA2.  The default key size is 256 bits. The default AES_GCM ICV
-      is 16 bytes.
-    </para>
-    <para>
-      Note that AES-GCM is an AEAD algorithm, meaning that it performs
-      encryption+authentication in one step. This means that AES-GCM
-      must not specify an authentication algorithm. However, for IKE
-      it does require a PRF function, so the second argument to an
-      AEAD algorithm denotes the PRF. So ike=aes_gcm-sha2_256 means
-      propose AES_GCM with SHA2_256 as the prf. Note that for
-      esp, there is no prf, so AES-GCM is specified for ESP as
-      esp=aes_gcm. The AES-GCM and AES-CCM algorithms support 8,12 and
-      16 byte ICV's.  These can be specified using a postfix, for
-      example aes_gcm_a (for 8), aes_gcm_b (for 12) and aes_gcm_c (for
-      16).  The default (aes_gcm without postfix) refers to the 16
-      byte ICV version. RFC 8247 only mandates the 16 byte ICV version
-      is implemented, so it is recommended to NOT use the 8 or 12 byte
-      versions of GCM or CCM. These versions are NOT included in the
-      default proposal list and will be removed in a future version.
-    </para>
-    <para>
-      Weak algorithms are regularly removed from libreswan. Currently,
-      1DES and modp768(DH1) have been removed and modp1024(DH2) has
-      been disabled at compile time. Additionally, MD5 and SHA1 will
-      be removed within the next few years. Null encryption is
-      available, and should only be used for testing or benchmarking
-      purposes. Please do not request for insecure algorithms to be
-      re-added to libreswan. IKEv1 has been disabled per default, and
-      will soon no longer be compiled in by default.
-    </para>
-    <para>
-      For all Diffie-Hellman groups, the "dh" keyword can be used
-      instead of the "modp" keyword. For example
-      <option>ike=3des-sha1-dh19</option>. Diffie-Hellman groups
-      19,20 and 21 from RFC-5903 are supported. Curve25519 from
-      RFC-8031 is supported as "dh31". Curve448 and GOST DH groups are
-      not yet supported in libreswan because these are not supported
-      yet in the NSS crypto library.
-    </para>
-    <para>
-      Diffie-Hellman groups 22, 23 and 24 from RFC-5114 are
-      implemented but not compiled in by default.  These DH groups are
-      extremely controversial and MUST NOT be used unless forced
-      (administratively) by the other party. This is further
-      documented in RFC 8247, but the summary is that it cannot be
-      proven that these DH groups do not contain a cryptographic
-      trapdoor (a backdoor by the USG who provided these primes
-      without revealing the seeds and generation process used).
-    </para>
-    <para>
-      The modp syntax will be removed in favour of the dh syntax in
-      the future
-    </para>
-  </listitem>
-</varlistentry>
-
diff --git a/configs/d.ipsec.conf/ikelifetime.xml b/configs/d.ipsec.conf/ikelifetime.xml
deleted file mode 100644 (file)
index be6b5fa..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<varlistentry>
-  <term>
-    <option>ikelifetime</option>
-  </term>
-  <listitem>
-    <para>
-      how long the keying channel of a connection (buzzphrase:
-      &ldquo;IKE SA&rdquo; or &ldquo;ISAKMP SA&rdquo;) should last
-      before being renegotiated; acceptable values as for
-      <option>salifetime</option>. The default as of version 4.2
-      is <option>8h</option>, before that it was 1h. The
-      maximum is <option>24h</option>. The
-      two-ends-disagree case is similar to that of
-      <option>salifetime</option>.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/ikepad.xml b/configs/d.ipsec.conf/ikepad.xml
deleted file mode 100644 (file)
index 1eca1ae..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-<varlistentry>
-  <term>
-    <option>ikepad=</option>
-  </term>
-  <listitem>
-    <para>
-      Work around IKEv1 padding issues when inter-operating with other
-      IKE daemons.
-    </para>
-    <para>
-      By default, &Libreswan; pads messages
-      to a minimum of 4-bytes.  While this is allowed it may cause
-      interoperability issues.  To remove this padding, specify
-      <option>ikepad=no</option> (note that this does not affect
-      messages encrypted using a block-mode cipher where padding is
-      always added).
-    </para>
-    <para>
-      Prior to &Libreswan; version 5.2, some MODECFG payloads were
-      incorrectly padded to 4-bytes which caused interoperability
-      issues.  To restore this behaviour, specify
-      <option>ikepad=yes</option>.
-    </para>
-    <para>
-      In IKEv2, this option is ignored.
-    </para>
-    <sidebar>
-      <title>
-       Background
-      </title>
-      <para>
-       It was thought that padding messages by 4-bytes was causing
-       interoperability issues with
-       &Checkpoint;
-       (<option>ikepad=no</option> was added as a workaround).
-       However, it's since been determined that &Racoon; also had
-       interoperability issues and the cause was the padding of some
-       XAUTH and MODECFG payloads.  Setting
-       <option>ikepad=no</option> fixed interoperability because it
-       was also disabling that padding.  The padding of XAUTH and
-       MODECFG was removed in &Libreswan; version 5.2.
-      </para>
-      <para>
-       Further details can be found in the RFCs, see: RFC-2409
-       section 5.3, Phase 1 Authenticated With a Revised Mode of
-       Public Key Encryption, <quote>the last byte of the padding
-       contains the number of padding bytes</quote> and <quote>there
-       will always be padding</quote>; RFC-2408 section 3.5, Proposal
-       Payload, <quote>there is no padding applied to the payload,
-       however, it can be applied at the end of the message</quote>;
-       RFC-2408 section 3.6, Transform Payload, <quote>then
-       subsequent payloads will not be aligned and any padding will
-       be added at the end of the message to make the message 4-octet
-       aligned</quote>.
-      </para>
-    </sidebar>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/ikeport.xml b/configs/d.ipsec.conf/ikeport.xml
deleted file mode 100644 (file)
index 24f6b9a..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-<varlistentry>
-  <term>
-    <option>leftikeport</option>
-  </term>
-  <term>
-    <option>rightikeport</option>
-  </term>
-  <listitem>
-    <para>
-      The UDP IKE port to listen on or send data to. This port cannot
-      be 0 or 500. For TCP, see <option>tcp-remoteport=</option>
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/ikev1-policy.xml b/configs/d.ipsec.conf/ikev1-policy.xml
deleted file mode 100644 (file)
index fba4141..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<varlistentry>
-  <term>
-    <option>ikev1-policy</option>
-  </term>
-  <listitem>
-    <para>
-      What to do with received IKEv1 packets. Valid options are
-      <option>drop</option> (default) which will
-      silently drop any received IKEv1 packet, <option>accept</option>,
-      and <option>reject</option> which will reply with an error. If
-      this option is set to drop or reject, an attempt to load an
-      IKEv1 connection will fail, as these connections would never be
-      able to receive a packet for processing.
-    </para>
-  </listitem>
-</varlistentry>
-
diff --git a/configs/d.ipsec.conf/initial-contact.xml b/configs/d.ipsec.conf/initial-contact.xml
deleted file mode 100644 (file)
index df6e598..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-<varlistentry>
-  <term>
-    <option>initial-contact</option>
-  </term>
-  <listitem>
-    <para>
-      whether to send an INITIAL_CONTACT payload to the peer we are
-      initiating to, if we currently have no IPsec SAs up with that
-      peer.  Acceptable values are: <option>yes</option>
-      (the default) and <option>no</option>.  It is
-      recommended to leave this option set, unless multiple clients
-      with the same identity are expected to connect using the same
-      subnets and should operate at the same time. Or if a
-      reconnecting client should not delete its old instance (eg
-      perhaps it is still running). This is unlikely to be true.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/interface-ip.xml b/configs/d.ipsec.conf/interface-ip.xml
deleted file mode 100644 (file)
index e2e0553..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-<varlistentry>
-  <term>
-    <option>leftinterface-ip=&ip_cidr;</option>
-  </term>
-  <term>
-    <option>rightinterface-ip=&ip_cidr;</option>
-  </term>
-  <listitem>
-    <para>
-      The IP address and netmask to configure on a virtual device (eg
-      <filename>ipsec<replaceable>N</replaceable></filename>).  This
-      is often used when building Routing based IPsec tunnels using
-      transport mode and GRE, but can also be useful in other
-      scenarios.  Currently requires
-      <option>ipsec-interface=</option>.
-    </para>
-    <para>
-      See also <option>leftvti=</option> for configuring IP addresses
-      when using deprecated VTI.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/intermediate.xml b/configs/d.ipsec.conf/intermediate.xml
deleted file mode 100644 (file)
index a11ec05..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<varlistentry>
-  <term>
-    <option>intermediate</option>
-  </term>
-  <listitem>
-    <para>
-      EXPERIMENTAL: Whether to enable the INTERMEDIATE exchange in
-      IKEv2 (RFC 9242).  Currently the accepted values are
-      <option>yes</option>, signifying we propose to use the
-      INTERMEDIATE exchange for this connection;
-      <option>no</option> (the default), signifying we will not
-      use the INTERMEDIATE exchange for this connection.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/ipsec-interface-managed.xml b/configs/d.ipsec.conf/ipsec-interface-managed.xml
deleted file mode 100644 (file)
index aa2abfe..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-<varlistentry>
-  <term>
-    <option>ipsec-interface-managed</option>
-  </term>
-  <listitem>
-    <para>
-      Specify whether the IPsec Interface specified by
-      <option>ipsec-interface</option> managed by
-      &Libreswan;.  Possible values are:
-    </para>
-    <variablelist>
-      <varlistentry>
-       <term>
-         <option>yes</option> (default)
-       </term>
-       <listitem>
-         <para>
-           &Libreswan; is responsible for managing the IPsec
-           Interface.  For instance, creating it when needed, adding
-           the address specified by <option>interface-ip</option>,
-           installing any kernel policy or state, and marking it
-           <option>up</option> and <option>down</option>.
-         </para>
-         <para>
-           In this mode <option>ipsec-interface</option> identifies
-           the IPsec interface network device.  For instance,
-           <option>ipsec-interface=1</option> specifies the network
-           device <option>ipsec1</option>.
-         </para>
-       </listitem>
-      </varlistentry>
-      <varlistentry>
-       <term>
-         <option>no</option>
-       </term>
-       <listitem>
-         <para>
-           &Libreswan; assumes that the IPsec interface specified by
-           <option>ipsec-interface</option> exists and &Libreswan; is
-           only responsible for managing kernel policy and state.
-         </para>
-         <para>
-           In this mode <option>ipsec-interface</option> identifies
-           the low level kernel ID.  For instance, on &Linux;,
-           <option>ipsec-interface=1</option> identifies the device
-           with the XFRM if_id 1.
-         </para>
-       </listitem>
-      </varlistentry>
-    </variablelist>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/ipsec-interface.xml b/configs/d.ipsec.conf/ipsec-interface.xml
deleted file mode 100644 (file)
index df772dd..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-<varlistentry>
-  <term>
-    <option>ipsec-interface</option>
-  </term>
-  <listitem>
-    <para>
-      Specify the IPsec Interface for "Routing based IPsec VPNs" (as
-      opposed to "Policy based VPNs").  The IPsec Interface is used to
-      route outbound traffic that needs to be encrypted, and will
-      decrypt inbound traffic that arrives on this interface.  All
-      traffic that is routed to this interface will be automatically
-      encrypted providing the IPsec SA policy covers this traffic.
-      Traffic not matching the IPsec SA will be dropped.  Tools such
-      as <command>tcpdump</command>, <command>iptables</command>,
-      <command>ifconfig</command> and tools that need traffic counters
-      can be used on all cleartext pre-encrypt and post-decrypt
-      traffic on the device.  When <option>leftsubnet=</option> is
-      equal to <option>rightsubnet=</option>, the routing needs to be
-      managed by an external routing daemon or manually by the
-      administrator.
-    </para>
-    <para>
-      By default, &Libreswan; is configured in managed mode.  In
-      managed mode, &Libreswan; will create, configure
-      <option>up</option>, <option>down</option>, and delete the IPsec
-      Interface device (on &Linux;, &FreeBSD;, and &NetBSD; that
-      device is named <option>ipsec</option>; &OpenBSD; it is named
-      <option>sec</option>).  To specify the IP address to configure
-      when creating the device also specify
-      <option>interface-ip=</option>.
-    </para>
-    <para>
-      Alternatively, &Libreswan; can be configured in unmanaged mode.
-      In unmanaged mode, &Libreswan; does not manipulate the IPsec
-      Interface Device directly.  Instead &Libreswan; will assume the
-      IPsec Interface device already exists, manipulating it directly
-      using the low-level kernel ID (on &Linux; that is the XFRMi
-      if_id).  A typical use is with namespaces where the IPsec
-      Interface Device and &Libreswan; are in separate namespace.
-    </para>
-    <para>
-    </para>
-    <para>
-    </para>
-    <para>
-      Possible values are:
-    </para>
-    <variablelist>
-      <varlistentry>
-       <term>
-         <option>no</option> (default)
-       </term>
-       <listitem>
-         <para>
-           Do not use "Routing based IPsec VPN".
-         </para>
-       </listitem>
-      </varlistentry>
-      <varlistentry>
-       <term>
-         <option>yes</option>
-       </term>
-       <listitem>
-         <para>
-           Enable "Routing based IPsec VPNs".  In managed mode, use
-           IPsec Interface device 1 (for instance,
-           <option>ipsec1</option>).  In unmanaged mode, use the
-           kernel device 1.
-         </para>
-       </listitem>
-      </varlistentry>
-      <varlistentry>
-       <term>
-         <option><replaceable>number</replaceable></option>
-       </term>
-       <listitem>
-         <para>
-           Enable "Routing based IPsec VPNs" using the device
-           <replaceable>number</replaceable>.  For instance,
-           <option>ipsec-interface=5</option> will use
-           <option>ipsec5</option> in managed mode, and kernel xfrm interface
-           with if_id <option>5</option> in unmanaged mode.
-         </para>
-       </listitem>
-      </varlistentry>
-    </variablelist>
-    <para>
-      Kernel Support:
-    </para>
-    <variablelist>
-      <varlistentry>
-       <term>
-         &Linux; (since 4.19)
-       </term>
-       <listitem>
-         <para>
-           This option is currently only supported on Linux kernels
-           when compiled with XFRMi support
-           (<option>CONFIG_XFRM_INTERFACE</option>).  The number of
-           the ipsecX device corresponds with the <option>XFRM
-           IF_ID</option> policy option of the IPsec SA in the Linux
-           kernel. On Linux, XFRMi interfaces can be managed by
-           &Libreswan; automatically or can be preconfigured on the
-           system using the existing init system or via networking
-           tools such as systemd-networkd and NetworkManager. The
-           _updown script handles certain Linux specific interfaces
-           settings required for proper functioning, such as
-           forwarding and routing rules for IPsec traffic.
-         </para>
-       </listitem>
-      </varlistentry>
-      <varlistentry>
-       <term>
-         &NetBSD; (since 8.0)
-       </term>
-       <term>
-         &OpenBSD; (since 7.4)
-       </term>
-       <term>
-         &FreeBSD; (since 11.0)
-       </term>
-       <listitem>
-         <para>
-           Supported since &Libreswan; 5.2.
-         </para>
-       </listitem>
-      </varlistentry>
-    </variablelist>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/ipsec-max-bytes.xml b/configs/d.ipsec.conf/ipsec-max-bytes.xml
deleted file mode 100644 (file)
index a531cdd..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-<varlistentry>
-  <term>
-    <option>ipsec-max-bytes</option>
-  </term>
-  <listitem>
-    <para>
-      how many bytes can be sent, or how many bytes can be received on
-      an IPsec SA instance for a connection; acceptable values are an
-      integer optionally followed by
-
-      <option>KiB</option>,
-      <option>MiB</option>,
-      <option>GiB</option>,
-      <option>TiB</option>,
-      <option>PiB</option> or
-      <option>EiB</option>
-
-      to signify kilobytes, megabytes, gigabytes, terabytes, petabytes
-      or exabytes.
-
-    </para>
-    <para>
-      An IPsec SA contains two keys, one for inbound and one for
-      outbound traffic.  The
-      <replaceable>ipsec-max-bytes</replaceable> sets two limits on
-      each of these keys: the hard limit which is the total number of
-      bytes that a given key can encrypt, and the soft limit which is
-      the number of bytes that can be encrypted before a renegotiation
-      of the IPsec SA is initiated.  Normally the renegotiation (via
-      the IKE SA) is completed before the
-      <replaceable>ipsec-max-bytes</replaceable> value is reached.
-    </para>
-    <para>
-      Pluto sets the the original initiator's soft limit to 25% of
-      <replaceable>ipsec-max-bytes</replaceable> (with 12% fuzz) and
-      on the original responder's soft limit to 50% of
-      <replaceable>ipsec-max-bytes</replaceable> (with 12% fuzz).
-      This way the original initiator hopefully is the one initiating
-      the renegotiation of the IPsec SA.
-    </para>
-    <para>
-      This option is not negotiated between IKE peers.  Each end of
-      the IPsec SA sets their own limits independently.
-    </para>
-    <para>
-      The default (hard limit) is 2^63 bytes.  The original
-      initiator's soft limit is 2^61 bytes (approx.) and the original
-      responder's soft limit is 2^62 bytes (approx.).
-    </para>
-    <para>
-      When using Linux with <option>nic-offload=packet</option> set,
-      Linux 6.7 or later is required.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/ipsec-max-packets.xml b/configs/d.ipsec.conf/ipsec-max-packets.xml
deleted file mode 100644 (file)
index 25e5836..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<varlistentry>
-  <term>
-    <option>ipsec-max-packets</option>
-  </term>
-  <listitem>
-    <para>
-      How many packets can be sent/received on a particular instance
-      of a connection (a set of encryption/authentication keys for
-      user packets) , from successful negotiation to expiry.
-    </para>
-    <para>
-      Default values and caveats are the same as for
-      <option>ipsec-max-bytes</option>. This option uses a prefix
-      without "B" for bytes.
-    </para>
-    <para>
-      When using Linux with <option>nic-offload=packet</option> set,
-      Linux 6.7 or later is required.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/ipsecdir.xml b/configs/d.ipsec.conf/ipsecdir.xml
deleted file mode 100644 (file)
index 6dc58e7..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-<varlistentry>
-  <term>
-    <option>ipsecdir</option>
-  </term>
-  <listitem>
-    <para>
-      Specifies a directory for administrator-controlled configuration
-      files and directories.  The default value is
-      <option>@@IPSEC_CONFDDIR@@</option>. It may contain the following
-      files and directories:
-    </para>
-    <variablelist>
-      <varlistentry>
-        <term>
-         passwd
-       </term>
-        <listitem>
-         <para>
-            (optional) for IKEv1 XAUTH support if not using PAM (this file
-            should not be world-readable). See README.XAUTH for more
-            information.
-          </para>
-       </listitem>
-      </varlistentry>
-      <varlistentry>
-        <term>
-         nsspassword
-       </term>
-        <listitem>
-         <para>
-            (optional) passwords needed to unlock the NSS database in
-            <filename>@@IPSEC_NSSDIR@@</filename> (this file should
-            not be world-readable).  See README.nss for more
-            information.
-          </para>
-       </listitem>
-      </varlistentry>
-      <varlistentry>
-        <term>
-         policies/
-       </term>
-        <listitem>
-         <para>
-            a directory containing policy group configuration
-            information.  See <option>POLICY GROUP
-            FILES</option> in this document for more information.
-          </para>
-       </listitem>
-      </varlistentry>
-    </variablelist>
-    <para>
-      When SELinux runs in enforced mode, changing this requires a
-      similar change in the SELinux policy for the pluto daemon.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/iptfs.xml b/configs/d.ipsec.conf/iptfs.xml
deleted file mode 100644 (file)
index 073b82d..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-<varlistentry>
-  <term>
-    <option>iptfs</option>
-  </term>
-  <listitem>
-    <para>
-      Enable "Aggregation and Fragmentation Mode for Encapsulating
-      Security Payload (ESP) and its use for IP Traffic Flow Security
-      (IP-TFS) as defined in RFC 9347.  Currently, this is only
-      supported for the Linux XFRM stack and will likely be merged
-      into Linux 6.7 or 6.8. Valid options are <option>no</option>
-      (the default) or <option>yes</option>.  IP-TFS allow the kernel
-      to combine multiple small packets into one ESP packet, which
-      should cause a performance gain when many small packets (eg
-      iperf packets) are sent.  It also allows the kernel to fragment
-      the outgoing packet stream so that the ESP packets have a fixed
-      size that can be set manually or fit the path MTU.  This should
-      avoid common MTU issues with IPsec.  IP-TFS can only be used
-      with tunnel mode and ESP.  It cannot be combined with
-      <option>type=transport</option>, <option>phase2=ah</option>,
-      <option>compress=yes</option> or <option>tfc=yes</option>.  A
-      number of IP-TFS options can be tuned.
-    </para>
-  </listitem>
-</varlistentry>
-<varlistentry>
-  <term>
-    <option>iptfs-fragmentation={yes,no}</option>
-  </term>
-  <listitem>
-    <para>
-      Whether or not to fragment IP-TFS.
-    </para>
-    <para>
-      On &Linux; and
-      <option>iptfs-fragmentation=no</option>, this passes
-      <option>XFRMA_IPTFS_DONT_FRAG</option> to the kernel.  (Unclear
-      to at least one author if this means regular ICMP Dont Fragment
-      sending, or whether it stops IP-TFS from fragmenting).
-    </para>
-    <para>
-      Default is <option>iptfs-fragmentation=yes</option>
-    </para>
-  </listitem>
-</varlistentry>
-<varlistentry>
-  <term><option>iptfs-max-queue-size</option></term>
-  <listitem>
-    <para>
-      The default IP-TFS max output queue size in octets. The output
-      queue is where received packets destined for output over an
-      IP-TFS tunnel are stored prior to being output in
-      aggregated/fragmented form over the IP-TFS tunnel.
-    </para>
-    <para>
-      Default 1000000.
-    </para>
-  </listitem>
-</varlistentry>
-<varlistentry>
-  <term><option>iptfs-drop-time=<replaceable>duration</replaceable></option></term>
-  <listitem>
-    <para>
-      The amount of time before a missing out-of-order IP-TFS tunnel
-      packet is considered lost.  See also
-      <option>iptfs-reorder-window</option>.
-    </para>
-    <para>
-      The default is 1s.  The default time unit is seconds (see
-      <replaceable>duration</replaceable>).
-    </para>
-  </listitem>
-</varlistentry>
-<varlistentry>
-  <term><option>iptfs-init-delay=<replaceable>duration</replaceable></option></term>
-  <listitem>
-    <para>
-      The amount of time prior to servicing the output queue after
-      queueing the first packet on said queue.
-    </para>
-    <para>
-      The default is 0s.  The default time unit is seconds (see
-      <replaceable>duration</replaceable>).
-    </para>
-  </listitem>
-</varlistentry>
-<varlistentry>
-  <term><option>iptfs-reorder-window</option></term>
-  <listitem>
-    <para>
-      The default IP-TFS reorder window size. The reorder window size
-      dictates the maximum number of IP-TFS tunnel packets in a
-      sequence that may arrive out of order.
-    </para>
-    <para>
-      Default 3.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/keep-alive.xml b/configs/d.ipsec.conf/keep-alive.xml
deleted file mode 100644 (file)
index 7082f20..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<varlistentry>
-  <term>
-    <option>keep-alive</option>
-  </term>
-  <listitem>
-    <para>
-      The delay (in seconds) for NAT-T keep-alive packets, if these
-      are enabled using <option>nat-keepalive</option>
-      This parameter may eventually become per-connection.
-    </para>
-  </listitem>
-</varlistentry>
-
diff --git a/configs/d.ipsec.conf/keyexchange.xml b/configs/d.ipsec.conf/keyexchange.xml
deleted file mode 100644 (file)
index 0e372c3..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-<varlistentry>
-  <term>
-    <option>keyexchange</option>
-  </term>
-  <listitem>
-    <para>
-      Whether to use IKEv2 (RFC 7296) or IKEv1 (RFC 4301). Currently the
-      accepted values are <option>ikev2</option> (the default) and
-      <option>ikev1</option>.
-    </para>
-    <para>
-      This option replaces ikev2=yes|no. Old values yes, propose and instist
-      all map to keyexchange=ikev2. Values no and permit are map to
-      keyexchange=ikev1.
-    </para>
-  </listitem>
-</varlistentry>
-
diff --git a/configs/d.ipsec.conf/listen-tcp.xml b/configs/d.ipsec.conf/listen-tcp.xml
deleted file mode 100644 (file)
index 718266a..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<varlistentry>
-  <term>
-    <option>listen-tcp</option>
-  </term>
-  <listitem>
-    <para>
-      Whether the pluto IKE daemon should listen on the (pseudo)
-      standard TCP port <option>4500</option>. The default is
-      "no". The TCP usage complies to RFC 9329 for IKE and ESP over
-      TCP support. Connections can specify their own non-standard TCP
-      port using <option>leftikeport=</option> and
-      <option>tcp-remoteport=</option> for a non-standard peer TCP
-      port.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/listen-udp.xml b/configs/d.ipsec.conf/listen-udp.xml
deleted file mode 100644 (file)
index e07fc17..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<varlistentry>
-  <term>
-    <option>listen-udp</option>
-  </term>
-  <listitem>
-    <para>
-      Whether the pluto IKE daemon should listen on the standard UDP
-      ports of <option>500</option> and <option>4500</option>.  The
-      value "yes" means to listen on these ports, and is the default.
-      This should almost never be disabled. In the rare case where it
-      is known that only ever TCP or non-standard UDP ports will be
-      used, this option can disable the standard UDP
-      ports. Connections can specify their own non-standard port using
-      leftikeport=.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/listen.xml b/configs/d.ipsec.conf/listen.xml
deleted file mode 100644 (file)
index a195201..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-<varlistentry>
-  <term>
-    <option>listen</option>
-  </term>
-  <listitem>
-    <para>
-      IP address to listen on, defaults to ANY.  Currently only
-      accepts one IP address.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/logappend.xml b/configs/d.ipsec.conf/logappend.xml
deleted file mode 100644 (file)
index 553dbbb..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-<varlistentry>
-  <term>
-    <option>logappend</option>=&Yn_options;
-  </term>
-  <listitem>
-    <para>
-      If pluto is instructed to log to a file using
-      <option>logfile=</option>, this option determines whether the
-      log file should be appended to or overwritten.  Valid options
-      are <option>yes</option> (the default) to append and
-      <option>no</option> to overwrite.  Since on modern systems,
-      pluto is restarted by other daemons, such as systemd, this
-      option should be left at its default <option>yes</option> value
-      to preserve the log entries of previous runs of pluto.  This
-      option is mainly of use for running the test suite, which needs
-      to create new log files from scratch.
-    </para>
-    <para>
-      Prior to &Libreswan; version 5.3 <command>pluto</command>, when
-      invoked without a config file, had this option disabled.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/logfile.xml b/configs/d.ipsec.conf/logfile.xml
deleted file mode 100644 (file)
index 0f88e35..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-<varlistentry>
-  <term>
-    <option>logfile</option>
-  </term>
-  <listitem>
-    <para>
-      do not use syslog, but rather log to stderr, and direct stderr
-      to the argument file. This option used to be called
-      plutostderrlog=
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/logip.xml b/configs/d.ipsec.conf/logip.xml
deleted file mode 100644 (file)
index 4061dcf..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-<varlistentry>
-  <term>
-    <option>logip</option>
-  </term>
-  <listitem>
-    <para>
-       If pluto is instructed to log the IP address of incoming
-       connections.  Valid options are <option>yes</option> (the
-       default) and <option>no</option>. Note that this only affects
-       regular logging. Any enabled debugging via
-       <option>plutodebug=</option> will still contain IP addresses of
-       peers. This option is mostly meant for servers that want to
-       avoid logging IP addresses of incoming clients. Other
-       identifiable information might still be logged, such as ID
-       payloads and X.509 certificate details. When using ID of type
-       IP address, this option will not hide the actual IP address as
-       part of the ID. Most deployments will not want to change this
-       from the default.  If logging of IP addresses is unwanted,
-       <option>audit-log=no</option> should also be set.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/logtime.xml b/configs/d.ipsec.conf/logtime.xml
deleted file mode 100644 (file)
index 01bb9ff..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<varlistentry>
-  <term>
-    <option>logtime</option>
-  </term>
-  <listitem>
-    <para>
-      When pluto is directed to log to a file using
-      <option>logfile=</option>, this option determines whether or not
-      to log the current timestamp as prefix.  Values are
-      <option>yes</option> (the default) or <option>no</option>. The
-      no value can be used to create logs without ephemeral
-      timestamps, such as those created when running the test suite.
-      This option used to be called plutostderrlogtime=
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/mark-in.xml b/configs/d.ipsec.conf/mark-in.xml
deleted file mode 100644 (file)
index 4c72efa..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-<varlistentry>
-  <term>
-    <option>mark-in</option>
-  </term>
-  <listitem>
-    <para>
-      The same as <option>mark</option>, but mark-in only applies to
-      the inbound half of the IPsec SA. It overrides any mark=
-      setting.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/mark-out.xml b/configs/d.ipsec.conf/mark-out.xml
deleted file mode 100644 (file)
index 5673a7d..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-<varlistentry>
-  <term>
-    <option>mark-out</option>
-  </term>
-  <listitem>
-    <para>
-      The same as <option>mark</option>, but mark-out only applies to
-      the outbound half of the IPsec SA. It overrides any mark=
-      setting.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/mark.xml b/configs/d.ipsec.conf/mark.xml
deleted file mode 100644 (file)
index d9598c3..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-<varlistentry>
-  <term>
-    <option>mark</option>
-  </term>
-  <listitem>
-    <para>
-      If set, the MARK to set for the IPsec SA of this connection. The
-      format of a CONNMARK is <option>mark/mask</option>. If the mask
-      is left out, a default mask of 0xffffffff is used. A mark value
-      of -1 means to assign a new global unique mark number for each
-      instance of the connection. Global marks start at 1001.  This
-      option is only available on linux XFRM kernels. It can be used
-      with iptables to create custom iptables rules using CONNMARK. It
-      can also be used with Virtual Tunnel Interfaces ("VTI") to
-      direct marked traffic to specific vtiXX devices.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/max-halfopen-ike.xml b/configs/d.ipsec.conf/max-halfopen-ike.xml
deleted file mode 100644 (file)
index db3a6fa..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-<varlistentry>
-  <term>
-    <option>max-halfopen-ike</option>
-  </term>
-  <listitem>
-    <para>
-      The number of half-open IKE SAs before the IKE daemon starts
-      refusing all new IKE attempts.  Established IKE peers are not
-      affected. The default value is 50000.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/metric.xml b/configs/d.ipsec.conf/metric.xml
deleted file mode 100644 (file)
index 6fa7bc6..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<varlistentry>
-  <term>
-    <option>metric</option>
-  </term>
-  <listitem>
-    <para>
-      Set the metric for added routes.  This value is passed to the
-      <command>ipsec _updown</command> scripts as
-      <envar>PLUTO_METRIC</envar> (see &ipsec-updown.8;).
-    </para>
-    <para>
-      Acceptable values are positive numbers, with the default being
-      <option>1</option>.
-    </para>
-  </listitem>
-</varlistentry>
-
diff --git a/configs/d.ipsec.conf/mobike.xml b/configs/d.ipsec.conf/mobike.xml
deleted file mode 100644 (file)
index 1d64a33..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-<varlistentry>
-  <term>
-    <option>mobike</option>
-  </term>
-  <listitem>
-    <para>
-      Whether to allow MOBIKE (RFC 4555) to enable a connection to
-      migrate its endpoint without needing to restart the connection
-      from scratch. This is used on mobile devices that switch between
-      wired, wireless or mobile data connections. Current values are
-      <option>no</option> (the default) or <option>yes</option>, Only
-      connection acting as modecfgclient will allow the initiator to
-      migrate using mobike. Only connections acting as modecfgserver
-      will allow clients to migrate.
-    </para>
-    <para>
-      VTI and MOBIKE might not work well when used together.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/modecfgclient.xml b/configs/d.ipsec.conf/modecfgclient.xml
deleted file mode 100644 (file)
index cbf2c2b..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<varlistentry>
-  <term>
-    <option>leftmodecfgclient</option>
-  </term>
-  <term>
-    <option>rightmodecfgclient</option>
-  </term>
-  <listitem>
-    <para>Left is a Mode Config client. It can receive network
-    configuration from the server.  Acceptable values are
-    <option>yes</option> or <option>no</option> (the
-    default).</para>
-  </listitem>
-</varlistentry>
-
-
diff --git a/configs/d.ipsec.conf/modecfgoptions.xml b/configs/d.ipsec.conf/modecfgoptions.xml
deleted file mode 100644 (file)
index b523246..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-<varlistentry>
-  <term>
-    <option>modecfgdns</option>
-  </term>
-  <term>
-    <option>modecfgdomains</option>
-  </term>
-  <term>
-    <option>modecfgbanner</option>
-  </term>
-  <listitem>
-    <para>
-      When configured as IKEv1 ModeCFG or IKEv2 server, specifying any
-      of these options will cause those options and values to be sent
-      to the connecting client.  &Libreswan; as a client will use
-      these received options to either update /etc/resolv.conf or the
-      running unbound DNS server. When the connection is brought down,
-      the previous DNS resolving state is restored.
-    </para>
-    <para>
-      The modecfgdns option takes a comma or space separated list of
-      IP addresses that can be used for DNS resolution. The
-      modecfgdomains option takes a comma or space separated list of
-      internal domain names that are reachable via the supplied
-      modecfgdns DNS servers.
-    </para>
-    <para>
-      The IKEv1 split tunnel directive will be sent automatically if
-      the xauth server side has configured a network other than
-      0.0.0.0/0. For IKEv2, this is automated via narrowing.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/modecfgpull.xml b/configs/d.ipsec.conf/modecfgpull.xml
deleted file mode 100644 (file)
index 76c4ef4..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<varlistentry>
-  <term>
-    <option>modecfgpull</option>
-  </term>
-  <listitem>
-    <para>
-      Pull the Mode Config network information from the server.
-      Both server and client must use same setting.
-      Acceptable values are <option>yes</option> or
-      <option>no</option> (the default).
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/modecfgserver.xml b/configs/d.ipsec.conf/modecfgserver.xml
deleted file mode 100644 (file)
index b438061..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<varlistentry>
-  <term>
-    <option>leftmodecfgserver</option>
-  </term>
-  <term>
-    <option>rightmodecfgserver</option>
-  </term>
-  <listitem>
-    <para>
-      Left is a Mode Config server. It can push network configuration
-      to the client.  Acceptable values are <option>yes</option>
-      or <option>no</option> (the default).
-    </para>
-  </listitem>
-</varlistentry>
-
diff --git a/configs/d.ipsec.conf/ms-dh-downgrade.xml b/configs/d.ipsec.conf/ms-dh-downgrade.xml
deleted file mode 100644 (file)
index 65b4fab..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-<varlistentry>
-  <term><option>ms-dh-downgrade</option></term>
-  <listitem>
-    <para>
-      Whether to allow a downgrade of Diffie-Hellman group during
-      rekey (using CREATE_CHILD_SA).
-    </para>
-    <para>
-      Microsoft Windows (at the time of writing, Feb 2018) defaults to
-      using the very weak modp1024 (DH2).  This can be changed using a
-      Windows registry setting to use modp2048 (DH14).  However, at
-      rekey times, it will shamelessly use modp1024 again and the
-      connection might fail.  Setting <option>ms-dh-downgrade=yes</option>
-      (and adding modp1024 proposals to the ike line) will allow this
-      downgrade attack to happen. This should only be used to support
-      Windows that feature this bug.
-    </para>
-    <para>
-      The accepted values are <option>no</option>, (the
-      default) or <option>yes</option>.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/mtu.xml b/configs/d.ipsec.conf/mtu.xml
deleted file mode 100644 (file)
index d72fe35..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<varlistentry>
-  <term>
-    <option>mtu</option>
-  </term>
-  <listitem>
-    <para>
-      Set the MTU for the route(s) to the remote endpoint and/or
-      subnets. This is sometimes required when the overhead of the
-      IPsec encapsulation would cause the packet the become too big
-      for a router on the path. Since IPsec cannot trust any
-      unauthenticated ICMP messages, PATH MTU discovery does not
-      work. This can also be needed when using "6to4" IPV6
-      deployments, which adds another header on the packet size.
-    </para>
-    <para>
-      Acceptable values are positive numbers. There is no default.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/myvendorid.xml b/configs/d.ipsec.conf/myvendorid.xml
deleted file mode 100644 (file)
index b9ab9bd..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-<varlistentry>
-  <term>
-    <option>myvendorid</option>
-  </term>
-  <listitem>
-    <para>
-      The string to use as our vendor id (VID) when
-      send-vendorid=yes. The default is OE-Libreswan-VERSION.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/narrowing.xml b/configs/d.ipsec.conf/narrowing.xml
deleted file mode 100644 (file)
index 0741764..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-<varlistentry>
-  <term>
-    <option>narrowing</option>
-  </term>
-  <listitem>
-    <para>
-      IKEv2 (RFC5996) Section 2.9 Traffic Selector narrowing options.
-      Currently the accepted values are <option>no</option>, (the
-      default) signifying no narrowing will be proposed or accepted,
-      or <option>yes</option>, signifying IKEv2 negotiation may allow
-      establishing an IPsec connection with narrowed down traffic
-      selectors. This option is ignored for IKEv1.
-    </para>
-    <para>
-      There are security implications in allowing narrowing down the
-      proposal. For one, what should be done with packets that we
-      hoped to tunnel, but cannot. Should these be dropped or send in
-      the clear? Second, this could cause thousands of narrowed down
-      Child SAs to be created if the conn has a broad policy (eg 0/0
-      to 0/0).  One possible good use case scenario is that a remote
-      end (that you fully trust) allows you to define a 0/0 to them,
-      while adjusting what traffic you route via them, and what
-      traffic remains outside the tunnel. However, it is always
-      preferred to setup the exact tunnel policy you want, as this
-      will be much clearer to the user.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/nat-ikev1-method.xml b/configs/d.ipsec.conf/nat-ikev1-method.xml
deleted file mode 100644 (file)
index eb69dc8..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-<varlistentry>
-  <term>
-    <option>nat-ikev1-method</option>
-  </term>
-  <listitem>
-    <para>
-      NAT Traversal in IKEv1 is negotiated via Vendor ID options as
-      specified in RFC 3947.  However, many implementations only
-      support the draft version of the RFC. &Libreswan; sends both the
-      RFC and the most common draft versions (02, 02_n and 03) to
-      maximize interoperability.  Unfortunately, there are known
-      broken implementations of RFC 3947, notably Cisco routers that
-      have not been updated to the latest firmware. As the NAT-T
-      payload is sent in the very first packet of the initiator, there
-      is no method to auto-detect this problem and initiate a
-      workaround.
-    </para>
-    <para>
-      This option allows fine tuning which of the NAT-T payloads to
-      consider for sending and processing.  Currently the accepted
-      values are <option>drafts</option>, <option>rfc</option>,
-      <option>both</option> (the default) and
-      <option>none</option>. To interoperate with known broken
-      devices, use nat-ikev1-method=drafts.  To prevent the other end
-      from triggering IKEv1 NAT-T encapsulation, set this to
-      none. This will omit the NAT-T payloads used to determine NAT,
-      forcing the other end not to use encapsulation.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/nat-keepalive.xml b/configs/d.ipsec.conf/nat-keepalive.xml
deleted file mode 100644 (file)
index 9e49636..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<varlistentry>
-  <term>
-    <option>nat-keepalive</option>
-  </term>
-  <listitem>
-    <para>
-      whether to send any NAT-T keep-alives. These one byte packets
-      prevent the NAT router from closing its port when there is not
-      enough traffic on the IPsec connection.  Acceptable values are:
-      <option>yes</option> (the default) and <option>no</option>.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/negotiationshunt.xml b/configs/d.ipsec.conf/negotiationshunt.xml
deleted file mode 100644 (file)
index 426e008..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-<varlistentry>
-  <term>
-    <option>negotiationshunt</option>
-  </term>
-  <listitem>
-    <para>
-      What to do with packets during the IKE negotiation.  Valid
-      options are <option>hold</option> (the default) or
-      <option>pass</option>. This should almost always be left to the
-      default <option>hold</option> value to avoid cleartext packet
-      leaking. The only reason to set this to <option>pass</option> is
-      if plaintext service availability is more important than service
-      security or privacy, a scenario that also implies
-      <option>failureshunt=pass</option> and most likely
-      <option>authby=%null</option> using Opportunistic Encryption.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/nexthop.xml b/configs/d.ipsec.conf/nexthop.xml
deleted file mode 100644 (file)
index 4019c76..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-<varlistentry>
-  <term>
-    <option>leftnexthop</option>
-  </term>
-  <term>
-    <option>rightnexthop</option>
-  </term>
-  <listitem>
-    <para>
-      next-hop gateway IP address for the left participant's
-      connection to the public network; defaults to <option>%direct</option>
-      (meaning <option>right</option>). If the value is to be overridden
-      by the <option>left=%defaultroute</option> method
-      (see above), an explicit value must <option>not</option> be given.
-      If that method is not being used, but <option>leftnexthop</option> is
-      <option>%defaultroute</option>, the next-hop
-      gateway address of the default-route interface will be used.
-      The magic value <option>%direct</option> signifies
-      a value to be filled in (by automatic keying) with the peer's
-      address.  Relevant only locally, other end need not agree on
-      it.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/nflog-all.xml b/configs/d.ipsec.conf/nflog-all.xml
deleted file mode 100644 (file)
index ea54403..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-<varlistentry>
-  <term>
-    <option>nflog-all</option>
-  </term>
-  <listitem>
-    <para>
-      If set, the NFLOG group number to log <option>all</option>
-      pre-crypt and post-decrypt traffic to.  The default value of
-      <option>0</option> means no logging at all.  This option is only
-      available on linux kernel 2.6.14 and later. It allows common
-      network utilities such as tcpdump, wireshark and dumpcap, to use
-      nflog:XXX pseudo interfaces where XXX is the nflog group
-      number. During startup and shutdown of the IPsec service,
-      iptables commands will be used to add or remove the global NFLOG
-      table rules. The rules are setup with the nflog-prefix
-      <option>all-ipsec</option>. See also the per-connection
-      <option>nflog</option> option.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/nflog-group.xml b/configs/d.ipsec.conf/nflog-group.xml
deleted file mode 100644 (file)
index 7b5ef29..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-<varlistentry>
-  <term>
-    <option>nflog-group</option>
-  </term>
-  <listitem>
-    <para>
-      If set, the NFLOG group number to log this connection's
-      pre-crypt and post-decrypt traffic to.  The default value of
-      <option>0</option> means no logging at all.  This option is only
-      available on linux kernel 2.6.14 and later.  It allows common
-      network utilities such as tcpdump, wireshark and dumpcap, to use
-      nflog:XXX pseudo interfaces where XXX is the nflog group
-      number. During the updown phase of a connection, iptables will
-      be used to add and remove the source/destination pair to the
-      nflog group specified.  The rules are setup with the
-      nflog-prefix matching the connection name. See also the global
-      <option>nflog-all</option> option.
-    </para>
-    <para>
-      Prior to &Libreswan; version 5.3, this option was called
-      <option>nflog</option>.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/nhelpers.xml b/configs/d.ipsec.conf/nhelpers.xml
deleted file mode 100644 (file)
index 40d2e91..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<varlistentry>
-  <term>
-    <option>nhelpers</option>
-  </term>
-  <listitem>
-    <para>
-      how many <option>pluto helpers</option> are started to help with
-      cryptographic operations. Pluto will start as many helpers as
-      the number of CPU's, minus 1 to dedicate to the main thread.
-      For machines with less than 4 CPU's, an equal number of helpers
-      to CPU's are started.  A value of 0 forces pluto to do all
-      operations inline using the main process. A value of -1 tells
-      pluto to perform the above calculation. Any other value forces
-      the number to that amount.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/nic-offload.xml b/configs/d.ipsec.conf/nic-offload.xml
deleted file mode 100644 (file)
index e391305..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-<varlistentry>
-  <term>
-    <option>nic-offload</option>
-  </term>
-  <listitem>
-    <para>
-      Set the method of Network Interface Controller (NIC) hardware
-      offload for ESP/AH packet processing.  Acceptable values are
-      <option>no</option> (the default),
-      <option>crypto</option> or <option>packet</option>.  The
-      value <option>yes</option> is a backwards compatible value
-      for <option>crypto</option>.  The nic-offload option is
-      separate from any CPU hardware offload available.  When set to
-      <option>crypto</option>, only cryptographic operations are
-      offloaded to the NIC card.  When set to
-      <option>packet</option>, the entire packet processing
-      including the encryption/decryption is offloaded to the NIC
-      card.
-    </para>
-    <para>
-      Crypto nic-offload is available starting Linux 4.13 using the
-      XFRM IPsec stack.  Packet nic-offload is available starting
-      Linux 6.3.  Both require that the Linux kernel is compiled with
-      the options CONFIG_XFRM_OFFLOAD, CONFIG_INET_ESP_OFFLOAD and
-      CONFIG_INET6_ESP_OFFLOAD.  Network card support can be seen by
-      the presence of the <option>esp-hw-offload</option>
-      capability using the <option>ethtool -S</option> command.
-      The Linux kernel attempts to fall back from crypto hardware
-      offload to software, but only for some algorithms (AEADs only?).
-      There is no fallback from packet offload to crypto offload.  At
-      the time of libreswan 5.0, we are only aware of the
-      Nvidia/Mellanox ConnectX-7 (and to some extend ConnectX-6) cards
-      supporting packet offload.
-    </para>
-    <para>
-      In general, it makes no sense to try to offload older (non-AEAD)
-      cryptographic algorithms such as AES-CBC or 3DES, as these
-      algorithms are so much slower than AEAD algorithms (such as
-      AES-GCM) that one would gain more performance by switching the
-      algorithm to AEAD than by offloading.  As such, AES-CBC tends to
-      not be implemented in offload hardware.  This option has also no
-      effect on IKE packets, which are never offloaded, although IKE
-      encryption does use supported CPU hardware instructions, such as
-      AESNI.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/nm-configured.xml b/configs/d.ipsec.conf/nm-configured.xml
deleted file mode 100644 (file)
index 6e4a0d1..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-<varlistentry>
-  <term>
-    <option>nm-configured</option>
-  </term>
-  <listitem>
-    <para>
-      Mark this connection as controlled by Network Manager.
-      Acceptable values are <option>yes</option> or
-      <option>no</option> (the default). Currently, setting this to
-      yes will cause libreswan to skip reconfiguring resolv.conf when
-      used with XAUTH and ModeConfig.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/nopmtudisc.xml b/configs/d.ipsec.conf/nopmtudisc.xml
deleted file mode 100644 (file)
index b76425f..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<varlistentry>
-  <term>
-    <option>nopmtudisc</option>
-  </term>
-  <listitem>
-    <para>
-      Disable Path MTU discovery for the IPsec SA. Acceptable values
-      are <option>no</option> (the default) or <option>yes</option>.
-      Currently this feature is only implemented for the Linux XFRM
-      stack.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/nssdir.xml b/configs/d.ipsec.conf/nssdir.xml
deleted file mode 100644 (file)
index 8d37647..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-<varlistentry>
-  <term>
-    <option>nssdir</option>
-  </term>
-  <listitem>
-    <para>
-      Specifies a directory for NSS database files. The default value
-      is <option>@@IPSEC_NSSDIR@@</option>.  It may contain the
-      following files:
-    </para>
-    <variablelist>
-      <varlistentry>
-        <term>pkcs11.txt</term>
-        <listitem><para>
-          Detailed info about NSS database creation parameters.
-        </para></listitem>
-      </varlistentry>
-      <varlistentry>
-        <term>cert9.db</term>
-        <listitem><para>
-          NSS Certificate database.
-        </para></listitem>
-      </varlistentry>
-      <varlistentry>
-        <term>key4.db</term>
-        <listitem><para>
-          NSS Key database.
-        </para></listitem>
-      </varlistentry>
-    </variablelist>
-    <para>
-      When SELinux runs in enforced mode, changing this requires a similar
-      change in the SELinux policy for the pluto daemon.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/ocsp-cache-max-age.xml b/configs/d.ipsec.conf/ocsp-cache-max-age.xml
deleted file mode 100644 (file)
index d43a672..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-<varlistentry>
-  <term>
-    <option>ocsp-cache-max-age</option>
-  </term>
-  <listitem>
-    <para>
-      The maximum age (in seconds) before a new fetch will be
-      attempted. The default is 1 day.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/ocsp-cache-min-age.xml b/configs/d.ipsec.conf/ocsp-cache-min-age.xml
deleted file mode 100644 (file)
index 5b98d26..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-<varlistentry>
-  <term>
-    <option>ocsp-cache-min-age</option>
-  </term>
-  <listitem>
-    <para>
-      The minimum age (in seconds) before a new fetch will be
-      attempted. The default is 1 hour.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/ocsp-cache-size.xml b/configs/d.ipsec.conf/ocsp-cache-size.xml
deleted file mode 100644 (file)
index 48cb49a..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-<varlistentry>
-  <term>
-    <option>ocsp-cache-size</option>
-  </term>
-  <listitem>
-    <para>
-      The maximum size (in number of certificates) of OCSP responses
-      that will be kept in the cache. The default is 1000. Setting
-      this value to 0 means the cache is disabled.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/ocsp-enable.xml b/configs/d.ipsec.conf/ocsp-enable.xml
deleted file mode 100644 (file)
index f8ff918..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<varlistentry>
-  <term>
-    <option>ocsp-enable</option>
-  </term>
-  <listitem>
-    <para>
-      Whether to perform Online Certificate Store Protocol ("OCSP")
-      checks on those certificates that have an OCSP URI
-      defined. Acceptable values are <option>yes</option> or
-      <option>no</option> (the default).
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/ocsp-method.xml b/configs/d.ipsec.conf/ocsp-method.xml
deleted file mode 100644 (file)
index 4bed2cd..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<varlistentry>
-  <term>
-    <option>ocsp-method</option>
-  </term>
-  <listitem>
-    <para>
-      The HTTP methods used for fetching OCSP data. Valid options are
-      <option>get</option> (the default) and
-      <option>post</option>. Note that this behaviour depends on the
-      NSS crypto library that is actually performing the
-      fetching. When set to the get method, post is attempted only as
-      fallback in case of failure. When set to post, only the post
-      method is ever used.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/ocsp-strict.xml b/configs/d.ipsec.conf/ocsp-strict.xml
deleted file mode 100644 (file)
index 4c3fc70..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-<varlistentry>
-  <term>
-    <option>ocsp-strict</option>
-  </term>
-  <listitem>
-    <para>
-      if set to no, pluto is tolerant about failing to obtain an OCSP
-      responses and a certificate is not rejected when the OCSP
-      request fails, only when the OCSP request succeeds and lists the
-      certificate as revoked. If set to yes, any failure on obtaining
-      an OCSP status for a certificate will be fatal and the
-      certificate will be rejected.  Acceptable values are
-      <option>yes</option> or <option>no</option> (the default).
-    </para>
-    <para>
-      The strict mode refers to the NSS
-      ocspMode_FailureIsVerificationFailure mode, while non-strict
-      mode refers to the NSS ocspMode_FailureIsNotAVerificationFailure
-      mode.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/ocsp-timeout.xml b/configs/d.ipsec.conf/ocsp-timeout.xml
deleted file mode 100644 (file)
index c413c46..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-<varlistentry>
-  <term>
-    <option>ocsp-timeout</option>
-  </term>
-  <listitem>
-    <para>
-      The time until an OCSP request is aborted and considered
-      failed. The default value is 2 seconds.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/ocsp-trustname.xml b/configs/d.ipsec.conf/ocsp-trustname.xml
deleted file mode 100644 (file)
index 1ffebfb..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-<varlistentry>
-  <term>
-    <option>ocsp-trustname</option>
-  </term>
-  <listitem>
-    <para>
-      The nickname of the certificate that has been imported into the
-      NSS database of the server handling the OCSP requests. This
-      requires the ocsp-uri option to be set as well. This option and
-      the previous options sets the OCSP <option>default
-      responder</option>.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/ocsp-uri.xml b/configs/d.ipsec.conf/ocsp-uri.xml
deleted file mode 100644 (file)
index aea1696..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<varlistentry>
-  <term>
-    <option>ocsp-uri</option>
-  </term>
-  <listitem>
-    <para>
-      The URI to use for OCSP requests instead of the default OCSP URI
-      listed in the CA certificate. This requires the ocsp-trustname
-      option to be set to the nick (friendly name) of the OCSP server
-      certificate, which needs to be present in the NSS
-      database. These option combined with the next option sets the
-      OCSP <option>default responder</option>.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/oe_conns.xml b/configs/d.ipsec.conf/oe_conns.xml
deleted file mode 100644 (file)
index fe76621..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-<refsect1 id='oe_conns'>
-  <title>
-    OPPORTUNISTIC CONNS
-  </title>
-  <para>
-    For Opportunistic connections, the system requires creating
-    special named conns that are used to implement the default policy
-    groups. Currently, these names cannot be changed.
-  </para>
-  <programlisting><xi:include  href="d.ipsec.conf/oe_conns.example"  parse="text"
-  xmlns:xi="http://www.w3.org/2001/XInclude"/></programlisting>
-</refsect1>
diff --git a/configs/d.ipsec.conf/overlapip.xml b/configs/d.ipsec.conf/overlapip.xml
deleted file mode 100644 (file)
index 5429b19..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-<varlistentry>
-  <term>
-    <option>overlapip</option>
-  </term>
-  <listitem>
-    <para>
-      a boolean (yes/no) that determines, when
-      (left|right)subnet=vhost: is used, if the virtual IP claimed by
-      this states created from this connection can with states created
-      from other connections.
-    </para>
-    <para>
-      Note that connection instances created by the Opportunistic
-      Encryption or PKIX (x.509) instantiation system are distinct
-      internally. They will inherit this policy bit.
-    </para>
-    <para>
-      The default is no.
-    </para>
-    <para>
-      This feature is only available with kernel drivers that support
-      SAs to overlapping conns.  At present only the (klips) mast
-      protocol stack supports this feature.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/pam-authorize.xml b/configs/d.ipsec.conf/pam-authorize.xml
deleted file mode 100644 (file)
index 435ebee..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<varlistentry>
-  <term>
-    <option>pam-authorize</option>
-  </term>
-  <listitem>
-    <para>
-      IKEv2 does not support receiving a plaintext username and
-      password.  &Libreswan; does not yet support EAP authentication
-      methods for IKE.  The pam-authorize=yes option performs an
-      authorization call via PAM, but only includes the remote ID (not
-      username or password). This allows for backends to disallow an
-      ID based on non-password situations, such as "user disabled" or
-      "user over quota".
-    </para>
-    <para>
-      See also the IKEv1 option <option>xauthby=pam</option>
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/pfs.xml b/configs/d.ipsec.conf/pfs.xml
deleted file mode 100644 (file)
index 2f95244..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-<varlistentry>
-  <term>
-    <option>pfs</option>
-  </term>
-  <listitem>
-    <para>
-      whether Perfect Forward Secrecy of keys is desired on the
-      connection's keying channel (with PFS, penetration of the
-      key-exchange protocol does not compromise keys negotiated
-      earlier); Acceptable values are <option>yes</option> (the
-      default) and <option>no</option>.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/phase2.xml b/configs/d.ipsec.conf/phase2.xml
deleted file mode 100644 (file)
index d5df4f0..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-<varlistentry>
-  <term>
-    <option>phase2</option>
-  </term>
-  <listitem>
-    <para>
-      Sets the type of SA that will be produced.  Valid options are:
-      <option>esp</option> for encryption (the default),
-      <option>ah</option> for authentication only.
-    </para>
-    <para>
-      The very first IPsec designs called for use of AH plus ESP to
-      offer authentication, integrity and confidentiality. That dual
-      protocol use was a significant burden, so ESP was extended to
-      offer all three services, and AH remained as an auth/integ. The
-      old mode of <option>ah+esp</option> is no longer supported in
-      compliance with RFC 8221 Section 4.  Additionally, AH does not
-      play well with NATs, so it is strongly recommended to use ESP
-      with the null cipher if you require unencrypted authenticated
-      transport.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/plutodebug.xml b/configs/d.ipsec.conf/plutodebug.xml
deleted file mode 100644 (file)
index 5a96028..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-<varlistentry>
-  <term>
-    <option>plutodebug=<replaceable>option</replaceable></option>
-  </term>
-  <listitem>
-    <para>
-      A comma separated list of options that globally enable internal
-      debug logs.  For debug logs of a single connection, see
-      <option>debug=</option>.
-    </para>
-    <note>
-      <para>
-       This feature is used by &Libreswan; developers when debugging
-       libreswan internals.  The default logs should provide
-       sufficient information to diagnose most configuration and
-       connection problems.
-      </para>
-    </note>
-    <para>
-
-      Below is a select list of debug options (for a complete list
-      <command>ipsec whack --debug help</command>):
-
-      <variablelist>
-
-       <varlistentry>
-         <term>
-           <option>updown</option>
-         </term>
-         <listitem>
-           <para>
-             Run the &ipsec-updown.8; scripts with <command>set -v
-             -x</command>.  Helpful when &ipsec-updown.8; isn't
-             behaving as expected.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>
-           <option>routing</option>
-         </term>
-         <listitem>
-           <para>
-             Dump connection changes (for instance, routed, up,
-             negotiating, ...) and how they interact with the kernel.
-             Helpful when debugging connection transitions, and
-             corresponding updates to kernel state/policy.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>
-           <option>base</option>
-         </term>
-         <listitem>
-           <para>
-             In addition to <option>routing</option>, include general
-             debug messages.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>
-           <option>cpu-usage</option>
-         </term>
-         <listitem>
-           <para>
-             Dump the CPU time consumed as an event is processed.
-             Only recommended when diagnosing performance problems.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>
-           <option>refcnt</option>
-         </term>
-         <listitem>
-           <para>
-             Dump all changes to all reference counters.  Only
-             recommended when tracking down a memory leak.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>
-           <option>all</option>
-         </term>
-         <listitem>
-           <para>
-             Equivalent to <option>routing/</option>,
-             <option>base</option>, <option>cpu-usage</option>, and
-             <option>refcnt</option>.  Recommend using either
-             <option>routing</option>, or <option>base</option>
-             instead.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>
-           <option>crypt</option>
-         </term>
-         <listitem>
-           <para>
-             Dump changes to reference counters.  Only recommended
-             when debugging code making calls into the &NSS; library.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>
-           <option>private</option>
-         </term>
-         <listitem>
-           <para>
-             Dump the cryptographic material used by the IKE and
-             Child SAs.  The format is similar to that expected by
-             <command>tcpdump</command> and
-             <command>wireshark</command>.
-           </para>
-         </listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term>
-           <option>tmi</option>
-         </term>
-         <listitem>
-           <para>
-             It stands for Too Much Information.  Need we say more?
-           </para>
-         </listitem>
-       </varlistentry>
-
-      </variablelist>
-
-      All lines of debugging output are prefixed with "|" to
-      distinguish them from normal diagnostic messages (the the
-      command <command>grep -v -e '|' pluto.log</command> can be used
-      to filter out the debug logs).
-
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/policy-label.xml b/configs/d.ipsec.conf/policy-label.xml
deleted file mode 100644 (file)
index 3ffaef5..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-<varlistentry>
-  <term>
-    <option>policy-label</option>
-  </term>
-  <listitem>
-    <para>
-      The string representation of an access control security label
-      that is interpreted by the Linux Security Module (e.g. SELinux)
-      for use with Labeled IPsec.
-    </para>
-    <para>
-      For example, <option>policy-label=system_u:object_r:ipsec_spd_t:s0-s15:c0.c1023</option>
-    </para>
-    <para>
-      Labeled IPsec support is IKEv2 only.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/policy_group_files.xml b/configs/d.ipsec.conf/policy_group_files.xml
deleted file mode 100644 (file)
index 0917d61..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-<refsect1 id='policy_group_files'>
-  <title>
-    POLICY GROUP FILES
-  </title>
-  <para>
-    The optional files under
-    <filename>@@IPSEC_CONFDDIR@@/policies</filename>,
-    including
-  </para>
-  <para>
-    <filename>@@IPSEC_CONFDDIR@@/policies/clear</filename>
-    <filename>@@IPSEC_CONFDDIR@@/policies/clear-or-private</filename>
-    <filename>@@IPSEC_CONFDDIR@@/policies/private-or-clear</filename>
-    <filename>@@IPSEC_CONFDDIR@@/policies/private</filename>
-    <filename>@@IPSEC_CONFDDIR@@/policies/block</filename>
-  </para>
-  <para>
-    may contain policy group configuration information to supplement
-    <option>ipsec.conf</option>.  Their contents are not
-    security-sensitive.
-  </para>
-  <para>
-    These files are text files.  Each consists of a list of CIDR
-    blocks, one per line.  White space followed by # followed by
-    anything to the end of the line is a comment and is ignored, as
-    are empty lines.
-  </para>
-  <para>
-    A connection in <filename>ipsec.conf</filename> that has
-    <option>right=%group</option> or
-    <option>right=%opportunisticgroup</option> is a policy group
-    connection. When a policy group file of the same name is loaded at
-    system start, the connection is instantiated such that each CIDR
-    block serves as an instance's <option>right</option> value. The
-    system treats the resulting instances as normal connections.
-  </para>
-  <para>
-    For example, given a suitable connection definition
-    <option>private</option>, and the file
-    <filename>@@IPSEC_CONFDDIR@@/policies/private</filename> with an
-    entry 192.0.2.3, the system creates a connection instance
-    <option>private#192.0.2.3.</option> This connection inherits all
-    details from <option>private</option>, except that its right
-    client is 192.0.2.3.
-  </para>
-</refsect1>
diff --git a/configs/d.ipsec.conf/ppk-ids.xml b/configs/d.ipsec.conf/ppk-ids.xml
deleted file mode 100644 (file)
index 8d4aff2..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-<varlistentry>
-  <term>
-    <option>ppk-ids</option>
-  </term>
-  <listitem>
-    <para>
-      EXPERIMENTAL: Specify which PPK_ID's to look for in .secrets
-      file.  The value must be a string (enclosed in quotes)
-      containing a comma-separated list with PPK_ID's. Whitespaces
-      cannot be a part of PPK_ID, i.e., they will be seen as a
-      delimiter. If some PPK_ID's are specified and PPK feature is
-      enabled (<option>ppk=</option>), one of the PPK secrets must
-      have an ID matching one of the specified PPK_ID's. If this
-      option is not set and the PPK feature is enabled, any matching
-      PPK secret will be used.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/ppk.xml b/configs/d.ipsec.conf/ppk.xml
deleted file mode 100644 (file)
index e2dac91..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<varlistentry>
-  <term>
-    <option>ppk</option>
-  </term>
-  <listitem>
-    <para>
-      EXPERIMENTAL: Post-quantum preshared keys (PPKs) to be
-      used. Currently the accepted values are <option>propose</option>
-      or <option>yes</option> (the default), signifying we propose to
-      use PPK for this connection; <option>insist</option>, signifying
-      we allow communication only if PPK is used for key derivation;
-      <option>never</option> or <option>no</option>, signifying that
-      PPK should not be used for key derivation.  PPKs can be used in
-      connections that allow only IKEv2. In libreswan that would mean
-      that ikev2 option must have value <option>insist</option>.  This
-      feature is based on RFC 8784.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/priority.xml b/configs/d.ipsec.conf/priority.xml
deleted file mode 100644 (file)
index dd3b051..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-<varlistentry>
-  <term>
-    <option>priority</option>
-  </term>
-  <listitem>
-    <para>
-      The priority in the kernel SPD/SAD database, when matching up
-      packets.  Each kernel (XFRM, OSX, etc) has its own mechanism
-      for setting the priority. Setting this option to non-zero
-      passes the priority to the kernel stack unmodified. The
-      maximum value depends on the stack. It is recommended not to
-      exceed 65536
-    </para>
-    <para>
-      XFRM use a priority system based on "most specific match
-      first". It uses an internal algorithm to calculate these based
-      on network prefix length, protocol and port selectors. A lower
-      value means a higher priority.
-    </para>
-    <para>
-      Typical values are about the 2000 range. These can be seen on
-      the XFRM stack using <option>ip xfrm policy</option> when the
-      connection is up.  For "anonymous IPsec" or Opportunistic
-      Encryption based connections, a much lower priority (65535) is
-      used to ensure administrator configured IPsec always takes
-      precedence over opportunistic IPsec.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/protoport.xml b/configs/d.ipsec.conf/protoport.xml
deleted file mode 100644 (file)
index 5096003..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-<varlistentry>
-  <term>
-    <option>leftprotoport=&ip_protoport;</option>
-  </term>
-  <term>
-    <option>rightprotoport=&ip_protoport;</option>
-  </term>
-  <listitem>
-    <para>
-      allowed protocols and ports over connection, also called Port
-      Selectors. The argument is in the form <option>protocol</option>,
-      which can be a number or a name
-      that will be looked up in <option>/etc/protocols</option>,
-      such as <option>leftprotoport=icmp</option>, or in the form of
-      <option>protocol/port</option>, such as <option>tcp/smtp</option>.
-      Ports can be defined as a number
-      (eg. 25) or as a name (eg smtp) which will be looked up in
-      <option>/etc/services</option>. A special keyword
-      <option>%any</option> can be used to allow all
-      ports of a certain protocol. The most common use of this option
-      is for L2TP connections to only allow l2tp packets (UDP port
-      1701), eg: <option>leftprotoport=17/1701</option>.
-    </para>
-
-    <para>
-      To filter on specific icmp type and code, use the higher 8 bits
-      for type and the lower 8 bits for port. For example, to allow
-      icmp echo packets (type 8, code 0) the 'port' would be 0x0800,
-      or 2048 in decimal, so you configure
-      <option>leftprotoport=icmp/2048</option>. Similarly, to
-      allow ipv6-icmp Neighbour Discovery which has type 136 (0x88)
-      and code 0(0x00) this becomes 0x8800 or in decimal 34816
-      resulting in <option>leftprotoport=ipv6-icmp/34816</option>.
-    </para>
-
-    <para>
-      Some clients, notably older Windows XP and some Mac OSX clients,
-      use a random high port as source port.  In those cases
-      <option>rightprotoport=17/%any</option> can be used to allow all
-      UDP traffic on the connection.  Note that this option is part of
-      the proposal, so it cannot be arbitrarily left out if one end
-      does not care about the traffic selection over this connection -
-      both peers have to agree.  The Port Selectors show up in the
-      output of <command>ipsec status</command> eg:<option>"l2tp":
-      193.110.157.131[@aivd.libreswan.org]:7/1701...%any:17/1701</option>.
-      This option only filters outbound traffic.  Inbound traffic
-      selection must still be based on firewall rules activated by an
-      updown script.  The environment variables
-      <envar>PLUTO_MY_PROTOCOL</envar>,
-      <envar>PLUTO_PEER_PROTOCOL</envar>,
-      <envar>PLUTO_MY_PORT</envar>, and <envar>PLUTO_PEER_PORT</envar>
-      are available for use in <command>ipsec _updown</command>
-      scripts (see &ipsec-updown.8;).  Older workarounds for bugs
-      involved a setting of <option>17/0</option> to denote
-      <option>any single UDP port</option> (not UDP port 0).  Some
-      clients, most notably OSX, uses a random high port, instead of
-      port 1701 for L2TP.
-    </para>
-
-    <important>
-      <title>
-       Use with <option>leftsubnet=</option>.
-      </title>
-      <para>
-       With IKEv2, the <option>leftsubnet=</option> specification can
-       include the protocol and port.  Combining that syntax with
-       <option>protoport=</option> is not supported.
-      </para>
-    </important>
-
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/protostack.xml b/configs/d.ipsec.conf/protostack.xml
deleted file mode 100644 (file)
index d7ba802..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<varlistentry>
-  <term>
-    <option>protostack</option>
-  </term>
-  <listitem>
-    <para>
-      decide which protocol stack is going to be used. Valid values
-      are "xfrm" and "bsd". This option should no longer be set, as
-      the stack is currently auto-detected. The values "klips, "mast",
-      "netkey", "native", "kame" and "auto" are obsolete. The option
-      is kept only because it is suspected that Linux and BSD will get
-      userspace stacks with IPsec support soon (such as dpdk).
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/redirect-to.xml b/configs/d.ipsec.conf/redirect-to.xml
deleted file mode 100644 (file)
index 294fdce..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-<varlistentry>
-  <term>
-    <option>redirect-to</option>
-  </term>
-  <listitem>
-    <para>
-      Where to send remote peers to via the
-      <option>send-redirect</option> option. This can be an IP address
-      or hostname (FQDN).
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/reject-simultaneous-ike-auth.xml b/configs/d.ipsec.conf/reject-simultaneous-ike-auth.xml
deleted file mode 100644 (file)
index 7c3f68c..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<varlistentry>
-  <term>
-    <option>reject-simultaneous-ike-auth</option>
-  </term>
-  <listitem>
-
-    <para>
-      When libreswan receives IKE_AUTH request from the peer while having
-      an outstanding IKE_AUTH request for the same connection, reject with
-      AUTHENTICATION_FAILED to avoid potential SA mismatch issues. This only
-      applies to permanent IKEv2 connections so that the revival mechanism
-      ensures connection retry.
-    </para>
-
-    <para>
-      The accepted values are <option>yes</option> (the default) or
-      <option>no</option>.
-    </para>
-
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/rekey.xml b/configs/d.ipsec.conf/rekey.xml
deleted file mode 100644 (file)
index 88e2f0d..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<varlistentry>
-  <term>
-    <option>rekey</option>
-  </term>
-  <listitem>
-    <para>
-      whether a connection should be renegotiated when it is about to
-      expire; acceptable values are <option>yes</option> (the default)
-      and <option>no</option>.  The two ends need not agree, but while
-      a value of <option>no</option> prevents Pluto from requesting
-      renegotiation, it does not prevent responding to renegotiation
-      requested from the other end, so <option>no</option> will be
-      largely ineffective unless both ends agree on it.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/rekeyfuzz.xml b/configs/d.ipsec.conf/rekeyfuzz.xml
deleted file mode 100644 (file)
index 233f49c..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<varlistentry>
-  <term>
-    <option>rekeyfuzz</option>
-  </term>
-  <listitem>
-    <para>
-      maximum percentage by which <option>rekeymargin</option> should
-      be randomly increased to randomize rekeying intervals (important
-      for hosts with many connections); acceptable values are an
-      integer, which may exceed 100, followed by a `%' (default set by
-      &ipsec-pluto.8;,
-      currently <option>100%</option>).  The value of
-      <option>rekeymargin</option>, after this random increase, must
-      not exceed <option>salifetime</option>.  The value
-      <option>0%</option> will suppress time randomization.  Relevant
-      only locally, other end need not agree on it.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/rekeymargin.xml b/configs/d.ipsec.conf/rekeymargin.xml
deleted file mode 100644 (file)
index 02cab9d..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-<varlistentry>
-  <term>
-    <option>rekeymargin</option>
-  </term>
-  <listitem>
-    <para>
-      how long before connection expiry or keying-channel expiry
-      should attempts to negotiate a replacement begin; acceptable
-      values as for <option>salifetime</option> (default
-      <option>9m</option>).  Relevant only locally, other end need not
-      agree on it.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/remote-peer-type.xml b/configs/d.ipsec.conf/remote-peer-type.xml
deleted file mode 100644 (file)
index c1775a9..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<varlistentry>
-  <term>
-    <option>remote-peer-type</option>
-  </term>
-  <listitem>
-    <para>
-      Set the remote peer type. This can enable additional processing
-      during the IKEv1 negotiation. Acceptable values are
-      <option>cisco</option> or <option>ietf</option> (the
-      default). When set to cisco, support for Cisco IPsec gateway
-      redirection and Cisco obtained DNS and domainname are
-      enabled. This includes automatically updating (and restoring)
-      /etc/resolv.conf. These options require that XAUTH is also
-      enabled on this connection.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/replay-window.xml b/configs/d.ipsec.conf/replay-window.xml
deleted file mode 100644 (file)
index 925b8f0..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-<varlistentry>
-  <term>
-    <option>replay-window</option>
-  </term>
-  <listitem>
-    <para>
-      The size of the IPsec SA replay window protection in packets.
-      Kernels (Linux, and most BSDs) support a window size of at least
-      2040 packets.  The default replay window size is 128 packets.
-    </para>
-    <para>
-      A value of 0 disables replay protection.  Disabling of replay
-      protection is sometimes used on a pair of IPsec servers in a
-      High Availability setup, or on servers with very unpredictable
-      latency, such as mobile networks, which can cause an excessive
-      amount of out of order packets.
-    </para>
-    <para>
-      Disabling replay protection will also disable Extended Sequence
-      Numbers (esn=no), as advise from RFC 4303 caused some stacks to
-      not support ESN without a replay-window.
-    </para>
-    <para>
-      Note: on Linux, sequence errors can be seen in
-      /proc/net/xfrm_stat.
-    </para>
-    <para>
-      Note: the BSD <option>setkey</option> utility displays the
-      replay window size in bytes (8 packets per byte) and not
-      packets.
-    </para>
-    <para>
-      Technically, at least the Linux kernel can install IPsec SA's
-      with an IPsec SA Sequence Number, but this is currently not
-      supported by libreswan.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/reqid.xml b/configs/d.ipsec.conf/reqid.xml
deleted file mode 100644 (file)
index b1112d8..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-<varlistentry>
-  <term>
-    <option>reqid</option>
-  </term>
-  <listitem>
-    <para>
-      a unique identifier used to match IPsec SAs using iptables with
-      XFRM. This identifier is normally automatically allocated in
-      groups of 4. It is exported to the _updown script as REQID. On
-      Linux, reqids are supported with IP Connection Tracking and NAT
-      (iptables). Automatically generated values use the range 16380
-      and higher. Manually specified reqid values therefore must be
-      between 1 and 16379.
-    </para>
-    <para>
-      Automatically generated reqids use a range of 0-3 (eg 16380-16383 for the
-      first reqid). These are used depending on the exact policy (AH, AH+ESP,
-      IPCOMP, etc).
-    </para>
-    <para>
-      WARNING: Manually assigned reqids are all
-      identical. Instantiations of connections (those using %any
-      wildcards) will all use the same reqid.  If you use manual
-      assigning you should make sure your connections only match
-      single road warrior only or you break multiple road warriors
-      behind same NAT router because this feature requires unique
-      reqids to work.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/require-id-on-certificate.xml b/configs/d.ipsec.conf/require-id-on-certificate.xml
deleted file mode 100644 (file)
index 2f9b3f4..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<varlistentry>
-  <term>
-    <option>require-id-on-certificate</option>
-  </term>
-  <listitem>
-    <para>
-      When using certificates, check whether the IKE peer ID is
-      present as a subjectAltName (SAN) on the peer
-      certificate. Accepted values are <option>yes</option> (the
-      default) or <option>no</option>.  This check should only be
-      disabled when intentionally using certificates that do not have
-      their peer ID specified as a SAN on the certificate. These
-      certificates violate RFC 4945 Section 3.1 and are normally
-      rejected to prevent a compromised host from assuming the IKE
-      identity of another host. The SAN limits the IDs that the peer
-      is able to assume.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/retransmit-interval.xml b/configs/d.ipsec.conf/retransmit-interval.xml
deleted file mode 100644 (file)
index 24637d0..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<varlistentry>
-  <term>
-    <option>retransmit-interval</option>
-  </term>
-  <listitem>
-    <para>
-      the initial interval time period, specified in msecs, that pluto
-      waits before retransmitting an IKE packet. This interval is
-      doubled for each attempt (exponential back-off).  The default
-      set by
-      &ipsec-pluto.8;,
-      currently is <option>500</option>.
-    </para>
-    <para>
-      See also: <option>retransmit-timeout</option> and
-      <option>rekey</option>
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/retransmit-timeout.xml b/configs/d.ipsec.conf/retransmit-timeout.xml
deleted file mode 100644 (file)
index ab882f5..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<varlistentry>
-  <term>
-    <option>retransmit-timeout</option>
-  </term>
-  <listitem>
-    <para>
-      how long a single packet, including retransmits of that packet,
-      may take before the IKE attempt is aborted. If rekeying is
-      enabled, a new IKE attempt is started.  The default set by
-      &ipsec-pluto.8;, currently is <option>60s</option>.
-    </para>
-    <para>
-      See also: <option>retransmit-interval</option> and
-      <option>rekey</option>.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/rsasigkey.xml b/configs/d.ipsec.conf/rsasigkey.xml
deleted file mode 100644 (file)
index 44bc71b..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-<varlistentry>
-  <term>
-    <option>leftrsasigkey</option>
-  </term>
-  <term>
-    <option>rightrsasigkey</option>
-  </term>
-  <listitem>
-    <para>
-      the left participant's public key for RSA signature
-      authentication, in base-64 encoded RFC 2537 format (with 0s
-      prepended), or one of the following:
-      <variablelist>
-       <varlistentry>
-         <term>
-           <option>%none</option>
-         </term>
-         <listitem>
-           <para>
-             the same as not specifying a value (useful to override a
-             default)
-           </para>
-         </listitem>
-       </varlistentry>
-       <varlistentry>
-         <term>
-           <option>%dnsondemand</option>
-         </term>
-         <listitem>
-           <para>
-             (the default) the key is to be fetched from DNS at the
-             time it is needed.
-           </para>
-         </listitem>
-       </varlistentry>
-       <varlistentry>
-         <term>
-           <option>%dnsonload</option>
-         </term>
-         <listitem>
-           <para>
-             the key is to be fetched from DNS at the time the
-             connection description is read from
-             <option>ipsec.conf</option>; currently this will be
-             treated as <option>%none</option> if
-             <option>right=%any</option> or
-             <option>right=%opportunistic</option>.
-           </para>
-         </listitem>
-       </varlistentry>
-       <varlistentry>
-         <term>
-           <option>%dns</option>
-         </term>
-         <listitem>
-           <para>
-             currently treated as <option>%dnsonload</option> but
-             will change to <option>%dnsondemand</option> in the
-             future.  The identity used for the left participant must
-             be a specific host, not <option>%any</option> or
-             another magic value.
-           </para>
-         </listitem>
-       </varlistentry>
-       <varlistentry>
-         <term>
-           <option>%cert</option>
-         </term>
-         <listitem>
-           <para>
-             the information required from a certificate defined in
-             <option>%leftcert</option> and automatically define
-             leftid for you
-           </para>
-         </listitem>
-       </varlistentry>
-      </variablelist>
-    </para>
-    <caution>
-      <para>
-       If two connection descriptions specify different public keys
-       for the same <option>leftid</option>, confusion and
-       madness will ensue.
-      </para>
-    </caution>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/salifetime.xml b/configs/d.ipsec.conf/salifetime.xml
deleted file mode 100644 (file)
index 6601dfc..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-<varlistentry>
-  <term>
-    <option>salifetime</option>
-  </term>
-  <listitem>
-    <para>
-      how long a particular instance of a connection (a set of
-      encryption/authentication keys for user packets) should last,
-      from successful negotiation to expiry; acceptable values are an
-      integer optionally followed by <option>s</option> (a time in
-      seconds) or a decimal number followed by <option>m</option>,
-      <option>h</option>, or <option>d</option> (a time in minutes,
-      hours, or days respectively) (default <option>8h</option>,
-      maximum <option>24h</option>).  Normally, the connection is
-      renegotiated (via the keying channel) before it expires.  The
-      two ends need not exactly agree on <option>salifetime</option>,
-      although if they do not, there will be some clutter of
-      superseded connections on the end which thinks the lifetime is
-      longer.
-    </para>
-    <para>
-      The keywords "keylife" and "lifetime" are obsoleted aliases for
-      "salifetime."  Change your configs to use "salifetime" instead.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/seccomp.xml b/configs/d.ipsec.conf/seccomp.xml
deleted file mode 100644 (file)
index 2ab6fc6..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-<varlistentry>
-  <term>
-    <option>seccomp</option>
-  </term>
-  <listitem>
-    <para>
-      Set the seccomp kernel syscall whitelisting feature. When set to
-      <option>enabled</option>, if pluto calls a syscall that is not
-      on the compiled-in whitelist, the kernel will assume an exploit
-      is attempting to use pluto for malicious access to the system
-      and terminate the pluto daemon. When set to
-      <option>tolerant</option>, the kernel will only block the rogue
-      syscall and pluto will attempt to continue. If set to
-      <option>disabled</option>, pluto is allowed to call any syscall
-      offered by the kernel, although it might be restricted via other
-      security mechanisms, such as capabilities, SElinux, AppArmor or
-      other OS security features.
-    </para>
-    <para>
-      By default, seccomp is disabled, as there is a significant
-      performance penalty, custom updown scripts could trigger false
-      positives, and system library updates could also trigger false
-      positives. A false positive (or real malicious remote code
-      execution of a bad syscall) will cause the pluto daemon to crash
-      or hang.
-    </para>
-    <para>
-      <option>Warning:</option> The restrictions of pluto are
-      inherited by the updown scripts, so these scripts are also not
-      allowed to use syscalls that are forbidden for pluto.
-    </para>
-    <para>
-      To see if a seccomp rule got triggered, you must run with
-      seccomp=enabled, and keep an eye on
-      <option>type=SECCOMP</option> messages in the audit log (usually
-      <option>/var/log/audit/audit.log</option>. Note that logging can
-      be delayed by many seconds.
-    </para>
-    <para>
-      This feature can be tested using <command>ipsec whack
-      --seccomp-crashtest</command>. <option>Warning: </option> With
-      seccomp=enabled, pluto will be terminated by the kernel. With
-      seccomp=tolerant or seccomp=disabled, pluto will report the
-      results of the seccomp test. SECCOMP will log the forbidden
-      syscall numbers to the audit log, but only with
-      seccomp=enabled. The tool scmp_sys_resolver from the libseccomp
-      development package can be used to translate the syscall number
-      into a name. See programs/pluto/pluto_seccomp.c for the list of
-      allowed syscalls.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/secretsfile.xml b/configs/d.ipsec.conf/secretsfile.xml
deleted file mode 100644 (file)
index ecbd4dc..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<varlistentry>
-  <term>
-    <option>secretsfile</option>
-  </term>
-  <listitem>
-    <para>
-      pathname of the file that stores the secret credentials such as
-      preshared keys (PSKs). See <option>man ipsec.secrets</option>
-      for the syntax.  The default value is
-      <filename>@@IPSEC_SECRETS@@</filename>.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/sect/author.xml b/configs/d.ipsec.conf/sect/author.xml
new file mode 100644 (file)
index 0000000..ec1ab32
--- /dev/null
@@ -0,0 +1,6 @@
+<refsect1 id='author'>
+  <title>AUTHOR</title>
+  <para>
+    <author><personname><firstname>Paul</firstname><surname>Wouters</surname></personname></author>
+  </para>
+</refsect1>
diff --git a/configs/d.ipsec.conf/sect/bugs.xml b/configs/d.ipsec.conf/sect/bugs.xml
new file mode 100644 (file)
index 0000000..c38f8e0
--- /dev/null
@@ -0,0 +1,63 @@
+<refsect1 id='bugs'>
+  <title>
+    BUGS
+  </title>
+  <para>
+    Before reporting new bugs, please ensure you are using the latest
+    version of Libreswan.
+  </para>
+
+  <para>
+    When <option>type</option> or <option>failureshunt</option> is set
+    to <option>drop</option> or <option>reject,</option> &Libreswan;
+    blocks outbound packets using eroutes, but assumes inbound
+    blocking is handled by the firewall.  &Libreswan; offers firewall
+    hooks via an &ldquo;updown&rdquo; script.  However, the default
+    <command>ipsec _updown</command> provides no help in controlling a
+    modern firewall.
+  </para>
+
+  <para>
+    Including attributes of the keying channel (authentication
+    methods, <option>ikelifetime</option>, etc.) as an
+    attribute of a connection, rather than of a participant pair, is
+    dubious and incurs limitations.
+  </para>
+
+  <para>
+    The use of <option>%any</option> with the <option>protoport=</option>
+    option is ambiguous. Should the SA permits any port through or should
+    the SA negotiate any single port through?  The first is a basic conn with
+    a wildcard. The second is a template. The second is the current behaviour,
+    and it's wrong for quite a number of uses involving TCP. The keyword
+    <option>%one</option> may be introduced in the
+    future to separate these two cases.
+  </para>
+
+  <para>
+    It would be good to have a line-continuation syntax, especially
+    for the very long lines involved in RSA signature keys.
+  </para>
+
+  <para>
+    The ability to specify different identities, <option>authby</option>,
+    and public keys for different automatic-keyed connections between
+    the same participants is misleading; this doesn't work dependably
+    because the identity of the participants is not known early enough.
+    This is especially awkward for the &ldquo;Road Warrior&rdquo; case,
+    where the remote IP address is specified as <literal>0.0.0.0</literal>,
+    and that is considered to be the &ldquo;participant&rdquo; for such
+    connections.
+  </para>
+
+  <para>
+    If conns are to be added before DNS is available, <option>left=</option>
+    <option>FQDN</option>, <option>leftnextop=</option><option>FQDN</option>,
+    and <option>leftrsasigkey=%dnsonload</option> will fail.
+    &ipsec-pluto.8;
+    does not actually use the public key for our side of a conn but it
+    isn't generally known at a add-time which side is ours (Road
+    Warrior and Opportunistic conns are currently exceptions).
+  </para>
+
+</refsect1>
diff --git a/configs/d.ipsec.conf/sect/choosing_a_connection.xml b/configs/d.ipsec.conf/sect/choosing_a_connection.xml
new file mode 100644 (file)
index 0000000..da36d12
--- /dev/null
@@ -0,0 +1,22 @@
+<refsect1 id='choosing_a_connection'>
+  <title>
+    CHOOSING A CONNECTION [THIS SECTION IS EXTREMELY OUT OF DATE
+  </title>
+  <para>
+    When choosing a connection to apply to an outbound packet caught
+    with a <option>%trap,</option> the system prefers
+    the one with the most specific eroute that includes the packet's
+    source and destination IP addresses.  Source subnets are examined
+    before destination subnets.  For initiating, only routed
+    connections are considered. For responding, unrouted but added
+    connections are considered.
+  </para>
+  <para>
+    When choosing a connection to use to respond to a negotiation
+    that doesn't match an ordinary conn, an opportunistic connection may
+    be instantiated. Eventually, its instance will be /32 -&gt; /32, but
+    for earlier stages of the negotiation, there will not be enough
+    information about the client subnets to complete the
+    instantiation.
+  </para>
+</refsect1>
diff --git a/configs/d.ipsec.conf/sect/connsections.xml b/configs/d.ipsec.conf/sect/connsections.xml
new file mode 100644 (file)
index 0000000..04f7606
--- /dev/null
@@ -0,0 +1,174 @@
+<refsect1 id='description'>
+
+  <title>
+    DESCRIPTION
+  </title>
+
+  <para>
+    The <filename>ipsec.conf</filename> file specifies most
+    configuration and control information for the &Libreswan; IPsec
+    subsystem (the major exception is secrets for authentication; see
+    &ipsec.secrets.5;).  &Libreswan; reads this file during start up
+    (technically, if &Libreswan;'s daemon &ipsec-pluto.8; is invoked
+    directly then the file <filename>ipsec.conf</filename> is not
+    needed; however, this is not recommended).  Configurations can be
+    added using eithe this configuration file or by using
+    <command>ipsec whack</command> directly.
+  </para>
+
+  <para>
+    <filename>ipsec.conf</filename> is a text file, consisting of one
+    or more <option>sections</option>.
+  </para>
+
+  <para>
+    Within the file, white space followed by <option>#</option>
+    followed by anything to the end of the line is a comment and is
+    ignored, as are empty lines that are not within a section.
+  </para>
+
+  <para>
+    A line that contains <option>include</option> and a file name,
+    separated by white space, is replaced by the contents of that
+    file.  If the file name is not a full pathname, it is considered
+    to be relative to the directory that contains the including file.
+    Such inclusions can be nested.  Only a single filename may be
+    supplied, and it may not contain white space, but it may include
+    shell wildcards (see &glob.3;); for example:
+  </para>
+
+  <para>
+    <option>include</option> <filename>/etc/ipsec.d/*.conf</filename>
+  </para>
+
+  <para>
+    The intention of the include facility is mostly to permit keeping
+    information on connections, or sets of connections, separate from
+    the main configuration file.  This permits such connection
+    descriptions to be changed, copied to the other security gateways
+    involved, etc., without having to constantly extract them from the
+    configuration file and then insert them back into it.  Note also
+    the <option>also</option> parameters (described below) which
+    permit splitting a single logical section (e.g. a connection
+    description) into several distinct sections.
+  </para>
+
+  <para>
+    The first significant line of the file may specify a version of
+    this specification for backwards compatibility with freeswan and
+    openswan. It is ignored and unused. For compatibility with
+    openswan, specify:
+  </para>
+
+  <para>
+    <option>version 2</option>
+  </para>
+
+  <para>
+    A section begins with a line of the form:
+  </para>
+
+  <para>
+    <replaceable>type</replaceable> <replaceable>name</replaceable>
+  </para>
+
+  <para>
+    where <replaceable>type</replaceable> indicates what type of
+    section follows, and <replaceable>name</replaceable> is an
+    arbitrary name that distinguishes the section from others of the
+    same type.  Names must start with a letter and may contain only
+    letters, digits, periods, underscores, and hyphens.  All
+    subsequent non-empty lines that begin with white space are part of
+    the section; comments within a section must begin with white space
+    too.  There may be only one section of a given type with a given
+    name.
+  </para>
+
+  <para>
+    There are two types of section: a <option>config</option>
+    section specifies general configuration information for
+    &Libreswan;, and a
+    <option>conn</option> section specifies an IPsec connection.
+  </para>
+
+  <para>
+    Lines within the section are generally of the form
+  </para>
+
+  <para>
+    <replaceable>parameter</replaceable>=<replaceable>value</replaceable>
+  </para>
+
+  <para>
+    (note the mandatory preceding white space).  There can be white
+    space on either side of the <option>=</option>.  Parameter
+    names follow the same syntax as section names, and are specific to
+    a section type.  Unless otherwise explicitly specified, no
+    parameter name may appear more than once in a section.
+  </para>
+
+  <para>
+    An empty <replaceable>value</replaceable> stands for the empty
+    string.  A non-empty <replaceable>value</replaceable> may contain
+    white space only if the entire <replaceable>value</replaceable> is
+    enclosed in double quotes (<option>"</option>); a
+    <replaceable>value</replaceable> cannot itself contain a double
+    quote, nor may it be continued across more than one line.
+  </para>
+
+  <para>
+    Numeric values are specified to be either an integer (a sequence
+    of digits) or a decimal number (sequence of digits optionally
+    followed by `.' and another sequence of digits).
+  </para>
+
+  <para>
+    There is currently one parameter that is available in any type of
+    section:
+  </para>
+
+  <variablelist>
+    <varlistentry>
+      <term><option>also=<replaceable>value</replaceable></option></term>
+      <listitem>
+       <para>
+         The <replaceable>value</replaceable> is a section name.  The
+         parameters of that section are inserted, in place, into this
+         section (i.e., as if they had been written as part of and at
+         that point in the section's definition).  The specified
+         section must exist, and must have the same section type.
+         Multiple and nested <option>also</option> are permitted
+         (duplicate insertions of the same section are ignored).
+         When the same <option>parameter</option> appears in
+         multiple sections, the first definition encountered is used.
+         This allows, for example, keeping the encryption keys for a
+         connection in a separate file from the rest of the
+         description, by using both an <option>also</option> parameter
+         and an <option>include</option> line.
+       </para>
+       <para>
+         Putting <option>also</option> at the end of the section after
+         any <option>parameter</option> definitions is
+         recommended.  This way, the section's
+         <option>parameter</option>
+         <replaceable>value</replaceable> overrides
+         <option>also</option> sections.
+       </para>
+      </listitem>
+    </varlistentry>
+  </variablelist>
+
+  <para>
+    A section with name <option>%default</option> specifies
+    defaults for sections of the same type.  For each parameter in it,
+    any section of that type that does not have a parameter of the
+    same name gets a copy of the one from the
+    <option>%default</option> section.  There may be multiple
+    <option>%default</option> sections of a given type and
+    multiple default values for a given parameter (the last
+    <option>value</option> is used).
+    <option>%default</option> sections may not contain any
+    <option>also</option> parameters.
+  </para>
+
+</refsect1>
diff --git a/configs/d.ipsec.conf/sect/default_policy_groups.xml b/configs/d.ipsec.conf/sect/default_policy_groups.xml
new file mode 100644 (file)
index 0000000..cb18382
--- /dev/null
@@ -0,0 +1,13 @@
+<refsect1 id='default_policy_groups'>
+  <title>
+    DEFAULT POLICY GROUPS
+  </title>
+  <para>
+    The standard &Libreswan; install includes several policy groups
+    which provide a way of classifying possible peers into IPsec
+    security classes: <option>private</option> (talk encrypted only),
+    <option>private-or-clear</option> (prefer encryption),
+    <option>clear-or-private</option> (respond to requests for
+    encryption), <option>clear</option> and <option>block</option>.
+  </para>
+</refsect1>
diff --git a/configs/d.ipsec.conf/sect/exampleleftright.xml b/configs/d.ipsec.conf/sect/exampleleftright.xml
new file mode 100644 (file)
index 0000000..9381a1d
--- /dev/null
@@ -0,0 +1,67 @@
+
+  <title>CONN SECTIONS</title>
+  <para>
+    A <option>conn</option> section contains a <option>connection
+    specification</option>, defining a network connection to be made
+    using IPsec.  The name given is arbitrary, and is used to identify
+    the connection to &ipsec.8; sub-commands.  Here's a simple
+    example:
+  </para>
+
+  <programlisting><xi:include  href="d.ipsec.conf/exampleleftright.example"  parse="text"
+  xmlns:xi="http://www.w3.org/2001/XInclude"/></programlisting>
+
+  <para>
+    A note on terminology...  In automatic keying, there are two
+    kinds of communications going on: transmission of user IP packets, and
+    gateway-to-gateway negotiations for keying, rekeying, and general
+    control.  The data path (a set of &ldquo;Child SAs&rdquo;) used for
+    user packets is herein referred to as the &ldquo;connection&rdquo;;
+    the path used for negotiations (built with &ldquo;IKE SAs&rdquo;)
+    is referred to as the &ldquo;keying channel&rdquo;.
+  </para>
+
+  <para>
+    To avoid trivial editing of the configuration file to suit it to each system
+    involved in a connection,
+    connection specifications are written in terms of
+    <option>left</option>
+    and
+    <option>right</option>
+    participants,
+    rather than in terms of local and remote.
+    Which participant is considered
+    <option>left</option>
+    or
+    <option>right</option>
+    is arbitrary;
+    IPsec figures out which one it is being run on based on internal information.
+    This permits using identical connection specifications on both ends.
+    There are cases where there is no symmetry; a good convention is to
+    use
+    <option>left</option>
+    for the local side and
+    <option>right</option>
+    for the remote side (the first letters are a good mnemonic).
+  </para>
+
+  <para>
+    Many of the parameters relate to one participant or the other;
+    only the ones for
+    <option>left</option>
+    are listed here, but every parameter whose name begins with
+    <option>left</option>
+    has a
+    <option>right</option>
+    counterpart,
+    whose description is the same but with
+    <option>left</option>
+    and
+    <option>right</option>
+    reversed.
+  </para>
+
+  <para>
+    Parameters are optional unless marked &ldquo;(required)&rdquo;
+  </para>
+
diff --git a/configs/d.ipsec.conf/sect/files.xml b/configs/d.ipsec.conf/sect/files.xml
new file mode 100644 (file)
index 0000000..21b7458
--- /dev/null
@@ -0,0 +1,13 @@
+<refsect1 id='files'>
+  <title>
+    FILES
+  </title>
+  <para>
+    <filename>/etc/ipsec.conf</filename>
+    <filename>/etc/ipsec.d/policies/clear</filename>
+    <filename>/etc/ipsec.d/policies/clear-or-private</filename>
+    <filename>/etc/ipsec.d/policies/private-or-clear</filename>
+    <filename>/etc/ipsec.d/policies/private</filename>
+    <filename>/etc/ipsec.d/policies/block</filename>
+  </para>
+</refsect1>
diff --git a/configs/d.ipsec.conf/sect/history.xml b/configs/d.ipsec.conf/sect/history.xml
new file mode 100644 (file)
index 0000000..b251aab
--- /dev/null
@@ -0,0 +1,10 @@
+<refsect1 id='history'>
+  <title>
+    HISTORY
+  </title>
+  <para>
+    Designed for the FreeS/WAN project &lt;<ulink
+    url='https://www.freeswan.org'>https://www.freeswan.org</ulink>&gt;
+    by Henry Spencer.
+  </para>
+</refsect1>
diff --git a/configs/d.ipsec.conf/sect/oe_conns.xml b/configs/d.ipsec.conf/sect/oe_conns.xml
new file mode 100644 (file)
index 0000000..fe76621
--- /dev/null
@@ -0,0 +1,12 @@
+<refsect1 id='oe_conns'>
+  <title>
+    OPPORTUNISTIC CONNS
+  </title>
+  <para>
+    For Opportunistic connections, the system requires creating
+    special named conns that are used to implement the default policy
+    groups. Currently, these names cannot be changed.
+  </para>
+  <programlisting><xi:include  href="d.ipsec.conf/oe_conns.example"  parse="text"
+  xmlns:xi="http://www.w3.org/2001/XInclude"/></programlisting>
+</refsect1>
diff --git a/configs/d.ipsec.conf/sect/policy_group_files.xml b/configs/d.ipsec.conf/sect/policy_group_files.xml
new file mode 100644 (file)
index 0000000..0917d61
--- /dev/null
@@ -0,0 +1,46 @@
+<refsect1 id='policy_group_files'>
+  <title>
+    POLICY GROUP FILES
+  </title>
+  <para>
+    The optional files under
+    <filename>@@IPSEC_CONFDDIR@@/policies</filename>,
+    including
+  </para>
+  <para>
+    <filename>@@IPSEC_CONFDDIR@@/policies/clear</filename>
+    <filename>@@IPSEC_CONFDDIR@@/policies/clear-or-private</filename>
+    <filename>@@IPSEC_CONFDDIR@@/policies/private-or-clear</filename>
+    <filename>@@IPSEC_CONFDDIR@@/policies/private</filename>
+    <filename>@@IPSEC_CONFDDIR@@/policies/block</filename>
+  </para>
+  <para>
+    may contain policy group configuration information to supplement
+    <option>ipsec.conf</option>.  Their contents are not
+    security-sensitive.
+  </para>
+  <para>
+    These files are text files.  Each consists of a list of CIDR
+    blocks, one per line.  White space followed by # followed by
+    anything to the end of the line is a comment and is ignored, as
+    are empty lines.
+  </para>
+  <para>
+    A connection in <filename>ipsec.conf</filename> that has
+    <option>right=%group</option> or
+    <option>right=%opportunisticgroup</option> is a policy group
+    connection. When a policy group file of the same name is loaded at
+    system start, the connection is instantiated such that each CIDR
+    block serves as an instance's <option>right</option> value. The
+    system treats the resulting instances as normal connections.
+  </para>
+  <para>
+    For example, given a suitable connection definition
+    <option>private</option>, and the file
+    <filename>@@IPSEC_CONFDDIR@@/policies/private</filename> with an
+    entry 192.0.2.3, the system creates a connection instance
+    <option>private#192.0.2.3.</option> This connection inherits all
+    details from <option>private</option>, except that its right
+    client is 192.0.2.3.
+  </para>
+</refsect1>
diff --git a/configs/d.ipsec.conf/sect/see_also.xml b/configs/d.ipsec.conf/sect/see_also.xml
new file mode 100644 (file)
index 0000000..1983489
--- /dev/null
@@ -0,0 +1,8 @@
+<refsect1 id='see_also'>
+  <title>
+    SEE ALSO
+  </title>
+  <para>
+    &ipsec.8;, &ipsec-rsasigkey.8;
+  </para>
+</refsect1>
diff --git a/configs/d.ipsec.conf/sect/units.xml b/configs/d.ipsec.conf/sect/units.xml
new file mode 100644 (file)
index 0000000..2dffb74
--- /dev/null
@@ -0,0 +1,84 @@
+<refsect1>
+  <title>
+    SPECIFYING UNITS
+  </title>
+
+  <refsect2 id='unit_bytes'>
+    <title>
+      BYTE COUNTS AND BINARY DATA
+    </title>
+    <para>
+      Options, such as <option>ipsec-max-bytes</option>, that expect a
+      numeric byte count, also accept deciml fractions, and the
+      following multipliers as a suffix:
+      <variablelist>
+       <varlistentry>
+         <term><option>KiB</option></term>
+         <listitem><para>kilobytes (1024 bytes)</para></listitem>
+       </varlistentry>
+       <varlistentry>
+         <term><option>MiB</option></term>
+         <listitem><para>megabytes (1024*1024 bytes)</para></listitem>
+       </varlistentry>
+       <varlistentry>
+         <term><option>GiB</option></term>
+         <listitem><para>gigabytes (1024*1024*1024 bytes)</para></listitem>
+       </varlistentry>
+       <varlistentry>
+         <term><option>TiB</option></term>
+         <listitem><para>terabytes (1024*1024*1024*1024 bytes)</para></listitem>
+       </varlistentry>
+       <varlistentry>
+         <term><option>PiB</option></term>
+         <listitem><para>petabytes (1024*1024*1024*1024*1024 bytes)</para></listitem>
+       </varlistentry>
+       <varlistentry>
+         <term><option>EiB</option></term>
+         <listitem><para>exabytes (1024*1024*1024*1024*1024*1024 bytes)</para></listitem>
+       </varlistentry>
+      </variablelist>
+    </para>
+  </refsect2>
+
+  <refsect2 id='unit_duration'>
+    <title>
+      DURATION
+    </title>
+    <para>
+      Options, such as <option>retransmit-timeout</option>, that
+      expect a numeric duration, also accept decimal fractions, and
+      the following multipliers as a suffix:
+      <variablelist>
+       <varlistentry>
+         <term><option>us</option></term>
+         <listitem><para>microseconds (1/1000000 seconds)</para></listitem>
+       </varlistentry>
+       <varlistentry>
+         <term><option>ms</option></term>
+         <listitem><para>milliseconds (1/1000 seconds)</para></listitem>
+       </varlistentry>
+       <varlistentry>
+         <term><option>s</option></term>
+       <listitem><para>seconds</para></listitem></varlistentry>
+       <varlistentry><term><option>m</option></term>
+       <listitem><para>minutes (60 seconds)</para></listitem>
+       </varlistentry>
+       <varlistentry>
+         <term><option>h</option></term>
+         <listitem><para>hours (60*60 seconds)</para></listitem>
+       </varlistentry>
+       <varlistentry>
+         <term><option>d</option></term>
+         <listitem><para>days (24*60*60 seconds)</para></listitem>
+       </varlistentry>
+       <varlistentry>
+         <term><option>w</option></term>
+         <listitem><para>weeks (7*24*60*60 seconds)</para></listitem>
+       </varlistentry>
+      </variablelist>
+      For instance, 1ms and 1000us, 0.5s and 500ms, 1.5h and 90m, are
+      each equivalent.
+    </para>
+</refsect2>
+
+</refsect1>
diff --git a/configs/d.ipsec.conf/see_also.xml b/configs/d.ipsec.conf/see_also.xml
deleted file mode 100644 (file)
index 1983489..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-<refsect1 id='see_also'>
-  <title>
-    SEE ALSO
-  </title>
-  <para>
-    &ipsec.8;, &ipsec-rsasigkey.8;
-  </para>
-</refsect1>
diff --git a/configs/d.ipsec.conf/seedbits.xml b/configs/d.ipsec.conf/seedbits.xml
deleted file mode 100644 (file)
index bff484d..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<varlistentry>
-  <term>
-    <option>seedbits</option>
-  </term>
-  <listitem>
-    <para>
-      Pluto uses the NSS crypto library as its random source. Some
-      government Three Letter Agencies require that pluto reads
-      additional bits from /dev/random and feed these into the NSS RNG
-      before drawing random from the NSS library, despite the NSS
-      library itself already seeding its internal state. This process
-      can block pluto for an extended time during startup, depending
-      on the entropy of the system. Therefore, the default is to not
-      perform this redundant seeding. If specifying a value, it is
-      recommended to specify at least 460 bits (for FIPS) or 440 bits
-      (for BSI).
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/send-no-esp-tfc.xml b/configs/d.ipsec.conf/send-no-esp-tfc.xml
deleted file mode 100644 (file)
index ada0d57..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-<varlistentry>
-  <term><option>send-no-esp-tfc</option></term>
-  <listitem>
-    <para>
-      Whether or not to tell the remote peer that we do not support Traffic Flow Confidentiality ("TFC")
-      (RFC-4303). Possible values are <option>no</option> (the default) which allows the
-      peer to use TFC or <option>yes</option> which prevents to peer from using TFC.
-      This does not affect whether this endpoint uses TFC, which only depends on the
-      local <option>tfc</option> setting. This option is only valid for IKEv2.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/send-redirect.xml b/configs/d.ipsec.conf/send-redirect.xml
deleted file mode 100644 (file)
index f1b9548..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-<varlistentry>
-  <term>
-    <option>send-redirect</option>
-  </term>
-  <listitem>
-    <para>
-      Whether to send requests for the remote peer to redirect
-      IKE/IPsec SA's during IKE_AUTH. Valid options are
-      <option>no</option> (the default) and <option>yes</option>. If
-      set, the option <option>redirect-to=</option> must also be set
-      to indicate where to redirect peers to. For redirection during
-      IKE_SA_INIT exchange, see the <option>global-redirect=</option>
-      and <option>global-redirect-to=</option> options. Runtime
-      redirects can be triggered via the <command>ipsec
-      redirect</command> command.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/send-vendorid.xml b/configs/d.ipsec.conf/send-vendorid.xml
deleted file mode 100644 (file)
index 59ebf52..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-<varlistentry>
-  <term>
-    <option>send-vendorid</option>&yN_options;
-  </term>
-  <listitem>
-    <para>
-      whether to send our Vendor ID during IKE.  Acceptable values
-      are: <option>no</option> (the default) and
-      <option>yes</option>. The vendor id sent can be configured using
-      the "config setup" option <option>myvendorid=</option>.  It
-      defaults to OE-Libreswan-VERSION.
-    </para>
-    <para>
-      Vendor ID's can be useful in tracking interoperability
-      problems. However, specific vendor identification and software
-      versions can be useful to an attacker when there are known
-      vulnerabilities to a specific vendor/version.
-    </para>
-    <para>
-      The prefix OE stands for "Opportunistic Encryption". This prefix
-      was historically used by The FreeS/WAN Project and The Openswan
-      Project (openswan up to version 2.6.38) and in one Xeleranized
-      openswan versions (2.6.39). Further Xeleranized openswan's use
-      the prefix OSW.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/sendca.xml b/configs/d.ipsec.conf/sendca.xml
deleted file mode 100644 (file)
index 5b6f707..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<varlistentry>
-  <term>
-    <option>sendca</option>
-  </term>
-  <listitem>
-    <para>
-      How many of the available X.509 intermediate CA certificates to
-      send with the End certificate (root CA's are never sent).
-      Specifying <option>none</option> sends no intermediate
-      certificates, <option>issuer</option> sends the End
-      certificate's issuing intermediate CA, and <option>all</option>
-      sends all intermediate CAs (the default).
-    </para>
-    <para>
-      Prior to &Libreswan; version 5.3, the default was
-      <option>none</option> (that is, no intermediate CAs were sent).
-      &Libreswan; never sends intermediate certificates when
-      establishing a connection using IKEv1's Agressive Mode.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/sendcert.xml b/configs/d.ipsec.conf/sendcert.xml
deleted file mode 100644 (file)
index dcb9c06..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-<varlistentry>
-  <term>
-    <option>leftsendcert</option>
-  </term>
-  <term>
-    <option>rightsendcert</option>
-  </term>
-  <listitem>
-    <para>
-      This option configures when &Libreswan; will send &X.509;
-      certificates to the remote host.  Acceptable values are:
-
-      <variablelist spacing="compact">
-
-       <varlistentry>
-         <term><option>yes</option></term>
-         <term><option>always</option></term>
-         <listitem><para>always send a certificate</para></listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term><option>sendifasked</option></term>
-         <listitem><para>send a certificate when the peer asks for it
-         (for instance by sending a CERTREQ
-         payload)</para></listitem>
-       </varlistentry>
-
-       <varlistentry>
-         <term><option>no</option></term>
-         <term><option>never</option></term>
-         <listitem><para>never send a certificate</para></listitem>
-       </varlistentry>
-
-      </variablelist>
-
-      The default for this option is <option>always</option>.  Note
-      that while <option>always</option> is suboptimal, setting this
-      to <option>sendifasked</option> may break compatibility with
-      other vendor's IPsec implementations, such as &Cisco;.  If you
-      find that you are getting errors about no ID/Key found, you
-      likely need to revert this option to <option>always</option>.
-    </para>
-
-    <para>
-      This option was added in &Libreswan; 2.5.14; in &Libreswan;
-      2.28, the default was changed from <option>sendifasked</option>
-      to <option>always</option>; and in &Libreswan; 3.0, the related
-      and obsolete global option <option>nocrsend=</option> was
-      removed.
-    </para>
-
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/audit-log.xml b/configs/d.ipsec.conf/setup/audit-log.xml
new file mode 100644 (file)
index 0000000..f8dd937
--- /dev/null
@@ -0,0 +1,27 @@
+<varlistentry>
+  <term>
+    <option>audit-log</option>=&Yn_options;
+  </term>
+  <listitem>
+    <para>
+      Whether pluto should produce Linux Auditing System log messages.
+      If enabled, pluto will log <option>start</option>,
+      <command>stop</command> and <option>fail</option> for the
+      negotiation of IKE and IPsec SA's.  The kernel will also log
+      success and failures for actually adding and removing IPsec SA's
+      from the kernel's SADB.  Valid options are
+      <option>yes</option>(the default) and <option>no</option>.  On
+      non-Linux systems, this option is ignored.  If enabled but the
+      kernel is lacking audit support, audit messages are not sent.
+      If the kernel has audit support and using it fails, pluto will
+      abort.  Note that for compliance reasons, audit log messages
+      contain the relevant IP addresses, even if
+      <option>logip=no</option>.
+    </para>
+    <para>
+      Prior to &Libreswan; version 5.3, when <command>pluto</command>
+      was invoked directly and without a configuration file, this
+      option was set to <option>no</option>.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/crl-strict.xml b/configs/d.ipsec.conf/setup/crl-strict.xml
new file mode 100644 (file)
index 0000000..fdfcc42
--- /dev/null
@@ -0,0 +1,20 @@
+<varlistentry>
+  <term>
+    <option>crl-strict=</option>
+  </term>
+  <listitem>
+    <para>
+      if not set, pluto is tolerant about missing or expired X.509
+      Certificate Revocation Lists (CRL's), and will allow peer
+      certificates as long as they do not appear on an expired CRL.
+      When this option is enabled, all connections with an expired or
+      missing CRL will be denied.  Active connections will be
+      terminated at rekey time.  This setup is more secure, but
+      vulnerable to downtime if the CRL expires.  Acceptable values
+      are <option>yes</option> or <option>no</option> (the default).
+    </para>
+    <para>
+      This option used to be called <option>strictcrlpolicy</option>.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/crl-timeout.xml b/configs/d.ipsec.conf/setup/crl-timeout.xml
new file mode 100644 (file)
index 0000000..cc66d51
--- /dev/null
@@ -0,0 +1,9 @@
+<varlistentry>
+  <term><option>crl-timeout</option></term>
+  <listitem>
+    <para>
+      The timeout for used when fetching CRLs.  The default is 5s.
+    </para>
+  </listitem>
+</varlistentry>
+
diff --git a/configs/d.ipsec.conf/setup/crlcheckinterval.xml b/configs/d.ipsec.conf/setup/crlcheckinterval.xml
new file mode 100644 (file)
index 0000000..3058489
--- /dev/null
@@ -0,0 +1,18 @@
+<varlistentry>
+  <term>
+    <option>crlcheckinterval</option>
+  </term>
+  <listitem>
+    <para>
+      interval expressed in second units, for example
+      crlcheckinterval=8h for 8 hours, after which pluto will fetch
+      new Certificate Revocation List (CRL) from crl distribution
+      points. List of used CRL distribution points are collected from
+      CA certificates and end certificates. Loaded X.509 CRL's are
+      verified to be valid and updates are imported to NSS database.
+      If set to <option>0</option>, which is also the
+      default value if this option is not specified, CRL updating is
+      disabled.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/curl-iface.xml b/configs/d.ipsec.conf/setup/curl-iface.xml
new file mode 100644 (file)
index 0000000..4437f45
--- /dev/null
@@ -0,0 +1,13 @@
+<varlistentry>
+  <term>
+    <option>curl-iface</option>
+  </term>
+  <listitem>
+    <para>
+      The name of the interface that is used for CURL lookups. This is
+      needed on rare situations where the interface needs to be forced
+      to be different from the default interface used based on the
+      routing table.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/ddos-ike-threshold.xml b/configs/d.ipsec.conf/setup/ddos-ike-threshold.xml
new file mode 100644 (file)
index 0000000..dce872a
--- /dev/null
@@ -0,0 +1,14 @@
+<varlistentry>
+  <term>
+    <option>ddos-ike-threshold</option>
+  </term>
+  <listitem>
+    <para>
+      The number of half-open IKE SAs before the pluto IKE daemon will
+      be placed in busy mode. When in busy mode, pluto activates
+      anti-DDoS counter measures. The default is 25000.  See also
+      <option>ddos-mode</option> and <command>ipsec whack
+      --ddos-XXX</command>.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/ddos-mode.xml b/configs/d.ipsec.conf/setup/ddos-mode.xml
new file mode 100644 (file)
index 0000000..4833038
--- /dev/null
@@ -0,0 +1,19 @@
+<varlistentry>
+  <term>
+    <option>ddos-mode</option>
+  </term>
+  <listitem>
+    <para>
+      The startup mode of the DDoS defense mechanism.  Acceptable
+      values are <option>busy</option>, <option>unlimited</option>
+      or <option>auto</option> (the default). This option can also be
+      given to the IKE daemon while running, for example by issuing
+      <command>ipsec whack --ddos--busy</command>.  When
+      in busy mode, pluto activates anti-DDoS counter
+      measures. Currently, counter measures consist of requiring IKEv2
+      anti-DDoS cookies on new incoming IKE requests, and a more
+      aggressive cleanup of partially established or AUTH_NULL
+      connections.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/dns-resolver.xml b/configs/d.ipsec.conf/setup/dns-resolver.xml
new file mode 100644 (file)
index 0000000..c952d06
--- /dev/null
@@ -0,0 +1,19 @@
+<varlistentry>
+  <term>
+    <option>dns-resolver=</option>
+  </term>
+  <listitem>
+    <para>
+      The DNS resolver to be configured by &ipsec-updown.8;.  Both
+      <parameter>file</parameter>
+      (<filename>/etc/resolve.conf</filename>)
+      <parameter>systemd</parameter>
+      (<command>systemd-resolved</command> are recognized.  The
+      configured value is passed to &ipsec-updown.8; in the
+      environment variable <envar>PLUTO_DNS_RESOLVER</envar>.
+    </para>
+    <para>
+      The default is <parameter>file</parameter>.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/dnssec-anchors.xml b/configs/d.ipsec.conf/setup/dnssec-anchors.xml
new file mode 100644 (file)
index 0000000..07f387f
--- /dev/null
@@ -0,0 +1,15 @@
+<varlistentry>
+  <term>
+    <option>dnssec-anchors=<filename>file</filename></option>
+  </term>
+  <listitem>
+    <para>
+      The location of a file containing additional DNSSEC Trust
+      Anchors.  This can be used when a network is using split-DNS and
+      the internal hierarchy is using DNSSEC trust anchors.
+    </para>
+    <para>
+      There is no default value.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/dnssec-enable.xml b/configs/d.ipsec.conf/setup/dnssec-enable.xml
new file mode 100644 (file)
index 0000000..09841f5
--- /dev/null
@@ -0,0 +1,15 @@
+<varlistentry>
+  <term>
+    <option>dnssec-enable</option>
+  </term>
+  <listitem>
+    <para>
+      Whether pluto should perform dnssec validation using libunbound,
+      provided libreswan was compiled with USE_DNSSEC. A value of
+      <option>yes</option> (the default) means pluto
+      should perform DNSSEC validation. Note that pluto reads the file
+      <option>/etc/resolv.conf</option> to determine
+      which nameservers to use.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/dnssec-rootkey-file.xml b/configs/d.ipsec.conf/setup/dnssec-rootkey-file.xml
new file mode 100644 (file)
index 0000000..a3d9294
--- /dev/null
@@ -0,0 +1,13 @@
+<varlistentry>
+  <term>
+    <option>dnssec-rootkey-file=<filename>rootkey</filename></option>
+  </term>
+  <listitem>
+    <para>
+      The location of the DNSSEC root zone public key file.
+    </para>
+    <para>
+      The default is <option>@@DEFAULT_DNSSEC_ROOTKEY_FILE@@</option>.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/dumpdir.xml b/configs/d.ipsec.conf/setup/dumpdir.xml
new file mode 100644 (file)
index 0000000..a725b3f
--- /dev/null
@@ -0,0 +1,14 @@
+<varlistentry>
+  <term>
+    <option>dumpdir=<filename><replaceable>directory</replaceable></filename></option>
+  </term>
+  <listitem>
+    <para>
+      in what directory should things started by
+      <option>setup</option> (notably the Pluto daemon) be allowed to
+      dump core?  The default value is <filename>@@RUNDIR@@</filename>.
+      When SELinux runs in enforced mode, changing this requires a
+      similar change in the SELinux policy for the pluto daemon.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/expire-lifetime.xml b/configs/d.ipsec.conf/setup/expire-lifetime.xml
new file mode 100644 (file)
index 0000000..9a79796
--- /dev/null
@@ -0,0 +1,33 @@
+<varlistentry>
+  <term>
+    <option>expire-lifetime</option>
+  </term>
+  <listitem>
+    <para>
+      The time in seconds until the acquire kernel state times out.
+      On &Linux;, the default value, determined by
+      <filename>/proc/sys/net/core/xfrm_acq_expires</filename> is 30
+      seconds.  On BSD, this option is ignored.
+    </para>
+    <para>
+      On-demand connections (such as Opportunistic,
+      <option>auto=ondemand</option>, or <command>ipsec
+      route</command>) have an IPsec trap policy installed in the
+      kernel.  If an outgoing (or inbound) packet matches this policy,
+      a state is created in the kernel and then the kernel sends an
+      ACQUIRE message to the IKE daemon pluto.  While this state is in
+      place, no new acquires will come in for this connection.  The
+      default should be fine for most people.  One use case of
+      shortening these is if opportunistc encryption is used towards
+      cloud instances that can quickly re-use IP addresses.
+    </para>
+    <para>
+      See also <option>failureshunt</option> and
+      <option>negotiationshunt</option>
+    </para>
+    <para>
+      Prior to &Libreswan; version 5.3 this option was called
+      <option>xfrmlifetime</option>.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/expire-shunt-interval.xml b/configs/d.ipsec.conf/setup/expire-shunt-interval.xml
new file mode 100644 (file)
index 0000000..fe090c2
--- /dev/null
@@ -0,0 +1,25 @@
+<varlistentry>
+  <term>
+    <option>expire-shunt-interval=<replaceable>seconds</replaceable></option>
+  </term>
+  <listitem>
+    <para>
+      How often to scan for Opportunistic Encryption failure shunts
+      (kernel policies) that have expired and should be removed.
+    </para>
+    <para>
+      When an Opportuistic Encryption negotiation fails, a failure
+      shunt is installed to either block (<option>drop</option>) or
+      allows(<option>pass</option>) traffic to the peer.  These shunts
+      are given a lifetime of 15 minutes (see
+      <option>shuntlifetime</option>) after which time they expire and
+      should be removed.  The option
+      <option>expire-shunt-interval</option> determines how frequently
+      these shunts are checked.  The default interval is 20 seconds.
+    </para>
+    <para>
+      Note: because these shunts (kernel policies) are not
+      bound to a connection instance they are refered to as bare.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/global-redirect-to.xml b/configs/d.ipsec.conf/setup/global-redirect-to.xml
new file mode 100644 (file)
index 0000000..6f942d4
--- /dev/null
@@ -0,0 +1,17 @@
+<varlistentry>
+  <term>
+    <option>global-redirect-to</option>
+  </term>
+  <listitem>
+    <para>
+      Where to send remote peers to via the <option>global-redirect</option>
+      option. This can be a list, or a single entry, of IP addresses or hostnames
+      (FQDNs). If there is a list of entries, they must be separated with
+      comma's. One specified entry means all peers will be redirected
+      to it, while multiple specified entries means peers will be
+      evenly distributed across the specified servers. This
+      configuration can be changed at runtime via the
+      <command>ipsec whack --global-redirect-to</command> command.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/global-redirect.xml b/configs/d.ipsec.conf/setup/global-redirect.xml
new file mode 100644 (file)
index 0000000..68f4582
--- /dev/null
@@ -0,0 +1,21 @@
+<varlistentry>
+  <term>
+    <option>global-redirect</option>
+  </term>
+  <listitem>
+    <para>
+      Whether to send requests for the remote peer to redirect
+      IKE/IPsec SA's during IKE_SA_INIT. Valid options are
+      <option>no</option> (the default),
+      <option>yes</option> and <option>auto</option>,
+      where auto means that the requests will be sent if DDoS mode
+      is active (see <option>ddos-mode</option>). If set,
+      the option <option>global-redirect-to=</option> must also be
+      set to indicate where to redirect peers to. For specific connection
+      redirection after IKE SA authentication, see the
+      <option>send-redirect=</option> and <option>redirect-to=</option>
+      options. This configuration can be changed at runtime via the
+      <command>ipsec whack --global-redirect</command> command.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/ike-socket-bufsize.xml b/configs/d.ipsec.conf/setup/ike-socket-bufsize.xml
new file mode 100644 (file)
index 0000000..b287575
--- /dev/null
@@ -0,0 +1,18 @@
+<varlistentry>
+  <term>
+    <option>ike-socket-bufsize</option>
+  </term>
+  <listitem>
+    <para>
+      Set the IKE socket buffer size. Default size is determined by
+      the OS (as of writing, this seems to be set to 212992. On Linux
+      this is visible via /proc/sys/net/core/rmem_default and
+      /proc/sys/net/core/wmem_default. On Linux, this option uses
+      SO_RCVBUFFORCE and SO_SNDBUFFORCE so that it can override
+      rmem_max/wmem_max values of the OS. This requires CAP_NET_ADMIN
+      (which is also required for other tasks). This option can also
+      be toggled on a running system using <option>ipsec
+      whack --ike-socket-bufsize bufsize</option>.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/ike-socket-errqueue.xml b/configs/d.ipsec.conf/setup/ike-socket-errqueue.xml
new file mode 100644 (file)
index 0000000..1f9c5e3
--- /dev/null
@@ -0,0 +1,17 @@
+<varlistentry>
+  <term>
+    <option>ike-socket-errqueue</option>
+  </term>
+  <listitem>
+    <para>
+      Whether to enable or disable receiving socket errors via
+      IP_RECVERR. The default is enabled. This will cause the socket
+      to receive, process and log socket errors, such as ICMP
+      unreachable messages or Connection Refused messages. Disabling
+      this only makes sense on very busy servers, and even then it
+      might not make much of a difference. This option can also be
+      toggled on a running system using <option>ipsec
+      whack --ike-socket-errqueue-toggle</option>.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/ikev1-policy.xml b/configs/d.ipsec.conf/setup/ikev1-policy.xml
new file mode 100644 (file)
index 0000000..fba4141
--- /dev/null
@@ -0,0 +1,17 @@
+<varlistentry>
+  <term>
+    <option>ikev1-policy</option>
+  </term>
+  <listitem>
+    <para>
+      What to do with received IKEv1 packets. Valid options are
+      <option>drop</option> (default) which will
+      silently drop any received IKEv1 packet, <option>accept</option>,
+      and <option>reject</option> which will reply with an error. If
+      this option is set to drop or reject, an attempt to load an
+      IKEv1 connection will fail, as these connections would never be
+      able to receive a packet for processing.
+    </para>
+  </listitem>
+</varlistentry>
+
diff --git a/configs/d.ipsec.conf/setup/ipsec-interface-managed.xml b/configs/d.ipsec.conf/setup/ipsec-interface-managed.xml
new file mode 100644 (file)
index 0000000..aa2abfe
--- /dev/null
@@ -0,0 +1,52 @@
+<varlistentry>
+  <term>
+    <option>ipsec-interface-managed</option>
+  </term>
+  <listitem>
+    <para>
+      Specify whether the IPsec Interface specified by
+      <option>ipsec-interface</option> managed by
+      &Libreswan;.  Possible values are:
+    </para>
+    <variablelist>
+      <varlistentry>
+       <term>
+         <option>yes</option> (default)
+       </term>
+       <listitem>
+         <para>
+           &Libreswan; is responsible for managing the IPsec
+           Interface.  For instance, creating it when needed, adding
+           the address specified by <option>interface-ip</option>,
+           installing any kernel policy or state, and marking it
+           <option>up</option> and <option>down</option>.
+         </para>
+         <para>
+           In this mode <option>ipsec-interface</option> identifies
+           the IPsec interface network device.  For instance,
+           <option>ipsec-interface=1</option> specifies the network
+           device <option>ipsec1</option>.
+         </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+       <term>
+         <option>no</option>
+       </term>
+       <listitem>
+         <para>
+           &Libreswan; assumes that the IPsec interface specified by
+           <option>ipsec-interface</option> exists and &Libreswan; is
+           only responsible for managing kernel policy and state.
+         </para>
+         <para>
+           In this mode <option>ipsec-interface</option> identifies
+           the low level kernel ID.  For instance, on &Linux;,
+           <option>ipsec-interface=1</option> identifies the device
+           with the XFRM if_id 1.
+         </para>
+       </listitem>
+      </varlistentry>
+    </variablelist>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/ipsecdir.xml b/configs/d.ipsec.conf/setup/ipsecdir.xml
new file mode 100644 (file)
index 0000000..6dc58e7
--- /dev/null
@@ -0,0 +1,56 @@
+<varlistentry>
+  <term>
+    <option>ipsecdir</option>
+  </term>
+  <listitem>
+    <para>
+      Specifies a directory for administrator-controlled configuration
+      files and directories.  The default value is
+      <option>@@IPSEC_CONFDDIR@@</option>. It may contain the following
+      files and directories:
+    </para>
+    <variablelist>
+      <varlistentry>
+        <term>
+         passwd
+       </term>
+        <listitem>
+         <para>
+            (optional) for IKEv1 XAUTH support if not using PAM (this file
+            should not be world-readable). See README.XAUTH for more
+            information.
+          </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>
+         nsspassword
+       </term>
+        <listitem>
+         <para>
+            (optional) passwords needed to unlock the NSS database in
+            <filename>@@IPSEC_NSSDIR@@</filename> (this file should
+            not be world-readable).  See README.nss for more
+            information.
+          </para>
+       </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>
+         policies/
+       </term>
+        <listitem>
+         <para>
+            a directory containing policy group configuration
+            information.  See <option>POLICY GROUP
+            FILES</option> in this document for more information.
+          </para>
+       </listitem>
+      </varlistentry>
+    </variablelist>
+    <para>
+      When SELinux runs in enforced mode, changing this requires a
+      similar change in the SELinux policy for the pluto daemon.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/keep-alive.xml b/configs/d.ipsec.conf/setup/keep-alive.xml
new file mode 100644 (file)
index 0000000..7082f20
--- /dev/null
@@ -0,0 +1,13 @@
+<varlistentry>
+  <term>
+    <option>keep-alive</option>
+  </term>
+  <listitem>
+    <para>
+      The delay (in seconds) for NAT-T keep-alive packets, if these
+      are enabled using <option>nat-keepalive</option>
+      This parameter may eventually become per-connection.
+    </para>
+  </listitem>
+</varlistentry>
+
diff --git a/configs/d.ipsec.conf/setup/listen-tcp.xml b/configs/d.ipsec.conf/setup/listen-tcp.xml
new file mode 100644 (file)
index 0000000..718266a
--- /dev/null
@@ -0,0 +1,16 @@
+<varlistentry>
+  <term>
+    <option>listen-tcp</option>
+  </term>
+  <listitem>
+    <para>
+      Whether the pluto IKE daemon should listen on the (pseudo)
+      standard TCP port <option>4500</option>. The default is
+      "no". The TCP usage complies to RFC 9329 for IKE and ESP over
+      TCP support. Connections can specify their own non-standard TCP
+      port using <option>leftikeport=</option> and
+      <option>tcp-remoteport=</option> for a non-standard peer TCP
+      port.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/listen-udp.xml b/configs/d.ipsec.conf/setup/listen-udp.xml
new file mode 100644 (file)
index 0000000..e07fc17
--- /dev/null
@@ -0,0 +1,17 @@
+<varlistentry>
+  <term>
+    <option>listen-udp</option>
+  </term>
+  <listitem>
+    <para>
+      Whether the pluto IKE daemon should listen on the standard UDP
+      ports of <option>500</option> and <option>4500</option>.  The
+      value "yes" means to listen on these ports, and is the default.
+      This should almost never be disabled. In the rare case where it
+      is known that only ever TCP or non-standard UDP ports will be
+      used, this option can disable the standard UDP
+      ports. Connections can specify their own non-standard port using
+      leftikeport=.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/listen.xml b/configs/d.ipsec.conf/setup/listen.xml
new file mode 100644 (file)
index 0000000..a195201
--- /dev/null
@@ -0,0 +1,11 @@
+<varlistentry>
+  <term>
+    <option>listen</option>
+  </term>
+  <listitem>
+    <para>
+      IP address to listen on, defaults to ANY.  Currently only
+      accepts one IP address.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/logappend.xml b/configs/d.ipsec.conf/setup/logappend.xml
new file mode 100644 (file)
index 0000000..553dbbb
--- /dev/null
@@ -0,0 +1,23 @@
+<varlistentry>
+  <term>
+    <option>logappend</option>=&Yn_options;
+  </term>
+  <listitem>
+    <para>
+      If pluto is instructed to log to a file using
+      <option>logfile=</option>, this option determines whether the
+      log file should be appended to or overwritten.  Valid options
+      are <option>yes</option> (the default) to append and
+      <option>no</option> to overwrite.  Since on modern systems,
+      pluto is restarted by other daemons, such as systemd, this
+      option should be left at its default <option>yes</option> value
+      to preserve the log entries of previous runs of pluto.  This
+      option is mainly of use for running the test suite, which needs
+      to create new log files from scratch.
+    </para>
+    <para>
+      Prior to &Libreswan; version 5.3 <command>pluto</command>, when
+      invoked without a config file, had this option disabled.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/logfile.xml b/configs/d.ipsec.conf/setup/logfile.xml
new file mode 100644 (file)
index 0000000..0f88e35
--- /dev/null
@@ -0,0 +1,12 @@
+<varlistentry>
+  <term>
+    <option>logfile</option>
+  </term>
+  <listitem>
+    <para>
+      do not use syslog, but rather log to stderr, and direct stderr
+      to the argument file. This option used to be called
+      plutostderrlog=
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/logip.xml b/configs/d.ipsec.conf/setup/logip.xml
new file mode 100644 (file)
index 0000000..4061dcf
--- /dev/null
@@ -0,0 +1,22 @@
+<varlistentry>
+  <term>
+    <option>logip</option>
+  </term>
+  <listitem>
+    <para>
+       If pluto is instructed to log the IP address of incoming
+       connections.  Valid options are <option>yes</option> (the
+       default) and <option>no</option>. Note that this only affects
+       regular logging. Any enabled debugging via
+       <option>plutodebug=</option> will still contain IP addresses of
+       peers. This option is mostly meant for servers that want to
+       avoid logging IP addresses of incoming clients. Other
+       identifiable information might still be logged, such as ID
+       payloads and X.509 certificate details. When using ID of type
+       IP address, this option will not hide the actual IP address as
+       part of the ID. Most deployments will not want to change this
+       from the default.  If logging of IP addresses is unwanted,
+       <option>audit-log=no</option> should also be set.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/logtime.xml b/configs/d.ipsec.conf/setup/logtime.xml
new file mode 100644 (file)
index 0000000..01bb9ff
--- /dev/null
@@ -0,0 +1,16 @@
+<varlistentry>
+  <term>
+    <option>logtime</option>
+  </term>
+  <listitem>
+    <para>
+      When pluto is directed to log to a file using
+      <option>logfile=</option>, this option determines whether or not
+      to log the current timestamp as prefix.  Values are
+      <option>yes</option> (the default) or <option>no</option>. The
+      no value can be used to create logs without ephemeral
+      timestamps, such as those created when running the test suite.
+      This option used to be called plutostderrlogtime=
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/max-halfopen-ike.xml b/configs/d.ipsec.conf/setup/max-halfopen-ike.xml
new file mode 100644 (file)
index 0000000..db3a6fa
--- /dev/null
@@ -0,0 +1,12 @@
+<varlistentry>
+  <term>
+    <option>max-halfopen-ike</option>
+  </term>
+  <listitem>
+    <para>
+      The number of half-open IKE SAs before the IKE daemon starts
+      refusing all new IKE attempts.  Established IKE peers are not
+      affected. The default value is 50000.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/myvendorid.xml b/configs/d.ipsec.conf/setup/myvendorid.xml
new file mode 100644 (file)
index 0000000..b9ab9bd
--- /dev/null
@@ -0,0 +1,11 @@
+<varlistentry>
+  <term>
+    <option>myvendorid</option>
+  </term>
+  <listitem>
+    <para>
+      The string to use as our vendor id (VID) when
+      send-vendorid=yes. The default is OE-Libreswan-VERSION.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/nflog-all.xml b/configs/d.ipsec.conf/setup/nflog-all.xml
new file mode 100644 (file)
index 0000000..ea54403
--- /dev/null
@@ -0,0 +1,20 @@
+<varlistentry>
+  <term>
+    <option>nflog-all</option>
+  </term>
+  <listitem>
+    <para>
+      If set, the NFLOG group number to log <option>all</option>
+      pre-crypt and post-decrypt traffic to.  The default value of
+      <option>0</option> means no logging at all.  This option is only
+      available on linux kernel 2.6.14 and later. It allows common
+      network utilities such as tcpdump, wireshark and dumpcap, to use
+      nflog:XXX pseudo interfaces where XXX is the nflog group
+      number. During startup and shutdown of the IPsec service,
+      iptables commands will be used to add or remove the global NFLOG
+      table rules. The rules are setup with the nflog-prefix
+      <option>all-ipsec</option>. See also the per-connection
+      <option>nflog</option> option.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/nhelpers.xml b/configs/d.ipsec.conf/setup/nhelpers.xml
new file mode 100644 (file)
index 0000000..40d2e91
--- /dev/null
@@ -0,0 +1,17 @@
+<varlistentry>
+  <term>
+    <option>nhelpers</option>
+  </term>
+  <listitem>
+    <para>
+      how many <option>pluto helpers</option> are started to help with
+      cryptographic operations. Pluto will start as many helpers as
+      the number of CPU's, minus 1 to dedicate to the main thread.
+      For machines with less than 4 CPU's, an equal number of helpers
+      to CPU's are started.  A value of 0 forces pluto to do all
+      operations inline using the main process. A value of -1 tells
+      pluto to perform the above calculation. Any other value forces
+      the number to that amount.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/nssdir.xml b/configs/d.ipsec.conf/setup/nssdir.xml
new file mode 100644 (file)
index 0000000..8d37647
--- /dev/null
@@ -0,0 +1,36 @@
+<varlistentry>
+  <term>
+    <option>nssdir</option>
+  </term>
+  <listitem>
+    <para>
+      Specifies a directory for NSS database files. The default value
+      is <option>@@IPSEC_NSSDIR@@</option>.  It may contain the
+      following files:
+    </para>
+    <variablelist>
+      <varlistentry>
+        <term>pkcs11.txt</term>
+        <listitem><para>
+          Detailed info about NSS database creation parameters.
+        </para></listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>cert9.db</term>
+        <listitem><para>
+          NSS Certificate database.
+        </para></listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>key4.db</term>
+        <listitem><para>
+          NSS Key database.
+        </para></listitem>
+      </varlistentry>
+    </variablelist>
+    <para>
+      When SELinux runs in enforced mode, changing this requires a similar
+      change in the SELinux policy for the pluto daemon.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/ocsp-cache-max-age.xml b/configs/d.ipsec.conf/setup/ocsp-cache-max-age.xml
new file mode 100644 (file)
index 0000000..d43a672
--- /dev/null
@@ -0,0 +1,11 @@
+<varlistentry>
+  <term>
+    <option>ocsp-cache-max-age</option>
+  </term>
+  <listitem>
+    <para>
+      The maximum age (in seconds) before a new fetch will be
+      attempted. The default is 1 day.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/ocsp-cache-min-age.xml b/configs/d.ipsec.conf/setup/ocsp-cache-min-age.xml
new file mode 100644 (file)
index 0000000..5b98d26
--- /dev/null
@@ -0,0 +1,11 @@
+<varlistentry>
+  <term>
+    <option>ocsp-cache-min-age</option>
+  </term>
+  <listitem>
+    <para>
+      The minimum age (in seconds) before a new fetch will be
+      attempted. The default is 1 hour.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/ocsp-cache-size.xml b/configs/d.ipsec.conf/setup/ocsp-cache-size.xml
new file mode 100644 (file)
index 0000000..48cb49a
--- /dev/null
@@ -0,0 +1,12 @@
+<varlistentry>
+  <term>
+    <option>ocsp-cache-size</option>
+  </term>
+  <listitem>
+    <para>
+      The maximum size (in number of certificates) of OCSP responses
+      that will be kept in the cache. The default is 1000. Setting
+      this value to 0 means the cache is disabled.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/ocsp-enable.xml b/configs/d.ipsec.conf/setup/ocsp-enable.xml
new file mode 100644 (file)
index 0000000..f8ff918
--- /dev/null
@@ -0,0 +1,13 @@
+<varlistentry>
+  <term>
+    <option>ocsp-enable</option>
+  </term>
+  <listitem>
+    <para>
+      Whether to perform Online Certificate Store Protocol ("OCSP")
+      checks on those certificates that have an OCSP URI
+      defined. Acceptable values are <option>yes</option> or
+      <option>no</option> (the default).
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/ocsp-method.xml b/configs/d.ipsec.conf/setup/ocsp-method.xml
new file mode 100644 (file)
index 0000000..4bed2cd
--- /dev/null
@@ -0,0 +1,16 @@
+<varlistentry>
+  <term>
+    <option>ocsp-method</option>
+  </term>
+  <listitem>
+    <para>
+      The HTTP methods used for fetching OCSP data. Valid options are
+      <option>get</option> (the default) and
+      <option>post</option>. Note that this behaviour depends on the
+      NSS crypto library that is actually performing the
+      fetching. When set to the get method, post is attempted only as
+      fallback in case of failure. When set to post, only the post
+      method is ever used.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/ocsp-strict.xml b/configs/d.ipsec.conf/setup/ocsp-strict.xml
new file mode 100644 (file)
index 0000000..4c3fc70
--- /dev/null
@@ -0,0 +1,22 @@
+<varlistentry>
+  <term>
+    <option>ocsp-strict</option>
+  </term>
+  <listitem>
+    <para>
+      if set to no, pluto is tolerant about failing to obtain an OCSP
+      responses and a certificate is not rejected when the OCSP
+      request fails, only when the OCSP request succeeds and lists the
+      certificate as revoked. If set to yes, any failure on obtaining
+      an OCSP status for a certificate will be fatal and the
+      certificate will be rejected.  Acceptable values are
+      <option>yes</option> or <option>no</option> (the default).
+    </para>
+    <para>
+      The strict mode refers to the NSS
+      ocspMode_FailureIsVerificationFailure mode, while non-strict
+      mode refers to the NSS ocspMode_FailureIsNotAVerificationFailure
+      mode.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/ocsp-timeout.xml b/configs/d.ipsec.conf/setup/ocsp-timeout.xml
new file mode 100644 (file)
index 0000000..c413c46
--- /dev/null
@@ -0,0 +1,11 @@
+<varlistentry>
+  <term>
+    <option>ocsp-timeout</option>
+  </term>
+  <listitem>
+    <para>
+      The time until an OCSP request is aborted and considered
+      failed. The default value is 2 seconds.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/ocsp-trustname.xml b/configs/d.ipsec.conf/setup/ocsp-trustname.xml
new file mode 100644 (file)
index 0000000..1ffebfb
--- /dev/null
@@ -0,0 +1,14 @@
+<varlistentry>
+  <term>
+    <option>ocsp-trustname</option>
+  </term>
+  <listitem>
+    <para>
+      The nickname of the certificate that has been imported into the
+      NSS database of the server handling the OCSP requests. This
+      requires the ocsp-uri option to be set as well. This option and
+      the previous options sets the OCSP <option>default
+      responder</option>.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/ocsp-uri.xml b/configs/d.ipsec.conf/setup/ocsp-uri.xml
new file mode 100644 (file)
index 0000000..aea1696
--- /dev/null
@@ -0,0 +1,15 @@
+<varlistentry>
+  <term>
+    <option>ocsp-uri</option>
+  </term>
+  <listitem>
+    <para>
+      The URI to use for OCSP requests instead of the default OCSP URI
+      listed in the CA certificate. This requires the ocsp-trustname
+      option to be set to the nick (friendly name) of the OCSP server
+      certificate, which needs to be present in the NSS
+      database. These option combined with the next option sets the
+      OCSP <option>default responder</option>.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/plutodebug.xml b/configs/d.ipsec.conf/setup/plutodebug.xml
new file mode 100644 (file)
index 0000000..5a96028
--- /dev/null
@@ -0,0 +1,150 @@
+<varlistentry>
+  <term>
+    <option>plutodebug=<replaceable>option</replaceable></option>
+  </term>
+  <listitem>
+    <para>
+      A comma separated list of options that globally enable internal
+      debug logs.  For debug logs of a single connection, see
+      <option>debug=</option>.
+    </para>
+    <note>
+      <para>
+       This feature is used by &Libreswan; developers when debugging
+       libreswan internals.  The default logs should provide
+       sufficient information to diagnose most configuration and
+       connection problems.
+      </para>
+    </note>
+    <para>
+
+      Below is a select list of debug options (for a complete list
+      <command>ipsec whack --debug help</command>):
+
+      <variablelist>
+
+       <varlistentry>
+         <term>
+           <option>updown</option>
+         </term>
+         <listitem>
+           <para>
+             Run the &ipsec-updown.8; scripts with <command>set -v
+             -x</command>.  Helpful when &ipsec-updown.8; isn't
+             behaving as expected.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>
+           <option>routing</option>
+         </term>
+         <listitem>
+           <para>
+             Dump connection changes (for instance, routed, up,
+             negotiating, ...) and how they interact with the kernel.
+             Helpful when debugging connection transitions, and
+             corresponding updates to kernel state/policy.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>
+           <option>base</option>
+         </term>
+         <listitem>
+           <para>
+             In addition to <option>routing</option>, include general
+             debug messages.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>
+           <option>cpu-usage</option>
+         </term>
+         <listitem>
+           <para>
+             Dump the CPU time consumed as an event is processed.
+             Only recommended when diagnosing performance problems.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>
+           <option>refcnt</option>
+         </term>
+         <listitem>
+           <para>
+             Dump all changes to all reference counters.  Only
+             recommended when tracking down a memory leak.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>
+           <option>all</option>
+         </term>
+         <listitem>
+           <para>
+             Equivalent to <option>routing/</option>,
+             <option>base</option>, <option>cpu-usage</option>, and
+             <option>refcnt</option>.  Recommend using either
+             <option>routing</option>, or <option>base</option>
+             instead.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>
+           <option>crypt</option>
+         </term>
+         <listitem>
+           <para>
+             Dump changes to reference counters.  Only recommended
+             when debugging code making calls into the &NSS; library.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>
+           <option>private</option>
+         </term>
+         <listitem>
+           <para>
+             Dump the cryptographic material used by the IKE and
+             Child SAs.  The format is similar to that expected by
+             <command>tcpdump</command> and
+             <command>wireshark</command>.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>
+           <option>tmi</option>
+         </term>
+         <listitem>
+           <para>
+             It stands for Too Much Information.  Need we say more?
+           </para>
+         </listitem>
+       </varlistentry>
+
+      </variablelist>
+
+      All lines of debugging output are prefixed with "|" to
+      distinguish them from normal diagnostic messages (the the
+      command <command>grep -v -e '|' pluto.log</command> can be used
+      to filter out the debug logs).
+
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/protostack.xml b/configs/d.ipsec.conf/setup/protostack.xml
new file mode 100644 (file)
index 0000000..d7ba802
--- /dev/null
@@ -0,0 +1,15 @@
+<varlistentry>
+  <term>
+    <option>protostack</option>
+  </term>
+  <listitem>
+    <para>
+      decide which protocol stack is going to be used. Valid values
+      are "xfrm" and "bsd". This option should no longer be set, as
+      the stack is currently auto-detected. The values "klips, "mast",
+      "netkey", "native", "kame" and "auto" are obsolete. The option
+      is kept only because it is suspected that Linux and BSD will get
+      userspace stacks with IPsec support soon (such as dpdk).
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/seccomp.xml b/configs/d.ipsec.conf/setup/seccomp.xml
new file mode 100644 (file)
index 0000000..2ab6fc6
--- /dev/null
@@ -0,0 +1,52 @@
+<varlistentry>
+  <term>
+    <option>seccomp</option>
+  </term>
+  <listitem>
+    <para>
+      Set the seccomp kernel syscall whitelisting feature. When set to
+      <option>enabled</option>, if pluto calls a syscall that is not
+      on the compiled-in whitelist, the kernel will assume an exploit
+      is attempting to use pluto for malicious access to the system
+      and terminate the pluto daemon. When set to
+      <option>tolerant</option>, the kernel will only block the rogue
+      syscall and pluto will attempt to continue. If set to
+      <option>disabled</option>, pluto is allowed to call any syscall
+      offered by the kernel, although it might be restricted via other
+      security mechanisms, such as capabilities, SElinux, AppArmor or
+      other OS security features.
+    </para>
+    <para>
+      By default, seccomp is disabled, as there is a significant
+      performance penalty, custom updown scripts could trigger false
+      positives, and system library updates could also trigger false
+      positives. A false positive (or real malicious remote code
+      execution of a bad syscall) will cause the pluto daemon to crash
+      or hang.
+    </para>
+    <para>
+      <option>Warning:</option> The restrictions of pluto are
+      inherited by the updown scripts, so these scripts are also not
+      allowed to use syscalls that are forbidden for pluto.
+    </para>
+    <para>
+      To see if a seccomp rule got triggered, you must run with
+      seccomp=enabled, and keep an eye on
+      <option>type=SECCOMP</option> messages in the audit log (usually
+      <option>/var/log/audit/audit.log</option>. Note that logging can
+      be delayed by many seconds.
+    </para>
+    <para>
+      This feature can be tested using <command>ipsec whack
+      --seccomp-crashtest</command>. <option>Warning: </option> With
+      seccomp=enabled, pluto will be terminated by the kernel. With
+      seccomp=tolerant or seccomp=disabled, pluto will report the
+      results of the seccomp test. SECCOMP will log the forbidden
+      syscall numbers to the audit log, but only with
+      seccomp=enabled. The tool scmp_sys_resolver from the libseccomp
+      development package can be used to translate the syscall number
+      into a name. See programs/pluto/pluto_seccomp.c for the list of
+      allowed syscalls.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/secretsfile.xml b/configs/d.ipsec.conf/setup/secretsfile.xml
new file mode 100644 (file)
index 0000000..ecbd4dc
--- /dev/null
@@ -0,0 +1,13 @@
+<varlistentry>
+  <term>
+    <option>secretsfile</option>
+  </term>
+  <listitem>
+    <para>
+      pathname of the file that stores the secret credentials such as
+      preshared keys (PSKs). See <option>man ipsec.secrets</option>
+      for the syntax.  The default value is
+      <filename>@@IPSEC_SECRETS@@</filename>.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/seedbits.xml b/configs/d.ipsec.conf/setup/seedbits.xml
new file mode 100644 (file)
index 0000000..bff484d
--- /dev/null
@@ -0,0 +1,19 @@
+<varlistentry>
+  <term>
+    <option>seedbits</option>
+  </term>
+  <listitem>
+    <para>
+      Pluto uses the NSS crypto library as its random source. Some
+      government Three Letter Agencies require that pluto reads
+      additional bits from /dev/random and feed these into the NSS RNG
+      before drawing random from the NSS library, despite the NSS
+      library itself already seeding its internal state. This process
+      can block pluto for an extended time during startup, depending
+      on the entropy of the system. Therefore, the default is to not
+      perform this redundant seeding. If specifying a value, it is
+      recommended to specify at least 460 bits (for FIPS) or 440 bits
+      (for BSI).
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/shuntlifetime.xml b/configs/d.ipsec.conf/setup/shuntlifetime.xml
new file mode 100644 (file)
index 0000000..0fe955d
--- /dev/null
@@ -0,0 +1,19 @@
+<varlistentry>
+  <term>
+    <option>shuntlifetime</option>
+  </term>
+  <listitem>
+    <para>
+      The time until bare shunts (kernel policies not associated with
+      connections) are deleted from the kernel. The default value is
+      15m. When using Opportunistic Encryption to a specific host
+      fails, the system will either install a %pass or %hold shunt to
+      let the traffic out clear text or block it. During the the
+      shuntlifetime, no new Opportunistic Encryption attempt will be
+      started, although the system will still respond to incoming OE
+      requests from the remote IP. See also
+      <option>failureshunt</option> and
+      <option>negotiationshunt</option>
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/statsbin.xml b/configs/d.ipsec.conf/setup/statsbin.xml
new file mode 100644 (file)
index 0000000..94d6c3c
--- /dev/null
@@ -0,0 +1,14 @@
+<varlistentry>
+  <term>
+    <option>statsbin</option>
+  </term>
+  <listitem>
+    <para>
+      This option specifies an optional external program to report
+      tunnel state changes too.  The default is not to report tunnel
+      state changes. This program can be used to notify the user's
+      desktop (dbus, NetworkManager) or to report tunnel changes to a
+      central logging server.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/syslog.xml b/configs/d.ipsec.conf/setup/syslog.xml
new file mode 100644 (file)
index 0000000..65cd83e
--- /dev/null
@@ -0,0 +1,12 @@
+<varlistentry>
+  <term>
+    <option>syslog</option>
+  </term>
+  <listitem>
+    <para>
+      the &syslog.2; <replaceable>facility</replaceable> name and
+      priority to use for startup/shutdown log messages, default
+      <option>daemon.error</option>.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/uniqueids.xml b/configs/d.ipsec.conf/setup/uniqueids.xml
new file mode 100644 (file)
index 0000000..a7e1155
--- /dev/null
@@ -0,0 +1,32 @@
+<varlistentry>
+  <term>
+    <option>uniqueids</option>=&Yn_options;
+  </term>
+  <listitem>
+    <para>
+      Whether IDs should be considered identifying remote parties
+      uniquely. Acceptable values are <option>yes</option> (the
+      default) and <option>no</option>.  Participant IDs normally are
+      unique, so a new connection instance using the same remote ID is
+      almost invariably intended to replace an old existing
+      connection.
+    </para>
+    <para>
+      When the connection is defined to be a server (using
+      xauthserver=) and the connection policy is authby=secret, this
+      option is ignored (as of 3.20) and old connections will never be
+      replaced.  This situation is commonly known as clients using a
+      "Group ID".
+    </para>
+    <para>
+      This option may disappear in the near future. People using
+      identical X.509 certificates on multiple devices are urged to
+      upgrade to use separate certificates per client and device.
+    </para>
+    <para>
+      Prior to &Libreswan; version 5.3, when <command>pluto</command>
+      was started directly and without a configuration file, this
+      option was set to <option>no</option>.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/setup/virtual-private.xml b/configs/d.ipsec.conf/setup/virtual-private.xml
new file mode 100644 (file)
index 0000000..60bf075
--- /dev/null
@@ -0,0 +1,39 @@
+<varlistentry>
+  <term>
+    <option>virtual-private</option>
+  </term>
+  <listitem>
+    <para>
+      contains the networks that are allowed as (left|right)subnet=
+      for the remote clients when using the <option>vhost:</option> or
+      <option>vnet:</option> keywords in the
+      <option>(left|right)subnet=</option> parameters.  In other
+      words, the address ranges that may live behind a NAT router
+      through which a client connects.  This value is usually set to
+      all the RFC-1918 address space, excluding the space used in the
+      local subnet behind the NAT (An IP address cannot live at two
+      places at once).  IPv4 address ranges are denoted as
+      <option>%v4:a.b.c.d/mm</option> and IPv6 is denoted as
+      <option>%v6:aaaa::bbbb:cccc:dddd:eeee/mm</option>. One can
+      exclude subnets by using the <option>!</option>.  For example,
+      if the VPN server is giving access to 192.168.1.0/24, this
+      option should be set to:
+      <option>virtual-private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:!192.168.1.0/24</option>.
+      This parameter is only needed on the server side and not on the
+      client side that resides behind the NAT router, as the client
+      will just use its IP address for the inner IP setting.  This
+      parameter may eventually become per-connection. See also
+      <option>leftsubnet=</option>
+    </para>
+    <para>
+      Note: It seems that T-Mobile in the US and Rogers/Fido in Canada
+      have started using 25.0.0.0/8 as their pre-NAT range. This range
+      technically belongs to the Defence Interoperable Network
+      Services Authority (DINSA), an agency of the Ministry of Defence
+      of the United Kingdom. The network range seems to not have been
+      announced for decades, which is probably why these organisations
+      "borrowed" this range. To support roadwarriors on these 3G
+      networks, you might have to add it to the virtual-private= line.
+    </para>
+  </listitem>
+</varlistentry>
diff --git a/configs/d.ipsec.conf/sha2-truncbug.xml b/configs/d.ipsec.conf/sha2-truncbug.xml
deleted file mode 100644 (file)
index 3d92e03..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-<varlistentry>
-  <term>
-    <option>sha2-truncbug</option>
-  </term>
-  <listitem>
-    <para>
-      The default ESP hash truncation for sha2_256 is 128 bits. Some
-      IPsec implementations (Linux before 2.6.33, some Cisco (2811?)
-      routers) implement the draft version which stated 96 bits. If a
-      draft implementation communicates with an RFC implementation,
-      both ends will reject encrypted packets from each other.
-    </para>
-    <para>
-      This option enables using the draft 96 bits version to interop
-      with those implementations.  Currently the accepted values are
-      <option>no</option>, (the default) signifying default RFC
-      truncation of 128 bits, or <option>yes</option>, signifying the
-      draft 96 bits truncation.
-    </para>
-    <para>
-      Another workaround is to switch from sha2_256 to sha2_128 or
-      sha2_512.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/share-lease.xml b/configs/d.ipsec.conf/share-lease.xml
deleted file mode 100644 (file)
index 77a41f4..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-<varlistentry>
-  <term>
-    <option>share-lease</option>
-  </term>
-  <listitem>
-    <para>
-      Whether multiple outoging IKEv1 connections that are not
-      specifying a local subnet should use the lease IP given by
-      the server of the first connection. The default and expected
-      behaviour (of emulating a Cisco client) is <option>yes</option>.
-      It can be disabled by setting it to <option>no</option>.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/shuntlifetime.xml b/configs/d.ipsec.conf/shuntlifetime.xml
deleted file mode 100644 (file)
index 0fe955d..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<varlistentry>
-  <term>
-    <option>shuntlifetime</option>
-  </term>
-  <listitem>
-    <para>
-      The time until bare shunts (kernel policies not associated with
-      connections) are deleted from the kernel. The default value is
-      15m. When using Opportunistic Encryption to a specific host
-      fails, the system will either install a %pass or %hold shunt to
-      let the traffic out clear text or block it. During the the
-      shuntlifetime, no new Opportunistic Encryption attempt will be
-      started, although the system will still respond to incoming OE
-      requests from the remote IP. See also
-      <option>failureshunt</option> and
-      <option>negotiationshunt</option>
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/sourceip.xml b/configs/d.ipsec.conf/sourceip.xml
deleted file mode 100644 (file)
index c4b1757..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-<varlistentry>
-  <term>
-    <option>leftsourceip</option>
-  </term>
-  <term>
-    <option>rightsourceip</option>
-  </term>
-  <listitem>
-    <para>
-      the IP address for this host to use when transmitting a packet
-      to the other side of this link.  Relevant only locally, the
-      other end need not agree.  This option is used to make the
-      gateway itself use its internal IP, which is part of the
-      leftsubnet, to communicate to the rightsubnet or
-      right. Otherwise, it will use its <option>nearest</option> IP
-      address, which is its public IP address. This option is mostly
-      used when defining subnet-subnet connections, so that the
-      gateways can talk to each other and the subnet at the other end,
-      without the need to build additional host-subnet, subnet-host
-      and host-host tunnels. Both IPv4 and IPv6 addresses are
-      supported.
-    </para>
-  </listitem>
-</varlistentry>
-
diff --git a/configs/d.ipsec.conf/statsbin.xml b/configs/d.ipsec.conf/statsbin.xml
deleted file mode 100644 (file)
index 94d6c3c..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-<varlistentry>
-  <term>
-    <option>statsbin</option>
-  </term>
-  <listitem>
-    <para>
-      This option specifies an optional external program to report
-      tunnel state changes too.  The default is not to report tunnel
-      state changes. This program can be used to notify the user's
-      desktop (dbus, NetworkManager) or to report tunnel changes to a
-      central logging server.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/subnet.xml b/configs/d.ipsec.conf/subnet.xml
deleted file mode 100644 (file)
index 3167392..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-<varlistentry>
-  <term>
-    <option>leftsubnet=&ip_selector;[,...]</option>
-  </term>
-  <term>
-    <option>rightsubnet=&ip_selector;[,...]</option>
-  </term>
-  <listitem>
-    <para>
-      A comma separated list of traffic selectors behind the
-      <option>left</option> or <option>right</option> participant.
-    </para>
-    <para>
-      Each traffic selector expressed as: <systemitem
-      class="ipaddress"> <replaceable>network-prefix</replaceable> /
-      <replaceable>netmask</replaceable>/
-      <replaceable>protocol</replaceable>/
-      <replaceable>port</replaceable> </systemitem> where trailing
-      elements may be omitted.  For instance:
-      <code>leftsubnet=1.2.3.0/24,1:2::/64</code>,
-      <code>leftsubnet=1.2.3.4/32/tcp,1:2::/128/tcp</code>,
-      <code>leftsubnet=1.2.3.4/31/tcp/22,1:2::/128/tcp/22</code>.
-    </para>
-    <para>
-      If both <code>leftsubnet=</code> and <code>rightsubnet=</code>
-      are specified, all combinations will be established as a single
-      IPsec tunnel.
-    </para>
-    <para>
-      When omitted, essentially assumed to be <code>left</code>,
-      signifying that the left end of the connection goes to the left
-      participant only.
-    </para>
-
-    <note>
-      <para>
-       Support for specifying multiple selectors and the protocol and
-       port was added in &Libreswan; version 5.
-      </para>
-    </note>
-
-    <important>
-      <title>
-       IKEv1
-      </title>
-      <para>
-       In IKEv1 only a single selector is allowed and it is limited
-       to specifying a subnet as in: <code>
-       <replaceable>network</replaceable> /
-       <replaceable>netmask</replaceable> </code>
-      </para>
-    </important>
-
-    <important>
-      <title>
-       IKEv1
-      </title>
-      <para>
-       IKEv1 supports two magic shorthands <code>vhost:</code> and
-       <code>vnet:</code>, which can list subnets in the same syntax
-       as <replaceable>virtual-private</replaceable>.  The value
-       <code>%priv</code> expands to the networks specified in
-       <code>virtual-private</code>.  The value <code>%no</code>
-       means no subnet. A common use for allowing roadwarriors to
-       come in on public IPs or via accepted NATed networks from
-       RFC1918 is to use <code>leftsubnet=vhost:%no,%priv</code>. The
-       <code>vnet:</code> option can be used to allow RFC1918 subnets
-       without hardcoding them.  When using vnet the connection will
-       instantiate, allowing for multiple tunnels with different
-       subnets.
-      </para>
-    </important>
-
-    <important>
-      <title>
-       Use with <code>leftprotport</code> and
-       <code>leftsubnets</code>
-      </title>
-      <para>
-       Compatible with libreswan version 4, a simple
-       <code>leftsubnet</code> (specifying a single network prefix
-       and netmask) may be combined with <code>leftprotoport</code>
-       and <code>leftsubnets</code>.  Anything more complicated
-       should be converted to use the selector syntax.
-      </para>
-    </important>
-
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/subnets.xml b/configs/d.ipsec.conf/subnets.xml
deleted file mode 100644 (file)
index 0171609..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-<varlistentry>
-  <term>
-    <option>leftsubnets=&ip_subnet;[,...]</option>
-  </term>
-  <term>
-    <option>rightsubnets=&ip_subnet;[,...]</option>
-  </term>
-  <listitem>
-    <para>
-      Specify multiple private subnets behind the participant,
-      expressed as
-      <option>networkA</option><option>/</option><option>netmaskA</option>,<option>networkB</option><option>/</option><option>netmaskB</option><option>[,...]</option>.
-      If both a <option>leftsubnets=</option> and
-      <option>rightsubnets=</option> are defined, all combinations of
-      subnet tunnels will be established as separate IPsec tunnels.
-      You cannot use <option>leftsubnet=</option> and
-      <option>leftsubnets=</option> together. For examples see
-      <option>testing/pluto/multinet-*</option>.  Be aware that when
-      using spaces as separator, that the entire option value needs to
-      be in double quotes.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/syslog.xml b/configs/d.ipsec.conf/syslog.xml
deleted file mode 100644 (file)
index 65cd83e..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-<varlistentry>
-  <term>
-    <option>syslog</option>
-  </term>
-  <listitem>
-    <para>
-      the &syslog.2; <replaceable>facility</replaceable> name and
-      priority to use for startup/shutdown log messages, default
-      <option>daemon.error</option>.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/tcp-remoteport.xml b/configs/d.ipsec.conf/tcp-remoteport.xml
deleted file mode 100644 (file)
index b101bd6..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<varlistentry>
-  <term>
-    <option>tcp-remoteport</option>
-  </term>
-  <listitem>
-    <para>
-      Which remote TCP port to use when IKE over TCP is attempted. The
-      default value is to use the NAT-T IKE port (4500). This value is
-      not negotiated and should be configured properly on all
-      endpoints. When opening a TCP socket to the remote host in this
-      port, a regular ephemeral source port is obtained from the
-      OS. For changing the UDP ports, see
-      <option>leftikeport=</option>
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/tfc.xml b/configs/d.ipsec.conf/tfc.xml
deleted file mode 100644 (file)
index aa8a9a0..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-<varlistentry>
-  <term><option>tfc</option></term>
-  <listitem>
-    <para>
-      Enable Traffic Flow Confidentiality ("TFC") (RFC-4303) for outgoing ESP
-      packets in Tunnel Mode.  When enabled, ESP packets are padded to the
-      specified size (up to the PMTU size) to prevent leaking information based
-      on ESP packet size. This option is ignored for AH and for ESP in Transport
-      Mode as those always leak traffic characteristics and applying TFC will
-      not do anything. Acceptable values are positive numbers. The value 0 means
-      TFC padding is not performed. Currently this feature is only implemented
-      for the Linux XFRM stack. In IKEv2, when the notify payload
-      ESP_TFC_PADDING_NOT_SUPPORTED is received, TFC padding is disabled. The
-      default is not to do any TFC padding, but this might change in the near
-      future.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/type.xml b/configs/d.ipsec.conf/type.xml
deleted file mode 100644 (file)
index 06d8376..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-<varlistentry>
-  <term>
-    <option>type</option>
-  </term>
-  <listitem>
-    <para>
-      the type of the connection; currently the accepted values are
-      <option>tunnel</option> (the default) signifying a host-to-host,
-      host-to-subnet, or subnet-to-subnet tunnel;
-      <option>transport</option>, signifying host-to-host transport
-      mode; <option>passthrough</option>, signifying that no IPsec
-      processing should be done at all; <option>drop</option>,
-      signifying that packets should be discarded.
-    </para>
-    <para>
-      Historic Note: &KLIPS; supported the option
-      <option>reject</option> signifying that packets should be
-      discarded and a diagnostic ICMP returned.  Support for &KLIPS;,
-      and this option, have been removed.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/uniqueids.xml b/configs/d.ipsec.conf/uniqueids.xml
deleted file mode 100644 (file)
index a7e1155..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-<varlistentry>
-  <term>
-    <option>uniqueids</option>=&Yn_options;
-  </term>
-  <listitem>
-    <para>
-      Whether IDs should be considered identifying remote parties
-      uniquely. Acceptable values are <option>yes</option> (the
-      default) and <option>no</option>.  Participant IDs normally are
-      unique, so a new connection instance using the same remote ID is
-      almost invariably intended to replace an old existing
-      connection.
-    </para>
-    <para>
-      When the connection is defined to be a server (using
-      xauthserver=) and the connection policy is authby=secret, this
-      option is ignored (as of 3.20) and old connections will never be
-      replaced.  This situation is commonly known as clients using a
-      "Group ID".
-    </para>
-    <para>
-      This option may disappear in the near future. People using
-      identical X.509 certificates on multiple devices are urged to
-      upgrade to use separate certificates per client and device.
-    </para>
-    <para>
-      Prior to &Libreswan; version 5.3, when <command>pluto</command>
-      was started directly and without a configuration file, this
-      option was set to <option>no</option>.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/units.xml b/configs/d.ipsec.conf/units.xml
deleted file mode 100644 (file)
index 2dffb74..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-<refsect1>
-  <title>
-    SPECIFYING UNITS
-  </title>
-
-  <refsect2 id='unit_bytes'>
-    <title>
-      BYTE COUNTS AND BINARY DATA
-    </title>
-    <para>
-      Options, such as <option>ipsec-max-bytes</option>, that expect a
-      numeric byte count, also accept deciml fractions, and the
-      following multipliers as a suffix:
-      <variablelist>
-       <varlistentry>
-         <term><option>KiB</option></term>
-         <listitem><para>kilobytes (1024 bytes)</para></listitem>
-       </varlistentry>
-       <varlistentry>
-         <term><option>MiB</option></term>
-         <listitem><para>megabytes (1024*1024 bytes)</para></listitem>
-       </varlistentry>
-       <varlistentry>
-         <term><option>GiB</option></term>
-         <listitem><para>gigabytes (1024*1024*1024 bytes)</para></listitem>
-       </varlistentry>
-       <varlistentry>
-         <term><option>TiB</option></term>
-         <listitem><para>terabytes (1024*1024*1024*1024 bytes)</para></listitem>
-       </varlistentry>
-       <varlistentry>
-         <term><option>PiB</option></term>
-         <listitem><para>petabytes (1024*1024*1024*1024*1024 bytes)</para></listitem>
-       </varlistentry>
-       <varlistentry>
-         <term><option>EiB</option></term>
-         <listitem><para>exabytes (1024*1024*1024*1024*1024*1024 bytes)</para></listitem>
-       </varlistentry>
-      </variablelist>
-    </para>
-  </refsect2>
-
-  <refsect2 id='unit_duration'>
-    <title>
-      DURATION
-    </title>
-    <para>
-      Options, such as <option>retransmit-timeout</option>, that
-      expect a numeric duration, also accept decimal fractions, and
-      the following multipliers as a suffix:
-      <variablelist>
-       <varlistentry>
-         <term><option>us</option></term>
-         <listitem><para>microseconds (1/1000000 seconds)</para></listitem>
-       </varlistentry>
-       <varlistentry>
-         <term><option>ms</option></term>
-         <listitem><para>milliseconds (1/1000 seconds)</para></listitem>
-       </varlistentry>
-       <varlistentry>
-         <term><option>s</option></term>
-       <listitem><para>seconds</para></listitem></varlistentry>
-       <varlistentry><term><option>m</option></term>
-       <listitem><para>minutes (60 seconds)</para></listitem>
-       </varlistentry>
-       <varlistentry>
-         <term><option>h</option></term>
-         <listitem><para>hours (60*60 seconds)</para></listitem>
-       </varlistentry>
-       <varlistentry>
-         <term><option>d</option></term>
-         <listitem><para>days (24*60*60 seconds)</para></listitem>
-       </varlistentry>
-       <varlistentry>
-         <term><option>w</option></term>
-         <listitem><para>weeks (7*24*60*60 seconds)</para></listitem>
-       </varlistentry>
-      </variablelist>
-      For instance, 1ms and 1000us, 0.5s and 500ms, 1.5h and 90m, are
-      each equivalent.
-    </para>
-</refsect2>
-
-</refsect1>
diff --git a/configs/d.ipsec.conf/updown.xml b/configs/d.ipsec.conf/updown.xml
deleted file mode 100644 (file)
index ab692a8..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-<varlistentry>
-  <term>
-    <option>leftupdown</option>
-  </term>
-  <term>
-    <option>rightupdown</option>
-  </term>
-  <listitem>
-    <para>
-      The script to run to adjust routing and/or firewalling when the
-      status of the connection changes (default <command>ipsec
-      _updown</command>).  May include positional parameters separated
-      by white space (although this requires enclosing the whole
-      string in quotes); including shell metacharacters is unwise.  An
-      example to enable routing when using the XFRM stack, one can
-      use:
-    </para>
-    <para>
-      <simplelist columns='1'>
-        <member><computeroutput>updown="ipsec _updown --route yes"</computeroutput></member>
-      </simplelist>
-    </para>
-    <para>
-      To disable calling an updown script, set it to the empty string,
-      eg leftupdown="" or leftupdown="%disabled".
-    </para>
-    <para>
-      Connections with <option>type=</option> set to
-      <option>passthrough</option>, <option>reject</option> or
-      <option>drop</option> never run <command>ipsec _updown</command>.
-    </para>
-    <para>
-      See &libreswan.7; for details.
-    </para>
-    <para>
-      Relevant only locally, other end need not agree on it.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/username.xml b/configs/d.ipsec.conf/username.xml
deleted file mode 100644 (file)
index f9c6d52..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<varlistentry>
-  <term>
-    <option>leftusername</option>
-  </term>
-  <term>
-    <option>rightusername</option>
-  </term>
-  <listitem>
-    <para>
-      The username associated with this connection. The username can
-      be the IKEv2 XAUTH username, a GSSAPI username or IKEv2 CP
-      username. For the XAUTH username, the XAUTH password can be
-      configured in the <option>ipsec.secrets</option> file. This
-      option was previously called leftxauthusername.</para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/virtual-private.xml b/configs/d.ipsec.conf/virtual-private.xml
deleted file mode 100644 (file)
index 60bf075..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-<varlistentry>
-  <term>
-    <option>virtual-private</option>
-  </term>
-  <listitem>
-    <para>
-      contains the networks that are allowed as (left|right)subnet=
-      for the remote clients when using the <option>vhost:</option> or
-      <option>vnet:</option> keywords in the
-      <option>(left|right)subnet=</option> parameters.  In other
-      words, the address ranges that may live behind a NAT router
-      through which a client connects.  This value is usually set to
-      all the RFC-1918 address space, excluding the space used in the
-      local subnet behind the NAT (An IP address cannot live at two
-      places at once).  IPv4 address ranges are denoted as
-      <option>%v4:a.b.c.d/mm</option> and IPv6 is denoted as
-      <option>%v6:aaaa::bbbb:cccc:dddd:eeee/mm</option>. One can
-      exclude subnets by using the <option>!</option>.  For example,
-      if the VPN server is giving access to 192.168.1.0/24, this
-      option should be set to:
-      <option>virtual-private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:!192.168.1.0/24</option>.
-      This parameter is only needed on the server side and not on the
-      client side that resides behind the NAT router, as the client
-      will just use its IP address for the inner IP setting.  This
-      parameter may eventually become per-connection. See also
-      <option>leftsubnet=</option>
-    </para>
-    <para>
-      Note: It seems that T-Mobile in the US and Rogers/Fido in Canada
-      have started using 25.0.0.0/8 as their pre-NAT range. This range
-      technically belongs to the Defence Interoperable Network
-      Services Authority (DINSA), an agency of the Ministry of Defence
-      of the United Kingdom. The network range seems to not have been
-      announced for decades, which is probably why these organisations
-      "borrowed" this range. To support roadwarriors on these 3G
-      networks, you might have to add it to the virtual-private= line.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/vti-interface.xml b/configs/d.ipsec.conf/vti-interface.xml
deleted file mode 100644 (file)
index 3a37a0e..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-<varlistentry>
-  <term>
-    <option>vti-interface</option>
-  </term>
-  <listitem>
-    <para>
-      This option is deprecated. See <option>ipsec-interface</option>
-      instead.
-    </para>
-    <para>
-      This option is used to create "Routing based VPNs"
-      (as opposed to "Policy based VPNs"). It will create a new interface
-      that can be used to route traffic in for encryption/decryption. The Virtual
-      Tunnel Interface ("VTI") interface name is used to for all IPsec SA's created by
-      this connection. This requires that the connection also enables either
-      the <option>mark=</option> or <option>mark-in= /
-      mark-out-</option> option(s). All traffic marked with the proper MARKs
-      will be automatically encrypted if there is an IPsec SA policy covering the
-      source/destination traffic. Tools such as tcpdump and iptables can be
-      used on all cleartext pre-encrypt and post-decrypt traffic on the device.
-      See the libreswan wiki for example configurations that use VTI.
-    </para>
-    <para>
-      VTI interfaces are currently only supported on Linux with
-      XFRM. The _updown script handles certain Linux specific
-      interfaces settings required for proper functioning
-      (disable_policy, rp_filter, forwarding, etc). Interface names
-      are limited to 16 characters and may not allow all characters to
-      be used. If marking and <option>vti-routing=yes</option> is
-      used, no manual iptables should be required. However,
-      administrators can use the iptables mangle table to mark traffic
-      manually if desired.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/vti-routing.xml b/configs/d.ipsec.conf/vti-routing.xml
deleted file mode 100644 (file)
index fae3b5f..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<varlistentry>
-  <term>
-    <option>vti-routing</option>
-  </term>
-  <listitem>
-    <para>
-      Whether or not to add network rules or routes for IPsec
-      SA's to the respective VTI devices. Valid values are
-      <option>yes</option> (the default) or <option>no</option>.
-      When using "routing based VPNs" with a subnets policy of 0.0.0.0/0,
-      this setting needs to set to <option>no</option> to prevent
-      imploding the tunnel, and the administrator is expected to manually
-      add ip rules and ip routes to configure what traffic must be encrypted.
-      When set to <option>yes</option>, the _updown script will
-      automatically route the leftsubnet/rightsubnet traffic into the
-      VTI device specified with <option>vti-interface</option>
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/vti-shared.xml b/configs/d.ipsec.conf/vti-shared.xml
deleted file mode 100644 (file)
index 309bcf0..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<varlistentry>
-  <term>
-    <option>vti-shared</option>
-  </term>
-  <listitem>
-    <para>
-      Whether or not the VTI device is shared amongst connections.
-      Valid values are <option>no</option> (the default) or
-      <option>yes</option>. When set to no, the VTI device is
-      automatically deleted if the connection is a single
-      non-instantiated connection. If a connection instantiates (eg
-      right=%any) then this option has no effect, as the VTI device is
-      not removed as it is shared with multiple roadwarriors.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/vti.xml b/configs/d.ipsec.conf/vti.xml
deleted file mode 100644 (file)
index f8e9774..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-<varlistentry>
-  <term>
-    <option>leftvti</option>
-  </term>
-  <term>
-    <option>rightvti</option>
-  </term>
-  <listitem>
-    <para>
-      the address/mask to configure on the VTI interface when
-      <option>vti-interface</option> is set.  It takes the form of
-      <option>network</option><option>/</option><option>netmask</option>
-      Currently, IPv4 and IPv6 addresses with cidr netmask are
-      supported.  This option is often used in combination with routed
-      based VPNs.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/xauthby.xml b/configs/d.ipsec.conf/xauthby.xml
deleted file mode 100644 (file)
index 6e7f3ef..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-<varlistentry>
-  <term>
-    <option>xauthby</option>
-  </term>
-  <listitem>
-    <para>
-      When IKEv1 XAUTH support is available, set the method used by
-      XAUTH to authenticate the user with IKEv1. The currently
-      supported values are <option>file</option> (the default),
-      <option>pam</option> or <option>alwaysok</option>.  The password
-      file is located at <option>/etc/ipsec.d/passwd</option>, and
-      follows a syntax similar to the Apache htpasswd file, except an
-      additional connection name argument (and optional static IP
-      address) are also present:
-    </para>
-    <para>
-      <option>username:password:conname:ipaddress</option>
-    </para>
-    <para>
-      For supported password hashing methods, see &crypt.3;.  If pluto
-      is running in FIPS mode, some hash methods, such as MD5, might
-      not be available. Threads are used to launch an xauth
-      authentication helper for file as well as PAM methods.
-    </para>
-    <para>
-      The <option>alwaysok</option> should only be used if the XAUTH
-      user authentication is not really used, but is required for
-      interoperability, as it defeats the whole point of XAUTH which
-      is to rely on a secret only known by a human.  See also
-      <option>pam-authorize=yes</option>
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/xauthclient.xml b/configs/d.ipsec.conf/xauthclient.xml
deleted file mode 100644 (file)
index f9c8bfd..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-<varlistentry>
-  <term>
-    <option>leftxauthclient</option>
-  </term>
-  <term>
-    <option>rightxauthclient</option>
-  </term>
-  <listitem>
-    <para>
-      Left is an XAUTH client. The xauth connection will have to be
-      started interactively and cannot be configured using
-      <option>auto=start</option>.  Instead, it has to be started from
-      the commandline using <command>ipsec up
-      <replaceable>connection</replaceable></command>.  You will then
-      be prompted for the username and password. To setup an XAUTH
-      connection non-interactively, which defeats the whole purpose of
-      XAUTH, but is regularly requested by users, it is possible to
-      use a whack command - <command>ipsec whack --name baduser
-      --ipsecgroup-xauth --xauthname badusername --xauthpass password
-      --initiate</command> The other side of the connection should be
-      configured as <option>rightxauthserver</option>.  Acceptable
-      values are <option>yes</option> or <option>no</option> (the
-      default).
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/xauthfail.xml b/configs/d.ipsec.conf/xauthfail.xml
deleted file mode 100644 (file)
index e731137..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-<varlistentry>
-  <term>
-    <option>xauthfail</option>
-  </term>
-  <listitem>
-    <para>
-      When XAUTH support is available, set the failure method desired
-      when authentication has failed.  The currently supported values
-      are <option>hard</option> (the default) and
-      <option>soft</option>. A soft failure means the IPsec SA is
-      allowed to be established, as if authentication had passed
-      successfully, but the XAUTH_FAILED environment variable will be
-      set to 1 for the updown script, which can then be used to
-      redirect the user into a walled garden, for example a payment
-      portal.
-    </para>
-  </listitem>
-</varlistentry>
diff --git a/configs/d.ipsec.conf/xauthserver.xml b/configs/d.ipsec.conf/xauthserver.xml
deleted file mode 100644 (file)
index 2cadb19..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-<varlistentry>
-  <term>
-    <option>leftxauthserver</option>
-  </term>
-  <term>
-    <option>rightxauthserver</option>
-  </term>
-  <listitem>
-    <para>
-      Left is an XAUTH server. This can use PAM for authentication or
-      md5 passwords in <option>/etc/ipsec.d/passwd</option>. These are
-      additional credentials to verify the user identity, and should
-      not be confused with the XAUTH <option>group secret</option>,
-      which is just a regular PSK defined in
-      <option>ipsec.secrets</option>.  The other side of the
-      connection should be configured as
-      <option>rightxauthclient</option>. XAUTH connections cannot
-      rekey, so <option>rekey=no</option> should be specified in this
-      conn.  For further details on how to compile and use XAUTH, see
-      README.XAUTH.  Acceptable values are <option>yes</option> or
-      <option>no</option> (the default).
-    </para>
-  </listitem>
-</varlistentry>
index 5b749fe9002948784b342e0e31ab13900ad4eabe..0e493eddb1ee0d2e374ff16ef1a954c4fccb0f55 100644 (file)
 
 <!ENTITY % entities SYSTEM "entities.xml">%entities;
 
-<!ENTITY accept-redirect SYSTEM "d.ipsec.conf/accept-redirect.xml">
-<!ENTITY accept-redirect-to SYSTEM "d.ipsec.conf/accept-redirect-to.xml">
-<!ENTITY aggressive SYSTEM "d.ipsec.conf/aggressive.xml">
-<!ENTITY ah SYSTEM "d.ipsec.conf/ah.xml">
-<!ENTITY reject-simultaneous-ike-auth SYSTEM "d.ipsec.conf/reject-simultaneous-ike-auth.xml">
-<!ENTITY audit-log SYSTEM "d.ipsec.conf/audit-log.xml">
-<!ENTITY authby SYSTEM "d.ipsec.conf/authby.xml">
-<!ENTITY author SYSTEM "d.ipsec.conf/author.xml">
-<!ENTITY auto SYSTEM "d.ipsec.conf/auto.xml">
-<!ENTITY bugs SYSTEM "d.ipsec.conf/bugs.xml">
-<!ENTITY choosing_a_connection SYSTEM "d.ipsec.conf/choosing_a_connection.xml">
-<!ENTITY cisco-unity SYSTEM "d.ipsec.conf/cisco-unity.xml">
-<!ENTITY cisco-split SYSTEM "d.ipsec.conf/cisco-split.xml">
-<!ENTITY clientaddrfamily SYSTEM "d.ipsec.conf/clientaddrfamily.xml">
-<!ENTITY compress SYSTEM "d.ipsec.conf/compress.xml">
-<!ENTITY connsections SYSTEM "d.ipsec.conf/connsections.xml">
-<!ENTITY crl-strict SYSTEM "d.ipsec.conf/crl-strict.xml">
-<!ENTITY crl-timeout SYSTEM "d.ipsec.conf/crl-timeout.xml">
-<!ENTITY crlcheckinterval SYSTEM "d.ipsec.conf/crlcheckinterval.xml">
-<!ENTITY curl-iface SYSTEM "d.ipsec.conf/curl-iface.xml">
-<!ENTITY dns-resolver SYSTEM "d.ipsec.conf/dns-resolver.xml">
-<!ENTITY ddos-ike-threshold SYSTEM "d.ipsec.conf/ddos-ike-threshold.xml">
-<!ENTITY ddos-mode SYSTEM "d.ipsec.conf/ddos-mode.xml">
-<!ENTITY debug SYSTEM "d.ipsec.conf/debug.xml">
-<!ENTITY decap-dscp SYSTEM "d.ipsec.conf/decap-dscp.xml">
-<!ENTITY default_policy_groups SYSTEM "d.ipsec.conf/default_policy_groups.xml">
-<!ENTITY dns-match-id SYSTEM "d.ipsec.conf/dns-match-id.xml">
-<!ENTITY dnssec-anchors SYSTEM "d.ipsec.conf/dnssec-anchors.xml">
-<!ENTITY dnssec-enable SYSTEM "d.ipsec.conf/dnssec-enable.xml">
-<!ENTITY dnssec-rootkey-file SYSTEM "d.ipsec.conf/dnssec-rootkey-file.xml">
-<!ENTITY dpddelay SYSTEM "d.ipsec.conf/dpddelay.xml">
-<!ENTITY dpdtimeout SYSTEM "d.ipsec.conf/dpdtimeout.xml">
-<!ENTITY dumpdir SYSTEM "d.ipsec.conf/dumpdir.xml">
-<!ENTITY enable-tcp SYSTEM "d.ipsec.conf/enable-tcp.xml">
-<!ENTITY encap-dscp SYSTEM "d.ipsec.conf/encap-dscp.xml">
-<!ENTITY encapsulation SYSTEM "d.ipsec.conf/encapsulation.xml">
-<!ENTITY esn SYSTEM "d.ipsec.conf/esn.xml">
-<!ENTITY esp SYSTEM "d.ipsec.conf/esp.xml">
-<!ENTITY exampleleftright SYSTEM "d.ipsec.conf/exampleleftright.xml">
-<!ENTITY expire-shunt-interval SYSTEM "d.ipsec.conf/expire-shunt-interval.xml">
-<!ENTITY failureshunt SYSTEM "d.ipsec.conf/failureshunt.xml">
-<!ENTITY fake-strongswan SYSTEM "d.ipsec.conf/fake-strongswan.xml">
-<!ENTITY files SYSTEM "d.ipsec.conf/files.xml">
-<!ENTITY fragmentation SYSTEM "d.ipsec.conf/fragmentation.xml">
-<!ENTITY global-redirect SYSTEM "d.ipsec.conf/global-redirect.xml">
-<!ENTITY global-redirect-to SYSTEM "d.ipsec.conf/global-redirect-to.xml">
-<!ENTITY history SYSTEM "d.ipsec.conf/history.xml">
-<!ENTITY hostaddrfamily SYSTEM "d.ipsec.conf/hostaddrfamily.xml">
-<!ENTITY ignore-peer-dns SYSTEM "d.ipsec.conf/ignore-peer-dns.xml">
-<!ENTITY ike SYSTEM "d.ipsec.conf/ike.xml">
-<!ENTITY ike-socket-bufsize SYSTEM "d.ipsec.conf/ike-socket-bufsize.xml">
-<!ENTITY ike-socket-errqueue SYSTEM "d.ipsec.conf/ike-socket-errqueue.xml">
-<!ENTITY ikelifetime SYSTEM "d.ipsec.conf/ikelifetime.xml">
-<!ENTITY ikepad SYSTEM "d.ipsec.conf/ikepad.xml">
-<!ENTITY ikev1-policy SYSTEM "d.ipsec.conf/ikev1-policy.xml">
-<!ENTITY initial-contact SYSTEM "d.ipsec.conf/initial-contact.xml">
-<!ENTITY interface-ip SYSTEM "d.ipsec.conf/interface-ip.xml">
-<!ENTITY intermediate SYSTEM "d.ipsec.conf/intermediate.xml">
-<!ENTITY ipsec-interface SYSTEM "d.ipsec.conf/ipsec-interface.xml">
-<!ENTITY ipsec-interface-managed SYSTEM "d.ipsec.conf/ipsec-interface-managed.xml">
-<!ENTITY ipsec-max-bytes SYSTEM "d.ipsec.conf/ipsec-max-bytes.xml">
-<!ENTITY ipsec-max-packets SYSTEM "d.ipsec.conf/ipsec-max-packets.xml">
-<!ENTITY ipsecdir SYSTEM "d.ipsec.conf/ipsecdir.xml">
-<!ENTITY iptfs SYSTEM "d.ipsec.conf/iptfs.xml">
-<!ENTITY keep-alive SYSTEM "d.ipsec.conf/keep-alive.xml">
-<!ENTITY keyexchange SYSTEM "d.ipsec.conf/keyexchange.xml">
-<!ENTITY host SYSTEM "d.ipsec.conf/host.xml">
-<!ENTITY addresspool SYSTEM "d.ipsec.conf/addresspool.xml">
-<!ENTITY auth SYSTEM "d.ipsec.conf/auth.xml">
-<!ENTITY autheap SYSTEM "d.ipsec.conf/autheap.xml">
-<!ENTITY ca SYSTEM "d.ipsec.conf/ca.xml">
-<!ENTITY cat SYSTEM "d.ipsec.conf/cat.xml">
-<!ENTITY cert SYSTEM "d.ipsec.conf/cert.xml">
-<!ENTITY ckaid SYSTEM "d.ipsec.conf/ckaid.xml">
-<!ENTITY firewall SYSTEM "d.ipsec.conf/firewall.xml">
-<!ENTITY id SYSTEM "d.ipsec.conf/id.xml">
-<!ENTITY ikeport SYSTEM "d.ipsec.conf/ikeport.xml">
-<!ENTITY modecfgclient SYSTEM "d.ipsec.conf/modecfgclient.xml">
-<!ENTITY modecfgserver SYSTEM "d.ipsec.conf/modecfgserver.xml">
-<!ENTITY nexthop SYSTEM "d.ipsec.conf/nexthop.xml">
-<!ENTITY protoport SYSTEM "d.ipsec.conf/protoport.xml">
-<!ENTITY rsasigkey SYSTEM "d.ipsec.conf/rsasigkey.xml">
-<!ENTITY sendcert SYSTEM "d.ipsec.conf/sendcert.xml">
-<!ENTITY sourceip SYSTEM "d.ipsec.conf/sourceip.xml">
-<!ENTITY subnet SYSTEM "d.ipsec.conf/subnet.xml">
-<!ENTITY subnets SYSTEM "d.ipsec.conf/subnets.xml">
-<!ENTITY updown SYSTEM "d.ipsec.conf/updown.xml">
-<!ENTITY username SYSTEM "d.ipsec.conf/username.xml">
-<!ENTITY vti SYSTEM "d.ipsec.conf/vti.xml">
-<!ENTITY xauthclient SYSTEM "d.ipsec.conf/xauthclient.xml">
-<!ENTITY xauthserver SYSTEM "d.ipsec.conf/xauthserver.xml">
-<!ENTITY listen SYSTEM "d.ipsec.conf/listen.xml">
-<!ENTITY listen-tcp SYSTEM "d.ipsec.conf/listen-tcp.xml">
-<!ENTITY listen-udp SYSTEM "d.ipsec.conf/listen-udp.xml">
-<!ENTITY logappend SYSTEM "d.ipsec.conf/logappend.xml">
-<!ENTITY logfile SYSTEM "d.ipsec.conf/logfile.xml">
-<!ENTITY logip SYSTEM "d.ipsec.conf/logip.xml">
-<!ENTITY logtime SYSTEM "d.ipsec.conf/logtime.xml">
-<!ENTITY mark SYSTEM "d.ipsec.conf/mark.xml">
-<!ENTITY mark-in SYSTEM "d.ipsec.conf/mark-in.xml">
-<!ENTITY mark-out SYSTEM "d.ipsec.conf/mark-out.xml">
-<!ENTITY max-halfopen-ike SYSTEM "d.ipsec.conf/max-halfopen-ike.xml">
-<!ENTITY metric SYSTEM "d.ipsec.conf/metric.xml">
-<!ENTITY mobike SYSTEM "d.ipsec.conf/mobike.xml">
-<!ENTITY modecfgoptions SYSTEM "d.ipsec.conf/modecfgoptions.xml">
-<!ENTITY modecfgpull SYSTEM "d.ipsec.conf/modecfgpull.xml">
-<!ENTITY ms-dh-downgrade SYSTEM "d.ipsec.conf/ms-dh-downgrade.xml">
-<!ENTITY mtu SYSTEM "d.ipsec.conf/mtu.xml">
-<!ENTITY myvendorid SYSTEM "d.ipsec.conf/myvendorid.xml">
-<!ENTITY narrowing SYSTEM "d.ipsec.conf/narrowing.xml">
-<!ENTITY nat-ikev1-method SYSTEM "d.ipsec.conf/nat-ikev1-method.xml">
-<!ENTITY nat-keepalive SYSTEM "d.ipsec.conf/nat-keepalive.xml">
-<!ENTITY negotiationshunt SYSTEM "d.ipsec.conf/negotiationshunt.xml">
-<!ENTITY nflog-group SYSTEM "d.ipsec.conf/nflog-group.xml">
-<!ENTITY nflog-all SYSTEM "d.ipsec.conf/nflog-all.xml">
-<!ENTITY nhelpers SYSTEM "d.ipsec.conf/nhelpers.xml">
-<!ENTITY nic-offload SYSTEM "d.ipsec.conf/nic-offload.xml">
-<!ENTITY nm-configured SYSTEM "d.ipsec.conf/nm-configured.xml">
-<!ENTITY nopmtudisc SYSTEM "d.ipsec.conf/nopmtudisc.xml">
-<!ENTITY nssdir SYSTEM "d.ipsec.conf/nssdir.xml">
-<!ENTITY ocsp-cache-max-age SYSTEM "d.ipsec.conf/ocsp-cache-max-age.xml">
-<!ENTITY ocsp-cache-min-age SYSTEM "d.ipsec.conf/ocsp-cache-min-age.xml">
-<!ENTITY ocsp-cache-size SYSTEM "d.ipsec.conf/ocsp-cache-size.xml">
-<!ENTITY ocsp-enable SYSTEM "d.ipsec.conf/ocsp-enable.xml">
-<!ENTITY ocsp-method SYSTEM "d.ipsec.conf/ocsp-method.xml">
-<!ENTITY ocsp-strict SYSTEM "d.ipsec.conf/ocsp-strict.xml">
-<!ENTITY ocsp-timeout SYSTEM "d.ipsec.conf/ocsp-timeout.xml">
-<!ENTITY ocsp-trustname SYSTEM "d.ipsec.conf/ocsp-trustname.xml">
-<!ENTITY ocsp-uri SYSTEM "d.ipsec.conf/ocsp-uri.xml">
-<!ENTITY oe_conns SYSTEM "d.ipsec.conf/oe_conns.xml">
-<!ENTITY overlapip SYSTEM "d.ipsec.conf/overlapip.xml">
-<!ENTITY pam-authorize SYSTEM "d.ipsec.conf/pam-authorize.xml">
-<!ENTITY pfs SYSTEM "d.ipsec.conf/pfs.xml">
-<!ENTITY phase2 SYSTEM "d.ipsec.conf/phase2.xml">
-<!ENTITY plutodebug SYSTEM "d.ipsec.conf/plutodebug.xml">
-<!ENTITY policy-label SYSTEM "d.ipsec.conf/policy-label.xml">
-<!ENTITY policy_group_files SYSTEM "d.ipsec.conf/policy_group_files.xml">
-<!ENTITY ppk SYSTEM "d.ipsec.conf/ppk.xml">
-<!ENTITY ppk-ids SYSTEM "d.ipsec.conf/ppk-ids.xml">
-<!ENTITY priority SYSTEM "d.ipsec.conf/priority.xml">
-<!ENTITY protostack SYSTEM "d.ipsec.conf/protostack.xml">
-<!ENTITY redirect-to SYSTEM "d.ipsec.conf/redirect-to.xml">
-<!ENTITY rekey SYSTEM "d.ipsec.conf/rekey.xml">
-<!ENTITY rekeyfuzz SYSTEM "d.ipsec.conf/rekeyfuzz.xml">
-<!ENTITY rekeymargin SYSTEM "d.ipsec.conf/rekeymargin.xml">
-<!ENTITY remote-peer-type SYSTEM "d.ipsec.conf/remote-peer-type.xml">
-<!ENTITY replay-window SYSTEM "d.ipsec.conf/replay-window.xml">
-<!ENTITY reqid SYSTEM "d.ipsec.conf/reqid.xml">
-<!ENTITY require-id-on-certificate SYSTEM "d.ipsec.conf/require-id-on-certificate.xml">
-<!ENTITY retransmit-interval SYSTEM "d.ipsec.conf/retransmit-interval.xml">
-<!ENTITY retransmit-timeout SYSTEM "d.ipsec.conf/retransmit-timeout.xml">
-<!ENTITY salifetime SYSTEM "d.ipsec.conf/salifetime.xml">
-<!ENTITY seccomp SYSTEM "d.ipsec.conf/seccomp.xml">
-<!ENTITY secretsfile SYSTEM "d.ipsec.conf/secretsfile.xml">
-<!ENTITY see_also SYSTEM "d.ipsec.conf/see_also.xml">
-<!ENTITY seedbits SYSTEM "d.ipsec.conf/seedbits.xml">
-<!ENTITY send-no-esp-tfc SYSTEM "d.ipsec.conf/send-no-esp-tfc.xml">
-<!ENTITY send-redirect SYSTEM "d.ipsec.conf/send-redirect.xml">
-<!ENTITY send-vendorid SYSTEM "d.ipsec.conf/send-vendorid.xml">
-<!ENTITY sendca SYSTEM "d.ipsec.conf/sendca.xml">
-<!ENTITY sha2-truncbug SYSTEM "d.ipsec.conf/sha2-truncbug.xml">
-<!ENTITY share-lease SYSTEM "d.ipsec.conf/share-lease.xml">
-<!ENTITY shuntlifetime SYSTEM "d.ipsec.conf/shuntlifetime.xml">
-<!ENTITY statsbin SYSTEM "d.ipsec.conf/statsbin.xml">
-<!ENTITY syslog SYSTEM "d.ipsec.conf/syslog.xml">
-<!ENTITY tcp-remoteport SYSTEM "d.ipsec.conf/tcp-remoteport.xml">
-<!ENTITY tfc SYSTEM "d.ipsec.conf/tfc.xml">
-<!ENTITY type SYSTEM "d.ipsec.conf/type.xml">
-<!ENTITY uniqueids SYSTEM "d.ipsec.conf/uniqueids.xml">
-<!ENTITY units SYSTEM "d.ipsec.conf/units.xml">
-<!ENTITY virtual-private SYSTEM "d.ipsec.conf/virtual-private.xml">
-<!ENTITY vti-interface SYSTEM "d.ipsec.conf/vti-interface.xml">
-<!ENTITY vti-routing SYSTEM "d.ipsec.conf/vti-routing.xml">
-<!ENTITY vti-shared SYSTEM "d.ipsec.conf/vti-shared.xml">
-<!ENTITY xauthby SYSTEM "d.ipsec.conf/xauthby.xml">
-<!ENTITY xauthfail SYSTEM "d.ipsec.conf/xauthfail.xml">
-<!ENTITY expire-lifetime SYSTEM "d.ipsec.conf/expire-lifetime.xml">
+<!ENTITY sect.exampleleftright SYSTEM "d.ipsec.conf/sect/exampleleftright.xml">
+
+<!ENTITY sect.author SYSTEM "d.ipsec.conf/sect/author.xml">
+<!ENTITY sect.bugs SYSTEM "d.ipsec.conf/sect/bugs.xml">
+<!ENTITY sect.choosing_a_connection SYSTEM "d.ipsec.conf/sect/choosing_a_connection.xml">
+<!ENTITY sect.connsections SYSTEM "d.ipsec.conf/sect/connsections.xml">
+<!ENTITY sect.default_policy_groups SYSTEM "d.ipsec.conf/sect/default_policy_groups.xml">
+<!ENTITY sect.files SYSTEM "d.ipsec.conf/sect/files.xml">
+<!ENTITY sect.history SYSTEM "d.ipsec.conf/sect/history.xml">
+<!ENTITY sect.oe_conns SYSTEM "d.ipsec.conf/sect/oe_conns.xml">
+<!ENTITY sect.policy_group_files SYSTEM "d.ipsec.conf/sect/policy_group_files.xml">
+<!ENTITY sect.see_also SYSTEM "d.ipsec.conf/sect/see_also.xml">
+<!ENTITY sect.units SYSTEM "d.ipsec.conf/sect/units.xml">
+
+<!ENTITY conn.accept-redirect SYSTEM "d.ipsec.conf/conn/accept-redirect.xml">
+<!ENTITY conn.accept-redirect-to SYSTEM "d.ipsec.conf/conn/accept-redirect-to.xml">
+<!ENTITY conn.addresspool SYSTEM "d.ipsec.conf/conn/addresspool.xml">
+<!ENTITY conn.aggressive SYSTEM "d.ipsec.conf/conn/aggressive.xml">
+<!ENTITY conn.ah SYSTEM "d.ipsec.conf/conn/ah.xml">
+<!ENTITY conn.auth SYSTEM "d.ipsec.conf/conn/auth.xml">
+<!ENTITY conn.authby SYSTEM "d.ipsec.conf/conn/authby.xml">
+<!ENTITY conn.autheap SYSTEM "d.ipsec.conf/conn/autheap.xml">
+<!ENTITY conn.auto SYSTEM "d.ipsec.conf/conn/auto.xml">
+<!ENTITY conn.ca SYSTEM "d.ipsec.conf/conn/ca.xml">
+<!ENTITY conn.cat SYSTEM "d.ipsec.conf/conn/cat.xml">
+<!ENTITY conn.cert SYSTEM "d.ipsec.conf/conn/cert.xml">
+<!ENTITY conn.cisco-split SYSTEM "d.ipsec.conf/conn/cisco-split.xml">
+<!ENTITY conn.cisco-unity SYSTEM "d.ipsec.conf/conn/cisco-unity.xml">
+<!ENTITY conn.ckaid SYSTEM "d.ipsec.conf/conn/ckaid.xml">
+<!ENTITY conn.clientaddrfamily SYSTEM "d.ipsec.conf/conn/clientaddrfamily.xml">
+<!ENTITY conn.compress SYSTEM "d.ipsec.conf/conn/compress.xml">
+<!ENTITY conn.debug SYSTEM "d.ipsec.conf/conn/debug.xml">
+<!ENTITY conn.decap-dscp SYSTEM "d.ipsec.conf/conn/decap-dscp.xml">
+<!ENTITY conn.dns-match-id SYSTEM "d.ipsec.conf/conn/dns-match-id.xml">
+<!ENTITY conn.dpddelay SYSTEM "d.ipsec.conf/conn/dpddelay.xml">
+<!ENTITY conn.dpdtimeout SYSTEM "d.ipsec.conf/conn/dpdtimeout.xml">
+<!ENTITY conn.enable-tcp SYSTEM "d.ipsec.conf/conn/enable-tcp.xml">
+<!ENTITY conn.encap-dscp SYSTEM "d.ipsec.conf/conn/encap-dscp.xml">
+<!ENTITY conn.encapsulation SYSTEM "d.ipsec.conf/conn/encapsulation.xml">
+<!ENTITY conn.esn SYSTEM "d.ipsec.conf/conn/esn.xml">
+<!ENTITY conn.esp SYSTEM "d.ipsec.conf/conn/esp.xml">
+<!ENTITY conn.failureshunt SYSTEM "d.ipsec.conf/conn/failureshunt.xml">
+<!ENTITY conn.fake-strongswan SYSTEM "d.ipsec.conf/conn/fake-strongswan.xml">
+<!ENTITY conn.firewall SYSTEM "d.ipsec.conf/conn/firewall.xml">
+<!ENTITY conn.fragmentation SYSTEM "d.ipsec.conf/conn/fragmentation.xml">
+<!ENTITY conn.host SYSTEM "d.ipsec.conf/conn/host.xml">
+<!ENTITY conn.hostaddrfamily SYSTEM "d.ipsec.conf/conn/hostaddrfamily.xml">
+<!ENTITY conn.id SYSTEM "d.ipsec.conf/conn/id.xml">
+<!ENTITY conn.ignore-peer-dns SYSTEM "d.ipsec.conf/conn/ignore-peer-dns.xml">
+<!ENTITY conn.ike SYSTEM "d.ipsec.conf/conn/ike.xml">
+<!ENTITY conn.ikelifetime SYSTEM "d.ipsec.conf/conn/ikelifetime.xml">
+<!ENTITY conn.ikepad SYSTEM "d.ipsec.conf/conn/ikepad.xml">
+<!ENTITY conn.ikeport SYSTEM "d.ipsec.conf/conn/ikeport.xml">
+<!ENTITY conn.initial-contact SYSTEM "d.ipsec.conf/conn/initial-contact.xml">
+<!ENTITY conn.interface-ip SYSTEM "d.ipsec.conf/conn/interface-ip.xml">
+<!ENTITY conn.intermediate SYSTEM "d.ipsec.conf/conn/intermediate.xml">
+<!ENTITY conn.ipsec-interface SYSTEM "d.ipsec.conf/conn/ipsec-interface.xml">
+<!ENTITY conn.ipsec-max-bytes SYSTEM "d.ipsec.conf/conn/ipsec-max-bytes.xml">
+<!ENTITY conn.ipsec-max-packets SYSTEM "d.ipsec.conf/conn/ipsec-max-packets.xml">
+<!ENTITY conn.iptfs SYSTEM "d.ipsec.conf/conn/iptfs.xml">
+<!ENTITY conn.keyexchange SYSTEM "d.ipsec.conf/conn/keyexchange.xml">
+<!ENTITY conn.mark SYSTEM "d.ipsec.conf/conn/mark.xml">
+<!ENTITY conn.mark-in SYSTEM "d.ipsec.conf/conn/mark-in.xml">
+<!ENTITY conn.mark-out SYSTEM "d.ipsec.conf/conn/mark-out.xml">
+<!ENTITY conn.metric SYSTEM "d.ipsec.conf/conn/metric.xml">
+<!ENTITY conn.mobike SYSTEM "d.ipsec.conf/conn/mobike.xml">
+<!ENTITY conn.modecfgclient SYSTEM "d.ipsec.conf/conn/modecfgclient.xml">
+<!ENTITY conn.modecfgoptions SYSTEM "d.ipsec.conf/conn/modecfgoptions.xml">
+<!ENTITY conn.modecfgpull SYSTEM "d.ipsec.conf/conn/modecfgpull.xml">
+<!ENTITY conn.modecfgserver SYSTEM "d.ipsec.conf/conn/modecfgserver.xml">
+<!ENTITY conn.ms-dh-downgrade SYSTEM "d.ipsec.conf/conn/ms-dh-downgrade.xml">
+<!ENTITY conn.mtu SYSTEM "d.ipsec.conf/conn/mtu.xml">
+<!ENTITY conn.narrowing SYSTEM "d.ipsec.conf/conn/narrowing.xml">
+<!ENTITY conn.nat-ikev1-method SYSTEM "d.ipsec.conf/conn/nat-ikev1-method.xml">
+<!ENTITY conn.nat-keepalive SYSTEM "d.ipsec.conf/conn/nat-keepalive.xml">
+<!ENTITY conn.negotiationshunt SYSTEM "d.ipsec.conf/conn/negotiationshunt.xml">
+<!ENTITY conn.nexthop SYSTEM "d.ipsec.conf/conn/nexthop.xml">
+<!ENTITY conn.nflog-group SYSTEM "d.ipsec.conf/conn/nflog-group.xml">
+<!ENTITY conn.nic-offload SYSTEM "d.ipsec.conf/conn/nic-offload.xml">
+<!ENTITY conn.nm-configured SYSTEM "d.ipsec.conf/conn/nm-configured.xml">
+<!ENTITY conn.nopmtudisc SYSTEM "d.ipsec.conf/conn/nopmtudisc.xml">
+<!ENTITY conn.overlapip SYSTEM "d.ipsec.conf/conn/overlapip.xml">
+<!ENTITY conn.pam-authorize SYSTEM "d.ipsec.conf/conn/pam-authorize.xml">
+<!ENTITY conn.pfs SYSTEM "d.ipsec.conf/conn/pfs.xml">
+<!ENTITY conn.phase2 SYSTEM "d.ipsec.conf/conn/phase2.xml">
+<!ENTITY conn.policy-label SYSTEM "d.ipsec.conf/conn/policy-label.xml">
+<!ENTITY conn.ppk SYSTEM "d.ipsec.conf/conn/ppk.xml">
+<!ENTITY conn.ppk-ids SYSTEM "d.ipsec.conf/conn/ppk-ids.xml">
+<!ENTITY conn.priority SYSTEM "d.ipsec.conf/conn/priority.xml">
+<!ENTITY conn.protoport SYSTEM "d.ipsec.conf/conn/protoport.xml">
+<!ENTITY conn.redirect-to SYSTEM "d.ipsec.conf/conn/redirect-to.xml">
+<!ENTITY conn.reject-simultaneous-ike-auth SYSTEM "d.ipsec.conf/conn/reject-simultaneous-ike-auth.xml">
+<!ENTITY conn.rekey SYSTEM "d.ipsec.conf/conn/rekey.xml">
+<!ENTITY conn.rekeyfuzz SYSTEM "d.ipsec.conf/conn/rekeyfuzz.xml">
+<!ENTITY conn.rekeymargin SYSTEM "d.ipsec.conf/conn/rekeymargin.xml">
+<!ENTITY conn.remote-peer-type SYSTEM "d.ipsec.conf/conn/remote-peer-type.xml">
+<!ENTITY conn.replay-window SYSTEM "d.ipsec.conf/conn/replay-window.xml">
+<!ENTITY conn.reqid SYSTEM "d.ipsec.conf/conn/reqid.xml">
+<!ENTITY conn.require-id-on-certificate SYSTEM "d.ipsec.conf/conn/require-id-on-certificate.xml">
+<!ENTITY conn.retransmit-interval SYSTEM "d.ipsec.conf/conn/retransmit-interval.xml">
+<!ENTITY conn.retransmit-timeout SYSTEM "d.ipsec.conf/conn/retransmit-timeout.xml">
+<!ENTITY conn.rsasigkey SYSTEM "d.ipsec.conf/conn/rsasigkey.xml">
+<!ENTITY conn.salifetime SYSTEM "d.ipsec.conf/conn/salifetime.xml">
+<!ENTITY conn.send-no-esp-tfc SYSTEM "d.ipsec.conf/conn/send-no-esp-tfc.xml">
+<!ENTITY conn.send-redirect SYSTEM "d.ipsec.conf/conn/send-redirect.xml">
+<!ENTITY conn.send-vendorid SYSTEM "d.ipsec.conf/conn/send-vendorid.xml">
+<!ENTITY conn.sendca SYSTEM "d.ipsec.conf/conn/sendca.xml">
+<!ENTITY conn.sendcert SYSTEM "d.ipsec.conf/conn/sendcert.xml">
+<!ENTITY conn.sha2-truncbug SYSTEM "d.ipsec.conf/conn/sha2-truncbug.xml">
+<!ENTITY conn.share-lease SYSTEM "d.ipsec.conf/conn/share-lease.xml">
+<!ENTITY conn.sourceip SYSTEM "d.ipsec.conf/conn/sourceip.xml">
+<!ENTITY conn.subnet SYSTEM "d.ipsec.conf/conn/subnet.xml">
+<!ENTITY conn.subnets SYSTEM "d.ipsec.conf/conn/subnets.xml">
+<!ENTITY conn.tcp-remoteport SYSTEM "d.ipsec.conf/conn/tcp-remoteport.xml">
+<!ENTITY conn.tfc SYSTEM "d.ipsec.conf/conn/tfc.xml">
+<!ENTITY conn.type SYSTEM "d.ipsec.conf/conn/type.xml">
+<!ENTITY conn.updown SYSTEM "d.ipsec.conf/conn/updown.xml">
+<!ENTITY conn.username SYSTEM "d.ipsec.conf/conn/username.xml">
+<!ENTITY conn.vti SYSTEM "d.ipsec.conf/conn/vti.xml">
+<!ENTITY conn.vti-interface SYSTEM "d.ipsec.conf/conn/vti-interface.xml">
+<!ENTITY conn.vti-routing SYSTEM "d.ipsec.conf/conn/vti-routing.xml">
+<!ENTITY conn.vti-shared SYSTEM "d.ipsec.conf/conn/vti-shared.xml">
+<!ENTITY conn.xauthby SYSTEM "d.ipsec.conf/conn/xauthby.xml">
+<!ENTITY conn.xauthclient SYSTEM "d.ipsec.conf/conn/xauthclient.xml">
+<!ENTITY conn.xauthfail SYSTEM "d.ipsec.conf/conn/xauthfail.xml">
+<!ENTITY conn.xauthserver SYSTEM "d.ipsec.conf/conn/xauthserver.xml">
+
+<!ENTITY setup.audit-log SYSTEM "d.ipsec.conf/setup/audit-log.xml">
+<!ENTITY setup.crl-strict SYSTEM "d.ipsec.conf/setup/crl-strict.xml">
+<!ENTITY setup.crl-timeout SYSTEM "d.ipsec.conf/setup/crl-timeout.xml">
+<!ENTITY setup.crlcheckinterval SYSTEM "d.ipsec.conf/setup/crlcheckinterval.xml">
+<!ENTITY setup.curl-iface SYSTEM "d.ipsec.conf/setup/curl-iface.xml">
+<!ENTITY setup.ddos-ike-threshold SYSTEM "d.ipsec.conf/setup/ddos-ike-threshold.xml">
+<!ENTITY setup.ddos-mode SYSTEM "d.ipsec.conf/setup/ddos-mode.xml">
+<!ENTITY setup.dns-resolver SYSTEM "d.ipsec.conf/setup/dns-resolver.xml">
+<!ENTITY setup.dnssec-anchors SYSTEM "d.ipsec.conf/setup/dnssec-anchors.xml">
+<!ENTITY setup.dnssec-enable SYSTEM "d.ipsec.conf/setup/dnssec-enable.xml">
+<!ENTITY setup.dnssec-rootkey-file SYSTEM "d.ipsec.conf/setup/dnssec-rootkey-file.xml">
+<!ENTITY setup.dumpdir SYSTEM "d.ipsec.conf/setup/dumpdir.xml">
+<!ENTITY setup.expire-lifetime SYSTEM "d.ipsec.conf/setup/expire-lifetime.xml">
+<!ENTITY setup.expire-shunt-interval SYSTEM "d.ipsec.conf/setup/expire-shunt-interval.xml">
+<!ENTITY setup.global-redirect SYSTEM "d.ipsec.conf/setup/global-redirect.xml">
+<!ENTITY setup.global-redirect-to SYSTEM "d.ipsec.conf/setup/global-redirect-to.xml">
+<!ENTITY setup.ike-socket-bufsize SYSTEM "d.ipsec.conf/setup/ike-socket-bufsize.xml">
+<!ENTITY setup.ike-socket-errqueue SYSTEM "d.ipsec.conf/setup/ike-socket-errqueue.xml">
+<!ENTITY setup.ikev1-policy SYSTEM "d.ipsec.conf/setup/ikev1-policy.xml">
+<!ENTITY setup.ipsec-interface-managed SYSTEM "d.ipsec.conf/setup/ipsec-interface-managed.xml">
+<!ENTITY setup.ipsecdir SYSTEM "d.ipsec.conf/setup/ipsecdir.xml">
+<!ENTITY setup.keep-alive SYSTEM "d.ipsec.conf/setup/keep-alive.xml">
+<!ENTITY setup.listen SYSTEM "d.ipsec.conf/setup/listen.xml">
+<!ENTITY setup.listen-tcp SYSTEM "d.ipsec.conf/setup/listen-tcp.xml">
+<!ENTITY setup.listen-udp SYSTEM "d.ipsec.conf/setup/listen-udp.xml">
+<!ENTITY setup.logappend SYSTEM "d.ipsec.conf/setup/logappend.xml">
+<!ENTITY setup.logfile SYSTEM "d.ipsec.conf/setup/logfile.xml">
+<!ENTITY setup.logip SYSTEM "d.ipsec.conf/setup/logip.xml">
+<!ENTITY setup.logtime SYSTEM "d.ipsec.conf/setup/logtime.xml">
+<!ENTITY setup.max-halfopen-ike SYSTEM "d.ipsec.conf/setup/max-halfopen-ike.xml">
+<!ENTITY setup.myvendorid SYSTEM "d.ipsec.conf/setup/myvendorid.xml">
+<!ENTITY setup.nflog-all SYSTEM "d.ipsec.conf/setup/nflog-all.xml">
+<!ENTITY setup.nhelpers SYSTEM "d.ipsec.conf/setup/nhelpers.xml">
+<!ENTITY setup.nssdir SYSTEM "d.ipsec.conf/setup/nssdir.xml">
+<!ENTITY setup.ocsp-cache-max-age SYSTEM "d.ipsec.conf/setup/ocsp-cache-max-age.xml">
+<!ENTITY setup.ocsp-cache-min-age SYSTEM "d.ipsec.conf/setup/ocsp-cache-min-age.xml">
+<!ENTITY setup.ocsp-cache-size SYSTEM "d.ipsec.conf/setup/ocsp-cache-size.xml">
+<!ENTITY setup.ocsp-enable SYSTEM "d.ipsec.conf/setup/ocsp-enable.xml">
+<!ENTITY setup.ocsp-method SYSTEM "d.ipsec.conf/setup/ocsp-method.xml">
+<!ENTITY setup.ocsp-strict SYSTEM "d.ipsec.conf/setup/ocsp-strict.xml">
+<!ENTITY setup.ocsp-timeout SYSTEM "d.ipsec.conf/setup/ocsp-timeout.xml">
+<!ENTITY setup.ocsp-trustname SYSTEM "d.ipsec.conf/setup/ocsp-trustname.xml">
+<!ENTITY setup.ocsp-uri SYSTEM "d.ipsec.conf/setup/ocsp-uri.xml">
+<!ENTITY setup.plutodebug SYSTEM "d.ipsec.conf/setup/plutodebug.xml">
+<!ENTITY setup.protostack SYSTEM "d.ipsec.conf/setup/protostack.xml">
+<!ENTITY setup.seccomp SYSTEM "d.ipsec.conf/setup/seccomp.xml">
+<!ENTITY setup.secretsfile SYSTEM "d.ipsec.conf/setup/secretsfile.xml">
+<!ENTITY setup.seedbits SYSTEM "d.ipsec.conf/setup/seedbits.xml">
+<!ENTITY setup.shuntlifetime SYSTEM "d.ipsec.conf/setup/shuntlifetime.xml">
+<!ENTITY setup.statsbin SYSTEM "d.ipsec.conf/setup/statsbin.xml">
+<!ENTITY setup.syslog SYSTEM "d.ipsec.conf/setup/syslog.xml">
+<!ENTITY setup.uniqueids SYSTEM "d.ipsec.conf/setup/uniqueids.xml">
+<!ENTITY setup.virtual-private SYSTEM "d.ipsec.conf/setup/virtual-private.xml">
 
 ]>
 
     <refpurpose>IPsec configuration and connections</refpurpose>
   </refnamediv>
 
-  &connsections;
-  &units;
+  &sect.connsections;
+  &sect.units;
 
   <refsect1 id='conn_sections'>
-    &exampleleftright;
+    &sect.exampleleftright;
 
     <refsect2 id='conn_parameters__general'>
       <title>
        values of these parameters.
       </para>
       <variablelist>
-       &keyexchange;
-       &hostaddrfamily;
-       &clientaddrfamily;
-       &type;
-       &iptfs;
-       &host;
-       &subnet;
-       &subnets;
-       &vti;
-       &addresspool;
-       &protoport;
-       &nexthop;
-       &sourceip;
-       &updown;
-       &cat;
-       &firewall;
+       &conn.keyexchange;
+       &conn.hostaddrfamily;
+       &conn.clientaddrfamily;
+       &conn.type;
+       &conn.iptfs;
+       &conn.host;
+       &conn.subnet;
+       &conn.subnets;
+       &conn.vti;
+       &conn.addresspool;
+       &conn.protoport;
+       &conn.nexthop;
+       &conn.sourceip;
+       &conn.updown;
+       &conn.cat;
+       &conn.firewall;
       </variablelist>
       <para>
        If one or both security gateways are doing forwarding
        the values of these parameters.
       </para>
       <variablelist>
-       &auto;
-       &authby;
-       &ike;
-       &phase2;
-       &sha2-truncbug;
-       &ms-dh-downgrade;
-       &dns-match-id;
-       &require-id-on-certificate;
-       &ppk;
-       &ppk-ids;
-       &nat-ikev1-method;
-       &share-lease;
-       &esp;
-       &ah;
-       &fragmentation;
-       &ikepad;
-       &mobike;
-       &intermediate;
-       &esn;
-       &decap-dscp;
-       &encap-dscp;
-       &nopmtudisc;
-       &narrowing;
-       &nic-offload;
-       &id;
-       &rsasigkey;
-       &cert;
-       &ckaid;
-       &auth;
-       &autheap;
-       &ca;
-       &ikeport;
-       &sendcert;
-       &xauthserver;
-       &xauthclient;
-       &username;
-       &modecfgserver;
-       &modecfgclient;
-       &xauthby;
-       &xauthfail;
-       &pam-authorize;
-       &modecfgpull;
-       &modecfgoptions;
-       &remote-peer-type;
-       &nm-configured;
-       &encapsulation;
-       &enable-tcp;
-       &tcp-remoteport;
-       &nat-keepalive;
-       &initial-contact;
-       &cisco-unity;
-       &cisco-split;
-       &ignore-peer-dns;
-       &accept-redirect-to;
-       &accept-redirect;
-       &redirect-to;
-       &send-redirect;
-       &fake-strongswan;
-       &send-vendorid;
-       &overlapip;
-       &reqid;
-       &dpddelay;
-       &dpdtimeout;
-       &pfs;
-       &aggressive;
-       &salifetime;
-       &ipsec-max-bytes;
-       &ipsec-max-packets;
-       &replay-window;
-       &rekey;
-       &rekeymargin;
-       &rekeyfuzz;
-       &ikelifetime;
-       &retransmit-timeout;
-       &retransmit-interval;
-       &compress;
-       &metric;
-       &mtu;
-       &tfc;
-       &send-no-esp-tfc;
-       &nflog-group;
-       &mark;
-       &mark-in;
-       &mark-out;
-       &vti-interface;
-       &vti-routing;
-       &vti-shared;
-       &ipsec-interface;
-       &interface-ip;
-       &priority;
-       &sendca;
-       &policy-label;
-       &failureshunt;
-       &negotiationshunt;
-       &debug;
-       &reject-simultaneous-ike-auth;
+       &conn.auto;
+       &conn.authby;
+       &conn.ike;
+       &conn.phase2;
+       &conn.sha2-truncbug;
+       &conn.ms-dh-downgrade;
+       &conn.dns-match-id;
+       &conn.require-id-on-certificate;
+       &conn.ppk;
+       &conn.ppk-ids;
+       &conn.nat-ikev1-method;
+       &conn.share-lease;
+       &conn.esp;
+       &conn.ah;
+       &conn.fragmentation;
+       &conn.ikepad;
+       &conn.mobike;
+       &conn.intermediate;
+       &conn.esn;
+       &conn.decap-dscp;
+       &conn.encap-dscp;
+       &conn.nopmtudisc;
+       &conn.narrowing;
+       &conn.nic-offload;
+       &conn.id;
+       &conn.rsasigkey;
+       &conn.cert;
+       &conn.ckaid;
+       &conn.auth;
+       &conn.autheap;
+       &conn.ca;
+       &conn.ikeport;
+       &conn.sendcert;
+       &conn.xauthserver;
+       &conn.xauthclient;
+       &conn.username;
+       &conn.modecfgserver;
+       &conn.modecfgclient;
+       &conn.xauthby;
+       &conn.xauthfail;
+       &conn.pam-authorize;
+       &conn.modecfgpull;
+       &conn.modecfgoptions;
+       &conn.remote-peer-type;
+       &conn.nm-configured;
+       &conn.encapsulation;
+       &conn.enable-tcp;
+       &conn.tcp-remoteport;
+       &conn.nat-keepalive;
+       &conn.initial-contact;
+       &conn.cisco-unity;
+       &conn.cisco-split;
+       &conn.ignore-peer-dns;
+       &conn.accept-redirect-to;
+       &conn.accept-redirect;
+       &conn.redirect-to;
+       &conn.send-redirect;
+       &conn.fake-strongswan;
+       &conn.send-vendorid;
+       &conn.overlapip;
+       &conn.reqid;
+       &conn.dpddelay;
+       &conn.dpdtimeout;
+       &conn.pfs;
+       &conn.aggressive;
+       &conn.salifetime;
+       &conn.ipsec-max-bytes;
+       &conn.ipsec-max-packets;
+       &conn.replay-window;
+       &conn.rekey;
+       &conn.rekeymargin;
+       &conn.rekeyfuzz;
+       &conn.ikelifetime;
+       &conn.retransmit-timeout;
+       &conn.retransmit-interval;
+       &conn.compress;
+       &conn.metric;
+       &conn.mtu;
+       &conn.tfc;
+       &conn.send-no-esp-tfc;
+       &conn.nflog-group;
+       &conn.mark;
+       &conn.mark-in;
+       &conn.mark-out;
+       &conn.vti-interface;
+       &conn.vti-routing;
+       &conn.vti-shared;
+       &conn.ipsec-interface;
+       &conn.interface-ip;
+       &conn.priority;
+       &conn.sendca;
+       &conn.policy-label;
+       &conn.failureshunt;
+       &conn.negotiationshunt;
+       &conn.debug;
+       &conn.reject-simultaneous-ike-auth;
       </variablelist>
     </refsect2>
   </refsect1>
       <option>config setup</option> section are:
     </para>
     <variablelist>
-      &protostack;
-      &listen;
-      &ike-socket-bufsize;
-      &ike-socket-errqueue;
-      &listen-udp;
-      &listen-tcp;
-      &nflog-all;
-      &keep-alive;
-      &virtual-private;
-      &myvendorid;
-      &nhelpers;
-      &seedbits;
-      &ikev1-policy;
-      &crlcheckinterval;
-      &crl-strict;
-      &crl-timeout;
-      &curl-iface;
-      &ocsp-enable;
-      &ocsp-strict;
-      &ocsp-method;
-      &ocsp-timeout;
-      &ocsp-uri;
-      &ocsp-trustname;
-      &ocsp-cache-size;
-      &ocsp-cache-min-age;
-      &ocsp-cache-max-age;
-      &syslog;
-      &plutodebug;
-      &uniqueids;
-      &logfile;
-      &logappend;
-      &logip;
-      &audit-log;
-      &logtime;
-      &ddos-mode;
-      &ddos-ike-threshold;
-      &global-redirect;
-      &global-redirect-to;
-      &max-halfopen-ike;
-      &expire-shunt-interval;
-      &shuntlifetime;
-      &expire-lifetime;
-      &dumpdir;
-      &statsbin;
-      &ipsecdir;
-      &nssdir;
-      &secretsfile;
-      &seccomp;
-      &dnssec-enable;
-      &dnssec-rootkey-file;
-      &dnssec-anchors;
-      &ipsec-interface-managed;
-      &dns-resolver;
+      &setup.protostack;
+      &setup.listen;
+      &setup.ike-socket-bufsize;
+      &setup.ike-socket-errqueue;
+      &setup.listen-udp;
+      &setup.listen-tcp;
+      &setup.nflog-all;
+      &setup.keep-alive;
+      &setup.virtual-private;
+      &setup.myvendorid;
+      &setup.nhelpers;
+      &setup.seedbits;
+      &setup.ikev1-policy;
+      &setup.crlcheckinterval;
+      &setup.crl-strict;
+      &setup.crl-timeout;
+      &setup.curl-iface;
+      &setup.ocsp-enable;
+      &setup.ocsp-strict;
+      &setup.ocsp-method;
+      &setup.ocsp-timeout;
+      &setup.ocsp-uri;
+      &setup.ocsp-trustname;
+      &setup.ocsp-cache-size;
+      &setup.ocsp-cache-min-age;
+      &setup.ocsp-cache-max-age;
+      &setup.syslog;
+      &setup.plutodebug;
+      &setup.uniqueids;
+      &setup.logfile;
+      &setup.logappend;
+      &setup.logip;
+      &setup.audit-log;
+      &setup.logtime;
+      &setup.ddos-mode;
+      &setup.ddos-ike-threshold;
+      &setup.global-redirect;
+      &setup.global-redirect-to;
+      &setup.max-halfopen-ike;
+      &setup.expire-shunt-interval;
+      &setup.shuntlifetime;
+      &setup.expire-lifetime;
+      &setup.dumpdir;
+      &setup.statsbin;
+      &setup.ipsecdir;
+      &setup.nssdir;
+      &setup.secretsfile;
+      &setup.seccomp;
+      &setup.dnssec-enable;
+      &setup.dnssec-rootkey-file;
+      &setup.dnssec-anchors;
+      &setup.ipsec-interface-managed;
+      &setup.dns-resolver;
     </variablelist>
   </refsect1>
 
-  &oe_conns;
-  &policy_group_files;
-  &default_policy_groups;
-  &choosing_a_connection;
-  &files;
-  &see_also;
-  &history;
-  &bugs;
-  &author;
+  &sect.oe_conns;
+  &sect.policy_group_files;
+  &sect.default_policy_groups;
+  &sect.choosing_a_connection;
+  &sect.files;
+  &sect.see_also;
+  &sect.history;
+  &sect.bugs;
+  &sect.author;
 
 </refentry>