2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

40
2008, Edgard Jamhour Endereçamento Privado Proxy e NAT

Transcript of 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

Page 1: 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

2008, Edgard Jamhour

Endereçamento PrivadoProxy e NAT

Page 2: 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

2008, Edgard Jamhour

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 32 bilhões de hosts.

PREVISÃO DE ESGOTAMENTO

= 1994

Page 3: 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

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

Page 4: 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

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.

Page 5: 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

Tipos de Hosts (RFC 1918)categoria I categoria III

categoria II

NAT

tradutor de IP

IPv4

IPv4

Page 6: 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

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

Page 7: 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

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

Page 8: 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

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 provedor200.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

Page 9: 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

2008, Edgard Jamhour

Tradutores de Endereço

• Implementados ao nível das funções de Roteamento: NAT (Network Address Translation) NAPT (Network Address and Port Translation).

• Implementados com servidores: Proxy de Aplicação Proxy Socks.

Page 10: 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

2008, Edgard Jamhour

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

Page 11: 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

2008, Edgard Jamhour

Tipos de Mapeamento NAT

• NAT (Network Address Translation) Converte apenas endereços IP Efetua mapeamentos de um-para-um Cada endereço IP privado é mapeado em um endereço

IP público distinto. • NAPT (Network Address and Port Translation)

Utiliza informações das porta de transporte (TCP ou UDP)

Efetua mapeamentos de um-para-muitos. Múltiplos endereços privados podem ser mapeados em

um único endereço IP público.

Page 12: 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

2008, Edgard Jamhour

Mapeamento Estático e Dinâmico

• Estático: Os mapeamentos são definidos previamente, de

maneira que um dado endereço IP privado está sempre mapeado em um mesmo IP público

• Dinâmico. Os mapeamentos são configuradas dinamicamente,

quando um novo fluxo é detectado. Os mapeamentos dinâmicos são temporários, sendo

automaticamente desfeitos quando o IP privado deixa de ser utilizado por muito tempo.

Page 13: 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

2008, Edgard Jamhour

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

Page 14: 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

2008, Edgard Jamhour

Source NAT e Destination NAT

• Source NAT: SNAT Altera o endereço de origem do pacote É implementado após a ação de roteamento (pós-

roteamento). • Masquerading

• Destination NAT: DNAT Altera o endereço de destino do pacote É implementado antes do roteamento (pré-

roteamento).• Redirecionamento de Portas • Balanceamento de Carga • Proxies transparentes

Page 15: 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

2008, Edgard Jamhour

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

11 210.0.0.1 60.1.2.3 checksum222

60.1.2.3 210.0.0.1 checksum33360.1.2.3 192.168.0.2 checksum444

192.168.0.3

tabela de mapeamento

192.168.0.1

Page 16: 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

2008, Edgard Jamhour

NAT (IPTABLES)

• SNAT para endereço fixo: iptables -t nat -A POSTROUTING -o eth0 -j SNAT

--to 210.0.0.1• SNAT com pool de endereços:

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 210.0.0.1-210.0.0.10

• Masquerading efetua o mapeamento ao IP atribuído a interface definida por -o iptables -t nat -A POSTROUTING -o eth0

-j MASQUERADE

Page 17: 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

2008, Edgard Jamhour

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

Page 18: 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

2008, Edgard Jamhour

SNAPT

• No Linux, o mapeamento por SNAPT é configurado através do IP tables, conforme o exemplo a seguir.

• 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

Page 19: 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

2008, Edgard Jamhour

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

Page 20: 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

2008, Edgard Jamhour

DNAT

• DNAT da porta 8080 para IP 192.168.0.3:80. iptables -t nat -A PREROUTING -p tcp --dport 8080

-i eth0 -j DNAT --to 192.168.0.2:80 • Redirect da porta 80 para 3128

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

• DNAT balanceado para 192.168.0.2 até 192.168.0.5. iptables -t nat -A PREROUTING -i eth0 -j DNAT

--to 192.168.0.2-192.168.0.5

