ENDEREÇAMENTO PRIVADO PROXY E NAT
MOTIVAÇÃO PARA O ENDEREÇAMENTO IP PRIVADO Crescimento do IPv4 07/2007 490 milhões de hosts 01/2008 542 milhões de hosts IPv4 permite endereçar 4 bilhões de hosts. PREVISÃO INICIAL = 1994
AUTORIDADES DE REGISTRO DE ENDEREÇO IANA ARIN RIPE NCC AfriNIC LACNIC APNIC América do Norte Europa, Oriente e Asia Central Africa América Latina e Caribe Ásia e Pacífico
ENDEREÇOS PRIVADOS: RFC 1918 Prefixo Faixa de Endereços Descrição 10.0.0.0/8 10.0.0.0 a 10.255.255.255 172.16.0.0/12 172.16.0.0 a 172.31.255.255 192.168.0.0/16 192.168.0.0 a 192.168.255.255 Uma rede de endereços classe A. 16 redes contíguas de endereços classe B. 256 redes contíguas de endereços classe C.
TIPOS DE HOSTS (RFC 1918) categoria I categoria III IPv4 categoria II tradutor de IP NAT IPv4
ROTEADOR INTERNO E GATEWAY DEFAULT ip publico ip publico ip publico gateway default (não roteia IP privado) ip publico ip privado ip privado 2 IPv4 1 ip privado (roteador interno) roteia IP privado
ENDEREÇOS E ROTEAMENTO 200.0.0.2 200.0.0.3 200.0.0.1 200.0.0.4 2 IPv4 192.168.0.2 192.168.0.3 1 192.168.0.1 192.168.0.0/24 via direta 200.0.0.0/24 via direta 0.0.0.0/0 via provedor 200.0.0.0/24 via direta
HOSTS CATEGORIA 2 200.0.0.2 200.0.0.3 roteador com NAT se ip_origem = 192.168.0.0/24 traduzir para 200.1.0.1 200.0.0.1 200.0.0.4 2 IPv4 192.168.0.2 192.168.0.3 200.1.0.1 1 192.168.0.1 192.168.0.0/24 via direta 200.0.0.0/24 via direta 0.0.0.0/0 via provedor 200.0.0.0/24 via direta
NAT E NAPT IP privado1 IP privado2 NAT IP público 1 IP público2 IP privado3 IP público3 IP privado1 NAPT IP público1 :Porta 1 IP privado2 IP público1 :Porta 2 IP privado3 IP público1 :Porta 3
SNAT E DNAT Interface de Entrada Interface de Saída Pré-Roteamento [DNAT] roteamento Pós-Roteamento [SNAT] decisão sobre o encaminhamento do pacote
SNAT: NETWORK ADDRESS TRANSLATION 1 192.168.0.2 60.1.2.3 checksum1 2 210.0.0.1 60.1.2.3 checksum2 4 60.1.2.3 192.168.0.2 checksum4 3 60.1.2.3 210.0.0.1 checksum3 192.168.0.2 tabela de mapeamento 192.168.0.2 = 210.0.0.1 192.168.0.3 = 210.0.0.2 60.1.2.3 IPv4 Privado 192.168.0.3 192.168.0.1 210.0.0.1 to 210.0.0.10 IPv4 Network
SNAT NO LINUX Altera qualquer endereço de origem para 210.0.0.1 iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 210.0.0.1 Altera o endereço de origem usando IPs do range 210.0.0.1 até 210.0.0.10 iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 210.0.0.1 até 210.0.0.10 Aplica a ação de MASQUERADE iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
SNAPT (NETWORK ADDRESS AND PORT TRANSLATION) request IP Privado:Porta Origem IP Público:Porta Origem reply clientes 1024 1026 192.168.0.2 :1024 192.168.0.2 :1026 192.168.0.3 :1024 192.168.0.4 :1025 210.0.0.1 :1024 210.0.0.1 :1026 210.0.0.1 :1025 210.0.0.1 :1027 192.168.0.2 1024 1024 192.168.0.3 1025 1026 1027 IPv4 1025 192.168.0.4 Endereço IP Público 210.0.0.1 servidor
SNAPT NO LINUX O Linux implementa SNAPT sempre que necessário de forma automática, mas mantém a troca das portas no interior de classes: Portas abaixo de 512 Portas entre 512 and 1023 Portas acima de 1024 Altera o endereço de origem para 210.0.0.1, usando as portas 1024-65535 iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to 1024-65535
MAPEAMENTOS REVERSOS: DNAT servidores reply IP Privado:Porta Destino IP Público:Porta Destino request 80 25 192.168.0.2 192.168.0.2 :80 192.168.0.2 :25 192.168.0.3 :80 192.168.0.4 :22 80 210.0.0.1 :80 210.0.0.1 :25 210.0.0.1 :8080 210.0.0.1 :8081 25 80 192.168.0.3 192.168.0.1 8080 8081 IPv4 22 192.168.0.4 Endereço IP Público 210.0.0.1 espec.ppgia.pucpr.br cliente
DNAT NO LINUX Redireciona pacotes recebidos na porta 8080 para o IP 192.168.0.3 e porta 80. iptables -t nat -A PREROUTING -p tcp --dport 8080 -i eth0 -j DNAT --to 192.168.0.2:80 Envia pacotes web (port-80) para a porta do squid (proxy transparente) iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128 Altera os endereços de destino para 192.168.0.2 até 192.168.0.5, através de um processo de balanceamento de carga. iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 192.168.0.2-192.168.0.5
PROBLEMAS COM O NAT PORT 1 192.168.0.2 60.1.2.3 192.168.0.2: 2 210.0.0.1 60.1.2.3 1025 PORT 192.168.0.2: 1025 3 60.1.2.3 192.168.0.2 payload 192.168.0.2 tabela de mapeamento 192.168.0.2 = 210.0.0.1 60.1.2.3 IPv4 Privado 192.168.0.1 210.0.0.1 IPv4 Network
SERVIDOR PROXY 192.168.0.2 60.1.2.3 1024 80 192.168.0.1 210.0.0.1 IPv4 Privado NAT IPv4 Network 192.168.0.2 1024 3128 1025 80 60.1.2.3 192.168.0.1 210.0.0.1 IPv4 Privado Proxy IPv4 Network
FUNCIONAMENTO DO PROXY 192.168.0.2 192.168.0.1 1024 3128 GET /~jamhour/natproxy.tar.gz HTTP/1.1\r\n Host: espec.ppgia.pucpr.br\r\n 192.168.0.2 1024 3128 1025 80 60.1.2.3 192.168.0.1 210.0.0.1 IPv4 Privado Proxy IPv4 Network 210.0.0.1 60.1.2.3 1025 80 GET /~jamhour/natproxy.tar.gz HTTP/1.1\r\n Host: espec.ppgia.pucpr.br\r\n
PROXY DEPENDE DA APLICAÇÃO Seqüência de empacotamento Protocolo de Aplicação HTTP, FTP, SMTP, etc TCP, UDP IP Ethernet quadro segmento TCP datagrama UDP pacote aplicação http ftp ssl O proxy de aplicação precisa interpretar as informações do protocolo de aplicação (dispositivo de camada 7)
MAPEAMENTO DE CONEXÕES PELO PROXY request IP Privado:Porta Origem IP Público:Porta Origem reply clientes 1024 1026 192.168.0.2 :1024 192.168.0.2 :1026 192.168.0.3 :1024 192.168.0.4 :1025 210.0.0.3 :1024 210.0.0.3 :1026 210.0.0.3 :1025 210.0.0.3 :1027 192.168.0.2 3128 1024 192.168.0.3 1024 1026 1025 1027 IPv4 1025 192.168.0.1 210.0.0.3 210.0.0.1 servidor 192.168.0.4
OUTRAS FUNÇÕES DO PROXY DE APLICAÇÃO Controle de acesso por login Filtragem de endereços e conteúdo. Cache de objetos Web Filtragem de Virus e Malware Proxy de Aplicação GET Cache HTTP/1.1 200 OK\r\n GET GET HTTP/1.1 200 OK\r\n HTTP/1.1 304 Not Modified\r\n
PROXY SOCKS user jamhour want connect to 60.1.2.3:80 request granted user jamhour want bind to 60.1.2.3:80 bind on 210.0.0.3:4000 Proxy Socks cliente 1024 192.168.0.3 1080 192.168.0.1 210.0.0.3 4000 IPv4 servidor 60.1.2.3
PROXY SOCKS biblioteca sockets modificada TCP aplicação IP UDP S.O. configuração global para todos os aplicativos proxy SOCKS servidor IPv4 cliente protocolo SOCKS TCP ou UDP não modificado
CONCLUSÃO