|
6 | 6 | # It provides a common set of hardened SSL/TLS ciphers fo all webserver apps |
7 | 7 | # Base configuration is provided by relevant overlay files |
8 | 8 |
|
9 | | -set ${CERTFILE:="/etc/ssl/private/cert.pem"} |
10 | | -set ${CRTFILE:="/usr/local/share/ca-certificates/cert.crt"} |
11 | | -set ${KEYFILE:="/etc/ssl/private/cert.key"} |
12 | | -set ${DHPARAMS:="/etc/ssl/private/dhparams.pem"} |
| 9 | +set "${CERTFILE:="/etc/ssl/private/cert.pem"}" |
| 10 | +set "${CRTFILE:="/usr/local/share/ca-certificates/cert.crt"}" |
| 11 | +set "${KEYFILE:="/etc/ssl/private/cert.key"}" |
| 12 | +set "${DHPARAMS:="/etc/ssl/private/dhparams.pem"}" |
13 | 13 |
|
14 | | -# Secure Cipher List recommended by Mozilla https://ssl-config.mozilla.org/ |
15 | | -# See https://github.com/turnkeylinux/tracker/issues/1380 for more info |
16 | | -# Note separate cipher list no longer required for Tomcat9 |
17 | | -SECURE_CIPHER_LIST="ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384" |
| 14 | +# "Intermediate" Secure Cipher List recommended by Mozilla: |
| 15 | +# https://ssl-config.mozilla.org/ |
18 | 16 |
|
19 | | -# Compatible Cipher List recommended for older clients - reduced security score (currently not used) |
20 | | -COMPATIBLE_CIPHER_LIST="ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA" |
| 17 | +SECURE_CIPHER_LIST="ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305" |
| 18 | + |
| 19 | +# Tomcat 10 & 11 use slightly different cipher list - requires Java 10+ |
| 20 | +TOMCAT_SECURE_CIPHER_LIST="TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305" |
21 | 21 |
|
22 | 22 | fatal() { |
23 | | - echo "fatal: $@" 1>&2 |
| 23 | + echo "fatal: $*" 1>&2 |
24 | 24 | exit 1 |
25 | 25 | } |
26 | 26 |
|
27 | 27 | # Postfix |
28 | 28 | CONF=/etc/postfix/main.cf |
29 | | -if [ -f "$CONF" ]; then |
| 29 | +if [[ -f "$CONF" ]]; then |
30 | 30 | sed -i "/tls_medium_cipherlist/ s|ZZ_SSL_CIPHERS|$SECURE_CIPHER_LIST|" $CONF |
31 | 31 | fi |
32 | 32 |
|
33 | 33 | # Apache2 |
34 | 34 | CONF="/etc/apache2/mods-available/ssl.conf" |
35 | | -if [ -f "$CONF" ]; then |
| 35 | +if [[ -f "$CONF" ]]; then |
36 | 36 | sed -i "s|^\(\s*SSLCipherSuite\s\+\).*$|\1${SECURE_CIPHER_LIST}|g" $CONF |
37 | 37 | a2enmod ssl |
38 | 38 | a2enconf security |
39 | 39 | fi |
40 | 40 |
|
41 | 41 | # Nginx |
42 | 42 | CONF="/etc/nginx/snippets/ssl.conf" |
43 | | -if [ -f "$CONF" ]; then |
| 43 | +if [[ -f "$CONF" ]]; then |
44 | 44 | # SSL enabled by default (see overlay) |
45 | 45 | sed -i "s|ssl_ciphers '.*|ssl_ciphers '${SECURE_CIPHER_LIST}';|" $CONF |
46 | 46 | fi |
47 | 47 |
|
48 | 48 | # Lighttpd |
49 | 49 | CONF="/etc/lighttpd/ssl-params.conf" |
50 | | -if [ -f "$CONF" ]; then |
| 50 | +if [[ -f "$CONF" ]]; then |
51 | 51 | sed -i "/CipherString/ s|ZZ_SSL_CIPHERS|$SECURE_CIPHER_LIST|" $CONF |
52 | 52 | lighty-enable-mod ssl |
53 | 53 | fi |
54 | 54 |
|
55 | 55 | # Tomcat |
56 | | -# As of v15.x TKL uses Debian Tomcat default ciphers |
| 56 | +# Note uses slightly different cipher list in TKL v19.x |
57 | 57 | for CONF in /etc/tomcat*/server.xml; do |
58 | | - if [ -f "$CONF" ]; then |
59 | | - sed -i "s|ciphers=|ciphers=\"${SECURE_CIPHER_LIST}\"|" $CONF |
| 58 | + if [[ -f "$CONF" ]]; then |
| 59 | + sed -i "s|ciphers=|ciphers=\"${TOMCAT_SECURE_CIPHER_LIST}\"|" "$CONF" |
60 | 60 | fi |
61 | 61 | done |
62 | 62 |
|
|
0 commit comments