localizar proprietário e gerar processo de conexão ssh

2

Existe este servidor que eu gerencio e que regularmente (algumas vezes por minuto) tenta uma conexão com outra máquina na porta tcp 22. (ssh)

Minha pergunta: como posso encontrar o processo que gerou essa conexão?

O que eu já verifiquei:

  • captura tcpdump na interface ethernet + feed para wireshark = > O resultado não foi tão interessante, exceto que parece ser uma conexão SSH criptografada padrão, mas a remontagem do fluxo não me forneceu informações úteis, pois era (é claro) criptografada.

  • lsof script: Eu despejei todo o acesso a arquivos conhecido pelo lsof em um arquivo cerca de 60 vezes com 1 segundo entre cada execução. Eu posso ver a configuração da conexão no arquivo de log, mas em torno dele, não reconheço nenhuma informação útil:

    ...
    ssh        8478     root    3u     IPv4             945966                 TCP servername:randomport->destinationserver:ssh (ESTABLISHED)
    ...
    

Parece que é de propriedade do usuário root. Repeti o processo algumas vezes, mas nada de interessante foi reconhecido.

  • netstat mostra isso: (netstat -ntap)

    tcp        0      0 servername:randomport  destinationserver:22   TIME_WAIT   -
    tcp        0      0 servername:randomport  destinationserver:22   TIME_WAIT   -
    

quando eu registro iterações suficientes disso, eu vejo que ele desce para um time_wait cnx e volta para 2 algumas vezes por minuto.

  • crontabs:

não é possível encontrar crontabs para qualquer usuário que inicie algum ssh cnx nada sobre o ssh nos arquivos e diretórios do / etc / cron *

  • começou a ser auditado

adicionou esta regra:

    auditctl -a exit,always -F arch=b64 -S connect -k MYCONNECT

Não aprendi nada, exceto que, de fato, parece uma conexão ssh com a mesma fonte e ip de destino, etc.

  • o servidor de destino não está sob meu controle, mas alguém que o gerencia me mostrou um log que faz com que pareça um ssh cnx que falha na autenticação de chave pública; não há nenhuma chave na máquina de destino. Esse servidor de destino é um dispositivo semelhante ao de armazenamento (mas não realmente).

Eu estou em uma perda de onde este vem.

Se eu não conseguir encontrar a origem dessas conexões inúteis, posso pelo menos usar o iptables para bloqueá-las, mas isso não é tão bonito.

obrigado por qualquer sugestão.

    
por lievendp 06.01.2014 / 16:09

2 respostas

1

Eu ficaria tentado a usar o auditd para (brevemente) coletar informações sobre a criação de tarefas e ver se eu poderia trabalhar com isso

auditctl -D
auditctl -a task,always 

Depois, vasculhe os resultados

ausearch -i -sc execve

Também o lsof fornece um PID para que você possa tentar

ps -p <PID> -o ppid=
    
por 06.01.2014 / 16:47
0

Uma coisa é tentar colocar um script wrapper em torno do binário ssh padrão e ter esse id e hora do log do script de wrapper. Isso é apenas fora do topo da minha cabeça então pode precisar de algum trabalho.

mv /usr/bin/ssh /usr/bin/ssh.real 

Substituir

/usr/bin/ssh

com este script:

#!/usr/bin/perl
use Sys::Syslog;                        # all except setlogsock()
use Sys::Syslog qw(:standard :macros);  # standard functions & macros
openlog('ssh', "ndelay,pid", "auth");   # or whatever is appropriate other than auth
syslog('info',"started by $ENV{'USER'}"); 
exec '/usr/bin/ssh.real',  @ARGV;
    
por 10.01.2014 / 17:37

Tags