Solaris 10 - Localizar serviço anexado à porta de escuta

1

Estou diagnosticando uma versão antiga do Solaris 10 e, durante as varreduras de portas, encontrei uma porta aberta que não está na lista aprovada para esse servidor.

Eu tentei várias combinações de netstat switches, mas não consigo obter a saída correta que me fornece o nome de serviço associado ou o PID da porta aberta.

O conjunto de recursos do netstat nesta compilação parece ser limitado em comparação com versões posteriores do solaris e outros sistemas operacionais unix. netstat -tulpn , por exemplo, não funciona.

Eu também não consigo instalar lsof devido a restrições de segurança.

Alguma idéia?

    
por popcornuk 13.10.2016 / 13:05

1 resposta

7

Para o Solaris, você pode usar pfiles <pid> para ver quais portas de rede são abertas por um determinado processo. Usando um loop for em /proc/* , você pode usar pfiles em cada processo em execução para procurar a porta desejada. A desvantagem é que você precisará ser root no Solaris 10 ou ser capaz de se tornar privilegiado ( pfexec pfiles ) no Solaris 11 para obter as informações.

Se você conseguir se tornar root no host Solaris, poderá usar algo como:

PORT=22; for PID in /proc/*; do pfiles ${PID} |grep "port: ${PORT}" && echo ${PID}; done

Isso iterará o /proc/* , filtrará a porta especificada e, se uma correspondência for encontrada, a ID do processo ( /proc/#### ) será mostrada na próxima linha.

    
por 13.10.2016 / 13:33