diff --git a/docker-compose.yml b/docker-compose.yml index bff79f4..7f36794 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -16,7 +16,7 @@ services: networks: - miniflux - postgres - user: "65534:65534" + user: nobody read_only: true security_opt: - no-new-privileges:true diff --git a/swag/proxy-confs/miniflux.subdomain.conf b/swag/proxy-confs/miniflux.subdomain.conf index ba2a00b..f2a6fcd 100644 --- a/swag/proxy-confs/miniflux.subdomain.conf +++ b/swag/proxy-confs/miniflux.subdomain.conf @@ -9,6 +9,9 @@ server { include /config/nginx/ssl.conf; + # HSTS (ngx_http_headers_module is required) (63072000 seconds) + add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always; + client_max_body_size 0; # enable for ldap auth (requires ldap-location.conf in the location block) diff --git a/swag/ssl.conf b/swag/ssl.conf index e6d91bd..0a09149 100644 --- a/swag/ssl.conf +++ b/swag/ssl.conf @@ -15,13 +15,10 @@ ssl_dhparam /config/nginx/dhparams.pem; # intermediate configuration ssl_protocols TLSv1.2 TLSv1.3; -ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256; +ssl_ciphers 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; ssl_prefer_server_ciphers on; ssl_conf_command Options PrioritizeChaCha; -# HSTS (ngx_http_headers_module is required) (63072000 seconds) -#add_header Strict-Transport-Security "max-age=63072000" always; - # OCSP stapling ssl_stapling on; ssl_stapling_verify on; @@ -34,7 +31,7 @@ add_header Content-Security-Policy "default-src 'none'; connect-src 'self'; fram add_header Permissions-Policy "accelerometer=(), ambient-light-sensor=(), autoplay=(), battery=(), camera=(), clipboard-read=(), display-capture=(), document-domain=(), encrypted-media=(), fullscreen=(), geolocation=(), gyroscope=(), hid=(), idle-detection=(), interest-cohort=(), magnetometer=(), midi=(), payment=(), picture-in-picture=(), publickey-credentials-get=(), screen-wake-lock=(), serial=(), usb=(), sync-xhr=(), xr-spatial-tracking=()"; add_header Referrer-Policy "same-origin" always; add_header X-Content-Type-Options "nosniff" always; -#add_header X-UA-Compatible "IE=Edge" always; +add_header X-Frame-Options "DENY" always; add_header X-XSS-Protection "0" always; add_header Cross-Origin-Resource-Policy cross-origin; #add_header Cross-Origin-Embedder-Policy require-corp;