• [^] # Re: YAML

    Posté par (site web personnel) . En réponse à la dépêche Pyruse 1.0 : pour remplacer Fail2ban et autres « scruteurs » de journaux sur un GNU/Linux moderne. Évalué à 3.

    Je ne peux pas généraliser à tout fichier JSON, mais dans le cas particulier de Pyruse, il faut savoir que les entrées de dictionnaire non utilisées sont ignorées, ce qui permet ceci par exemple :

    "Détecter les accès SSH en échec": [
     { "INFO": "COMMENCER PAR VÉRIFIER QUE ÇA VIENT DE SSH",
     "filter": "filter_equals",
     "args": { "field": "_SYSTEMD_UNIT", "value": "sshd.service" }
     },
     { "INFO": "PUIS QU’ON A BIEN UN MESSAGE D’ÉCHEC DE CONNEXION",
     "filter": "filter_pcreAny",
     "args": { "field": "MESSAGE", "re": [
     "^Failed password for (?P<utilisateur>.*) from (?P<adresseIP>[^ ]*) port",
     "^Invalid user (?P<utilisateur>.*) from (?P<adresseIP>[^ ]*) port",
     "^User (?P<utilisateur>.*) from (?P<adresseIP>[^ ]*) not allowed because not listed in AllowUsers$"
     ] }
     },
     { "INFO": "SI C’EST BIEN LE CAS, ON AUGMENTE LE COMPTEUR",
     "action": "action_counterRaise",
     "args": { "counter": "sshd", "for": "adresseIP", "keepSeconds": 300, "save": "nbÉchecs" }
     },
     { "INFO": "ET S’IL EST SUPÉRIEUR OU ÉGAL À 4",
     "filter": "filter_greaterOrEquals",
     "args": { "field": "nbÉchecs", "value": 4 },
     "else": "... Ça ira pour cette fois, circulez !"
     },
     { "INFO": "ALORS ON BANNIT L’ADRESSE IP POUR 24H",
     "action": "action_nftBan",
     "args": {
     "IP": "adresseIP", "banSeconds": 86400,
     "nftSetIPv4": "Inet4 sshd_ban", "nftSetIPv6": "Inet6 sshd_ban"
     }
     }
    ],