===== Nível Básico =====
=== 1. Verificação de Conectividade ===
* **ping** - Testa a conectividade com um endereço IP ou domínio.
- Exemplo de uso: ping google.com
- Descrição: Envia pacotes ICMP para ''google.com'' e exibe o tempo de resposta, verificando se o host está acessível.
* **ping -c** - Limita o número de pacotes ICMP enviados.
- Exemplo de uso: ping -c 4 google.com
- Descrição: Envia 4 pacotes ICMP para ''google.com'' e exibe o resultado, ideal para testes rápidos de conectividade.
=== 2. Exibição de Configuração de Rede ===
* **ifconfig** - Exibe informações sobre interfaces de rede (versões mais antigas de Linux).
- Exemplo de uso: ifconfig
- Descrição: Exibe as configurações de rede de todas as interfaces, incluindo endereços IP, máscara de rede e status da interface.
* **ip addr** - Exibe informações detalhadas das interfaces de rede (versões mais recentes).
- Exemplo de uso: ip addr
- Descrição: Mostra as configurações de rede das interfaces disponíveis no sistema, como endereço IP e status das interfaces.
=== 3. Resolução de DNS ===
* **nslookup** - Faz consultas de DNS para resolver um nome de domínio em IP.
- Exemplo de uso: nslookup google.com
- Descrição: Consulta servidores DNS para obter o endereço IP associado ao domínio ''google.com''.
* **dig** - Ferramenta avançada para consultas de DNS.
- Exemplo de uso: dig google.com
- Descrição: Realiza uma consulta DNS detalhada para o domínio ''google.com'', exibindo informações sobre o servidor DNS, o tempo de resposta e o IP.
=== 4. Exibição de Rotas de Rede ===
* **route** - Mostra a tabela de rotas do sistema.
- Exemplo de uso: route -n
- Descrição: Exibe a tabela de roteamento de IPs com informações sobre gateways e sub-redes. A opção ''-n'' mostra os endereços IP em formato numérico.
* **ip route** - Exibe as rotas de rede configuradas no sistema.
- Exemplo de uso: ip route
- Descrição: Exibe a tabela de roteamento de forma mais detalhada em sistemas modernos.
===== Nível Intermediário =====
=== 1. Configuração de Interfaces de Rede ===
* **ip link set** - Ativa ou desativa interfaces de rede.
- Exemplo de uso: sudo ip link set eth0 up
- Descrição: Ativa a interface de rede ''eth0'', permitindo a comunicação de rede.
* **ip addr add** - Atribui um endereço IP a uma interface.
- Exemplo de uso: sudo ip addr add 192.168.1.10/24 dev eth0
- Descrição: Atribui o endereço IP ''192.168.1.10'' com a máscara de sub-rede ''/24'' (255.255.255.0) à interface ''eth0''.
* **dhclient** - Solicita um endereço IP via DHCP.
- Exemplo de uso: sudo dhclient eth0
- Descrição: Solicita um endereço IP de um servidor DHCP para a interface ''eth0'', configurando automaticamente a rede.
=== 2. Diagnóstico e Solução de Problemas de Rede ===
* **traceroute** - Exibe o caminho que os pacotes percorrem até um destino.
- Exemplo de uso: traceroute google.com
- Descrição: Mostra o caminho (hops) que os pacotes percorrem até o domínio ''google.com'', útil para identificar problemas de roteamento ou latência.
* **mtr** - Combinação de ping e traceroute com atualização contínua.
- Exemplo de uso: mtr google.com
- Descrição: Exibe uma combinação de ping e traceroute em tempo real, permitindo visualizar latência e perda de pacotes em cada hop até o destino.
* **netstat** - Exibe conexões de rede e portas abertas.
- Exemplo de uso: netstat -tuln
- Descrição: Exibe todas as portas TCP/UDP abertas no sistema e suas conexões ativas. A opção ''-tuln'' mostra a saída em formato numérico, útil para depuração de rede.
=== 3. Teste de Transferência de Dados ===
* **nc (netcat)** - Ferramenta básica para envio e recebimento de dados via rede.
- Exemplo de uso: nc -l 1234
- Descrição: Inicia um servidor TCP simples que escuta na porta 1234, permitindo que qualquer cliente se conecte e envie dados.
* **iperf** - Mede a largura de banda da conexão entre dois hosts.
- Exemplo de uso: iperf -s (Servidor) e iperf -c 192.168.1.1 (Cliente)
- Descrição: O comando ''iperf -s'' inicia o servidor de teste de largura de banda, enquanto ''iperf -c'' testa a largura de banda entre o cliente e o servidor.
=== 4. Firewall com `ufw` ===
* **ufw status** - Exibe o status atual do firewall.
- Exemplo de uso: sudo ufw status
- Descrição: Exibe o status do firewall ''ufw'', incluindo regras ativas e o estado (habilitado ou desabilitado).
* **ufw allow** - Permite o tráfego de uma porta específica.
- Exemplo de uso: sudo ufw allow 22/tcp
- Descrição: Permite o tráfego de entrada na porta 22 via protocolo TCP, normalmente usado para SSH.
* **ufw deny** - Bloqueia o tráfego de uma porta específica.
- Exemplo de uso: sudo ufw deny 80/tcp
- Descrição: Bloqueia o tráfego de entrada na porta 80 via protocolo TCP, normalmente usado para servidores HTTP.
===== Nível Avançado =====
=== 1. Análise de Pacotes com `tcpdump` ===
* **tcpdump** - Captura pacotes de rede em uma interface.
- Exemplo de uso: sudo tcpdump -i eth0
- Descrição: Captura e exibe os pacotes que estão passando pela interface de rede ''eth0'', útil para análise e depuração de problemas de rede.
* **tcpdump -w** - Salva pacotes capturados em um arquivo.
- Exemplo de uso: sudo tcpdump -i eth0 -w captura.pcap
- Descrição: Captura os pacotes da interface ''eth0'' e os salva no arquivo ''captura.pcap'' para análise posterior com ferramentas como Wireshark.
* **tcpdump port** - Filtra pacotes por porta.
- Exemplo de uso: sudo tcpdump -i eth0 port 80
- Descrição: Captura apenas os pacotes que trafegam pela porta 80 na interface ''eth0'', útil para análise de tráfego HTTP.
=== 2. Tunelamento Seguro com `ssh` ===
* **ssh -L** - Cria um túnel local para encaminhar portas via SSH.
- Exemplo de uso: ssh -L 8080:localhost:80 usuario@servidor_remoto
- Descrição: Cria um túnel local na porta 8080 que redireciona o tráfego para a porta 80 do servidor remoto, permitindo acessar serviços remotos como se fossem locais.
* **ssh -D** - Cria um proxy SOCKS via SSH.
- Exemplo de uso: ssh -D 1080 usuario@servidor_remoto
- Descrição: Estabelece um proxy SOCKS na porta 1080, permitindo redirecionar o tráfego da rede através do servidor remoto via SSH, útil para navegação segura.
=== 3. Controle Avançado de Firewall com `iptables` ===
* **iptables -L** - Lista todas as regras do firewall.
- Exemplo de uso: sudo iptables -L
- Descrição: Exibe todas as regras de firewall configuradas no ''iptables'', incluindo regras de entrada (INPUT), saída (OUTPUT) e encaminhamento (FORWARD).
* **iptables -A** - Adiciona uma nova regra ao firewall.
- Exemplo de uso: sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
- Descrição: Adiciona uma regra permitindo tráfego TCP na porta 22 (SSH) na tabela de entrada (INPUT).
* **iptables -D** - Remove uma regra específica do firewall.
- Exemplo de uso: sudo iptables -D INPUT 1
- Descrição: Remove a primeira regra da cadeia de entrada (INPUT) no ''iptables'', permitindo o ajuste fino das regras de firewall.
=== 4. Redirecionamento de Pacotes com `iptables` ===
* **iptables -t nat -A PREROUTING** - Redireciona tráfego de uma porta.
- Exemplo de uso: sudo iptables -t nat -A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-port 80
- Descrição: Redireciona o tráfego da porta 8080 para a porta 80, útil para servidores que precisam redirecionar conexões HTTP.
* **iptables -t nat -A POSTROUTING** - Habilita masquerading para compartilhamento de internet.
- Exemplo de uso: sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
- Descrição: Configura masquerading na interface ''eth0'', permitindo que uma rede local compartilhe a conexão de internet.
=== 5. Configuração de VPN com `openvpn` ===
* **openvpn --config** - Inicia uma conexão VPN usando um arquivo de configuração.
- Exemplo de uso: sudo openvpn --config cliente.ovpn
- Descrição: Estabelece uma conexão VPN usando o arquivo de configuração ''cliente.ovpn'', criando um túnel seguro entre o cliente e o servidor VPN.
* **openvpn --genkey** - Gera uma chave para a VPN.
- Exemplo de uso: openvpn --genkey --secret chave_vpn.key
- Descrição: Gera uma chave secreta para criptografia e a salva no arquivo ''chave_vpn.key'', usado para configurar uma VPN segura.
=== 6. Gerenciamento de Bandwidth com `tc` ===
* **tc qdisc** - Configura controle de tráfego na interface de rede.
- Exemplo de uso: sudo tc qdisc add dev eth0 root tbf rate 1mbit burst 32kbit latency 400ms
- Descrição: Configura o controle de tráfego na interface ''eth0'' com uma taxa limitada de 1 Mbps, útil para simular redes lentas ou gerenciar o consumo de largura de banda.
* **tc class** - Cria classes para controle de largura de banda.
- Exemplo de uso: sudo tc class add dev eth0 parent 1:1 classid 1:10 htb rate 512kbit
- Descrição: Cria uma classe de controle de largura de banda, limitando a taxa de tráfego para 512 kbps em uma subinterface de rede, ideal para gerenciamento avançado de redes.
===== Nível Especializado =====
=== 1. Monitoramento e Análise de Rede com `nmap` ===
* **nmap** - Escaneia portas abertas em um host ou rede.
- Exemplo de uso: nmap 192.168.1.1
- Descrição: Escaneia o host com endereço IP ''192.168.1.1'' e exibe todas as portas abertas, útil para descobrir serviços ativos e potenciais vulnerabilidades.
* **nmap -sS** - Realiza um escaneamento stealth (SYN scan).
- Exemplo de uso: nmap -sS 192.168.1.1
- Descrição: Realiza um escaneamento de portas usando pacotes SYN, sem completar a conexão TCP, o que dificulta a detecção em logs de segurança.
* **nmap -A** - Escaneia portas e tenta identificar o sistema operacional e serviços.
- Exemplo de uso: nmap -A 192.168.1.1
- Descrição: Além de escanear as portas, tenta identificar o sistema operacional e os serviços em execução, fornecendo uma análise mais detalhada do host.
=== 2. Manipulação de Pacotes com `scapy` ===
* **scapy** - Ferramenta interativa para criar e manipular pacotes.
- Exemplo de uso: scapy
- Descrição: Inicia o modo interativo do Scapy, uma poderosa ferramenta de manipulação de pacotes para testes de redes, análise e exploração.
* **scapy (envio de pacotes ICMP)** - Envia pacotes ICMP (ping).
- Exemplo de uso:
send(IP(dst="192.168.1.1")/ICMP())
- Descrição: Envia um pacote ICMP para o IP ''192.168.1.1'', útil para testes personalizados de conectividade.
* **scapy (spoofing de pacotes)** - Cria pacotes IP com spoofing de origem.
- Exemplo de uso:
send(IP(src="1.2.3.4", dst="192.168.1.1")/ICMP())
- Descrição: Envia um pacote ICMP com o IP de origem falsificado como ''1.2.3.4'', o que pode ser usado para testar comportamentos de firewall ou IDS.
=== 3. Otimização de Tráfego com `ethtool` ===
* **ethtool** - Exibe e modifica configurações de uma interface de rede.
- Exemplo de uso: sudo ethtool eth0
- Descrição: Exibe as configurações detalhadas da interface de rede ''eth0'', como velocidade, modo duplex e estatísticas de erros.
* **ethtool -s** - Ajusta a velocidade da interface de rede.
- Exemplo de uso: sudo ethtool -s eth0 speed 100 duplex full
- Descrição: Configura a interface de rede ''eth0'' para operar em 100 Mbps com modo full-duplex, útil para otimizar o desempenho de rede em cenários específicos.
* **ethtool -K** - Habilita/desabilita offloading na interface.
- Exemplo de uso: sudo ethtool -K eth0 rx off tx off
- Descrição: Desabilita o offloading de recebimento e transmissão na interface ''eth0'', útil para testes de desempenho e troubleshooting de rede.
=== 4. Segurança de Rede com `fail2ban` ===
* **fail2ban-client** - Gerencia o serviço fail2ban, que bloqueia IPs maliciosos.
- Exemplo de uso: sudo fail2ban-client status
- Descrição: Exibe o status atual do serviço fail2ban, incluindo quais jails estão ativas e quantos IPs estão banidos.
* **fail2ban-client set** - Bloqueia manualmente um IP.
- Exemplo de uso: sudo fail2ban-client set sshd banip 192.168.1.100
- Descrição: Bloqueia manualmente o IP ''192.168.1.100'' para o serviço SSH (jail sshd), útil para ações imediatas contra ataques de força bruta.
* **fail2ban-client unban** - Desbloqueia um IP banido.
- Exemplo de uso: sudo fail2ban-client set sshd unbanip 192.168.1.100
- Descrição: Remove o banimento do IP ''192.168.1.100'', liberando o acesso bloqueado anteriormente.
=== 5. Túnel de Rede com `wireguard` ===
* **wg-quick up** - Inicia uma conexão VPN WireGuard usando uma configuração.
- Exemplo de uso: sudo wg-quick up wg0
- Descrição: Ativa a interface VPN WireGuard chamada ''wg0'' usando as configurações definidas no arquivo de configuração, estabelecendo o túnel seguro.
* **wg show** - Exibe o status atual da conexão WireGuard.
- Exemplo de uso: sudo wg show
- Descrição: Mostra o status da conexão VPN, incluindo peers conectados, chaves públicas e estatísticas de pacotes enviados/recebidos.
=== 6. Qualidade de Serviço com `tc` e `qdisc` ===
* **tc qdisc** - Configura a disciplina de enfileiramento para controle de tráfego.
- Exemplo de uso: sudo tc qdisc add dev eth0 root fq_codel
- Descrição: Aplica o algoritmo de controle de fila ''fq_codel'' na interface ''eth0'', uma técnica usada para reduzir latência e evitar congestionamento de rede.
* **tc class add** - Define classes de QoS (Quality of Service).
- Exemplo de uso: sudo tc class add dev eth0 parent 1:1 classid 1:10 htb rate 1mbit ceil 2mbit
- Descrição: Cria uma classe de tráfego que limita a largura de banda da interface ''eth0'' para 1 Mbps, com picos permitidos até 2 Mbps, garantindo o controle do uso de recursos de rede.