Commit Graph

16539 Commits

Author SHA1 Message Date
Tobias Brunner 089d5f9765 settings: Properly lock when extending sections or adding fallbacks
There was a potential chance for a race condition if the ensured section
was purged for some reason before using it later.

This also changes the behavior for NULL/empty strings via load_string*
with merge == FALSE, which now purges the config/section.
2018-06-27 14:19:35 +02:00
Tobias Brunner ca3c7b7ea6 settings-test: Add option to use the frontend to display the settings
This resolves references and redefined values. It currently doesn't work
properly if section names contain dots.
2018-06-27 14:19:35 +02:00
Tobias Brunner 35ca6a7b2f settings: Add reference feature
Similar to the `also` keyword in ipsec.conf, the new syntax allows adding
one or more references to other sections, which means all the settings and
subsections defined there are inherited (values may be overridden, even
with an empty value to clear it).

It's important to note that all subsections are inherited, so if this is
used to reference a connection in swanctl.conf all auth rounds and
children are inherited.  There is currently no syntax to limit the
inclusion level or clear inherited sections (but as mentioned, settings
in those inherited sections may be overridden).

Another property is that inherited settings or sections always follow
explicitly defined entries in the current section when they are enumerated.
This is relevant if the order is important (e.g. for auth rounds if `round`
is not specified).

References are evaluated dynamically at runtime, so referring to
sections later in the config file or included via other files is no
problem.

The colon used as separator to reference other sections may be used in
section names by writing :: (e.g. for Windows log file paths).

This is based on a patch originally written in 2016.
2018-06-27 14:19:35 +02:00
Tobias Brunner 0ca0fa71c0 charon-systemd: Register journal logger as custom logger
This way we get early log messages during plugin loading (including
integrity check results).

Instead of the fallback we could also remove the `customlog` namespace,
which was added to avoid conflicts with other settings/sections.
2018-06-26 15:24:42 +02:00
Tobias Brunner 2c02b02589 linked-list: Order of insert_before/remove_at calls doesn't matter anymore
This was quite confusing previously:  While calling insert_before()
and then remove_at() properly replaced the current item, calling them the
other way around inserted the new item before the previous item because
remove_at() changed the enumerator's position to the previous item.

The behavior in corner cases (calling the methods before or after
enumeration) is also changed slightly.
2018-06-26 15:11:02 +02:00
Tobias Brunner 91640baf6d vici: Maintain connection order when replacing one 2018-06-26 15:10:40 +02:00
Tobias Brunner 57447015db eap-radius: Document station_id_with_port option 2018-06-25 10:42:17 +02:00
Andreas Steffen 5b91e8c03c Version bump to 5.7.0dr4 2018-06-22 11:21:02 +02:00
Andreas Steffen ef4a63524f vici: list cert_policy parameter 2018-06-22 10:39:40 +02:00
Andreas Steffen 424de401b4 testing: Added swanctl/rw-ed25519-certpol scenario 2018-06-22 10:39:40 +02:00
Tobias Brunner 3a05566d0e ike-mobike: Always use this task for DPDs even if not behind a NAT
This allows switching to probing mode if the client is on a public IP
and this is the active task and connectivity gets restored.  We only add
NAT-D payloads if we are currently behind a NAT (to detect changed NAT
mappings), a MOBIKE update that might follow will add them in case we
move behind a NAT.
2018-06-22 09:20:30 +02:00
Tobias Brunner 35e49ffd2f unit-tests: Add mock implementation of kernel_net_t
This is required for DPDs via ike-mobike task to work (it does a source
address lookup).
2018-06-22 09:20:30 +02:00
Andreas Steffen daf8ed210a vici: Fixed crash when parsing cert_policy parameter 2018-06-22 08:52:09 +02:00
Andreas Steffen 782344e5e5 libimcv: Prevent integer overflow in time conversion 2018-06-18 11:04:53 +02:00
Andreas Steffen 711e0bdbe4 Version bumpt to 5.7.0dr3 2018-06-14 17:07:59 +02:00
Andreas Steffen 97688e8567 libtpmtss: Query maximum TPM data transmission size 2018-06-14 15:47:27 +02:00
Tobias Brunner 5cfd7311d0 testing: Print command output if test fails
This is quite helpful to debug why a pattern didn't match.

As it could produce quite a lot of output if something is not found in a
log file, the complete output is only printed in verbose mode, otherwise,
`head` is used to print the first 10 lines of output.

