Add: article relayd log
parent
f54c157b9d
commit
7d84168879
|
@ -3,7 +3,7 @@ title: "CORS : Cross-origin Resource Sharing (header)"
|
|||
date: 2017-08-16T13:31:25+01:00
|
||||
description: "Explication sur l'entête HTTP nommée CORS : Cross-Origin Resource Sharing"
|
||||
draft: false
|
||||
lastmod: 2018-10-12T02:44:25+01:00
|
||||
lastmod: 2020-05-17T04:44:25+01:00
|
||||
tags: ["HTTP", "Header", "CORS"]
|
||||
---
|
||||
|
||||
|
@ -27,12 +27,6 @@ des autres entêtes, telles que
|
|||
{{< inside "web:http:x-xss-protections" X-XSS-Protections >}},…
|
||||
|
||||
|
||||
|
||||
## Documentations
|
||||
|
||||
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS
|
||||
* Support actuel de l'entête : http://caniuse.com/#search=cors
|
||||
|
||||
## Exemples
|
||||
|
||||
`Access-Control-Allow-Origin: *`
|
||||
|
@ -48,4 +42,25 @@ son binôme {{< man relayd 8 >}} que l'on utilisera !
|
|||
|
||||
`match response header set "Access-Control-Allow-Origin" value "huc.fr.eu.org"`
|
||||
|
||||
----
|
||||
|
||||
## Documentations
|
||||
|
||||
* https://developer.mozilla.org/fr/docs/Web/HTTP/CORS
|
||||
* [Access-Control-Allow-Credentials][1]
|
||||
* [Access-Control-Allow-Headers][2]
|
||||
* [Access-Control-Allow-Methods][3]
|
||||
* [Access-Control-Allow-Origin][4]
|
||||
* [Access-Control-Expose-Headers][5]
|
||||
* [Access-Control-Max-Age][6]
|
||||
* Support actuel de l'entête : [http://caniuse.com/#search=cors](http://caniuse.com/#search=cors)
|
||||
|
||||
---
|
||||
|
||||
[1]: https://developer.mozilla.org/fr/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials
|
||||
[2]: https://developer.mozilla.org/fr/docs/Web/HTTP/Headers/Access-Control-Allow-Headers
|
||||
[3]: https://developer.mozilla.org/fr/docs/Web/HTTP/Headers/Access-Control-Allow-Methods
|
||||
[4]: https://developer.mozilla.org/fr/docs/Web/HTTP/Headers/Access-Control-Allow-Origin
|
||||
[5]: https://developer.mozilla.org/fr/docs/Web/HTTP/Headers/Access-Control-Expose-Headers
|
||||
[6]: https://developer.mozilla.org/fr/docs/Web/HTTP/Headers/Access-Control-Max-Age
|
||||
|
||||
---
|
||||
|
|
|
@ -245,6 +245,6 @@ cdnjs.cloudflare.com netdna.bootstrapcdn.com ;"`
|
|||
### Autres sites intéressants
|
||||
|
||||
* https://report-uri.io
|
||||
* Support actuel : http://caniuse.com/#search=csp
|
||||
* Support actuel : [http://caniuse.com/#search=csp](http://caniuse.com/#search=csp)
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
|
|
@ -3,7 +3,7 @@ title: "Referrer (header)"
|
|||
date: 2017-08-16T13:35:25+01:00
|
||||
description: "Explications sur l'entête HTTP nommée Referrer"
|
||||
draft: false
|
||||
lastmod: 2018-10-12T02:46:25+01:00
|
||||
lastmod: 2020-05-17T04:51:25+01:00
|
||||
tags: ["HTTP", "header", "Referrer"]
|
||||
---
|
||||
|
||||
|
@ -17,11 +17,6 @@ voire interdisant les informations que peuvent contenir cette entête.
|
|||
|
||||
Cette entête complète la directive 'referrer' de l'entête {{< inside "web:http:csp" CSP >}}
|
||||
|
||||
## Documentations
|
||||
|
||||
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy
|
||||
* Support actuel : http://caniuse.com/#search=Referrer
|
||||
|
||||
## Options
|
||||
|
||||
4 options sont utiles :
|
||||
|
@ -39,5 +34,16 @@ Cette entête complète la directive 'referrer' de l'entête {{< inside "web:htt
|
|||
|
||||
`add_header Referrer-Policy same-origin;`
|
||||
|
||||
### relayd
|
||||
|
||||
------------------------------------------------------------------------
|
||||
Et, oui, malheureusement, {{< tag httpd >}} ne peut pas gérer les entêtes, ce sera
|
||||
son binôme {{< man relayd 8 >}} que l'on utilisera !
|
||||
|
||||
`match response header set "Referrer-Policy" value "same-origin"`
|
||||
|
||||
## Documentations
|
||||
|
||||
* https://developer.mozilla.org/fr/docs/Web/HTTP/Headers/Referrer-Policy
|
||||
* Support actuel : [http://caniuse.com/#search=Referrer](http://caniuse.com/#search=Referrer)
|
||||
|
||||
---
|
||||
|
|
|
@ -26,10 +26,6 @@ des autres entêtes X-*-Options, telles que
|
|||
{{< inside "web:http:x-frame-options" "X-Frame-Options" >}}, ou
|
||||
{{< inside "web:http:x-xss-protections" X-XSS-Protections >}}…
|
||||
|
||||
## Documentations
|
||||
|
||||
* {{< wp Cross-site_scripting >}}
|
||||
|
||||
## Exemples
|
||||
|
||||
`X-Content-Type-Options: nosniff`
|
||||
|
@ -45,4 +41,8 @@ son binôme {{< man relayd 8 >}} que l'on utilisera !
|
|||
|
||||
`match response header set "X-Content-Type-Options" value "nosniff"`
|
||||
|
||||
----
|
||||
## Documentations
|
||||
|
||||
* {{< wp Cross-site_scripting >}}
|
||||
|
||||
---
|
||||
|
|
|
@ -34,11 +34,6 @@ des autres entêtes X-*-Options, telles que
|
|||
* `SAMEORIGIN` : permet d'être mis dans une frame, à-partir de votre propre site.
|
||||
* `ALLOW-FROM uri` : Cette option est {{< color red >}}dépréciée{{< /color >}} - il est clairement recommandée de ne plus l'utiliser au profit de la directive `frame-ancestors` gérée par l'entête {{< inside "web:http:csp" CSP >}}.
|
||||
|
||||
## Documentations
|
||||
|
||||
* Différentes techniques de protections : https://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet
|
||||
* Support actuel : http://caniuse.com/#search=X-Frame-Options
|
||||
|
||||
## Exemples
|
||||
|
||||
`X-Frame-Options: DENY`
|
||||
|
@ -55,5 +50,9 @@ son binôme {{< man relayd 8 >}} que l'on utilisera !
|
|||
`match response header set "X-Frame-Options" value "DENY"`
|
||||
|
||||
|
||||
## Documentations
|
||||
|
||||
------------------------------------------------------------------------
|
||||
* Différentes techniques de protections : https://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet
|
||||
* Support actuel : http://caniuse.com/#search=X-Frame-Options
|
||||
|
||||
---
|
||||
|
|
|
@ -24,10 +24,6 @@ des autres entêtes X-*-Options, telles que
|
|||
{{< inside "web:http:x-content-type-options" "X-Content-Type-Options" >}},
|
||||
{{< inside "web:http:x-frame-options" "X-Frame-Options" >}}…
|
||||
|
||||
## Documentations
|
||||
|
||||
* {{< wp Cross-site_scripting >}}
|
||||
|
||||
## Exemples
|
||||
|
||||
`X-XSS-Protection: 1; mode=block`
|
||||
|
@ -43,5 +39,8 @@ son binôme {{< man relayd 8 >}} que l'on utilisera !
|
|||
|
||||
`match response header set "X-Xss-Protection" value "1; mode=block"`
|
||||
|
||||
## Documentations
|
||||
|
||||
------------------------------------------------------------------------
|
||||
* {{< wp Cross-site_scripting >}}
|
||||
|
||||
---
|
||||
|
|
|
@ -0,0 +1,106 @@
|
|||
---
|
||||
date: 2020-05-17T13:09:05+02:00
|
||||
description: "Mettre en place et visualiser la journalisation dans relayd, serveur relai(s) sous OpenBSD"
|
||||
draft: false
|
||||
tags: ['relayd','log','OpenBSD','astuce']
|
||||
title: "Relayd : Journalisation (Log)"
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
**OpenBSD** intègre par défaut dans le système de base, depuis 5.7, le
|
||||
serveur de relais nommé **relayd**.
|
||||
|
||||
* Site web : https://bsd.plumbing/
|
||||
|
||||
---
|
||||
|
||||
Le but de cet article est de savoir comment mettre en place une journalisation
|
||||
du flux HTTP(S) qui passe au-travers de **relayd**.
|
||||
|
||||
C'est très simple !
|
||||
|
||||
## Configuration
|
||||
|
||||
* Par défault, le fichier de configuration : `/etc/relayd.conf`
|
||||
|
||||
### Configuration Globale
|
||||
|
||||
Dans un premier temps, nous devons déclarer le paramètre global `log` dans
|
||||
le fichier de configuration de **relayd**.
|
||||
|
||||
Les déclarations de journal suivantes ont pour signification les suivantes :
|
||||
|
||||
* `log state changes` ou `log host checks` sont utiles pour suivre l'état
|
||||
de l'hôte ou les contrôles effectués dessus.
|
||||
* les états peuvent être de type :
|
||||
* `up` si l'état de santé de l'hôte est positif
|
||||
* `down` si celui est arrété ou si les contrôles ne sont pas bons.
|
||||
* en état `unknown` si l'hôte est désactivé ou n'a pas encore été
|
||||
contrôlé.
|
||||
* `log connection` nous permet de journaliser les connexions TCP, **si relayd
|
||||
est configuré en tant que relai(s)** <sup>{{< color orange >}}1{{</color>}}</sup>.
|
||||
À noter l'ajout de l'option `errors` pour le cas où nous voulons journaliser
|
||||
que les erreurs de connexions TCP.
|
||||
|
||||
<sup>{{< color orange >}}1{{</color>}}</sup> *En effet, **relayd** peut aussi
|
||||
être configuré en tant que routeur ou serveur de redirection*.
|
||||
|
||||
### Règles de filtrage
|
||||
|
||||
Toujours dans le contexte du fichier de configuration de **relayd**, les
|
||||
relais ont la possibilité de filtrer les connexions par le biais de paramètres
|
||||
de filtrage spécifiques.
|
||||
|
||||
Ainsi nous utiliserons l'action de correspondance `match` sur laquelle
|
||||
nous appliquons l'option de journalisation `log`. Cette action de correspondance
|
||||
s'appliquera sur un type d'action ; actuellement, 5 types d'actions sont
|
||||
définies :
|
||||
* `cookie` : une action qui a lieu sur un cookie. <sup>{{< color orange >}}2{{</color>}}</sup>
|
||||
* `header` : une action ciblant le protocol d'entête HTTP - les fameuses **header**s
|
||||
* `path` : une action qui analyse le chemin de l'URL demandée. <sup>{{< color orange >}}2{{</color>}}</sup>
|
||||
* `query` : une action pour chercher la partie query de l'URL demandée. <sup>{{< color orange >}}2{{</color>}}</sup>
|
||||
* `url` : l'action récupérant l'URL complète… <sup>{{< color orange >}}2{{</color>}}</sup>
|
||||
|
||||
<sup>{{< color orange >}}2{{</color>}}</sup> *seulement disponible sur une requête HTTP.*
|
||||
|
||||
### Exemple de configuration
|
||||
|
||||
L'exemple ci-dessous nous montre cinq règles de filtrage :
|
||||
* les quatre premières ayant lieu sur une correspondance d'entête
|
||||
* la dernière journalisant l'URL dans son ensemble.
|
||||
|
||||
{{< file "web-httpd-relayd-log-example" sh "/etc/relayd.conf" >}}
|
||||
|
||||
## Journaux
|
||||
|
||||
Là encore, tout simplement, une fois la configuration établie, validée,
|
||||
et le service relayd fonctionnel, les différents journaux se retrouvent
|
||||
principalement dans :
|
||||
|
||||
* `/var/log/daemon`,
|
||||
* `/var/log/message`.
|
||||
|
||||
### Exemple log daemon
|
||||
|
||||
{{< code "web-httpd-relayd-log-example-daemon" sh >}}
|
||||
|
||||
Cet exemple nous restitue :
|
||||
* des connexions réussies `done`
|
||||
* des connexions échouées, ici de type erreur 403, bloquées selon des règles
|
||||
de filtrage bloquantes `block` - *non expliquées ici*
|
||||
|
||||
### Exemple log message
|
||||
|
||||
{{< code "web-httpd-relayd-log-example-messages" sh >}}
|
||||
|
||||
Cet exemple nous montre 3 écritures de journalisation de règles bloquantes,
|
||||
provoquant une erreur 403, sur des critères de filtrage non expliqués ici.
|
||||
|
||||
## Documentations
|
||||
|
||||
### Manpages
|
||||
|
||||
* {{< man "relayd.conf" 5 log >}}
|
||||
|
||||
---
|
|
@ -0,0 +1,25 @@
|
|||
### ips externe auth
|
||||
ip4 = "addresse-ipv4-public"
|
||||
|
||||
### manage logs
|
||||
log state changes
|
||||
log connection
|
||||
#log connection errors
|
||||
|
||||
http protocol "hw" {
|
||||
match header log "Host"
|
||||
match header log "X-Forwarded-For"
|
||||
match header log "User-Agent"
|
||||
match header log "Referer"
|
||||
match url log
|
||||
|
||||
block
|
||||
|
||||
(…)
|
||||
}
|
||||
|
||||
relay "www" {
|
||||
listen on $ip4 port 80
|
||||
protocol hw
|
||||
forward to 127.0.0.1 port 80
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
$ grep relayd /var/log/daemon
|
||||
May 17 16:37:21 sh1 relayd[25237]: relay www, session 13 (2 active), 0, 192.168.1.1 -> :80, done
|
||||
May 17 16:37:21 sh1 relayd[45869]: relay www, session 7 (2 active), 0, 192.168.1.1 -> :80, done
|
||||
May 17 16:37:21 sh1 relayd[45869]: relay www, session 8 (1 active), 0, 192.168.1.1 -> :80, done
|
||||
May 17 16:37:22 sh1 relayd[25237]: relay www, session 14 (1 active), 0, 192.168.1.1 -> :80, done
|
||||
May 17 17:01:19 sh1 relayd[45869]: relay www, session 9 (1 active), 0, 207.180.140.98 -> :80, Forbidden (403 Forbidden), [<em>Stop scanning for PHP: none</em>!, User-Agent: polaris] GET: Invalid argument
|
||||
May 17 17:01:19 sh1 relayd[45869]: relay www, session 10 (1 active), 0, 207.180.140.98 -> :80, done
|
||||
May 17 17:02:43 sh1 relayd[7531]: relay www, session 13 (1 active), 0, 84.161.80.36 -> :80, Forbidden (403 Forbidden), [<em>Stop scanning for an admin interface: none</em>!, Host: 88.136.16.221] [<em>Stop scanning for an admin interface: none</em>!, User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36] [<em>Stop scanning for an admin interface: none</em>!, 88.136.16.221/phpmyadmin/] GET: Invalid argument
|
|
@ -0,0 +1,4 @@
|
|||
$ grep relayd /var/log/messages
|
||||
May 17 16:22:23 sh1 relayd[7531]: relay www, session 11 (1 active), 0, 37.49.230.25 -> :80, Forbidden (403 Forbidden), [<em>Stop scanning for PHP: none</em>!, User-Agent: Uirusu/2.0] GET: Invalid argument
|
||||
May 17 17:01:19 sh1 relayd[45869]: relay www, session 9 (1 active), 0, 207.180.140.98 -> :80, Forbidden (403 Forbidden), [<em>Stop scanning for PHP: none</em>!, User-Agent: polaris] GET: Invalid argument
|
||||
May 17 17:02:43 sh1 relayd[7531]: relay www, session 13 (1 active), 0, 84.161.80.36 -> :80, Forbidden (403 Forbidden), [<em>Stop scanning for an admin interface: none</em>!, Host: 88.136.16.221] [<em>Stop scanning for an admin interface: none</em>!, User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36] [<em>Stop scanning for an admin interface: none</em>!, 88.136.16.221/phpmyadmin/] GET: Invalid argument
|
|
@ -0,0 +1,2 @@
|
|||
{{ $txt := .Get 0 | safeHTML }}{{ $nb := .Get 1 | safeHTML }}{{ $anchor := .Get 2 | anchorize }}
|
||||
<a class="man" href="https://man.openbsd.org/{{ $txt }}{{ if $nb }}{{ print "." $nb }}{{ end }}{{ if $anchor }}{{ print "#" $anchor }}{{ end }}" title="{{ i18n "manpageTitle" }}{{ $txt }}">{{ $txt }}{{ if $nb }}{{ print "(" $nb ")" }}{{ end }}</a>
|
Loading…
Reference in New Issue