Que processo está causando entradas inesperadas do syslog nslcd?

2

Estamos usando o LDAP para autenticar usuários em nossos dispositivos usando nslcd e estamos vendo mensagens no syslog assim:

/var/log/syslog.1:Dec 20 06:25:11 T53-1014-014 nslcd[1496]: [398c89] <passwd="*"> "*": name denied by validnames option
/var/log/syslog.1:Dec 20 06:25:11 T53-1014-014 nslcd[1496]: [4fe9f9] <passwd="*"> "*": name denied by validnames option
/var/log/syslog.1:Dec 20 06:25:14 T53-1014-014 nslcd[1496]: [b5af5c] <passwd="*"> "*": name denied by validnames option
/var/log/syslog.1:Dec 20 06:25:15 T53-1014-014 nslcd[1496]: [1226bb] <passwd=-1> ldap_search_ext() failed: Can't contact LDAP server
/var/log/syslog.1:Dec 20 06:25:15 T53-1014-014 nslcd[1496]: [1226bb] <passwd=-1> no available LDAP server found, sleeping 1 seconds
/var/log/syslog.1:Dec 20 06:25:16 T53-1014-014 nslcd[1496]: [34b6a8] <passwd="*"> "*": name denied by validnames option
/var/log/syslog.1:Dec 20 06:25:16 T53-1014-014 nslcd[1496]: [233c99] <passwd=-1> ldap_search_ext() failed: Can't contact LDAP server
/var/log/syslog.1:Dec 20 06:25:16 T53-1014-014 nslcd[1496]: [233c99] <passwd=-1> no available LDAP server found, sleeping 1 seconds
/var/log/syslog.1:Dec 20 09:01:04 T53-1014-014 nslcd[1496]: [0c57b1] <passwd=-1> ldap_search_ext() failed: Can't contact LDAP server
/var/log/syslog.1:Dec 20 09:01:04 T53-1014-014 nslcd[1496]: [0c57b1] <passwd=-1> no available LDAP server found, sleeping 1 seconds

Queremos nos livrar dessas mensagens sem simplesmente reconfigurar o que está registrado. Então, de preferência, aprendemos o que está acontecendo e reconfiguramos o sistema de modo que essas mensagens não sejam mais geradas em primeiro lugar. Mas como analisar isso?

O problema é que qualquer processo pode fazer algo que aciona o sistema para executar uma ação de autenticação e, no log, você não pode ver qual processo está acionando a ação de autenticação. Alguma idéia de como analisar isso?

Estou bem com a adição de código de diagnóstico extra à fonte do nslcd, se isso ajudar e implantar esse executável instrumentado.

Estamos usando uma distro antiga do Ubuntu: 12.04, nss-pam-ldapd-0.8.4

Atualização: criei uma versão modificada do nslcd que registra a linha de comando dos aplicativos que se conectam a ela. Isso ajuda muito, obviamente.

    
por Katjoek 12.01.2016 / 14:42

1 resposta

0

De man 5 nslcd.conf

validnames REGEX

This option can be used to specify how user and group names are verified within the system. This pattern is used to check all user and group names that are requested and returned from LDAP.

The regular expression should be specified as a POSIX extended regular expression. The expression itself needs to be separated by slash (/) characters and the 'i' flag may be appended at the end to indicate that the match should be case-insensetive. The default value is /^[a-z0-9.@$()]([a-z0-9.@$() \~-]*[a-z0-9._@$()~-])?$/i

Suponho que você esteja tentando solicitar um nome de usuário com um '' nele (provavelmente uma indicação de alguém que pensa que o arquivo globbing funciona em nomes de usuário) ou respondendo mensagens provenientes do ldap contendo um usuário com ' 'nele.

Você pode tentar resolver o nome de usuário ofensivo ou alterar o validnames regex de forma que ele aceite '*' como um nome de usuário válido.

Nota que isso pode levar a problemas inesperados, especialmente em scripts de shell, em que '*' é usado como uma expressão se não for devidamente ignorado ou citado.

    
por 12.01.2016 / 19:58