Project

General

Profile

Tâche #25331

Scénario #26377: Évolution de la configuration de Samba

Specifier le paramètrage des logs

Added by Emmanuel IHRY over 2 years ago. Updated about 2 years ago.

Status:
Fermé
Priority:
Normal
Assigned To:
Start date:
09/17/2018
Due date:
% Done:

0%

Remaining (hours):
0.0

Description

La version samba 4.9 améliore la journalisation des événements et leur complétude. Les développements faits permettent la journalisation de toutes les modifications LDAP (mise en œuvre de log génériques pour tracer le changement de tout attribut dans le LDAP sur l'ensemble des partitions). Des développements ont été faits également pour logger les changements sur les membres d'un groupe.

Le format de sortie est JSON

Objectifs des travaux :
- étudier les options de paramétrage possibles pour les logs dans samba
- eoliser une partie de ces options
- voir s'il est possible d'avoir plusieurs fichiers journaux en sortie, spécialisés dans des types événements.

Exemple d'ajout d'un compte user : **Rajout de l'entrée utilisateur (eventid 4720)

log level = 0 dsdb_json_audit:9

JSON dsdbChange: {"timestamp": "2018-07-16T15:55:58.800653+0200", "type": "dsdbChange", "dsdbChange": {"version": {"major": 1, "minor": 0}, "statusCode": 0, "status": "Success", "operation": "Add", "remoteAddress": null, "performedAsSystem": false, "userSid": "S-1-5-18", "dn": "CN=toto,CN=Users,DC=kg", "transactionId": "4ba5a14e-76d8-4425-b781-70a5e942ce96", "sessionId": "be5e90c9-66ac-4dd4-a4a0-cb509c062ee6", "attributes": {"objectClass": {"actions": [{"action": "add", "values": [{"value": "user"}]}]}, "sAMAccountName": {"actions": [{"action": "add", "values": [{"value": "dcardon"}]}]}, "userPrincipalName": {"actions": [{"action": "add", "values": [{"value": ""}]}]}}}}


Related issues

Related to Documentations - Tâche #26609: Documenter les nouvelles options de journalisation Samba Fermé 02/10/2020 02/10/2020
Related to eole-genconfig - Scénario #29588: Impossible de déclarer une "Catégorie d’événements à journaliser" avec Firefox 72/73 Terminé (Sprint) 02/07/2020 03/20/2020

Associated revisions

Revision f478b38b (diff)
Added by Benjamin Bohard about 2 years ago

Donner la possibilité de configurer le niveau de log de samba.

Ref #25331

Revision f8519dbb (diff)
Added by Benjamin Bohard about 2 years ago

Suppression de certaines classes de journaux.

Ref #25331

Revision 8c9f43af (diff)
Added by Benjamin Bohard about 2 years ago

Donner la possibilité de configurer le niveau de log de samba.

Ref #25331

Revision 8a5b651c (diff)
Added by Benjamin Bohard about 2 years ago

Suppression de certaines classes de journaux.

Ref #25331

History

#1 Updated by Emmanuel IHRY over 2 years ago

  • Assigned To set to Remi BAPTISTE

#2 Updated by Emmanuel IHRY over 2 years ago

  • Assigned To deleted (Remi BAPTISTE)

Voir description du fonctionnement des logs dans le scénario associé #24597

Le besoin précis en terme d'éolisation du paramétrage des log sera spécifié par le MTES pour le 11/01 au + tard

#3 Updated by Benjamin Bohard over 2 years ago

  • Parent task changed from #24597 to #26377

#4 Updated by Benjamin Bohard over 2 years ago

  • Description updated (diff)

#5 Updated by Benjamin Bohard over 2 years ago

  • Project changed from EOLE AD DC to Distribution EOLE
  • Status changed from Nouveau to En cours

#6 Updated by Benjamin Bohard over 2 years ago

La liste des éléments à surveiller est assez conséquente :
  • all
  • tdb
  • printdrivers
  • lanman
  • smb
  • smb2
  • mb2_credits
  • rpc_parse
  • rpc_srv
  • rpc_cli
  • passdb
  • sam
  • auth
  • winbind
  • vfs
  • idmap
  • quota
  • acls
  • locking
  • msdfs
  • dmapi
  • registry
  • scavenger
  • dns
  • ldb
  • tevent
  • auth_audit
  • auth_json_audit
  • kerberos
  • dsdb_audit
  • dsdb_json_audit
  • dsdb_password_audit
  • dsdb_password_json_audit
  • dsdb_transaction_audit
  • dsdb_transaction_json_audit

Est-ce qu’on propose tous ces éléments dans la configuration ou simplement un sous-ensemble ?

#7 Updated by Benjamin Bohard over 2 years ago

Pour le changement à la volée du niveau de journalisation, la commande smbcontrol est toujours disponible :

root@dc1:~# smbcontrol smbd debuglevel
PID 860: all:0 tdb:0 printdrivers:0 lanman:0 smb:0 rpc_parse:0 rpc_srv:0 rpc_cli:0 passdb:0 sam:0 auth:0 winbind:0 vfs:0 idmap:0 quota:0 acls:0 locking:0 msdfs:0 dmapi:0 registry:0 scavenger:0 dns:0 ldb:0 tevent:0 auth_audit:0 auth_json_audit:0 kerberos:0 drs_repl:0 smb2:0 smb2_credits:0 dsdb_audit:0 dsdb_json_audit:0 dsdb_password_audit:0 dsdb_password_json_audit:0 dsdb_transaction_audit:0 dsdb_transaction_json_audit:0 dsdb_group_audit:0 dsdb_group_json_audit:0
root@dc1:~# smbcontrol smbd debug "3 kerberos:4" 
root@dc1:~# smbcontrol smbd debuglevel
PID 860: all:3 tdb:3 printdrivers:3 lanman:3 smb:3 rpc_parse:3 rpc_srv:3 rpc_cli:3 passdb:3 sam:3 auth:3 winbind:3 vfs:3 idmap:3 quota:3 acls:3 locking:3 msdfs:3 dmapi:3 registry:3 scavenger:3 dns:3 ldb:3 tevent:3 auth_audit:3 auth_json_audit:3 kerberos:4 drs_repl:3 smb2:3 smb2_credits:3 dsdb_audit:3 dsdb_json_audit:3 dsdb_password_audit:3 dsdb_password_json_audit:3 dsdb_transaction_audit:3 dsdb_transaction_json_audit:3 dsdb_group_audit:3 dsdb_group_json_audit:3

On peut donc envisager un paramétrage normal effectué dans gen_config et un moyen de modifier temporairement ce niveau (prévoir une facilité pour le retour au niveau normal).

#8 Updated by Benjamin Bohard over 2 years ago

  • Description updated (diff)
  • Assigned To set to Benjamin Bohard

#9 Updated by Emmanuel IHRY about 2 years ago

*Vu le premier commit réalisé f478b38b, ça me parait une bonne solution ! * : çaa permet de configurer des niveaux de log à la carte et générer une syntaxe dans le smb.conf du type : log level = 1 auth_audit:3 auth_json_audit:9 dsdb_json_audit:9

QQ remarques ou questions :

1) Faut il ajouter un paramètre EOLE pour choisir la destination des logs (log file = )... ou bien sont ils dirigés naturellement dans rsyslog ?

