logo

blog

My cute blog can’t be this disorganised!

antisèche-nginx.shtml (3658B)


      1 <!DOCTYPE html>
      2 <html>
      3 	<head>
      4 <!--#include file="templates/head.shtml" -->
      5 		<title>antisèche TLS pour nginx — Cyber-habitat de lanodan</title>
      6 	</head>
      7 	<body>
      8 <!--#include file="templates/fr/nav.shtml" -->
      9 <h1>Antisèche pour nginx</h1>
     10 <p>C’est plutôt beaucoup de configs ensemble avec des commentaires. De toute façon le résultat est le même.</p>
     11 <pre><code># /etc/nginx/sites-enabled/hacktivis.me
     12 server {
     13 	# traffic en clair dans un autre vhost, CACert étant pas très reconnut(donc autre vhost pour traffic en clair sans HSTS), si vous avez un CA reconnut enlevez les commentaires.
     14 	#listen 80;
     15 	#listen [::]:80;
     16 	listen 443 ssl;
     17 	listen [::]:443 ssl;
     18 
     19 	server_name hacktivis.me;
     20 	root /srv/web/hacktivis.me;
     21 
     22 	# Modifier l’index (page utilisée pour un lien qui finit par / )
     23 	index accueil.shtml index.html index.htm index.shtml;
     24 
     25 	location / {
     26 		try_files $uri $uri/ $uri.html =404; # Essaye ces liens pour une requête, envoie un 404 si non-trouvé.
     27 		autoindex on; # Liste les dossiers qui n’ont pas d’index, considéré comme une failles par certain·e·s
     28 		# Avec Server-Side-Include
     29 		#try_files $uri $uri/ $uri.shtml $uri.html =404;
     30 		#ssi on;
     31 		include assemblee.conf;
     32 	}
     33 	error_page 403 /assemblee.html; # Pas la meilleure solution, une redirection serait mieux, mais je sais pas comment faire ça propre
     34 
     35 	ssl_certificate     ssl/hacktivis.me.pem; # Ne pas oublier de rajouter la chaine de certificat/le CA après le votre
     36 	ssl_certificate_key ssl/hacktivis.me.key; # pour RSA mettre du 3072 bits minimum
     37 
     38 	# Merci <a href="https://blog.imirhil.fr/cryptcheck-verifiez-vos-implementations-de-tls.html">aeris</a> ;3
     39 	ssl_ciphers 'EECDH+CHACHA20:EECDH+AESGCM'; # or EECDH+CHACHA20:EECDH+AES:DHE+CHACHA20:DHE+AES:+SHA
     40 	ssl_prefer_server_ciphers on; # Parceque les clients on une config TLS toute pouritte
     41 	ssl_protocols TLSv1.2; # POODLE sur ≤TLS1.1
     42 	ssl_dhparam ssl/dhparam.pem; # “openssl dhparam -out dhparam.pem 2048” (4096 est <strong>très</strong> long)
     43 	ssl_ecdh_curve secp384r1:secp521r1; # if("failed: unknown curve"): ssl_dhparam secp384r1;
     44 	ssl_stapling on;
     45 	ssl_stapling_verify on;
     46 	ssl_session_cache   shared:SSL:10m;
     47 	ssl_session_timeout 10m;
     48 	add_header <a href="https://fr.wikipedia.org/wiki/HTTP_Strict_Transport_Security">Strict-Transport-Security</a> 'max-age=15768000;includeSubDomains'; # Garder l’https pendant 6 mois et inclure les sous-domaines
     49 	add_header <a href="https://fr.wikipedia.org/wiki/HTTP_Public_Key_Pinning">Public-Key-Pins</a> 'pin-sha256="vOs/I6cJeaMzFkoEpscUvF/ahXvr7Cn4gDT7xTfhz+I="; max-age=5184000; includeSubDomains; report-uri="https://example.tld/report"'; # Garder en mémoire la signature de la clé publique pendant 60 jours et inclure les sous-domaines et rapport d’erreurs à https://example.tld/report
     50 
     51 	# <a href="https://wiki.mozilla.org/Security/Guidelines/Web_Security#Content_Security_Policy">https://wiki.mozilla.org/Security/Guidelines/Web_Security#Content_Security_Policy</a>
     52 	add_header X-Frame-Options           "DENY"; # Deny framing
     53 	add_header X-Content-Type-Options    "nosniff";
     54 	add_header X-XSS-Protection          "1; mode=block";
     55 	add_header Content-Security-Policy   "default-src 'none'; script-src 'none'; style-src 'self'; img-src 'self' 'unsafe-inline' https://framapic.org:443;";
     56 }</code></pre>
     57 <pre><code># /etc/nginx/assemblee.conf
     58 deny 62.160.71.0/24; # NETNAME: FR-PRESIDENCE-DE-LA-REPUBLIQUE
     59 deny 84.233.174.48/28; # NETNAME: PRESIDENCE-NETS
     60 deny 80.118.139.160/27; # NETNAME: ASSEMBLEE-NATIONALE
     61 deny 193.107.240.0/24; # NETNAME: FARM08 (= TMG/HADOPI)
     62 </code></pre>
     63 <!--#include file="templates/fr/footer.html" -->
     64 	</body>
     65 </html>