Page 21: 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

2008, Edgard Jamhour

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

11 210.0.0.1 60.1.2.3PORT

192.168.0.2:1025

22

60.1.2.3 192.168.0.2 payload33

tabela de mapeamento

192.168.0.1

Page 22: 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

2008, Edgard Jamhour

Tipos de FTP

• O FTP usa uma conexão de comando, e outra para transferência de dados. Duas formas de operação: PORT (Ativo)

• O cliente conecta-se a porta 21 do servidor FTP pela porta N (>1023)

• O cliente envia o comando PORT indicado que aguarda uma conexão na porta porta N+1

• O servidor se conecta ao cliente pela porta 20. PASV (Passivo).

• O cliente conecta-se a porta 21 do servidor FTP• O cliente envia um comando PASV indicado que deseja se

conectar em modo passivo. • O servidor abre uma porta aleatória para receber a conexão

de dados, e informa essa porta para o cliente através da conexão de comando.

Page 23: 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

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

Page 24: 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

2008, Edgard Jamhour

Proxy de Aplicação e Proxy Socks

• Proxy de Aplicação utiliza informações dos protocolos da camada de

aplicação precisa “conhecer” as aplicações usadas pelos clientes

a fim de operar• Proxy SOCKS.

atua apenas no nível de transporte pode suportar virtualmente qualquer tipo de aplicação,

de forma semelhante ao NAT.

Page 25: 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

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

Page 26: 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

2008, Edgard Jamhour

Como o proxy determina o endereço do destinatário?

• No proxy de aplicação: O endereço e a porta do destinatário são descobertos

analisando as informações contidas no cabeçalho HTTP.

O próprio servidor proxy consulta o servidor DNS para traduzir o nome do servidor HTTP de destino em um endereço IP.

• No proxy SOCKS: Informações adicionais são incluídas pelo cliente para

facilitar a localização do servidor de destino. O proxy não precisa interpretar o protocolo de

aplicação.

Page 27: 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

Proxy depende da Aplicação

Protocolo de AplicaçãoHTTP, FTP, SMTP, etc

TCP, UDPTCP, UDP

EthernetEthernet

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)

Page 28: 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

2008, Edgard Jamhour

Proxy de Aplicação

• Cada protocolo de aplicação formata seu cabeçalho de maneira diferente. O HTTP identifica o destino através de um campo do

tipo string, denominado “Host”. O SMPT utiliza a mensagem “RCPT TO”

• Um proxy de aplicação é capaz de operar apenas com um conjunto limitado de protocolos que ele conhece. “HTTP”, “FTP”, “SSL” e “Gopher”.

• Inconvenientes: O aplicativo do cliente precisa estar preparado. É necessário configurar cada um dos aplicativos

informando o endereço e a porta do proxy.

Page 29: 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

2008, Edgard Jamhour

Exemplo de script de configuração

function FindProxyForURL(url,host) {

if(isInNet(host, "127.0.0.0", "255.0.0.0") || isInNet(host, "192.168.0.0", "255.255.0.0") || url.substring(0, 4) == "ftp:") { return "DIRECT"; }

else { return "PROXY 200.192.112.146:3128"; }

}

Page 30: 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

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

Page 31: 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

2008, Edgard Jamhour

Mapeamento de Conexões pelo Proxy

• Semelhante ao NAPT. Para cada conexão de cliente recebida, o proxy abre uma nova

conexão com o servidor de destino utilizando uma porta ainda não utilizada.

Um proxy pode atender a aproximadamente 63K clientes com um único endereço IP.

• A conexões criadas pelo proxy são dinâmicas. O servidor proxy encerra a conexão com o servidor de destino no

momento que o cliente encerrar a conexão correspondente com o proxy.

Conexões sem uso por um tempo excessivo podem ser encerradas de por iniciativa do proxy.

O HTTP encerra a conexão com o servidor assim que as informações de uma página Web são recebidas por completo.

Page 32: 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

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

Page 33: 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