2) Est-ce que c'est gênant dans le fichier de log d'avoir deux type de logs : json et pas json (voir ci après) ? Notamment si un jour on les exploite via outil spécifique.

Tout peut-il être au format Json ? Ou bien peut-on séparer dans deux fichiers les log json et les autres ?

[2019/01/10 16:23:11.226708,  0] ../source3/winbindd/winbindd_cache.c:3160(initialize_winbindd_cache)
  initialize_winbindd_cache: clearing cache and re-creating with version number 2
[2019/01/10 16:23:11.236819,  0] ../lib/util/become_daemon.c:138(daemon_ready)
  daemon_ready: STATUS=daemon 'winbindd' finished starting up and ready to serve connections
[2019/01/10 16:23:30.434487,  0] ../source4/dsdb/dns/dns_update.c:330(dnsupdate_nameupdate_done)
  ../source4/dsdb/dns/dns_update.c:330: Failed DNS update - with error code 110
[2019/01/10 16:23:51.357189,  5] ../lib/audit_logging/audit_logging.c:141(audit_log_json)
  JSON dsdbChange: {"timestamp": "2019-01-10T16:23:51.357081+0100", "type": "dsdbChange", "dsdbChange": {"version": {"major": 1, "minor": 0}, "statusCode": 0, "status": "Success", "operation": "Modify", "remoteAddress": "ipv4:192.168.227.169:49515", "performedAsSystem": false, "userSid": "S-1-5-21-2039604760-904587110-1313591226-500", "dn": "CN=p11.nfr", "transactionId": "7ac4b7f0-9a7f-4632-9a53-12b6fa5c970c", "sessionId": "52b4f932-7b9e-4963-bd38-87f036d773c8", "attributes": {"description": {"actions": [{"action": "replace", "values": [{"value": "rrrrrr"}]}]}}}}

3) Ca ne me gène pas qu'on laisse toutes ces valeurs dans la liste déroulante plutôt que de les rechercher en cas de besoin. Ce serait bien d'avoir une grande bulle d'aide qui explique ce qui se cache derrière chaque valeur mais je n'ai pas non plus la réponse !

<param>['all','tdb','printdrivers','lanman','smb','smb2','mb2_credits','rpc_parse','rpc_srv','rpc_cli','passdb','sam','auth','winbind','vfs','idmap','quota','acls','locking','msdfs','dmapi','registry','scavenger','dns','ldb','tevent','auth_audit','auth_json_audit','kerberos','dsdb_audit','dsdb_json_audit','dsdb_password_audit','dsdb_password_json_audit','dsdb_transaction_audit','dsdb_transaction_json_audit']</param>

#10 Updated by Emmanuel IHRY about 2 years ago

Complément suite à lecture de https://www.samba.org/samba/history/samba-4.9.0.html

Supprimer ces valeurs dans la liste des valeurs possibles :

dsdb_audit
dsdb_password_audit
dsdb_group_audit

#11 Updated by Benjamin Bohard about 2 years ago

La classe dsdb_group_audit n’était pas présente… Est-ce qu’il faut en ajouter d’autres qui seraient absentes ?

#12 Updated by Benjamin Bohard about 2 years ago

Le passage des logs de Samba se fait toujours avec le même nom de programme et ne suffit pas à répartir en différents fichiers.
Il reste à tester le traitement des journaux au format json et l’utilisation du contenu du message pour répartir dans différents fichiers.

#13 Updated by Scrum Master about 2 years ago

  • Status changed from En cours to Résolu

#14 Updated by Joël Cuissinat about 2 years ago

  • Related to Tâche #26609: Documenter les nouvelles options de journalisation Samba added

#15 Updated by Joël Cuissinat about 2 years ago

  • Status changed from Résolu to Fermé
  • Remaining (hours) set to 0.0

#16 Updated by Joël Cuissinat about 1 year ago

  • Related to Scénario #29588: Impossible de déclarer une "Catégorie d’événements à journaliser" avec Firefox 72/73 added

Also available in: Atom PDF