web-dev-qa-db-fra.com

Comment afficher l'adresse IP de l'expéditeur lorsque rsyslog rejette un message UDP?

L'environnement est Ubuntu 12.04.4 LTS avec rsyslog 5.8.6.

J'ai rsyslog configuré pour recevoir des messages via UDP sur le port standard 514. Il permet à un hôte spécifique de lui envoyer des messages:

$AllowedSender UDP, 192.168.4.1

Lorsque j'envoie un message à partir d'un autre serveur, il rejette le message et enregistre:

rsyslogd: UDP message from disallowed sender discarded

Est-il possible de configurer rsyslog pour inclure l'adresse IP de l'expéditeur rejeté?

1
Alan

J'ai téléchargé la source de la version 5 ( https://github.com/rsyslog/rsyslog/archive/v5-stable.Zip ) et regardé plugins/imudp/imudp.c . Dans ce fichier, il s'agit d'un message codé en dur sans option pour afficher l'adresse IP de l'expéditeur frominet :

if(glbl.GetOption_DisallowWarning) {
    time_t tt;
    datetime.GetTime(&tt);
    if(tt > ttLastDiscard + 60) {
        ttLastDiscard = tt;
        errmsg.LogError(0, NO_ERRCODE,
        "UDP message from disallowed sender discarded");
    }
}

J'ai également constaté que tools/syslogd.c contient un résidu désormais inutilisé chkMsgAgainstACL () qui a affiché la valeur fromHost .

errmsg.LogError(0, NO_ERRCODE,
    "UDP message from disallowed sender %s discarded",
    (char*)fromHost);

Je ne sais pas pourquoi Rainer a décidé de ne pas conserver cette fonctionnalité. Il discute quelques problèmes de performances autour de cette section du code ici: http://blog.gerhards.net/2009/11/acls-imudp-and-accepting-messages.html

Dans tous les cas, il semble que je devrais compiler ma propre version de rsyslogd si je veux afficher l'adresse IP de l'expéditeur.

1
Alan