Monitoramento de Rede Linux

LinuxBeginner
Pratique Agora

Introdução

Este laboratório foca no monitoramento de rede no Linux usando a ferramenta de linha de comando netstat. O monitoramento de rede é essencial para que os administradores de sistema compreendam as conexões, serviços e padrões de tráfego em seus sistemas.

Ao longo deste laboratório, você aprenderá a usar o utilitário netstat para exibir conexões de rede ativas, serviços em escuta e estatísticas de interface de rede. Essas habilidades são fundamentais para solucionar problemas de rede, monitorar o desempenho do sistema e garantir a segurança da rede.

Ao final deste laboratório, você será capaz de usar efetivamente o netstat para obter informações sobre as atividades de rede em um sistema Linux, o que é uma habilidade valiosa para qualquer administrador de sistema ou profissional de TI.

Entendendo as Conexões de Rede com netstat

O comando netstat é um utilitário de rede poderoso que exibe conexões de rede, tabelas de roteamento, estatísticas de interface e muito mais. Nesta etapa, você aprenderá a usar netstat para visualizar as conexões de rede ativas.

Primeiro, vamos navegar para o diretório do projeto onde trabalharemos:

cd /home/labex/project

O que é netstat?

O comando netstat (estatísticas de rede) exibe várias informações relacionadas à rede, como conexões de rede, tabelas de roteamento, estatísticas de interface e muito mais. É uma ferramenta valiosa para entender as atividades de rede do seu sistema.

Visualizando Conexões Ativas

Vamos executar o comando netstat com opções específicas para exibir as conexões TCP ativas:

netstat -nat > connections.txt

Neste comando:

  • -n exibe endereços e números de porta em forma numérica, em vez de resolvê-los para nomes de host ou nomes de serviço
  • -a mostra todos os sockets (tanto em escuta quanto não em escuta)
  • -t exibe apenas conexões TCP
  • > connections.txt redireciona a saída para um arquivo chamado connections.txt

Agora, vamos visualizar o conteúdo do arquivo que criamos:

cat connections.txt

A saída deve ser semelhante a esta:

Active Internet connections (servers and established)
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 127.0.0.1:631           0.0.0.0:*               LISTEN
tcp6       0      0 :::22                   :::*                    LISTEN

Compreendendo a Saída

  • Proto: O protocolo usado (TCP neste caso)
  • Recv-Q: A contagem de bytes não copiados pelo programa do usuário conectado a este socket
  • Send-Q: A contagem de bytes não reconhecidos pelo host remoto
  • Local Address: O endereço e o número da porta da extremidade local do socket
  • Foreign Address: O endereço e o número da porta da extremidade remota do socket
  • State: O estado do socket (LISTEN, ESTABLISHED, etc.)

O estado LISTEN indica que o serviço está em execução e aguardando conexões de entrada naquela porta específica.

Monitorando Serviços em Escuta

Nesta etapa, você aprenderá a identificar quais serviços estão em escuta por conexões em seu sistema. Essa informação é crucial para auditoria de segurança e solução de problemas relacionados à rede.

Identificando Serviços em Escuta

Vamos usar o comando netstat para procurar especificamente por serviços que estão no estado LISTEN:

netstat -natu | grep LISTEN > listening_services.txt

Neste comando:

  • -n exibe endereços numéricos
  • -a mostra todos os sockets
  • -t inclui conexões TCP
  • -u inclui conexões UDP
  • | grep LISTEN filtra a saída para mostrar apenas as linhas contendo "LISTEN"
  • > listening_services.txt salva a saída em um arquivo

Agora, vamos examinar o conteúdo do arquivo:

cat listening_services.txt

Você deve ver uma saída semelhante a esta:

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN
tcp6       0      0 :::22                   :::*                    LISTEN

Compreendendo os Serviços em Escuta

Cada linha na saída representa um serviço que está atualmente aceitando conexões:

  • Serviços em escuta em 0.0.0.0 estão aceitando conexões de qualquer interface de rede
  • Serviços em escuta em 127.0.0.1 estão aceitando conexões apenas da máquina local
  • Serviços em escuta em ::: são endereços IPv6 aceitando conexões de qualquer interface de rede

