====== Installation de dokuwiki ======
**Liste des plugins:**
* Pour le wysiwg [[https://www.dokuwiki.org/plugin:prosemirror|Prosemirror]] a évaluer.
* Ou encore CGK editor
====== Installation de wallabag ======
Un petit bug qui traine : [[https://github.com/wallabag/wallabag/issues/2768|https://github.com/wallabag/wallabag/issues/2768]]
**Et la solution**
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
====== Hardening TLS Apache2 ======
Hardening de base : [[https://wiki.debian.org/Apache/Hardening|https://wiki.debian.org/Apache/Hardening]]
Evaluation de base : [[https://www.ssllabs.com/ssltest/analyze.html?d=alban.montaigu.io&s=163.172.180.167|https://www.ssllabs.com/ssltest/analyze.html?d=alban.montaigu.io&s=163.172.180.167]]
La partie hardening TLS : [[https://httpd.apache.org/docs/trunk/ssl/ssl_howto.html|https://httpd.apache.org/docs/trunk/ssl/ssl_howto.html]]
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite 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
SSLHonorCipherOrder on
SSLCompression off
SSLSessionTickets off
Activation DNS CAA : [[https://blog.qualys.com/product-tech/2017/03/13/caa-mandated-by-cabrowser-forum|https://blog.qualys.com/product-tech/2017/03/13/caa-mandated-by-cabrowser-forum]]
Autre tuto intéressant : [[https://community.bitnami.com/t/howto-a-on-all-tests-at-ssllabs-com-with-apache-2-4-xx/67885|https://community.bitnami.com/t/howto-a-on-all-tests-at-ssllabs-com-with-apache-2-4-xx/67885]] mais a priori trop violent pour les vieux matériels
Activation hsts aussi : [[https://www.justegeek.fr/activer-len-tete-hsts-sur-apache-pour-proteger-son-site-web/?cn-reloaded=1|https://www.justegeek.fr/activer-len-tete-hsts-sur-apache-pour-proteger-son-site-web/?cn-reloaded=1]]
nano /etc/apache2/conf-enabled/security.com
ServerTokens Prod
ServerSignature Off
Header set X-Content-Type-Options: "nosniff"
Header set X-Frame-Options: "sameorigin"
Aller plus loin dans les resultats SSLabs : [[https://community.bitnami.com/t/howto-a-on-all-tests-at-ssllabs-com-with-apache-2-4-xx/67885|https://community.bitnami.com/t/howto-a-on-all-tests-at-ssllabs-com-with-apache-2-4-xx/67885]]
Une piste pour améliorer la compliance : [[https://developer.mozilla.org/fr/docs/Web/Security/Public_Key_Pinning|https://developer.mozilla.org/fr/docs/Web/Security/Public_Key_Pinning]]
Une autre poste encore : [[https://gist.github.com/GAS85/42a5469b32659a0aecc60fa2d4990308|https://gist.github.com/GAS85/42a5469b32659a0aecc60fa2d4990308]]
openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096
Pinning : [[https://gist.github.com/GAS85/a668b941f84c621a15ff581ae968e4cb|https://gist.github.com/GAS85/a668b941f84c621a15ff581ae968e4cb]]
cat /etc/letsencrypt/live/alban.montaigu.io/cert.pem | openssl x509 -pubkey | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary | base64
Aussi a voir ca :
* [[https://community.letsencrypt.org/t/how-to-get-100-on-ssllabs-com-with-nginx/114196|https://community.letsencrypt.org/t/how-to-get-100-on-ssllabs-com-with-nginx/114196]]
* [[https://community.letsencrypt.org/t/howto-a-with-all-100-s-on-ssl-labs-test-using-nginx-mainline-stable/55033|https://community.letsencrypt.org/t/howto-a-with-all-100-s-on-ssl-labs-test-using-nginx-mainline-stable/55033]]
* [[https://serverfault.com/questions/877774/trying-to-get-100-in-ssllabs-com-key-exchange/877784|https://serverfault.com/questions/877774/trying-to-get-100-in-ssllabs-com-key-exchange/877784]]
* [[https://itigloo.com/2017/02/21/how-to-get-an-a-rating-with-100-score-on-the-ssllabs-test-with-apache/|https://itigloo.com/2017/02/21/how-to-get-an-a-rating-with-100-score-on-the-ssllabs-test-with-apache/]]
* [[https://security.stackexchange.com/questions/166484/how-to-disable-cbc-mode-ciphers|https://security.stackexchange.com/questions/166484/how-to-disable-cbc-mode-ciphers]]
* [[https://wiki.csnu.org/index.php/S%C3%A9curisation_SSL_/_TLS_de_apache|https://wiki.csnu.org/index.php/S%C3%A9curisation_SSL_/_TLS_de_apache]]
Pas mal mas de weak et une compatibilité générale pas trop moche :
SSLCipherSuite ALL:!RSA:!CAMELLIA:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!SHA1:!SHA256:!SHA384
# HSTS Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
La référence : [[https://ssl-config.mozilla.org/#server=apache&version=2.4.41&config=intermediate&openssl=1.1.1d&guideline=5.6|https://ssl-config.mozilla.org/#server=apache&version=2.4.41&config=intermediate&openssl=1.1.1d&guideline=5.6]]
Le fichier complet (avec quelques specificités moches dues au template ispconfig):
SSLEngine on
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLOpenSSLConfCmd ECDHParameters secp384r1
SSLOpenSSLConfCmd Curves secp521r1:secp384r1
SSLOpenSSLConfCmd DHParameters "/etc/ssl/certs/dhparam.pem"
SSLCipherSuite 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
SSLHonorCipherOrder off
SSLCompression off
SSLSessionTickets off
SSLCertificateFile /var/www/clients/client1/web2/ssl/alban.montaigu.io-le.crt
SSLCertificateKeyFile /var/www/clients/client1/web2/ssl/alban.montaigu.io-le.key
SSLUseStapling on
SSLStaplingResponderTimeout 5
SSLStaplingReturnResponderErrors off
# Enhance header configuration
Header always set Content-Security-Policy "upgrade-insecure-requests;"
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
# Rewrite any session cookies to make them more secure
# Make ALL cookies created by this server are HttpOnly and Secure Header always edit Set-Cookie (.*) "$1;HttpOnly;Secure"
Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure
SSLStaplingCache shmcb:/var/run/ocsp(128000)
Intéressant a voir en spécifique ISPCONFIG : [[https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/5368|https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/5368]]
Pour permettre l'utilisation de certificats sur plusieurs domaines avec nameservers
SSLOpenSSLConfCmd Curves X25519:secp521r1:secp384r1
La partie **X25519** est particulièrement importante sinon les autres sous domaines ne fonctionneront pas.
======= Post configuration =======
===== Changer la timezone =====
dpkg-reconfigure tzdata
====== Backup duplicity ======
# backup on dedibackup
sudo FTP_PASSWORD=XXX PASSPHRASE=XXX duplicity --full-if-older-than 1M /var/www ftp://sd-154040@dedibackup-dc3.online.net/
# remove older than 6M
sudo FTP_PASSWORD=XXX PASSPHRASE=XXX duplicity remove-older-than 6M ftp://sd-154040@dedibackup-dc3.online.net/
# Healthcheck.io silent version (no stdout/stderr output unless curl hits an error):
curl -fsS -m 10 --retry 5 -o /dev/null https://hc-ping.com/986ba863-a707-4b0b-bb79-35a42e4b9f72