Como posso identificar processos que usam recursos de rede e eles podem ser mortos?

1

Na saída de

netstat -a | grep LISTEN

geralmente há muitos processos. Como (onde) posso encontrar informações sobre eles, qual é o propósito deles no sistema e se posso matá-los? Quais deles podem ser inseguros e quais são seguros?

    
por xralf 12.04.2012 / 17:25

3 respostas

5

How (where) can I find out information about them,

Primeiro, você precisa descobrir qual programa está vinculado a cada porta. Infelizmente, não existe uma maneira padrão única de fazer isso que funciona em todos os sistemas do tipo * ix, e sua pergunta não especifica um.

Algumas versões de netstat possuem um sinalizador que incluirá o nome do programa associado em cada linha de saída. Por exemplo, --program no Linux ou -b no Windows.

Se o seu netstat não tiver esse sinalizador (por exemplo, OS X), você terá que encontrar outro método que funcione em seu sistema. lsof -i , /proc spelunking, etc.

what is their purpose in the system

Depois de ter o nome do programa em mãos, man progname geralmente fornecerá informações suficientes para responder a essa pergunta.

[can I] kill them?

Você descobrirá isso assim que souber o que cada servidor está fazendo.

Uma única resposta aqui não é o lugar certo para uma lista de todas as coisas que você pode matar. Existem simplesmente muitas possibilidades. Se você não tiver certeza sobre um determinado programa depois de ler sua documentação, você pode postar outra pergunta aqui perguntando sobre isso. Algumas coisas são bastante óbvias (por exemplo, sshd ), outras mais obscuras (por exemplo, avahi ).

Which of them can be insecure and which are safe?

É raro que um programa seja executado por padrão em um novo sistema * ix que é absolutamente inseguro.

(Nos velhos e maus tempos, esse não era o caso. Muitas vezes você via os sistemas executando telnetd , ftpd não-chrooted, os comandos r* ...)

Qualquer ouvinte TCP em segundo plano não padrão deve ser algo que você ou outro administrador confiável instalou, então, presumivelmente, você já enfrentou preocupações de segurança.

Existem áreas cinzentas aqui. Você pode ter um servidor em execução que não seja absolutamente inseguro, mas que seja condicionalmente inseguro. Talvez não esteja trancado corretamente, talvez tenha bugs não corrigidos, etc. Isso é coisa de carreiras de segurança de computadores, não é algo adequado para responder aqui em uma única pergunta. Sem essa experiência, o Google é provavelmente o seu melhor primeiro resort. Se você não encontrar o que precisa, pode postar uma nova pergunta aqui sobre um determinado servidor.

    
por 12.04.2012 / 18:28
2

O comando

netstat -a | grep LISTEN

lista todos os processos escutando em vários tipos de soquetes. Esses soquetes podem ser de qualquer tipo de endereço, como ipv4 (udp ou tcp), ipv6 (udp6 ou tcp6), unix.

As entradas como:

tcp        0      0 *:webmin                *:*                     LISTEN
tcp        0      0 *:ftp                   *:*                     LISTEN

significa tcp protocol é usado e algum servidor está rodando em sua máquina como no meu caso webmin e ftp server estão rodando.

As entradas como:

 tcp6       0      0 [::]:8484               [::]:*                  LISTEN     
 tcp6       0      0 [::]:netbios-ssn        [::]:*                  LISTEN     

significa que o protocolo tcp6 do ipv6 é usado.

As entradas como:

unix  2      [ ACC ]     STREAM     LISTENING     13297    /tmp/orbit-pradeep/linc-76d-0-53b2963d93f75
unix  2      [ ACC ]     STREAM     LISTENING     13305    /tmp/orbit-pradeep/linc-775-0-5ddd91eb9510b

são criados pelo ORBit CORBA. Essa CORBA (Common Object Request Broker Architecture) é um padrão definido pelo OMG (Object Management Group, grupo de gerenciamento de objetos) que permite que componentes de software escritos em vários idiomas e executados em vários computadores funcionem juntos, ou seja, ele suporta várias plataformas.

1. Como (onde) posso encontrar informações sobre eles?

Suponha que eu queira encontrar informações sobre /tmp/orbit-pradeep/linc-775-0-5ddd91eb9510b . Eu posso descobrir os detalhes executando o seguinte comando:

$ lsof -Pwn | grep /tmp/orbit-pradeep/linc-775-0-5ddd91eb9510b

Este comando deu a saída:

indicator  1909    pradeep   10u  unix 0xf6bd8900          0t0      13305 /tmp/orbit-pradeep/linc-775-0-5ddd91eb9510b
indicator  1909    pradeep   12u  unix 0xf6b1f600          0t0      13314 /tmp/orbit-pradeep/linc-775-0-5ddd91eb9510b

Aqui:

indicator é o nome do comando unix associado ao processo. 1909 é o PID do processo indicator .

2. qual é o propósito deles no sistema?

Alguns processos como

tcp        0      0 *:ftp                   *:*                     LISTEN

são para ouvir um servidor FTP.

Outros como:

 unix  2      [ ACC ]     STREAM     LISTENING     13297    /tmp/orbit-pradeep/linc-76d-0-53b2963d93f75

são destinados a comunicação entre processos diferentes usados pelo CORBA.

3. Posso matá-los?

Isso depende da criticidade do processo. Suponha que, se você matar qualquer servidor que esteja ouvindo, interromperá toda a comunicação relacionada a esse servidor.

4. Quais deles podem ser inseguros e quais são seguros?

Todos são processos seguros.

    
por 12.04.2012 / 20:12
1

netstat -nap | grep LISTEN fornecerá a saída abaixo, que incluirá o nome e o pid dos processos de escuta :

unix  2      [ ACC ]     STREAM     LISTENING     20763  2333/gnome-terminal /tmp/orbit-eugene/linc-91d-0-2dbe139bd35e3
unix  2      [ ACC ]     STREAM     LISTENING     17900  2014/bonobo-activat /tmp/orbit-eugene/linc-7de-0-2b0c0606f265
unix  2      [ ACC ]     STREAM     LISTENING     18325  2274/gnome-screensa /tmp/orbit-eugene/linc-7ef-0-59f130216cc19

-n - Mostrar endereços numéricos em vez de tentar determinar nomes de host, porta ou usuário simbólicos.

-a - Mostrar sockets de audição e de não escuta.

-p Mostra o PID e o nome do programa ao qual cada soquete pertence.

    
por 12.04.2012 / 22:55