From 5a3218c75b2531b109ee6cf5b6c59e996e31769b Mon Sep 17 00:00:00 2001 From: Benjamin Bohard Date: Tue, 17 Jun 2025 09:40:35 +0200 Subject: [PATCH] =?UTF-8?q?D=C3=A9tail=20de=20la=20mise=20en=20place?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- adaptations.md | 143 +++++++++++++++++++++++++++++++++++++++++++ approche_manuelle.md | 16 +++++ approche_variante.md | 7 +++ 3 files changed, 166 insertions(+) create mode 100644 adaptations.md create mode 100644 approche_manuelle.md create mode 100644 approche_variante.md diff --git a/adaptations.md b/adaptations.md new file mode 100644 index 0000000..fdefc8b --- /dev/null +++ b/adaptations.md @@ -0,0 +1,143 @@ +# Adaptations + +## Configuration rsyslog +La configuration rsyslog n’est pas templatisée et composée des fichiers standards de la distribution : /etc/rsyslog.conf est /etc/rsyslog.d/50-default.conf + +Ajouter un fichier dans /etc/rsyslog.d : 01-forward\_samba.conf (addc-samba_logs_forward.conf renommé par les mécanismes creole) + +```text-plain +$DefaultNetstreamDriver gtls +$DefaultNetstreamDriverCAFile /etc/ssl/certs/ca_rsyslog.crt +$DefaultNetstreamDriverCertFile /etc/rsyslog.d/ssl/certs/rsyslog_addc.crt +$DefaultNetstreamDriverKeyFile /etc/rsyslog.d/ssl/private/rsyslog_addc.key + + +$WorkDirectory /var/log/rsyslog/queues +$ActionQueueType LinkedList +$ActionQueueFileName samba +$ActionQueueSaveOnShutdown on + +%if %%samba_log_connexion_authentification_proxy == 'oui' +$ActionSendStreamDriverAuthMode x509/name +$ActionSendStreamDriverPermittedPeer %%samba_log_connexion_proxy_name +%else +$ActionSendStreamDriverAuthMode anon +%end if +$ActionSendStreamDriverMode 1 +:programname, isequal, "samba" @@%%samba_log_connexion_proxy_ip:%%samba_log_connexion_proxy_port +``` + +Ce fichier peut-être distribué sous la forme d’un template pour pouvoir utiliser la variable d’un dictionnaire pour l’adresse de destination. Les variables utilisées pour l’agrégation de log ne sont pas utilisables : accessibles que si on active globalement l’envoi (par exemple) ce qu’on ne veut pas (Palo Alto n’est pas prévu pour gérer l’afflux de logs). + +Le mode d’authentification repose sur la mise à disposition d’un certificat : il faut des machines avec des noms de domaine et la CA. La difficulté est l’utilisation de plusieurs CA (celle de l’émetteur et celle du receveur). L’exemple simple de la documentation prévoit une seule CA centrale pour les deux. Quoi qu’il en soit, la configuration de l’authentification est comme suit : + +```text-plain +$ActionSendStreamDriverAuthMode x509/name +$InputTCPServerStreamDriverPermittedPeer machine.example.net +``` + +## Dictionnaire de déclaration +On peut donc installer un nouveau dictionnaire avec activation de l’envoi (débrayable au cas où) et les variables nécessaires pour identifier le serveur recevant les logs : 60\_forward\_samba\_logs.xml + +```text-plain + + + + + + + + + oui + + + + 10514 + + + non + + + + + + + + non + forward_samba_logs + samba_log_connexion_proxy_ip + samba_log_connexion_proxy_port + samba_log_connexion_authentification_proxy + + + non + samba_log_connexion_ca_chemin + samba_log_connexion_proxy_nom + + + + Les logs de connexions sont utiles au proxy type Palo Alto pour en dériver les autorisations de flux réseau (relation IP/utilisateur pour déterminer les permissions). + L’authentification du récepeteur des logs nécessite la récupération du certificat racine de celui-ci pour pouvoir valider son certificat x509 + Le certificat racine ayant servi à signer le certificat présenté par le proxy. + Nom FQDN apparaissant dans le certificat x509 présenté par le proxy. + + +``` + +## Script de mise en place dans le conteneur +Le fonctionnement nécessite la copie du certificat racine, le certificat et la clé du serveur et la création du répertoire /var/log/rsyslog/queues avec les bons droits. Il est également nécessaire d’installer le module gnutls pour rsyslog dans le conteneur : rsyslog-gnutls. Le certificat est copié avec la fonction InstallSSLFiles depuis l’hôte dans un script posttemplate ajouté pour l’occasion : 00-addc-forward\_samba\_logs + +```text-plain +#!/bin/bash + +ADDC_PATH="/var/lib/lxc/addc/rootfs" + +. /usr/lib/eole/utils.sh + +InstallSSLFiles rsyslog_addc syslog syslog "$ADDC_PATH/etc/rsyslog.d/ssl/" +if [ $(CreoleGet samba_log_connexion_authentification_proxy non) == 'oui' ] +then + ca_path=$(CreoleGet samba_log_connexion_ca_chemin) + if [ -f $ca_path ] + then + cat /etc/ssl/certs/ca_local.crt $ca_path > "$ADDC_PATH/etc/ssl/certs/ca_rsyslog.crt" + else + EchoRouge "Le certificat racine pour le pair rsyslog n’a pas été trouvé" + EchoRouge "Utilisation du mode anonyme" + cp /etc/ssl/certs/ca_local.crt "$ADDC_PATH/etc/ssl/certs/ca_rsyslog.crt" + fi +else + cp /etc/ssl/certs/ca_local.crt "ADDC_PATH/etc/ssl/certs/ca_rsyslog.crt" +fi + +if [ ! -e "$ADDC_PATH/var/log/rsyslog/queues" ] +then + mkdir -p "$ADDC_PATH/var/log/rsyslog/queues" + lxc-attach -n addc chown syslog:adm /var/log/rsyslog/queues +fi + +lxc-attach -n addc apt install rsyslog-gnutls + +lxc-attach -n addc systemctl restart rsyslog + +exit 0 + +``` + +## Configuration samba + +La configuration samba du conteneur addc est déjà un template creole. Il est donc possible de distribuer la modification sous forme de patch : smb-addc.conf.patch + +```text-plain + --- distrib/smb-addc.conf 2025-02-18 09:29:25.000000000 +0100 ++++ modif/smb-addc.conf 2025-06-16 10:31:57.625340810 +0200 +@@ -21,6 +21,8 @@ + usershare max shares = 0 + restrict anonymous = 2 + interfaces = %%ad_public_address ++ syslog = 4 ++ log level = 0 auth_audit:4 + + [netlogon] + comment = Network Logon Service +``` diff --git a/approche_manuelle.md b/approche_manuelle.md new file mode 100644 index 0000000..e55f876 --- /dev/null +++ b/approche_manuelle.md @@ -0,0 +1,16 @@ +# Mise en place manuellement + +À défaut d’utiliser Zéphir pour mettre en œuvre les adaptations, celles-ci ont été construites de manière à simplifier le déploiement, même manuel : +- limitation de l’intervention directe en conteneur +- utilisation au maximum des mécanismes creole (patch, dictionnaire, templates). + +Quatre fichiers composent ces adaptations. Le tableau suivant indique où placer ces fichiers sur le serveur. + +| nom du fichier | emplacement | rôle | +|- |- |- | +|smb-addc.conf.patch |/usr/share/eole/creole/patch/ | modification du template smb-addc.conf appliquée à chaque reconfigure | +|00-addc-forward_samba_logs |/usr/share/eole/posttemplate/ | actions durant le reconfigure pour configurer rsyslog dans le conteneur addc | +|addc-samba_logs_forward.conf|/usr/share/eole/creole/distrib/ | template de configuration de l’export des logs pour rsyslog | +|60_forward_samba_logs.xml |/usr/share/eole/creole/dicos/local/|dictionnaire déclarant le template précédent et prenant en charge les variables associées| + +La plupart des ces fichiers sont liés les uns aux autres et doivent être mis en place en même temps (plus spécifiquement, leur mise en place ne doit pas être séparée par des reconfigures). diff --git a/approche_variante.md b/approche_variante.md new file mode 100644 index 0000000..c4387df --- /dev/null +++ b/approche_variante.md @@ -0,0 +1,7 @@ +# Mise en place via les variantes Zéphir + +Pour la mise en œuvre, on ne doit pas compter sur l’empaquetage (difficile à installer dans le conteneur). + +Il vaut mieux privilégier les fichiers gérés par Zéphir. Ces fichiers peuvent être associés à une variante pour ensuite affecter tous les serveurs associés à cette variante. + +La configuration de la variante passe par la page des modules.