mirror of https://github.com/Icinga/icinga2.git
Merge pull request #7219 from Icinga/feature/api-cipherlist
API: Harden default cipher list
This commit is contained in:
commit
1c84713bed
|
@ -1121,7 +1121,7 @@ Configuration Attributes:
|
|||
accept\_config | Boolean | **Optional.** Accept zone configuration. Defaults to `false`.
|
||||
accept\_commands | Boolean | **Optional.** Accept remote commands. Defaults to `false`.
|
||||
max\_anonymous\_clients | Number | **Optional.** Limit the number of anonymous client connections (not configured endpoints and signing requests).
|
||||
cipher\_list | String | **Optional.** Cipher list that is allowed. For a list of available ciphers run `openssl ciphers`. Defaults to `ALL:!LOW:!WEAK:!MEDIUM:!EXP:!NULL`.
|
||||
cipher\_list | String | **Optional.** Cipher list that is allowed. For a list of available ciphers run `openssl ciphers`. Defaults to `ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256`.
|
||||
tls\_protocolmin | String | **Optional.** Minimum TLS protocol version. Since v2.11, only `TLSv1.2` is supported. Defaults to `TLSv1.2`.
|
||||
tls\_handshake\_timeout | Number | **Optional.** TLS Handshake timeout. Defaults to `10s`.
|
||||
access\_control\_allow\_origin | Array | **Optional.** Specifies an array of origin URLs that may access the API. [(MDN docs)](https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS#Access-Control-Allow-Origin)
|
||||
|
|
|
@ -53,7 +53,22 @@ and compiled into the binary as header only include. It helps our way to C++11 a
|
|||
to fix additional UTF8 issues more easily. Read more about its [design goals](https://github.com/nlohmann/json#design-goals)
|
||||
and [benchmarks](https://github.com/miloyip/nativejson-benchmark#parsing-time).
|
||||
|
||||
### TLS 1.2 <a id="upgrading-to-2-11-tls-1-2"></a>
|
||||
### Network Stack <a id="upgrading-to-2-11-network-stack"></a>
|
||||
|
||||
The core network stack has been rewritten in 2.11 (some say this could be Icinga 3).
|
||||
|
||||
You can read the full story [here](https://github.com/Icinga/icinga2/issues/7041).
|
||||
|
||||
The only visible changes for users are:
|
||||
|
||||
- No more dead-locks with hanging TLS connections (Cluster, REST API)
|
||||
- Better log messages in error cases
|
||||
- More robust and stable with using external libraries instead of self-written socket I/O
|
||||
|
||||
Coming with this release, we've also updated TLS specific requirements
|
||||
explained below.
|
||||
|
||||
#### TLS 1.2 <a id="upgrading-to-2-11-network-stack-tls-1-2"></a>
|
||||
|
||||
v2.11 raises the minimum required TLS version to 1.2.
|
||||
This is available since OpenSSL 1.0.1 (EL6 & Debian Jessie).
|
||||
|
@ -64,6 +79,23 @@ handshake.
|
|||
The `api` feature attribute `tls_protocolmin` now only supports the
|
||||
value `TLSv1.2` being the default.
|
||||
|
||||
#### Hardened Cipher List <a id="upgrading-to-2-11-network-stack-cipher-list"></a>
|
||||
|
||||
The previous default cipher list allowed weak ciphers. There's no sane way
|
||||
other than explicitly setting the allowed ciphers.
|
||||
|
||||
The new default sets this to:
|
||||
|
||||
```
|
||||
ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256
|
||||
```
|
||||
|
||||
You can override this setting in the [api](09-object-types.md#objecttype-apilistener)
|
||||
feature with the `cipher_list` attribute.
|
||||
|
||||
In case that one of these ciphers is marked as insecure in the future,
|
||||
please let us know with an issue on GitHub.
|
||||
|
||||
### HA-aware Features <a id="upgrading-to-2-11-ha-aware-features"></a>
|
||||
|
||||
v2.11 introduces additional HA functionality similar to the DB IDO feature.
|
||||
|
|
|
@ -18,7 +18,7 @@ class ApiListener : ConfigObject
|
|||
[config, deprecated] String ca_path;
|
||||
[config] String crl_path;
|
||||
[config] String cipher_list {
|
||||
default {{{ return "ALL:!LOW:!WEAK:!MEDIUM:!EXP:!NULL"; }}}
|
||||
default {{{ return "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256"; }}}
|
||||
};
|
||||
[config] String tls_protocolmin {
|
||||
default {{{ return "TLSv1.2"; }}}
|
||||
|
|
Loading…
Reference in New Issue