We only get stdout from SSH, so the stderr redirection is only really
for errors ssh itself produces.
2018-06-14 09:29:26 +02:00
Andreas Steffen 60719e39bf testing: Fixed evaltest of tnc/tnccs-20-pdp-pt-tls scenario 2018-06-13 17:57:10 +02:00
Andreas Steffen 78584d7efc Version bump to 5.7.0dr2 2018-06-13 17:07:58 +02:00
Andreas Steffen 295493f46f testing: Renewed ECDSA certificates 2018-06-13 17:07:25 +02:00
Andreas Steffen 96b1f0b79d Merge branch 'swima-reserved' 2018-06-12 21:49:54 +02:00
Andreas Steffen 2a26566ed3 libimcv: Implementation of RFC 8412 SWIMA 2018-06-12 21:47:40 +02:00
Andreas Steffen 27ec213d0b libimcv: Added reserved field in SWIMA Inventory encoding 2018-06-12 21:47:40 +02:00
Andreas Steffen 75181f4836 fuzz: Added PB-TNC fuzzer 2018-06-12 21:47:40 +02:00
Andreas Steffen cd6e45817e libimcv: Fixed processing of PTS Request File Metadata 2018-06-12 21:47:39 +02:00
Andreas Steffen 0a3c89a053 libimcv: Removed whitespace 2018-06-12 21:47:39 +02:00
Andreas Steffen 66b9287cd5 libimcv: Fixed processing of PTS Simple Component Evidence 2018-06-12 21:47:39 +02:00
Andreas Steffen e1833a90ba bio_reader: Fix read_uint24 2018-06-12 21:47:39 +02:00
Andreas Steffen 508b308768 fuzz: Added PA-TNC fuzzer 2018-06-12 21:47:39 +02:00
Andreas Steffen ce4b8f65d6 testing: Removed TCG SWID IMC/IMV scenarios 2018-06-12 21:47:39 +02:00
Andreas Steffen a31f9b7691 libimcv: Removed TCG SWID IMC/IMV support 2018-06-12 21:47:39 +02:00
Andreas Steffen eccd2b6e09 libimcv: SWIMA SW locator must be file URI 2018-06-12 17:53:06 +02:00
Andreas Steffen 0b445a5c54 libimcv: Updated IANA numbers assigned to SWIMA 2018-06-12 17:53:06 +02:00
Micah Morton 4f1d2f2b09 Allow charon to change group on files before dropping caps
Allow charon to start as a non-root user without CAP_CHOWN and still be
able to change the group on files that need to be accessed by charon
after capabilities have been dropped. This requires the user charon starts
as to have access to socket/pidfile directory as well as belong to the
group that charon will run as after dropping capabilities.

Closes strongswan/strongswan#105.
2018-06-12 10:25:30 +02:00
Markus Sattler 1331010aa4 starter: Reset action before handling it
Stater will lose update/reload commands when there is a second signal
coming in when the previous is still processed. This can happen more
easily with big configurations.

Closes strongswan/strongswan#101.
2018-06-05 10:13:22 +02:00
Andreas Steffen 3a8a9c7029 Version bump to 5.7.0dr1 2018-05-30 23:02:57 +02:00
Andreas Steffen 6d087b33de libstrongswan: xmppaddr prefix designates an xmppAddr otherName ID type 2018-05-30 17:25:28 +02:00
Andreas Steffen b2ab0995c1 Version bump to 5.6.3 2018-05-28 15:38:58 +02:00
Tobias Brunner 64f7fd92c0 NEWS: Add info about CVE-2018-10811 2018-05-24 15:52:06 +02:00
Tobias Brunner 6d8a57342b ikev2: Initialize variable in case set_key() or allocate_bytes() fails
In case the PRF's set_key() or allocate_bytes() method failed, skeyseed
was not initialized and the chunk_clear() call later caused a crash.

This could have happened with OpenSSL in FIPS mode when MD5 was
negotiated (and test vectors were not checked, in which case the PRF
couldn't be instantiated as the test vectors would have failed).
MD5 is not included in the default proposal anymore since 5.6.1, so
with recent versions this could only happen with configs that are not
valid in FIPS mode anyway.

Fixes: CVE-2018-10811
2018-05-24 15:45:08 +02:00
Tobias Brunner 0d0c8f7d3e NEWS: Some minor updates 2018-05-24 12:18:18 +02:00
Tobias Brunner 2c7a4b0704 swanctl: Document new HW offload options/behavior 2018-05-24 10:49:19 +02:00
Andreas Steffen 88205674e5 Version bump to 5.6.3rc1 2018-05-23 22:36:39 +02:00
Tobias Brunner 7f14fefff4 NEWS: Added some news for 5.6.3 2018-05-23 20:25:50 +02:00
Tobias Brunner 887885f33b sw-collector: Proper cleanup if DB query fails in check operation 2018-05-23 20:25:50 +02:00
Tobias Brunner d837d0b339 kernel-netlink: Use strncpy to copy interface name when configuring HW offload 2018-05-23 20:25:49 +02:00
Tobias Brunner 89bd016ef4 Fixed some typos, courtesy of codespell 2018-05-23 16:33:02 +02:00
Tobias Brunner 1b67166921 Unify format of HSR copyright statements 2018-05-23 16:32:53 +02:00
Tobias Brunner 740133b12d settings: Parse assigned values in a different context
This allows us to accept characters like = or { without having to use
quoted strings.  And we can also properly warn about unexpected quoted
strings.
2018-05-23 12:01:50 +02:00
Tobias Brunner f8c20fb1c2 settings: Support CRLF in settings parser 2018-05-23 12:01:45 +02:00