Significado de saída netstat?

2

Quando eu digito "sudo netstat -an", isso faz parte da saída que recebo:

Proto Recv-Q Send-Q Local Address               Foreign Address             State      
tcp        0      0 192.99.202.17:39922        23.82.16.66:29842           TIME_WAIT  

Estou confuso sobre o que a primeira linha está dizendo.

Está dizendo que um servidor de 23.82.16.66 está se conectando a este servidor pela porta 29842 ou pela porta 39922?

Como sei que é uma conexão de entrada desse IP, em oposição a uma conexão de saída do meu servidor para esse IP?

Estou executando o CENTOS 6.7, se isso importa.

    
por Henley Wing 15.07.2016 / 22:54

3 respostas

3

How do I know it's an incoming connection from that IP, as opposed to an outgoing connection from my server to that IP?

O Endereço Local é o endereço da máquina em que você está executando os comandos NETSTAT , de modo a entender o estado das conexões TCP ajudará você a entender se ele está chegando ou saindo de uma perspectiva de endereço local.

The Simplified TCP Finite State Machine

State: TIME-WAIT

State Description: The device has now received a FIN from the other device and acknowledged it, and sent its own FIN and received an ACK for it. We are done, except for waiting to ensure the ACK is received and prevent potential overlap with new connections. (See the topic describing connection termination for more details on this state.)

Event and Transition: Timer Expiration: After a designated wait period, device transitions to the CLOSED state.

source

TIME-WAIT

(either server or client) represents waiting for enough time to pass to be sure the remote TCP received the acknowledgment of its connection termination request. [According to RFC 793 a connection can stay in TIME-WAIT for a maximum of four minutes known as two MSL (maximum segment lifetime).]

source

Outra boa explicação

Due to the way TCP/IP works, connections can not be closed immediately. Packets may arrive out of order or be retransmitted after the connection has been closed. CLOSE_WAIT indicates that the remote endpoint (other side of the connection) has closed the connection. TIME_WAIT indicates that local endpoint (this side) has closed the connection. The connection is being kept around so that any delayed packets can be matched to the connection and handled appropriately. The connections will be removed when they time out within four minutes.

source

rfc793: origem da imagem

fonte de imagem

Mais recursos

por 15.07.2016 / 23:33
1

Você pode dizer se você verificar se o seu servidor escuta na porta 39922, então a conexão foi estabelecida a partir do lado remoto.

Por exemplo: Seu servidor aceita conexões ssh na porta padrão 22. Com netstat -anutp | grep :22 , você verá se escuta, se está conectado ou se tem uma conexão. Se você abrir duas sessões de terminal para o seu servidor e depois de uma conexão com ssh para um terceiro servidor, a saída do comando acima mostrará que seu servidor está escutando na porta 22, que tem a porta 22 no lado local para a conexão o servidor e a porta 22 listados no lado remoto com o IP do terceiro servidor e uma porta aleatória no lado local nesta linha.

Eu não acho que você possa dizer a partir da saída do comando netstat se a conexão foi iniciada de local ou remoto.

    
por 15.07.2016 / 23:30
0

Você já recebeu duas boas respostas à sua pergunta, então peço desculpas por adicionar uma nova resposta que lida com algo que li nas entrelinhas da sua postagem. Minha resposta é destinada a complement das outras duas respostas, não para substituí-las.

Na saída de netstat , não é possível determinar se a conexão foi iniciada pela sua própria máquina ou pela máquina remota. O simples fato de você estar fazendo essa pergunta me deixa preocupado, e o que me preocupa ainda mais é outro fato estranho nessa saída: o uso de high ports, (o que significa > 10.000) para ambos lados da conexão.

Deixe-me explicar. Os PCs fornecem serviços a outros PCs, em um modelo client/sever : por exemplo, o servidor Web atende a solicitações de páginas da Web em uma porta especificada (na verdade, duas: 80 e 443) de um cliente remoto. Da mesma forma para ssh,ftp,dns e assim por diante. Todos os serviços essenciais ouvem portas bem conhecidas (por exemplo, Wikipedia ), algumas das quais são tão importantes para serem gravadas em pedra. : sua atribuição é regulamentada por ninguém menos que IANA . Muitos outros portos, embora seu uso não seja regulamentado pela IANA, tornaram-se tradicionais para certas aplicações. O que todas as listening portas têm em comum é que elas estão abaixo de 10000 . Portas altas (acima de 10.000) são tradicionalmente reservadas para outgoing conexões, não para audição.

Então, como você vê uma conexão entre as portas 39922 e 29842? Porque alguém configurou um serviço em uma porta não padrão , em sua máquina ou na máquina remota. A sua máquina está com o listening server ? O comando

sudo ss -lntp

dirá que: lista todas as portas nas quais sua máquina atende conexões de entrada (TCP, -t ) e os processos associados. Então você pode agora olhar para ver qual processo, se houver, está escutando na porta 39922.

Agora vamos supor que de fato é esse o caso, i.e. que um serviço que você não configurou está escutando na porta 39922. Quem faz isso? Hackers, que usam uma ferramenta ( netcat ou nc , o canivete suíço de conexões TCP) que permite que eles se conectem facilmente através de portas altas entre seus computadores e um p0wned pc. É por isso que estou preocupado.

Não estou aliviado ao saber que 23.82.16.66 pertence à Nobis Technology, uma empresa que possui vários data centers que fornecem soluções de servidor em nuvem. E, cereja no topo do bolo, enquanto eu corria através do Google a informação acima, me deparei com este Post por um administrador de sistema relatando como a Nobis Technology é um spammer bem conhecido, e descobriu que o endereço acima, 23.82.16.66, cai dentro de uma das faixas que o pobre rapaz está tentando bloquear; e eis que, seu endereço IP local, 192.99.202.17, é reportado por whatismyipaddress.com para ser seu servidor de e-mail .

No final, o que eu faço disso? Uma conexão de um spammer conhecido para seu servidor de e-mail, somente através de portas altas, das quais você não sabe nada. Parece provável que seu sistema tenha sido de alguma forma violado. É por isso que estou escrevendo este post.

    
por 20.07.2016 / 11:59