Os números das portas (como 22 para SSH ou 631 para o serviço de impressão CUPS) identificam qual serviço está em escuta. Por exemplo:

  • Porta 22: Serviço SSH
  • Porta 80: Serviço HTTP (web)
  • Porta 443: Serviço HTTPS
  • Porta 631: Serviço de impressão CUPS

Essa informação ajuda você a entender quais serviços estão expostos em seu sistema, o que é valioso para avaliações de segurança e solução de problemas.

Analisando Estatísticas da Interface de Rede

Nesta etapa, você aprenderá a visualizar as estatísticas de suas interfaces de rede. Essas estatísticas fornecem informações valiosas sobre o desempenho e o uso de suas interfaces de rede.

Visualizando as Estatísticas da Interface

Vamos usar netstat para exibir as estatísticas de todas as interfaces de rede:

netstat -i > interface_stats.txt

Neste comando:

  • -i exibe uma tabela de todas as interfaces de rede
  • > interface_stats.txt salva a saída em um arquivo

Agora, vamos examinar o conteúdo do arquivo:

cat interface_stats.txt

Você deve ver uma saída semelhante a esta:

Kernel Interface table
Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0      1500   123456      0      0 0        98765      0      0      0 BMRU
lo       65536     789      0      0 0          789      0      0      0 LRU

Compreendendo as Estatísticas da Interface de Rede

A saída fornece estatísticas importantes sobre cada interface de rede:

  • Iface: O nome da interface de rede

    • eth0: Tipicamente a primeira interface Ethernet
    • lo: A interface de loopback usada para conexões locais
  • MTU: Unidade Máxima de Transmissão (Maximum Transmission Unit) - o maior tamanho de pacote que pode ser transmitido

    • Ethernet padrão normalmente usa 1500 bytes
    • A interface de loopback normalmente tem uma MTU maior (65536)
  • RX-OK: Número de pacotes recebidos sem erros

  • RX-ERR: Número de pacotes recebidos com erros

  • RX-DRP: Número de pacotes recebidos descartados (dropped)

  • RX-OVR: Número de estouros (overruns) de pacotes recebidos

  • TX-OK: Número de pacotes transmitidos sem erros

  • TX-ERR: Número de pacotes transmitidos com erros

  • TX-DRP: Número de pacotes transmitidos descartados (dropped)

  • TX-OVR: Número de estouros (overruns) de pacotes transmitidos

  • Flg: Flags indicando o status da interface

    • B: Endereço de broadcast definido
    • M: Multicast habilitado
    • R: Interface em execução (running)
    • U: Interface ativa (up)

Essas estatísticas ajudam você a monitorar o desempenho da rede e identificar possíveis problemas, como perda de pacotes ou erros de transmissão.

Comandos Adicionais de Estatísticas de Rede

Para uma visão mais abrangente das estatísticas de rede, você também pode usar:

netstat -s | head -20 > protocol_stats.txt

Este comando exibe estatísticas de protocolo para TCP, UDP, IP, ICMP e outros protocolos. Estamos usando head -20 para limitar a saída às primeiras 20 linhas para legibilidade.

Vamos visualizar este arquivo:

cat protocol_stats.txt

Isso fornece estatísticas detalhadas sobre como cada protocolo está funcionando, ajudando você a identificar possíveis problemas de rede no nível do protocolo.

Resumo

Neste laboratório, você aprendeu a usar o comando netstat para monitorar vários aspectos da atividade de rede em um sistema Linux. As principais habilidades que você adquiriu incluem:

  1. Visualizar as conexões de rede ativas para entender quais conexões estão estabelecidas em seu sistema.

  2. Identificar os serviços em escuta para determinar quais portas estão abertas e potencialmente expostas à rede.

  3. Analisar as estatísticas da interface de rede para monitorar o desempenho e a integridade de suas interfaces de rede.

Essas habilidades são essenciais para administradores de sistemas, engenheiros de rede e profissionais de segurança que precisam entender e solucionar problemas relacionados à rede. O comando netstat fornece informações valiosas sobre as atividades de rede do seu sistema, ajudando você a manter o desempenho e a segurança ideais.

Embora o netstat seja considerado legado em muitas distribuições Linux modernas e esteja sendo substituído por ferramentas como ss e ip, a compreensão do netstat fornece uma base sólida para os conceitos de monitoramento de rede que se aplicam a todas essas ferramentas.