Qnap [ Caddy ] [ 1.0.4 ] Fast, cross-platform HTTP/2 web server with automatic HTTPS

QoolBox

Représentant QNAP
2 Janvier 2014
10 559
163
153
50
France
www.qnap.com
image4219.png


source : https://caddyserver.com/

Download : x64,x86,x41,x31

https://qnapclub.eu/fr/qpkg/554

Note :

web server which is gaining popularity due to its overall simplicity… welcome to the world of Caddy web server! This web server is entirely written in Go, and was first released in 2015. Caddy configuration is based on Caddyfile

as default : Caddy serve QTS web over port 20015

caddy binary is automatically in NAS $PATH

https://github.com/caddyserver/examples/blob/master/drupal/Caddyfile for some CaddyFile example
 
Merci ! Je connaissais pas ce serveur tiens ! A voir par rapport à du Apache ou Nginx ce que ça peut donner, en perf si ça tient le route et que c'est accessible ça peut marcher :)
 
Déjà je lis un peu le projet ;) C'est sympa sur le papier, ce que je comprends pas par contre c'est comment ne pas tourner en root sur le NAS (il ne connait pas setcap). Parce que c'est pas mal coté sécurité du lien web, le Go apporte un plus sur la mémoire, mais si ça tourne en root c'est embêtant pour un serveur web exposé (je sais celui natif aussi fait un peu ça... :-? )
 
oui très simple...

faut vraiment que je creuse et prenne le temps de m'y pencher un peu plus...
il peut même exploiter le php-fpm comme le ferait NGinx
 
Juste un exemple de reverse proxy avec TLS,GZIP,CACHE

Code:
(sslconf) {
	tls /usr/local/etc/letsencrypt/live/plex.mydomain.com/fullchain.pem /usr/local/etc/letsencrypt/live/plex.mydomain.com/privkey.pem {
		ciphers	ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-ECDSA-WITH-CHACHA20-POLY1305 ECDHE-RSA-WITH-CHACHA20-POLY1305 ECDHE-RSA-AES256-CBC-SHA ECDHE-RSA-AES128-CBC-SHA ECDHE-ECDSA-AES256-CBC-SHA ECDHE-ECDSA-AES128-CBC-SHA RSA-AES256-CBC-SHA RSA-AES128-CBC-SHA ECDHE-RSA-3DES-EDE-CBC-SHA RSA-3DES-EDE-CBC-SHA
		curves	X25519 p256 p384 p521
	}
}

(gzipconf) {
	gzip {
		level 5
		min_length 1
	}
}

(addheader) {
	header / Strict-Transport-Security "max-age=31536000;"
	header / X-Frame-Options "DENY"
	header / X-Content-Type-Options "nosniff"
}

https://plex.mydomain.com {
	import sslconf
	import gzipconf
	import addheader
	cache
	proxy / http://192.168.15.4:32400 {
		keepalive 32
		transparent
		websocket
	}
}

j’obtiens un A+ : A+ caddy.PNG
 
Celena-007 a dit:
Juste un exemple de reverse proxy avec TLS,GZIP,CACHE

Code:
(sslconf) {
	tls /usr/local/etc/letsencrypt/live/plex.mydomain.com/fullchain.pem /usr/local/etc/letsencrypt/live/plex.mydomain.com/privkey.pem {
		ciphers	ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-ECDSA-WITH-CHACHA20-POLY1305 ECDHE-RSA-WITH-CHACHA20-POLY1305 ECDHE-RSA-AES256-CBC-SHA ECDHE-RSA-AES128-CBC-SHA ECDHE-ECDSA-AES256-CBC-SHA ECDHE-ECDSA-AES128-CBC-SHA RSA-AES256-CBC-SHA RSA-AES128-CBC-SHA ECDHE-RSA-3DES-EDE-CBC-SHA RSA-3DES-EDE-CBC-SHA
		curves	X25519 p256 p384 p521
	}
}

(gzipconf) {
	gzip {
		level 5
		min_length 1
	}
}

(addheader) {
	header / Strict-Transport-Security "max-age=31536000;"
	header / X-Frame-Options "DENY"
	header / X-Content-Type-Options "nosniff"
}

