Segurança em Redes shield
Visão Geral & Defesas por Camada
info Fundamentos de Segurança em Redes
Segurança em redes garante sigilo, autenticação, não repúdio e controle de integridade contra ameaças como sniffing, spoofing e DoS/DDoS. Atua em todas as camadas OSI, com foco na Camada de Aplicação (DNS, HTTPS, Aula 13) e Camada de Rede (IPsec, NAT). Protege serviços como DNS e DHCP, integrando com DNSSEC e `dnsmasq`.
Referências & Objetivos
- book Kurose Cap. 8; Tanenbaum § 8
- lock Entender ameaças (sniffing, spoofing, DDoS) e defesas por camada OSI
- settings Explorar VPNs, firewalls, DNSSEC, Wireshark, Zero Trust
Segurança por Camada OSI
Camada | Defesas & Tecnologias | Ameaças Mitigadas |
---|---|---|
2 – Enlace | Filtragem por MAC, Port Security, VLANs, IEEE 802.1X | Sniffing, acesso não autorizado |
3 – Rede | Firewalls (packet filtering), NAT, VPNs (IPsec, GRE) | DoS/DDoS, spoofing |
4 – Transporte | TLS/SSL, Stateful Inspection | Sniffing, manipulação de dados |
7 – Aplicação | HTTPS, SSH, SMTPS, Proxy Reverso, WAF, DNSSEC | Spoofing, ataques a aplicações |
Exemplo: DNSSEC (Camada 7)
$ dig +dnssec sigok.verteiltesysteme.net A
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; ANSWER SECTION:
sigok.verteiltesysteme.net. 3600 IN A 139.18.25.36
sigok.verteiltesysteme.net. 3600 IN RRSIG A 8 3 3600 ...
;; Query time: 60 msec
Exemplo: VLAN (Camada 2)
# Configura VLAN 10
$ sudo vconfig add eth0 10
$ sudo ip addr add 192.168.10.1/24 dev eth0.10
$ sudo ip link set eth0.10 up
# Verifica VLANs
$ ip link show
eth0.10@eth0: mtu 1500 qdisc noqueue state UP
Boas Práticas
- Habilite DNSSEC em resolvedores (
dnssec
nodnsmasq.conf
, Aula 13) e valide comdig +dnssec
. - Use VLANs para isolar tráfego sensível (ex.: servidores vs. clientes).
- Configure TLS/SSL com algoritmos fortes (ex.: SHA-256, AES; evite RC4, MD5).
- Aplique Zero Trust, verificando continuamente usuários e dispositivos.
Resolução de Problemas
- DNSSEC falha: Teste com
dig +trace +dnssec
ou servidor alternativo (dig @1.1.1.1
). - VLAN não funciona: Verifique configuração (
ip link show
) e suporte no switch. - TLS erro: Cheque certificados (
openssl s_client -connect example.com:443
).
Dica 1: Use dig +dnssec
para validar respostas DNS (busque flag ad
).
Dica 2: Configure VLANs com IDs únicos para evitar conflitos.
Dica 3: Combine firewalls e NAT para maior segurança na Camada 3.
Ameaças em Redes bug_report
Sniffing, Spoofing, DoS/DDoS e Mais
warning Ameaças em Redes
Ameaças em redes comprometem sigilo, autenticação, não repúdio e integridade, afetando serviços como DNS e DHCP (Aula 13). Atacantes exploram vulnerabilidades em camadas OSI (2, 3, 4, 7) para interceptar, falsificar ou interromper comunicações.
Principais Ameaças
Ameaça | Descrição | Camada OSI | Impacto | Mitigação |
---|---|---|---|---|
Sniffing | Intercepção passiva de tráfego (ex.: Wireshark em Wi-Fi) | 2, 7 | Violação de sigilo (ex.: captura de HTTP) | TLS/SSL, VLANs |
Spoofing | Falsificação de identidade (IP, ARP, DNS) | 2, 3, 7 | Man-in-the-middle, redirecionamento | DNSSEC, ARP inspection |
DoS/DDoS | Esgota recursos com tráfego falso (ex.: SYN flood) | 3, 4, 7 | Interrupção de serviços | Firewalls, rate-limiting |
Ransomware | Criptografa dados, exige resgate (ex.: via phishing) | 7 | Perda de dados, extorsão | WAF, backups |
Exemplo: Sniffing com Wireshark
$ sudo wireshark -i eth0 -f "port 80"
[Captura] TCP 192.168.1.100:49152 > 93.184.216.34:80, GET / HTTP/1.1
[Resposta] TCP 93.184.216.34:80 > 192.168.1.100:49152, HTTP/1.1 200 OK
Exemplo: DNS Spoofing Detection
$ dig +dnssec example.com A
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; ANSWER SECTION:
example.com. 3600 IN A 93.184.216.34
example.com. 3600 IN RRSIG A 13 2 3600 ...
;; Query time: 50 msec
Exemplo: ARP Spoofing Detection
$ arp -a
gateway.local (192.168.1.1) at aa:bb:cc:dd:ee:ff [ether] on eth0
$ sudo arping -I eth0 192.168.1.1
ARPING 192.168.1.1 from 192.168.1.100 eth0
Unicast reply from 192.168.1.1 [aa:bb:cc:dd:ee:ff] 1.2ms
Exemplo: SYN Flood (DoS)
$ sudo hping3 -S -p 80 --flood 192.168.1.10
HPING 192.168.1.10: NO FLAGS are set, 40 headers + 0 data bytes
[Flooding TCP SYN packets to port 80]
Boas Práticas
- Use TLS/SSL (HTTPS, SMTPS) para proteger contra sniffing.
- Habilite DNSSEC (
dnssec
nodnsmasq.conf
, Aula 13) contra DNS spoofing. - Configure firewalls com rate-limiting para mitigar DoS/DDoS.
- Monitore tabelas ARP (
arp -a
) para detectar spoofing. - Implemente backups regulares e WAF para prevenir ransomware.
Resolução de Problemas
- Sniffing detectado: Use Wireshark com filtros (
port 80
) e habilite TLS. - DNS spoofing: Valide com
dig +dnssec
(busque flagad
). - ARP spoofing: Verifique duplicatas com
arping
ou habilite ARP inspection. - DoS/DDoS: Monitore tráfego (
tcpdump -i eth0
) e apliqueiptables
.
Dica 1: Use wireshark -f "port 80 or port 443"
para comparar HTTP vs. HTTPS.
Dica 2: Habilite DNSSEC em dnsmasq
para mitigar DNS spoofing (Aula 13).
Dica 3: Configure iptables
com rate-limiting para proteger contra SYN floods.
Defesas por Camada layers
Enlace, Rede, Transporte, Aplicação
router Camada 2 (Enlace)
Defesas na Camada 2 protegem contra sniffing e acesso não autorizado em redes locais.
-
lock
Port Security: Limita o número de MACs por porta de switch, bloqueando dispositivos não autorizados.
switch_config.txt
switch(config)# interface gigabitEthernet 1/0/1
switch(config-if)# switchport port-security maximum 1
switch(config-if)# switchport port-security mac-address sticky -
vpn_lock
VLANs & 802.1X: Segmenta tráfego (VLANs) e autentica dispositivos (802.1X via RADIUS).
vlan_config.txt
$ sudo vconfig add eth0 10
$ sudo ip addr add 192.168.10.1/24 dev eth0.10
settings_ethernet Camada 3 (Rede)
Defesas na Camada 3 filtram tráfego, ocultam redes e estabelecem túneis seguros.
-
shield
Firewalls: Filtram pacotes por IP, protocolo e estado (ex.: `iptables`).
iptables_config.txt
$ sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
$ sudo iptables -A INPUT -p tcp --dport 80 -j DROP - sync_alt NAT & Proxy: Ocultam IPs internos (NAT) e controlam acesso (proxy).
-
vpn_key
VPNs (IPsec, GRE): Criam túneis seguros entre redes.
vpn_config.txt
$ sudo ipsec start
$ sudo ipsec status
Security Associations (1 up, 0 connecting):
ipsec0[1]: ESTABLISHED 10 minutes ago, 192.168.1.100[host1]...192.168.2.100[host2]
dns Camada 4 (Transporte)
Defesas na Camada 4 garantem criptografia e monitoram o estado das conexões.
-
lock_outline
TLS/SSL: Criptografa sessões TCP (ex.: HTTPS, SMTPS).
tls_test.txt
$ openssl s_client -connect example.com:443
CONNECTED(00000003)
depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3
verify return:1
... - verified_user Stateful Inspection: Monitora o estado das conexões TCP/UDP.
web Camada 7 (Aplicação)
Defesas na Camada 7 protegem protocolos específicos e filtram conteúdo.
- https HTTPS, SSH, SMTPS: Segurança nativa nos protocolos (ex.: DNSSEC da Aula 13).
-
security
Proxy Reverso & WAF: Filtram e inspecionam tráfego HTTP/S.
nginx_waf.txt
# Configuração básica de proxy reverso no Nginx
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
}
}
Boas Práticas
- Camada 2: Use Port Security e VLANs para isolar tráfego (ex.: separar IoT de servidores).
- Camada 3: Configure firewalls com regras específicas (ex.: permitir apenas SSH e HTTPS).
- Camada 4: Habilite TLS/SSL com cifras fortes (ex.: AES-256, SHA-256).
- Camada 7: Implemente WAF para proteger aplicações web (ex.: ModSecurity no Nginx).
Resolução de Problemas
- 802.1X falha: Verifique configuração RADIUS (
radiusd -X
para debug). - Firewall bloqueia tráfego legítimo: Cheque regras (
iptables -L -v
). - TLS handshake erro: Use
openssl s_client -connect host:443
. - WAF falso positivo: Ajuste regras ou use modo de aprendizado.
Dica 1: Combine VLANs e firewalls para segurança em múltiplas camadas.
Dica 2: Use openssl s_client
para depurar problemas de TLS/SSL.
Dica 3: Configure WAF com políticas específicas para cada aplicação.
Simulação de Sniffing visibility
Capturando e Analisando Tráfego
warning O que é Sniffing?
Sniffing é a intercepção passiva de tráfego, comprometendo o sigilo em redes Wi-Fi ou protocolos sem criptografia (ex.: HTTP, DNS, Aula 13). Ferramentas como Wireshark/Tshark capturam pacotes em Camadas 2 e 7, expondo dados sensíveis se não protegidos por TLS ou DNSSEC.
Alvos e Mitigações
Alvo | Protocolo/Porta | Risco | Mitigação |
---|---|---|---|
HTTP | TCP/80 | Captura de dados (ex.: formulários) | HTTPS (TLS) |
DNS | UDP/53 / System: TCP/53 | Captura de consultas (ex.: domínios visitados) | DNSSEC, DoT (DNS over TLS) |
DHCP | UDP/67-68 | Captura de alocações IP/MAC | VLANs, DHCP Snooping |
FTP | TCP/21 | Captura de credenciais | SFTP, FTPS |
Passos para Simulação com Wireshark
- Inicie a captura em modo promíscuo (requer permissões):
wireshark_start.txt
$ sudo wireshark -i eth0 -k
- Aplique filtros para focar em tráfego relevante:
http
– Captura requisições HTTPdns
– Consultas DNS (Aula 13)tcp.port == 22
– Tráfego SSHip.src == 192.168.1.10
– Pacotes de um host específico
- Analise pacotes:
- Headers: IPs, portas, flags TCP
- Payload: Dados não criptografados (ex.: cookies HTTP)
- TCP Stream: Reconstruir sessões (ex.: “Follow → TCP Stream”)
Exemplo: Captura HTTP com Tshark
$ sudo tshark -i eth0 -Y "http.request" -T fields -e frame.number -e ip.src -e http.host -e http.request.uri
1 192.168.1.100 example.com /index.html
2 192.168.1.100 example.com /login
Exemplo: Captura DNS com Tshark
$ sudo tshark -i eth0 -Y "dns" -T fields -e ip.src -e dns.qry.name
192.168.1.100 example.com
192.168.1.100 www.google.com
Boas Práticas
- Capture apenas em redes autorizadas com permissões explícitas.
- Use TLS/SSL (HTTPS, SMTPS) e DNSSEC (
dnsmasq.conf
, Aula 13) para proteger dados. - Configure VLANs para isolar tráfego sensível (ex.: servidores vs. clientes).
- Monitore logs do
dnsmasq
(journalctl -u dnsmasq
) para detectar consultas DNS suspeitas.
Resolução de Problemas
- Sem pacotes capturados: Verifique interface (
ip link show
) ou modo promíscuo (sudo ifconfig eth0 promisc
). - Erro de permissão: Execute com
sudo
ou adicione usuário ao grupowireshark
. - Tráfego criptografado: Confirme protocolo (ex.:
tcp.port == 443
para HTTPS). - Filtros inválidos: Teste filtros simples (
dns
,http
) antes de complexos.
Dica 1: Use tshark -i eth0 -Y "dns"
para monitorar consultas DNS (Aula 13).
Dica 2: Compare HTTP vs. HTTPS com tshark -Y "http or tcp.port == 443"
.
Dica 3: Habilite DNSSEC em dnsmasq
para mitigar sniffing de DNS.
VPNs, TLS/SSL & DNS vpn_key
OpenVPN, WireGuard, IPsec & Resolvers
lock Proteção com VPNs, TLS/SSL & DNS
VPNs (IPsec, OpenVPN, WireGuard) garantem sigilo e autenticação em Camada 3/4, enquanto TLS/SSL protege Camada 4/7 (ex.: HTTPS). DNS, vulnerável a spoofing e sniffing (Aula 13), é segurado por DNSSEC e DoT, integrando com `dnsmasq` para resolução local.
Comparação de Tecnologias
Tecnologia | Camada OSI | Características | Mitiga |
---|---|---|---|
IPsec | 3 (Rede) | Túnel/transporte, autenticação, criptografia | Sniffing, spoofing |
OpenVPN | 4/7 | TLS sobre UDP/TCP, flexível | Sniffing, MITM |
WireGuard | 3/4 | Chave pública, alta performance | Sniffing, MITM |
TLS/SSL | 4/7 | Criptografia, integridade (ex.: HTTPS) | Sniffing, manipulação |
DNSSEC/DoT | 7 (Aplicação) | Assinaturas digitais, DNS criptografado | Spoofing, sniffing |
Exemplo: Configuração de WireGuard
[Interface]
PrivateKey =
Address = 10.0.0.2/24
[Peer]
PublicKey =
Endpoint = 192.168.1.1:51820
AllowedIPs = 0.0.0.0/0
$ sudo wg-quick up wg0
Exemplo: Verificação TLS/SSL
$ openssl s_client -connect example.com:443
CONNECTED(00000003)
depth=2 O = Digital Signature Trust Co.
verify return:1
Server certificate: CN=*.example.com
Exemplo: DNSSEC com Public Resolver
$ dig @8.8.8.8 +dnssec sigok.verteiltesysteme.net A
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2
;; ANSWER SECTION:
sigok.verteiltesysteme.net. 3600 IN A 139.18.25.36
sigok.verteiltesysteme.net. 3600 IN RRSIG A 8 3 3600 ...
Boas Práticas
- Use WireGuard ou OpenVPN com chaves fortes e cifras modernas (ex.: AES-256).
- Habilite DNSSEC em resolvers (
dnssec
nodnsmasq.conf
, Aula 13). - Prefira DoT (DNS over TLS) em resolvers como 1.1.1.1 para criptografia.
- Configure TLS com cifras seguras (ex.: ECDHE-RSA-AES256-GCM-SHA384).
- Implemente Zero Trust, verificando continuamente usuários e dispositivos.
Resolução de Problemas
- VPN não conecta: Verifique chaves (
wg show
) ou logs (journalctl -u openvpn
). - DNS falha: Teste resolver (
dig @8.8.8.8 example.com
) ou DNSSEC (dig +dnssec
). - TLS erro: Cheque certificados (
openssl s_client -connect host:443
).
Dica 1: Use wg-quick up wg0
para testar WireGuard rapidamente.
Dica 2: Valide DNSSEC com dig +dnssec @1.1.1.1
(busque flag ad
).
Dica 3: Combine VPNs e TLS para proteção multicamada.
Firewalls: iptables & ipfw security
Filtragem de Pacotes e Proteção de Serviços
shield O que são Firewalls?
Firewalls filtram tráfego em Camada 3 (pacotes) e Camada 7 (aplicações), protegendo sigilo, autenticação, e integridade. Mitigam DoS, spoofing, e acesso não autorizado, protegendo serviços como DNS e DHCP (Aula 13).
Comparação: iptables vs. ipfw
Ferramenta | Sistema | Camada OSI | Características | Mitiga |
---|---|---|---|---|
iptables | Linux | 3, 4 | Filtragem, NAT, stateful inspection | DoS, spoofing |
ipfw | FreeBSD/macOS | 3, 4 | Filtragem, regras numeradas | DoS, acesso não autorizado |
WAF | Qualquer | 7 | Inspeção de conteúdo HTTP/S | Ataques web, XSS |
Exemplo: iptables (Linux)
# Bloquear tudo, liberar loopback e SSH
$ sudo iptables -P INPUT DROP
$ sudo iptables -A INPUT -i lo -j ACCEPT
$ sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
# Proteger DNS (Aula 13)
$ sudo iptables -A INPUT -p udp --dport 53 -s 192.168.1.0/24 -j ACCEPT
# Listar regras
$ sudo iptables -L -v
Chain INPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
10 800 ACCEPT all -- lo any anywhere anywhere
5 400 ACCEPT tcp -- any any anywhere anywhere tcp dpt:ssh state NEW,ESTABLISHED
3 240 ACCEPT udp -- any any 192.168.1.0/24 anywhere udp dpt:domain
Teste iptables (Linux)
# Bloquear e depois liberar porta 80 (HTTP):
# Bloquear:
sudo iptables -A OUTPUT -p tcp --dport 80 -j DROP
# Teste: acesse http://localhost (falha)
# Liberar:
sudo iptables -D OUTPUT -p tcp --dport 80 -j DROP
Exemplo: ipfw (FreeBSD/macOS)
# Limpar regras
$ sudo ipfw -q flush
# Permitir loopback, SSH, DNS
$ sudo ipfw add 100 allow ip from 127.0.0.1 to any
$ sudo ipfw add 200 allow tcp from any to any 22
$ sudo ipfw add 300 allow udp from any to any 53
$ sudo ipfw add 65535 deny ip from any to any
# Listar regras
$ sudo ipfw list
00100 allow ip from 127.0.0.1 to any
00200 allow tcp from any to any 22
00300 allow udp from any to any 53
65535 deny ip from any to any
Teste ipfw (Linux)
# Bloquear e depois liberar porta 80:
# Bloquear:
sudo ipfw add deny tcp from any to any 80
# Teste: acesse http://localhost (falha)
# Liberar:
sudo ipfw delete deny tcp from any to any 80
Boas Práticas
- Defina políticas padrão restritivas (
DROP
) e libere apenas serviços necessários (ex.: SSH, DNS). - Use stateful inspection (
-m state
em iptables) para conexões estabelecidas. - Implemente rate-limiting contra DoS (
iptables -m limit
). - Monitore tráfego com logs (
iptables -A INPUT -j LOG
). - Integre WAF (ex.: ModSecurity) para proteger aplicações web (Camada 7).
Resolução de Problemas
- Tráfego bloqueado: Verifique regras (
iptables -L -v
,ipfw list
). - Regras não aplicadas: Confirme ordem e sintaxe (
iptables -C
,ipfw show
). - Performance lenta: Reduza regras complexas ou use `nftables` (alternativa moderna).
- DNS bloqueado: Libere porta 53 (
iptables -A INPUT -p udp --dport 53 -j ACCEPT
).
Dica 1: Use iptables -L -v --line-numbers
para identificar regras problemáticas.
Dica 2: Teste regras com tcpdump -i eth0 port 53
para verificar DNS (Aula 13).
Dica 3: Considere WAF para proteção adicional em Camada 7.
Quiz & Dúvidas quiz
Revisão Rápida