Centos: o rsyslog bloqueia o sshd e também o login local se o selinux estiver ativo

1

Eu tenho um problema muito curioso em uma máquina centos 6.5 (agora 6.6). Após uma atualização entre 11 de junho e 21 de outubro, o problema começa (pacotes: link ). Após uma reinicialização em outubro, não foi possível fazer o login no servidor usando o ssh. O cliente sempre para com a seguinte mensagem:

ssh_exchange_identification: read: Connection reset by peer

Eu tentei fazer o login no servidor diretamente. Primeiro tentei fazer o login usando o console. Depois de digitar a senha, o servidor a rejeitou dizendo "senha incorreta". O mesmo no modo gráfico. Mas a senha estava correta. Agora eu encontrei uma solução: Depois de desativar o selinux por append selinux = 0 no bootmanager. Agora eu consegui entrar no console no servidor. Além disso, não consegui logar usando ssh (também usando localhost). Depois disso eu edito / etc / selinux / config e defino o valor de SELINUX de impingir para permissivo depois para desabilitar. Após a reinicialização, não consegui fazer o login, mesmo que eu tenha desabilitado. A única maneira de efetuar login é configurando selinux = 0. Agora eu encontrei o malfeitor: rsyslog. Se eu desabilitar o login no início, está tudo bem aceitar o registro.

O curioso é que todos os outros serviços, como o apache e o mysql, estão funcionando corretamente se o rsyslogd for iniciado.

Aqui está a parte inferior do log de sshd usando o debug3:

[...]
debug1: Bind to port 22 on 0.0.0.0.
Server listening on 0.0.0.0 port 22.
debug2: fd 4 setting O_NONBLOCK
debug1: Bind to port 22 on ::.
Server listening on :: port 22.
debug3: fd 5 is not O_NONBLOCK
debug1: Server will not fork when running in debugging mode.
debug3: send_rexec_state: entering fd = 8 config len 599
debug3: ssh_msg_send: type 0
debug3: send_rexec_state: done
debug1: rexec start in 5 out 5 newsock 5 pipe -1 sock 8
debug1: inetd sockets after dupping: -1, -1
setsockopt SO_KEEPALIVE: Bad file descriptor
debug1: getpeername failed: Bad file descriptor
debug1: get_remote_port failed

Como você pode ver, ambos os soquetes inetd são inválidos. Se o rsyslog não for iniciado, existem sockets positivos e está tudo bem.

Eu tentei corrigi-lo reinstalando o rsyslog (com configuração nova / não editada) e também reinstalar as bibliotecas do selinux. Eu também fiz a atualização do centos6.5 para a versão atual 6.6 Alguém tem uma idéia de como eu posso resolver esse problema?

    
por Christopher Lorenz 30.10.2014 / 10:58

2 respostas

0

Agradecemos a Marlon Régis Schmitz pela dica do ingresso no centos.org: bugs.centos.org/view .php? id = 7812

Aqui encontrei a solução. Eu removi o pacote prelink . Depois de reativar o rsyslog e reiniciar o sistema, o ssh e o login estão funcionando corretamente agora.

O pacote prelink inclui um programa que pré-processa executáveis e bibliotecas para reduzir o consumo de cpu e acelerar o carregamento de programas. Também é possível criar uma lista negra para alguns executáveis e bibliotecas, mas eu não tentei.

    
por 19.11.2014 / 14:39
0

Eu tenho o mesmo problema no OEL 6 e descobri que o seguinte patch é a causa raiz:

nss-softokn-freebl-3.14.3-17.el6.x86_64.rpm

Após atualizá-lo, não consigo fazer login via ssh.

Obrigado pela sua postagem, foi útil.

    
por 04.11.2014 / 12:53