Endereçamento Privado Proxy e NAT
description
Transcript of Endereçamento Privado Proxy e NAT
ENDEREÇAMENTO PRIVADOPROXY 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
Uma rede de endereços classe A.
172.16.0.0/12 172.16.0.0 a 172.31.255.255
16 redes contíguas de endereços classe B.
192.168.0.0/16 192.168.0.0 a 192.168.255.255
256 redes contíguas de endereços classe C.
TIPOS DE HOSTS (RFC 1918)
categoria I categoria III
categoria II
NAT
tradutor de IP
IPv4
IPv4
ROTEADOR INTERNO E GATEWAY DEFAULT
1
2
ip publico ip publico
ip privado ip privado
ippublico
gateway default
(não roteia IP privado)
(roteador interno)roteia IP privado
ippublico
ipprivado
IPv4
ENDEREÇOS E ROTEAMENTO
1
2
200.0.0.2 200.0.0.3
192.168.0.2 192.168.0.3
200.0.0.4
192.168.0.0/24 via direta200.0.0.0/24 via direta
200.0.0.1
192.168.0.1
0.0.0.0/0 via provedor200.0.0.0/24 via direta
IPv4
HOSTS CATEGORIA 2
1
2
200.0.0.2 200.0.0.3
192.168.0.2 192.168.0.3
200.0.0.4
192.168.0.0/24 via direta200.0.0.0/24 via direta
200.0.0.1
192.168.0.1
0.0.0.0/0 via provedor
200.0.0.0/24 via direta
roteador com NATse ip_origem = 192.168.0.0/24 traduzir para
200.1.0.1
200.1.0.1
IPv4
NAT E NAPT
IPprivado1
IPprivado2
IPprivado3
IPpúblico2
IPpúblico1
IPpúblico3
IPprivado1
IPprivado2
IPprivado3
NAT
NAPT IPpúblico1:Porta1
IPpúblico1:Porta2
IPpúblico1:Porta3
SNAT E DNAT
Pré-Roteamento[DNAT]
Pós-Roteamento[SNAT]
roteamento
Interface de Entrada Interface de Saída
decisão sobre o encaminhamento do
pacote
SNAT: NETWORK ADDRESS TRANSLATION
IPv4 Privado
192.168.0.2
210.0.0.1 to 210.0.0.10
192.168.0.2 60.1.2.3 checksum1
IPv4 Network
60.1.2.3192.168.0.2 = 210.0.0.1192.168.0.3 = 210.0.0.2
1 210.0.0.1 60.1.2.3 checksum22
60.1.2.3 210.0.0.1 checksum3360.1.2.3 192.168.0.2 checksum44
192.168.0.3
tabela de mapeamento
192.168.0.1
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)
Endereço IP Público210.0.0.1
clientes
servidor
192.168.0.2
IP Privado:Porta Origem
192.168.0.2 :1024192.168.0.2 :1026192.168.0.3 :1024192.168.0.4 :1025
192.168.0.3
192.168.0.4
request reply
1025
1026
1027
IP Público:Porta Origem
210.0.0.1 :1024210.0.0.1 :1026210.0.0.1 :1025210.0.0.1 :1027
1024
1024
1025
IPv4
1026
1024
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
Endereço IP Público210.0.0.1
espec.ppgia.pucpr.br
servidores
cliente
192.168.0.2
IP Privado:Porta Destino
192.168.0.2 :80192.168.0.2 :25192.168.0.3 :80192.168.0.4 :22
192.168.0.3
192.168.0.4
reply request
80
25
8080
IP Público:Porta Destino
210.0.0.1 :80210.0.0.1 :25210.0.0.1 :8080210.0.0.1 :8081
80
80
22
IPv4
25
8081
192.168.0.1
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
IPv4 Privado
192.168.0.2
210.0.0.1
192.168.0.2 60.1.2.3PORT
192.168.0.2:1025
IPv4 Network
60.1.2.3192.168.0.2 = 210.0.0.1
1 210.0.0.1 60.1.2.3PORT
192.168.0.2:1025
2
60.1.2.3 192.168.0.2 payload3
tabela de mapeamento
192.168.0.1
SERVIDOR PROXY
IPv4 Privado
192.168.0.2
210.0.0.1
IPv4 Network
60.1.2.3
192.168.0.1
IPv4 Privado
192.168.0.2
210.0.0.1
IPv4 Network
60.1.2.3
192.168.0.1
NAT
Proxy
1024 80
31281024 1025 80
FUNCIONAMENTO DO PROXY
IPv4 Privado
192.168.0.2
210.0.0.1
IPv4 Network
60.1.2.3
192.168.0.1
Proxy
31281024 1025 80
GET /~jamhour/natproxy.tar.gz HTTP/1.1\r\nHost: espec.ppgia.pucpr.br\r\n
192.168.0.2 192.168.0.1 1024 3128
GET /~jamhour/natproxy.tar.gz HTTP/1.1\r\nHost: espec.ppgia.pucpr.br\r\n
210.0.0.1 60.1.2.3 1025 80
PROXY DEPENDE DA APLICAÇÃO
Protocolo de AplicaçãoHTTP, FTP, SMTP, etc
TCP, UDP
Ethernet
IP
aplicação
segmento TCPdatagrama UDP
pacote
Seqüência de empacotamento
quadro
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
192.168.0.1210.0.0.3
clientes
servidor
192.168.0.2
IP Privado:Porta Origem
192.168.0.2 :1024192.168.0.2 :1026192.168.0.3 :1024192.168.0.4 :1025
192.168.0.3
192.168.0.4
request replyIP Público:Porta
Origem
210.0.0.3 :1024210.0.0.3 :1026210.0.0.3 :1025210.0.0.3 :1027
1024
1024
1025
IPv4
1026
210.0.0.1
3128
1024
1026
1025
1027
OUTRAS FUNÇÕES DO PROXY DE APLICAÇÃO
Proxy de Aplicação
Cache
Controle de acesso por loginFiltragem de endereços e conteúdo.Cache de objetos WebFiltragem de Virus e Malware
GET
HTTP/1.1 200 OK\r\n
GET
HTTP/1.1 304 Not Modified\r\n
GET
HTTP/1.1 200 OK\r\n
PROXY SOCKS
192.168.0.1210.0.0.3
clienteservidor
192.168.0.3
1024IPv4
1080
Proxy Socks
user jamhour want connect to 60.1.2.3:80
60.1.2.3
request granted
user jamhour want bind to 60.1.2.3:80
bind on 210.0.0.3:4000
4000
PROXY SOCKS
cliente
servidor
IPv4
protocolo SOCKS
biblioteca socketsmodificada
aplicação
TCP UDP
IP
configuração global para todos os aplicativos
TCP ou UDP não modificado
S.O.proxy
SOCKS
CONCLUSÃO