https://plex.mydomain.com {
	import sslconf
	import gzipconf
	import addheader
	cache
	proxy / http://192.168.15.4:32400 {
		keepalive 32
		transparent
		websocket
	}
}

j’obtiens un A+ : A+ caddy.PNG

En effet c'est vraiment pas dur, merci de l'exemple ! :)
 
Tosh a dit:
Il se trouve ou le fichier de config ?

Je peut pas te dire ou il se trouve car j'ai pas de QNAP (désoler QoolBox) donc je ne sait pas ou le package le met.
Quelqu'un qui l'a installer peut répondre...
 
il suffit de créer toi même le fichier config caddyfile dans ton Partage Public

le binaire caddy est directement dans le PATH du NAS
 
Pour ma part je suis parti sur ça :
Code:
(sslconf) {
        tls CHEMIN.cert.pem CHEMIN.key {
                ciphers ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-ECDSA-WITH-CHACHA20-POLY1305 ECDHE-RSA-WITH-CHACHA20-POLY1305 ECDHE-RSA-AES256-CBC-SHA ECDHE-RSA-AES128-CBC-SHA ECDHE-ECDSA-AES256-CBC-SHA ECDHE-ECDSA-AES128-CBC-SHA
                curves  X25519 p256 p384 p521
        }
}

(gzipconf) {
        gzip {
                level 5
                min_length 1
        }
}

(addheader) {
        header / Strict-Transport-Security "max-age=31536000;"
        header / X-Frame-Options "DENY"
        header / X-Content-Type-Options "nosniff"
        header / x-xss-protection "1; mode=block"
        header / Referrer-Policy "strict-origin-when-cross-origin"
}

https://DOMAIN {
        import sslconf
        import gzipconf
        import addheader
        proxy / SITE_INTERNE {
                keepalive 32
                transparent
                websocket
        }
}

J'ai enlevé les algo de chiffrements marqués comme weak par ssllabs et j'ai enlevé le "cache", qui râlait je ne sais pas pourquoi.
 
Mikiya a dit:
j'ai enlevé le "cache", qui râlait je ne sais pas pourquoi.

Parceque comme je l'est pas mit sur un QNAP j'ai dl la version avec le plugin cache (cache des fichier statique non inclut dans la version de base a dl)
 
Ok :) et je viens de rajouter quelques directives pour le header en plus pour avoir le grade A sur https://securityheaders.io
 
au final voila le debut que j'ai mit :
Code:
(sslconf) {
	tls /usr/local/etc/letsencrypt/live/plex.mydomain.com/fullchain.pem /usr/local/etc/letsencrypt/live/plex.cmydomain.com/privkey.pem {
		ciphers	ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-ECDSA-WITH-CHACHA20-POLY1305 ECDHE-RSA-WITH-CHACHA20-POLY1305 ECDHE-RSA-AES256-CBC-SHA ECDHE-RSA-AES128-CBC-SHA ECDHE-ECDSA-AES256-CBC-SHA ECDHE-ECDSA-AES128-CBC-SHA
		curves	X25519 p256 p384 p521
		key_type rsa4096
		protocols tls1.2
		must_staple
	}
}

(gzipconf) {
	gzip {
		level 5
		min_length 1
	}
}

(addheader) {
	header / {
		Strict-Transport-Security "max-age=31536000;"
		X-XSS-Protection "1; mode=block"
		X-Content-Type-Options "nosniff"
		X-Frame-Options "DENY"
		Content-Security-Policy ""
		Referrer-Policy "no-referrer"
		-Server
	}
}

Malgré le "-Server" il l’envoi quand même
https://www.ssllabs.com/ssltest/ => A+
https://securityheaders.io/ => A+
 
Merci !
Le CSP par contre attention, il peut impliquer des blocages/malfonctionnements selon ce que cherche le site (les ressources externes) donc à bien tester ;)
 
Ça à l'air vachement sympa tout ça... Malheureusement j'y comprends vraiment rien...

Si une personne possédant un QNAP à la gentillesse de faire un petit tuto, ça serait cool.
 
Je mettrais ça en forme si tu veux, j'ai simplement modifié un peu ce qu'à proposé Celena ;)