O que significa porta aberta?
Antes de se aprofundar na verificação de portas abertas, vamos primeiro saber o que significa portas abertas. Uma porta aberta ou uma porta de escuta é a porta em que algum aplicativo está em execução. O aplicativo em execução ouve em alguma porta, e podemos nos comunicar com esse aplicativo sobre essa porta de escuta. Se um aplicativo estiver em execução em uma porta e tentamos executar outro aplicativo na mesma porta, o kernel lançará um erro. Essa é uma das muitas razões pelas quais verificamos portas abertas antes de executar aplicativos.
Liste portas abertas usando o NMAP
Rede Mapper, conhecido como NMAP, é uma ferramenta de código aberto e gratuito, usado para digitalizar portas em um sistema. É usado para encontrar vulnerabilidades, descobrir redes e encontrar portas abertas. Nesta seção, usaremos o NMAP para obter uma lista de portas abertas em um sistema. Primeiro de tudo, atualize o cache no Ubuntu antes de instalar o NMAP:
ubuntu@ubuntu: ~ $ sudo apt -get update -y
O NMAP pode ser instalado usando o seguinte comando no terminal:
ubuntu@ubuntu: ~ $ sudo apt -get install nmap -y
Depois de instalar o NMAP, verifique a instalação verificando a versão do NMAP:
ubuntu@ubuntu: ~ $ nmap --version
Se der a versão do NMAP, será instalada perfeitamente, caso contrário, tente os comandos acima novamente para instalar o NMAP corretamente. O NMAP é usado para executar vários relacionados às redes, e a varredura portuária é uma dessas tarefas. A ferramenta NMAP é usada junto com muitas opções. Podemos obter a lista de todas as opções disponíveis usando o seguinte comando:
ubuntu@ubuntu: ~ $ MAN NMAP
Então, para digitalizar sua localhost, use o comando apreendido abaixo:
ubuntu@ubuntu: ~ $ sudo nmap localhost
Ele listará todas as portas abertas no host local, conforme exibido na imagem acima. Também podemos usar o NMAP para digitalizar hosts remotos:
ubuntu@ubuntu: ~ $ sudo nmap 93.184.216.34
Além disso, podemos usar o nome do host do servidor remoto em vez de um endereço IP:
ubuntu@ubuntu: ~ $ sudo nmap www.exemplo.com
O comando NMAP também pode ser usado para digitalizar uma variedade de endereços IP. Especifique o intervalo de endereços IP no comando, como no comando abaixo:
ubuntu@ubuntu: ~ $ sudo nmap 192.168.1.1-10
O comando acima escaneará todos os endereços IP de 192.168.1.1 a 192.168.1.10, e exibirá o resultado no terminal. Para digitalizar portas em uma sub -rede, podemos usar o NMAP da seguinte forma:
ubuntu@ubuntu: ~ $ sudo nmap 192.168.1.1/24
O comando acima escaneará todos os hosts com endereços IP na sub -rede definida no comando.
Às vezes, você precisa digitalizar portas em hosts aleatórios, que estão em diferentes sub -redes e não estão em sequência, então a melhor solução é escrever um arquivo de hosts no qual todos os nomes de hosts são escritos, separados por um ou mais espaços, guias ou novos linhas. Este arquivo pode ser usado com o NMAP da seguinte forma:
ubuntu@ubuntu: ~ hosts nmap -il.TXT
Podemos usar o NMAP para digitalizar uma única porta no sistema especificando a porta usando o sinalizador '-p', juntamente com o NMAP, como no comando a seguir:
ubuntu@ubuntu: ~ $ sudo nmap -p 80 localhost
A gama de portas também pode ser digitalizada em um sistema usando o NMAP da seguinte maneira:
ubuntu@ubuntu: ~ sudo nmap -p 80-85 localhost
Podemos digitalizar todas as portas de um sistema usando o NMAP:
ubuntu@ubuntu: ~ $ sudo nmap -p- localhost
Para obter uma lista das portas mais abertas do seu sistema, você pode usar o comando nmap com o sinalizador '-f':
ubuntu@ubuntu: ~ $ sudo nmap -f localhost
As portas TCP podem ser digitalizadas no sistema usando o NMAP apenas adicionando o sinalizador '-t', juntamente com o comando nmap:
ubuntu@ubuntu: ~ $ sudo nmap -st localhost
Da mesma forma, para as portas UDP, você pode usar o sinalizador '-u' com o comando nmap:
ubuntu@ubuntu: ~ $ sudo nmap -su localhost
Liste portas abertas usando LSOF
O comando LSOF, também conhecido como 'List Open Files', é usado para obter as informações sobre arquivos abertos usados por diferentes processos no Unix e Linux como sistemas operacionais. Para a maioria dos distritos Linux, essa ferramenta vem pré-instalada. Podemos verificar a instalação do LSOF apenas verificando sua versão:
ubuntu@ubuntu: ~ $ lsof -v
Se não mostrar a versão, o LSOF não será instalado por padrão. Ainda podemos instalá -lo usando os seguintes comandos no terminal:
ubuntu@ubuntu: ~ $ sudo apt -get update -y
ubuntu@ubuntu: ~ $ sudo apt-get install lsof
Podemos usar o comando LSOF junto com diferentes opções. A lista de todas as opções disponíveis pode ser exibida usando o seguinte comando no terminal:
ubuntu@ubuntu: ~ Man lsof
Agora, nesta seção, usaremos o LSOF para exibir portas de um sistema de maneiras diferentes:
ubuntu@ubuntu: ~ $ sudo lsof -i
O comando acima exibiu todas as portas abertas. Também podemos usar o comando LSOF para exibir todos os soquetes abertos:
ubuntu@ubuntu: ~ $ sudo lsof -n -p | Grep Ouça
Podemos listar portas filtradas com base em um protocolo usando LSOF. Execute o comando fornecido abaixo para listar todos os tipos de conexão TCP:
ubuntu@ubuntu: ~ $ sudo lsof -i tcp
Da mesma forma, podemos listar todos os tipos de conexão UDP usando LSOF da seguinte maneira:
ubuntu@ubuntu: ~ $ sudo lsof -i udp
Listar portas abertas usando o netstat
O NetStat, também conhecido como estatística de rede, é um programa de linha de comando usado para exibir informações detalhadas sobre redes. Ele exibe conexões TCP de entrada e saída, tabelas de roteamento, interfaces de rede, etc. Nesta seção, usaremos o NetStat para listar portas abertas em um sistema. A ferramenta NetStat pode ser instalada executando os seguintes comandos:
ubuntu@ubuntu: ~ $ sudo apt -get update -y
ubuntu@ubuntu: ~ $ sudo apt-get install net-tools -y
Depois de executar os comandos acima, você pode verificar a instalação verificando a versão NetStat:
ubuntu@ubuntu: ~ $ netstat --version
Se exibir a versão do Net-Tools, a instalação será boa, caso contrário, execute os comandos de instalação novamente. Para obter uma visão geral de todas as opções disponíveis que podem ser usadas, juntamente com o comando NetStat, execute o seguinte comando:
ubuntu@ubuntu: ~ $ MAN NETSTAT
Podemos obter uma lista de todas as portas de escuta usando o comando NetStat no Ubuntu executando o seguinte comando:
ubuntu@ubuntu: ~ $ sudo netstat -l
O comando NetStat também pode ser usado para filtrar ouvindo as portas TCP e UDP, apenas adicionando uma bandeira junto com o comando. Para ouvir as portas TCP:
ubuntu@ubuntu: ~ $ sudo netstat -lt
Para ouvir as portas UDP, use o seguinte comando:
ubuntu@ubuntu: ~ $ sudo netstat -lu
Para obter a lista de todas as portas do UNIX, você pode executar o seguinte comando no terminal:
ubuntu@ubuntu: ~ $ sudo netstat -lx
Liste portas abertas usando SS
O comando SS é usado para exibir informações sobre soquetes em um sistema Linux. Ele exibe informações mais detalhadas sobre soquetes do que o comando netstat. O comando SS vem pré-instalado para a maioria das distritos Linux, para que você não precise instalá-lo antes de usá-lo. Você pode obter uma lista de todas as opções, que podem ser usadas junto com o comando SS, executando o comando 'Man' com SS:
ubuntu@ubuntu: ~ $ man ss
Para obter uma lista de toda a conexão, independentemente de seu estado, use o comando SS sem bandeira:
ubuntu@ubuntu: ~ $ sudo ss
Para obter uma lista de todas as portas de escuta, use o comando SS com a bandeira '-l'. A bandeira '-l' é usada para exibir apenas portas de escuta:
ubuntu@ubuntu: ~ $ sudo ss -l
Para obter todas as portas TCP de escuta, podemos usar a bandeira '-t' e '-l' junto com o comando SS:
ubuntu@ubuntu: ~ $ sudo ss -lt
Da mesma forma, podemos obter uma lista de todas as portas UDP de escuta usando o comando SS junto com o sinalizador '-u' e '-l':
ubuntu@ubuntu: ~ $ sudo ss -lu
O comando SS também pode ser usado para obter uma lista de todas as conexões com a fonte ou a porta de destino. No exemplo a seguir, obteremos a lista de todas as conexões com o destino ou a porta de origem 22:
ubuntu@ubuntu: ~ $ sudo ss -At '(Dport =: 22 ou Sport =: 22)'
Você receberá uma lista de todas as conexões de entrada e saída se tiver conectado a um sistema remoto usando SSH.
Conclusão
Para administradores de sistemas, profissionais de segurança e outras pessoas relacionadas à TI, é importante estar ciente das portas abertas nos servidores. O Linux é rico com as ferramentas usadas para diagnosticar redes e fornece muitas ferramentas que podem ser úteis para vários tipos de atividades de rede. Neste tutorial, usamos algumas ferramentas como NetStat, SS, LSOF e NMAP para verificar se há portas abertas no Ubuntu. Depois de passar por este artigo, você poderá listar facilmente todas as portas de escuta do seu servidor Linux de várias maneiras.