Na networking, uma porta é um recurso interessante. É uma maneira de o tráfego de rede identificar o aplicativo de destino ou serviço. Cada processo/serviço recebe sua porta exclusiva. Uma porta sempre estará associada ao endereço IP do host junto com o protocolo.
Esta é a minha metáfora favorita para descrever o que é uma porta. Imagine um navio carregado de carga, que viajará para uma terra distante. Que informações são necessárias para chegar ao destino corretamente? Por uma questão de simplicidade, digamos que ele precisa do país (o endereço IP) e do porta o navio vai atracar.
Neste guia, verifique como listar portas abertas no Linux.
Portas no Linux
As portas atuam como um ponto final de comunicação. É um número de 16 bits (0 a 65535 em decimal). Embora o intervalo seja grande, para facilitar o uso, as portas são categorizadas em três categorias. Cada categoria é rotulada como o alcance do valor da porta:
No Linux, existem várias maneiras de verificar as portas abertas. Por padrão, qualquer porta permanecerá fechada, a menos que um aplicativo esteja usando. Se uma porta estiver aberta, deve ser atribuída a um serviço/processo.
Listar portas abertas
É mais fácil identificar quais portas estão em uso e não quais portas estão abertas. É por isso que a seção a seguir apresentará métodos para listar todas as portas que estão atualmente em uso. No Linux, existem várias ferramentas disponíveis para a tarefa. A maioria deles vem embutida em qualquer distro Linux.
Aprender quais portas estão abertas atualmente podem ser úteis em vários cenários. É possível configurar uma porta dedicada para um determinado aplicativo. Uma porta aberta também pode ser uma forte indicação de intrusão na rede.
Os seguintes métodos são demonstrados no Ubuntu 20.04.1 lts.
Listar protocolos e portas abertas de /etc /serviços
O arquivo /etc /serviços contém informações sobre os serviços atualmente em execução. É um grande arquivo, tão pronto para ficar sobrecarregado.
$ cat /etc /serviços | menos
Listar portas abertas usando o netstat
A ferramenta NetStat é um utilitário para exibir conexões de rede para TCP, tabelas de roteamento e várias interfaces de rede. Também oferece estatísticas de protocolo de rede. Ao usar o NetStat, podemos listar todas as portas abertas do sistema.
Execute o seguinte comando netstat:
$ NETSTAT -ATU
Vamos ter um rápido colapso de todas as bandeiras que usamos neste comando.
Aqui está outra variação do comando netstat:
$ netstat -lntu
Existem duas novas bandeiras usadas no comando. O que eles querem dizer?
Para exibir o PID do processo que está usando uma porta, use o sinalizador "-p":
$ netstat -lntup
Liste portas abertas usando SS
A ferramenta SS é um utilitário para investigar o soquete. Seu uso é semelhante ao netstat.
Para listar as portas abertas, execute o seguinte comando SS:
$ ss -lntu
As bandeiras são semelhantes ao netstat. As funções que eles descrevem também são bastante semelhantes.
Liste portas abertas usando LSOF
O comando LSOF é listar arquivos abertos. No entanto, também pode ser usado para exibir as portas abertas.
Execute o seguinte comando LSOF:
$ lsof -i
Para obter as portas abertas de um protocolo específico (TCP, UDP, etc.) em seguida, defina-o após a bandeira "-i", use:
$ lsof -i
Liste portas abertas usando o NMAP
A ferramenta NMAP é poderosa para exploração de rede e verificação de segurança/porta. Ele pode relatar todas as portas abertas no sistema.
Para listar as portas TCP abertas, execute o seguinte comando nmap. Aqui, o endereço IP é do computador host:
$ sudo nmap -st -p- localhost
Aqui, há duas partes do argumento de comando.
Se você precisar listar as portas UDP abertas, execute o seguinte comando nmap:
$ sudo nmap -su -p- localhost
Para obter as portas abertas TCP e UDP, use o seguinte comando:
$ sudo nmap -n -pn -st -su -p- localhost
Listar portas abertas usando o netcat
A ferramenta NetCat é um utilitário de linha de comando para leitura e gravação de dados entre conexões de rede sobre os protocolos TCP e UDP. Esta ferramenta também pode ser usada para listar portas abertas. Ele pode realizar testes em uma porta específica ou em uma variedade de portas.
O seguinte comando netcat escaneará a porta de 1 a 1000. O comando NetCat executará a varredura no protocolo TCP por padrão:
$ nc -z -v localhost 1-1000
Também pode ser estendido para toda a lista de possíveis portas:
$ nc -z -v localhost 1-65535
Vamos ter um rápido colapso das bandeiras.
Para obter apenas as portas abertas desta lista, filtre a saída com o Grep para o termo "sucedido".
$ nc -z -v localhost 0-65535 2> & 1 | Grep conseguiu
Se você quiser executar a varredura no protocolo UDP, adicione a bandeira "-u".
$ nc -z -v -u localhost 0-65535 2> & 1 | Grep conseguiu
Pensamentos finais
Como demonstrado, existem várias maneiras de digitalizar portas abertas no Linux. Eu sugiro experimentar todos os métodos antes de decidir qual dominar. Se você estiver usando uma determinada ferramenta como o NetCat ou o NMAP regularmente, o domínio dos métodos associados será o mais benéfico.
Computação feliz!