Ajuda Linux - Dia 827 - Checar serviços rodando em portas no Linux - Parte 1
Índice:
- O que é porta aberta
- Verificar portas abertas com o
nmap
- Verificar portas abertas com o
netcat
- Verificar portas abertas usando o pseudo-dispositivo Bash
- Conclusão
Se você está solucionando problemas de conectividade de rede ou configurando um firewall, uma das primeiras coisas a verificar é quais portas estão realmente abertas no seu sistema.
Este artigo descreve várias abordagens para descobrir quais portas são abertas para o exterior no seu sistema Linux.
O que é porta aberta
Uma porta de escuta é uma porta de rede que um aplicativo escuta. Você pode obter uma lista das portas de atendimento no seu sistema consultando a pilha de rede com comandos como
ss
,
netstat
ou
lsof
. Cada porta de escuta pode ser aberta ou fechada (filtrada) usando um firewall.
Em termos gerais, uma porta aberta é uma porta de rede que aceita pacotes recebidos de locais remotos.
Por exemplo, se você estiver executando um servidor da Web que escute nas portas
80
e
443
e essas portas estiverem abertas no firewall, qualquer pessoa (exceto ips bloqueados) poderá acessar sites hospedados no servidor da Web usando o navegador dele. Nesse caso,
80
e
443
são portas abertas.
As portas abertas podem representar um risco de segurança, pois cada porta aberta pode ser usada pelos invasores para explorar uma vulnerabilidade ou executar qualquer outro tipo de ataque. Você deve expor apenas as portas necessárias para a funcionalidade do seu aplicativo e fechar todas as outras portas.
Verificar portas abertas com o
nmap
O Nmap é uma poderosa ferramenta de digitalização em rede que pode digitalizar hosts únicos e redes grandes. É usado principalmente para auditorias de segurança e testes de penetração.
Se disponível, o
nmap
deve ser sua primeira ferramenta no que diz respeito à varredura de portas. Além do escaneamento de portas, o
nmap
também pode detectar o endereço do Mac, o tipo do SO, as versões do kernel e muito mais.
O seguinte comando emitido pelo console determina quais portas estão atendendo às conexões TCP da rede:
sudo nmap -sT -p- 10.10.8.8
O
-sT
diz ao
nmap
para procurar portas TCP e
-p-
para procurar todas as portas 65535. Se
-p-
não for usado, o
nmap
verificará apenas 1000 portas.
Starting Nmap 7.60 (https://nmap.org) at 2019-07-09 23:10 CEST Nmap scan report for 10.10.8.8 Host is up (0.0012s latency). Not shown: 998 closed ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http MAC Address: 08:00:27:05:49:23 (Oracle VirtualBox virtual NIC) Nmap done: 1 IP address (1 host up) scanned in 0.41 seconds
A saída acima mostra que apenas as portas
22
,
80
e
8069
estão abertas no sistema de destino.
Para procurar portas UDP, use
-sU
vez de
-sT
:
sudo nmap -sU -p- 10.10.8.8
Para obter mais informações, visite a página do manual nmap e leia sobre todas as outras opções poderosas dessa ferramenta.
Verificar portas abertas com o
netcat
O Netcat (ou
nc
) é uma ferramenta de linha de comando que pode ler e gravar dados nas conexões de rede, usando os protocolos TCP ou UDP.
Com o
netcat
você pode digitalizar uma única porta ou um intervalo de portas.
Por exemplo, para procurar portas TCP abertas em uma máquina remota com o endereço IP
10.10.8.8
no intervalo de
20-80
a
20-80
você usaria o seguinte comando:
nc -z -v 10.10.8.8 20-80
A opção
-z
diz ao
nc
para procurar apenas portas abertas, sem enviar nenhum dado e o
-v
é para informações mais detalhadas.
A saída será mais ou menos assim:
nc: connect to 10.10.8.8 port 20 (tcp) failed: Connection refused nc: connect to 10.10.8.8 port 21 (tcp) failed: Connection refused Connection to 10.10.8.8 22 port succeeded!… Connection to 10.10.8.8 80 port succeeded!
nc -z -v 10.10.8.8 20-80 2>&1 | grep succeeded
Connection to 10.10.8.8 22 port succeeded! Connection to 10.10.8.8 80 port succeeded!
Para procurar portas UDP, passe a opção
-u
para o comando
nc
:
nc -z -v -u 10.10.8.8 20-80 2>&1 | grep succeeded
Verificar portas abertas usando o pseudo-dispositivo Bash
Outra maneira de verificar se uma certa porta está aberta ou fechada é usando o pseudo dispositivo Bash shell
/dev/tcp/..
ou
/dev/udp/..
Ao executar um comando em um pseudo-dispositivo
/dev/$PROTOCOL/$HOST/$IP
, o Bash abrirá uma conexão TCP ou UDP para o host especificado na porta especificada.
A seguinte instrução if..else verificará se a porta
443
no
kernel.org
está aberta:
if timeout 5 bash -c ' /dev/null' then echo "Port is open" else echo "Port is closed" fi
if timeout 5 bash -c ' /dev/null' then echo "Port is open" else echo "Port is closed" fi
Port is open
Como o código acima funciona?
O tempo limite padrão ao conectar-se a uma porta usando um pseudo dispositivo é enorme, portanto, estamos usando o comando
timeout
para interromper o comando test após 5 segundos. Se a conexão for estabelecida com a porta
443
do
kernel.org
o comando test retornará true.
Você também pode usar o loop for para verificar um intervalo de portas:
for PORT in {20..80}; do timeout 1 bash -c " /dev/null" && echo "port $PORT is open" done
for PORT in {20..80}; do timeout 1 bash -c " /dev/null" && echo "port $PORT is open" done
A saída será mais ou menos assim:
port 22 is open port 80 is open
Conclusão
Mostramos várias ferramentas que você pode usar para procurar portas abertas. Também existem outros utilitários e métodos para verificar portas abertas; por exemplo, você pode usar o módulo de
socket
Python,
curl
,
telnet
ou
wget
.
A Dell busca expandir sua oferta no Linux Para expandir suas ofertas no Linux, a Dell está pesquisando novos dispositivos do tipo netbook e em breve oferecerá atualizações do sistema operacional Linux Em um esforço para expandir suas ofertas de Linux, a Dell está pesquisando novos dispositivos do tipo netbook e em breve oferecerá atualizações de netbooks para o Linux, disse uma autoridade da empresa na quarta-feira. A empresa está pesquisando a possibilidade de oferecer novos produtos Linux. bas
Smartbooks são dispositivos do tipo netbook que são alimentados por chips projetados pela Arm. Os dispositivos suportam principalmente o sistema operacional Linux e são projetados para aqueles que dependem da Web para a maior parte de sua computação. A Dell não pôde dizer se ofereceria um livro inteligente.
Alguns recrutadores e potenciais empregadores estão usando ferramentas de redes sociais como o Facebook ou Mecanismos de busca como o Google para verificar perfis online e filtrar candidatos que considerem inadequados. Às vezes é para procurar sinais de consumo excessivo de álcool ou drogas e outras vezes para garantir que os candidatos não tenham postado informações embaraçosas ou pontos de vista que possam manchar a reputação da empresa que poderia empregá-los.
Os limites entre a vida pessoal de alguém e os fins de liberdade de expressão e a vida profissional começam são confusos com tais sites e os limites legais não foram testados em muitos países. Alguns consultores de recrutamento também alertam contra o uso de sites de redes sociais, pois levar informações fora de contexto pode levar a erros de julgamento. O próprio Obama sentiu o calor durante sua campanha presidencial quando discursos de seu ex-pastor, reverendo Jeremiah Wright, foram postados n
Como verificar se há portas de escuta no linux (portas em uso)
Este artigo explica como descobrir as portas em uso e quais serviços estão atendendo em quais portas usando os comandos netstat, ss e lsof. As instruções são aplicáveis a todos os sistemas operacionais baseados em Linux e Unix, como o macOS.