Como exibir o endereço IP do remetente quando o rsyslog rejeita uma mensagem UDP?

1

Ambiente é o Ubuntu 12.04.4 LTS com o rsyslog 5.8.6.

Eu tenho o rsyslog configurado para receber mensagens via UDP pela porta padrão 514. Ele permite que um host específico envie mensagens para ele:

$AllowedSender UDP, 192.168.4.1

Quando envio uma mensagem de um servidor diferente, ela rejeita a mensagem e os registros:

rsyslogd: UDP message from disallowed sender discarded

É possível configurar o rsyslog para incluir o endereço IP do remetente rejeitado?

    
por Alan 06.05.2014 / 22:53

1 resposta

1

Eu fiz o download da fonte da versão 5 ( link ) e examinei plugins / imudp / imudp.c . Nesse arquivo, é uma mensagem codificada sem nenhuma opção para exibir o endereço IP do atinet do remetente:

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");
    }
}

Eu também descobri que ferramentas / syslogd.c contém um remanescente chkMsgAgainstACL () que não foi utilizado e exibiu o valor fromHost .

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

Não sei por que Rainer decidiu não manter esse recurso. Ele discute alguns problemas de desempenho em torno desta seção do código aqui: link

De qualquer forma, parece que eu teria que compilar minha própria versão do rsyslogd se eu quisesse exibir o endereço IP do remetente.

    
por Alan 07.05.2014 / 18:24