2008, Edgard Jamhour

Serviços Adicionais do Proxy

1. Cache de objetos HTTP: • armazena objetos mais acessados em cache • permite reduzir a banda utilizada do link com a Internet.

2. Autenticação: • controla o acesso a Internet através de um pedido de

autenticação para usuário.3. Filtragem de endereços URL:

proíbe o acesso a certos endereços na Internet.4. Filtragem de conteúdo:

• proíbe a transferência de objetos com certos tipos MIME (video, áudio, executáveis, etc.)

5. Bloqueio e remoção de virus e malware: • proibe a entrega de objetos com virus ou algum tipo de malware.

Page 34: 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

2008, Edgard Jamhour

Proxy Socks

192.168.0.1210.0.0.3

clienteservidor192.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

Page 35: 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

2008, Edgard Jamhour

Versões do SOCKS

• Originalmente desenvolvido por David Koblas, e subseqüentemente modificado e entendido pelo IETF. permite que o cliente se identifique e que informe os dados do

servidor que deseja acessar. funciona para qualquer tipo de serviço: http, ftp, ssh, etc.

• Atualmente, existem duas versões do protocolo SOCKS: • versão 4 (v4):

suporta apenas TCP. funciona como um redirecionador de conexões TCP permite acesso a qualquer serviço através de firewalls.

• versão 5 (v5): suporta ambos os protocolos de transporte: TCP e UDP.

Page 36: 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

2008, Edgard Jamhour

SOCKv4

• Oferece dois serviços para os clientes: connect e bind.• connect

é usado quando o cliente deseja fazer uma conexão com um servidor externo.

o cliente fornece seu login, o IP e a porta do servidor que deseja acessar.

• bind é usado para que o cliente possa receber uma conexão de um

host externo. o cliente solicita ao Proxy que ele crie uma porta para receber

conexões de um determinado host externo. o proxy SOCKS cria a porta, e responde para o cliente informando

em qual porta e endereço IP (caso ele tenha múltiplas interfaces de rede) o host externo poderá fazer a conexão.

Page 37: 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

2008, Edgard Jamhour

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

Page 38: 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

2008, Edgard Jamhour

SOCKSv5

• A versão corrente do protocolo SOCKs é 5.0 definido nas RFCs 1928 e 1929. Melhorias: o suporte a aplicações UDP e a vários

métodos de autenticação.• Além do connect e bind, foi incluido o serviço UDP

Associate. O cliente envia o UDP Associate via TCP, informando o

IP e a porta do servidor de destino. O cliente transmite dados via datagrams UDP

modificados, que incluem um pequeno cabeçalho com o endereço IP e porta do servidor de destino.

O proxy SOCKs só aceita encaminhar datagramas UDP para UDP Associates previamente criados.

Page 39: 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

2008, Edgard Jamhour

Formas de Configuração

• Por aplicativo: Similar ao proxy de aplicação Cada aplicativo precisa ser modificado para gerar as

mensagens connect, bind e UDP Associate necessárias.

• No sistema operacional Cliente proxy SOCKS. Esse cliente modifica a

biblioteca de Chamadas TCP e UDP são modificadas para incluir as

mensagens SOCKS Funciona com aplicativos legados Permite uma única configuração global para todo o

sistema.

Page 40: 2008, Edgard Jamhour Endereçamento Privado Proxy e NAT.

2008, Edgard Jamhour

Conclusão

• IP privado resposta a tendência de esgotamento de endereços IPv4, que se acelerou

no início dos anos 90. poucas limitações para hots clientes bastante limitante para hosts servidores forma mais segura de se navegar pela Internet

• NATs uso transparente para os clientes pouco limitantes em relação as aplicações suportadas incapazes de prestar serviços dependentes da camada de aplicação, como

cache HTTP• Proxy

não transparente para os clientes quebram o modelo cliente-servidor menos escaláveis que os NATs proxies de aplicação podem prestar inúmeros serviços adicionais que

melhoram a segurança e o desempenho da rede.