Pesquisa de site

Como descobrir a lista de todas as portas abertas no Linux


Neste artigo, falaremos brevemente sobre portas em redes de computadores e veremos como você pode listar todas as portas abertas no Linux.

Em redes de computadores, e mais definitivamente em termos de software, uma porta é uma entidade lógica que atua como um ponto final de comunicação para identificar um determinado aplicativo ou processo em um sistema operacional Linux. É um número de 16 bits (0 a 65535) que diferencia uma aplicação de outra em sistemas finais.

Os dois protocolos de transporte da Internet mais populares, o Transmission Control Protocol (TCP) e o User Datagram Protocol (UDP) e outros protocolos menos conhecidos usam números de porta para sessões de comunicação (números de porta de origem e destino em conjunto com os endereços IP de origem e destino).

Além disso, uma combinação de endereço IP, porta e protocolo como TCP/UDP é conhecida como soquete, e cada serviço deve ter um soquete exclusivo.

Abaixo estão as diferentes categorias de portos:

  1. 0-1023 – as portas conhecidas, também conhecidas como portas do sistema.
  2. 1024-49151 – as Portas Registradas, também conhecidas como Portas de Usuário.
  3. 49152-65535 – os Portos Dinâmicos, também chamados de Portos Privados.

Você pode visualizar uma lista de diferentes aplicativos e combinações de porta/protocolo no arquivo /etc/services no Linux usando o comando cat:

cat /etc/services 
OR
cat /etc/services | less
/etc/services:
$Id: services,v 1.48 2009/11/11 14:32:31 ovasik Exp $
#
Network services, Internet style
IANA services version: last updated 2009-11-10
#
Note that it is presently the policy of IANA to assign a single well-known
port number for both TCP and UDP; hence, most entries here have two entries
even if the protocol doesn't support UDP operations.
Updated from RFC 1700, ``Assigned Numbers'' (October 1994).  Not all ports
are included, only the more common ones.
#
The latest IANA port assignments can be gotten from
      http://www.iana.org/assignments/port-numbers
The Well Known Ports are those from 0 through 1023.
The Registered Ports are those from 1024 through 49151
The Dynamic and/or Private Ports are those from 49152 through 65535
#
Each line describes one service, and is of the form:
#
service-name  port/protocol  [aliases ...]   [# comment]

tcpmux          1/tcp                           # TCP port service multiplexer
tcpmux          1/udp                           # TCP port service multiplexer
rje             5/tcp                           # Remote Job Entry
rje             5/udp                           # Remote Job Entry
echo            7/tcp
echo            7/udp
discard         9/tcp           sink null
discard         9/udp           sink null
systat          11/tcp          users
systat          11/udp          users
daytime         13/tcp
daytime         13/udp
qotd            17/tcp          quote
qotd            17/udp          quote
msp             18/tcp                          # message send protocol
msp             18/udp                          # message send protocol
chargen         19/tcp          ttytst source
chargen         19/udp          ttytst source
ftp-data        20/tcp
ftp-data        20/udp
21 is registered to ftp, but also used by fsp
ftp             21/tcp
ftp             21/udp          fsp fspd
ssh             22/tcp                          # The Secure Shell (SSH) Protocol
ssh             22/udp                          # The Secure Shell (SSH) Protocol
telnet          23/tcp
telnet          23/udp

Para listar todas as portas abertas ou em execução atualmente, incluindo TCP e UDP no Linux, usaremos o netstat, que é uma ferramenta poderosa para monitorar conexões de rede e estatísticas.

$ netstat -lntu

Proto Recv-Q Send-Q Local Address               Foreign Address             State      
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:25                  0.0.0.0:*                   LISTEN      
tcp        0      0 :::22                       :::*                        LISTEN      
tcp        0      0 :::80                       :::*                        LISTEN      
tcp        0      0 :::25                       :::*                        LISTEN      
udp        0      0 0.0.0.0:68                  0.0.0.0:*                               

Onde,

  1. -l – imprime apenas soquetes de escuta
  2. -n – mostra o número da porta
  3. -t – permite a listagem de portas TCP
  4. -u – permite a listagem de portas udp

Você também pode usar o comando ss, um utilitário útil e conhecido para examinar soquetes em um sistema Linux. Execute o comando abaixo para listar todas as portas TCP e UCP abertas:

$ ss -lntu

Netid State      Recv-Q Send-Q               Local Address:Port       Peer Address:Port 
udp   UNCONN     0      0                    *:68                     *:*     
tcp   LISTEN     0      128                  :::22                    :::*     
tcp   LISTEN     0      128                  *:22                     *:*     
tcp   LISTEN     0      50                   *:3306                   *:*     
tcp   LISTEN     0      128                  :::80                    ::*     
tcp   LISTEN     0      100                  :::25                    :::*     
tcp   LISTEN     0      100                  *:25  

Faça questão de ler as páginas de manual dos comandos acima para obter mais informações de uso.

Em resumo, compreender o conceito de portas em redes de computadores é muito vital para administradores de sistemas e redes. Você também pode consultar este guia netstat com exemplos simples, precisos e bem explicados.

Por último, mas não menos importante, entre em contato conosco compartilhando outros métodos para listar portas abertas no Linux ou fazendo uma pergunta através do formulário de resposta abaixo.