• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Aula 8.3 - Iptables Tabela NAT
 

Aula 8.3 - Iptables Tabela NAT

on

  • 719 views

Nesta aula será visto o funcionamento da tabela NAT e alguns exemplos de criação de regras.

Nesta aula será visto o funcionamento da tabela NAT e alguns exemplos de criação de regras.

Statistics

Views

Total Views
719
Views on SlideShare
719
Embed Views
0

Actions

Likes
1
Downloads
43
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Aula 8.3 - Iptables Tabela NAT Aula 8.3 - Iptables Tabela NAT Presentation Transcript

    • Firewall Iptables - NAT Prof. Andrei Carniel Universidade Tecnológica Federal do Paraná – UTFPR E-mail: andreicarniel@utfpr.edu.br / andrei.carniel@gmail.com
    • NAT – Network Address Translator • NAT – Network Address Translator (Tradutor de Endereço de Rede) • Existem vários recursos que utilizam NAT. Os mais conhecidos são: ▫ --> Mascaramento (masquerading) ▫ --> Redirecionamento de portas (port forwarding ou PAT) ▫ --> Redirecionamento de servidores (forwarding) ▫ --> Proxy transparente (transparent proxy) ▫ --> Balanceamento de carga (load balance) 2
    • NAT – Mascaramento (1/3) • O mascaramento é uma forma de fazer NAT (Network Address Translation). • Com isso, é possível fazer uma rede privada navegar na Internet. A rede solicita os dados para a máquina que faz o mascaramento. Essa busca tais dados na Internet... 3
    • NAT – Mascaramento (2/3) • ...e os entrega aos solicitantes. 4
    • NAT – Mascaramento (3/3) • No entanto, um host da Internet, por vontade própria, não consegue ultrapassar o filtro que faz mascaramento, em direção à rede: • O único endereço IP que irá circular na Internet será o do filtro. • O mascaramento também possui um esquema de funcionamento. Como haverá trocas de endereços, deveremos utilizar a tabela NAT para fazer isso. 5
    • NAT – Redirecionamentos • Redirecionamento de portas ▫ O redirecionamento de portas ocorre quando desejamos alterar a porta de destino de uma requisição. ▫ Exemplo: tudo que for destinado à porta 23 de qualquer máquina, quando passar pela máquina filtro, será redirecionado para a porta 10000 de outro servidor. • Redirecionamento de servidores ▫ Todos os pacotes destinados a um servidor serão redirecionados para outro servidor. 6
    • NAT – Proxy Transparente • Um exemplo é a técnica que força o uso de um servidor proxy na rede. 7 • Ou seja, consiste em interceptar uma comunicação HTTP e forçar ela a seguir um caminho por um servidor proxy.
    • NAT – Balanceamento de Carga • O balanceamento de carga (load balance) é uma técnica utilizada para distribuir carga entre servidores sincronizados. • O load balance é o ato de distribuir os clientes aos servidores mais desocupados. • Esse trabalho também pode ser feito por servidores DNS. 8
    • NAT – Network Address Translator 9
    • NAT – Network Address Translator • O NAT é dividido em: ▫ --> SNAT (Source NAT): aplica-se quando desejamos alterar o endereço de origem do pacote. Somente a chain POSTROUTING faz SNAT. O mascaramento é um exemplo de SNAT. ▫ --> DNAT (Destination NAT): aplica-se quando desejamos alterar o endereço de destino do pacote. As chains PREROUTING e OUTPUT fazem DNAT. O redirecionamento de porta, o redirecionamento de servidor, o load balance e o proxy transparente são exemplos de DNAT. 10
    • Regras de NAT • Para fazer o mascaramento, deveremos, antes, carregar o módulo de NAT: ▫ #modprobe iptable_nat • As regras mais utilizadas, além da maioria dos recursos descritos para uso com a tabela filter, contêm o seguinte: 11
    • Regras de NAT – Chains • Existem as seguintes chains: ▫ PREROUTING --> utilizada para analisar pacotes que estão entrando no kernel para sofrerem NAT. O PREROUTING pode fazer ações de NAT com o endereço de destino do pacote. Isso é conhecido como DNAT (Destination NAT); ▫ POSTROUTING --> utilizada para analisar pacotes que estão saindo do kernel, após sofrerem NAT. O POSTROUTING pode fazer ações de NAT com o endereço de origem do pacote. Isso é conhecido como SNAT (Source NAT); ▫ OUTPUT --> utilizada para analisar pacotes que são gerados na própria máquina e que irão sofrer NAT. O OUTPUT pode fazer ações de NAT com o endereço de destino do pacote. Também é DNAT. 12
    • Regras de NAT – Chains • Opções: ▫ -A --> Append (adicionar). ▫ -D --> Delete (apagar). • Dados: ▫ -t --> Table (tabela). Estabelece a tabela a ser utilizada. A tabela default, por omissão, é filter. Para o mascaramento ou NAT será nat. Exemplo: ▫ Exemplos:  #iptables -t nat -A ...  #iptables -t nat -D ... 13
    • Regras de NAT – Chains • --to --> utilizado para definir IP e porta de destino, após um DNAT, ou de origem, após um SNAT. • Deve ser utilizado após uma ação (-j ação). Assim: ▫ #... -j DNAT --to 10.0.0.2 ▫ #... -j DNAT --to 10.0.0.2:80 ▫ #... -j SNAT --to 172.20.0.2 14
    • Regras de NAT – Chains • --dport --> assim como -d define um host de destino, --dport define uma porta de destino. • Deve ser utilizado antes de uma ação (-j ação). Antes de --dport, deve ser especificado um protocolo (-p). Exemplo: ▫ #-d 172.20.0.1 -p tcp --dport 80 -j DNAT --to 10.0.0.2 • --sport --> assim como -s define um host de origem, --sport define uma porta de origem. Deve ser utilizado antes de uma ação (-j ação). • --to-port --> define uma porta de destino, após um REDIRECT. 15
    • Regras de NAT – Chains • Obs: A maioria dos dados básicos apresentados para a tabela filter continuam valendo. • Exemplo: -p servirá para definir um protocolo de rede; -d define um host de destino. 16
    • Regras de NAT – Ações • SNAT --> Utilizado com POSTROUTING para fazer ações de mascaramento da origem. • DNAT --> Utilizado com PREROUTING e OUTPUT para fazer ações de redirecionamento de portas e servidores, balanceamento de carga e proxy transparente. ▫ Caso a porta de destino não seja especificada, valerá a porta de origem. No filtro, a porta que será redirecionada não pode existir ou estar ocupada por um serviço qualquer, a fim de evitar conflitos. • MASQUERADE --> Faz mascaramento na saída de dados. • REDIRECT --> Redireciona uma requisição para uma porta local do filtro. 17
    • Regras de NAT • Redirecionamentos. 18
    • Redirecionamento de Portas • O redirecionamento de portas permite repassar conexões com destino a uma porta para outra porta na mesma máquina. • O alvo REDIRECT é usado para fazer esta operação, junto com o argumento --to-port especificando a porta que será redirecionada. • Este é o método pode ser utilizado para se fazer proxy transparente. Todas as operações de redirecionamento de portas é realizada no chain PREROUTING. • Exemplo: ▫ #iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 81 • Redireciona as conexões chegando na interface eth0, porta 80 para a porta 81. 19
    • Redirecionamento de Portas • Exemplo Comentado: ▫ #iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 81 • Explicando: • iptables : comando para adicionar regras de firewall. • -t nat : selecionando a tabela NAT. • -A PREROUTING : adicionando uma nova regra no final da lista da chain PREROUTING, na qual será alterado o endereço de destino. • -i eth0 : especificando que será pacotes entrando da interface eth0. • -p tcp : definindo regra para o protocolo TCP. • --dport 80 : especificando a porta do protocolo TCP. • -j REDIRECT : definindo a ação de redirecionamento de porta. • --to-port 81 : definindo a porta de destino. 20
    • Redirecionamento de IP • DNAT (Destination NAT) consiste em modificar o endereço de destino das máquinas clientes. • O destination NAT é muito usado para fazer redirecionamento de pacotes, proxys transparentes e balanceamento de carga. • Toda operação de DNAT é feita no chain PREROUTING. • Exemplo: ▫ #iptables -t nat -A PREROUTING -d 200.200.217.40 -i eth0 -j DNAT --to 192.168.1.2 • Modifica o endereço IP destino dos pacotes de 200.200.217.40 vindo da interface eth0 para 192.168.1.2. 21
    • Redirecionamento de Portas • Exemplo Comentado: ▫ #iptables -t nat -A PREROUTING -d 200.200.217.40 -i eth0 -j DNAT --to 192.168.1.2 • Explicando: • iptables : comando para adicionar regras de firewall. • -t nat : selecionando a tabela NAT. • -A PREROUTING : adicionando uma nova regra no final da lista da chain PREROUTING, na qual será alterado o endereço de destino. • -d 200.200.217.40 : definindo a validade da para qualquer pacote da rede com destino ao IP 200.200.217.40. • -i eth0 : especificando que será pacotes entrando da interface eth0. • -j NAT : definindo a ação de redirecionamento de endereço. • --to 192.168.1.2 : definindo o IP de destino. 22
    • Redirecionamento de IP • Também é possível especificar faixas de endereços e portas que serão substituídas no DNAT: ▫ #iptables -t nat -A PREROUTING -i eth0 -s 192.168.1.0/24 -j DNAT --to 200.200.217.40-200.200.217.50 • Modifica o endereço IP de destino do tráfego vindos da interface 192.168.1.0/24 para um IP de 200.241.200.40 a 200.241.200.50. • Este é um excelente método para fazer o balanceamento de carga entre servidores. 23
    • Redirecionamento de IP • Exemplo 2: ▫ #iptables -t nat -A PREROUTING -i eth0 -s 192.168.1.0/24 -j DNAT --to 200.200.217.40-200.200.217.50 -p tcp --dport 1024:5000 • Idêntico ao anterior, mas faz somente substituições na faixa de portas de destino de 1024 a 5000. • Verificando NAT: ▫ #iptables -t nat -L PREROUTING –n 24
    • Exemplos comentados de regras de filtragem (Tabela NAT) 25
    • Exemplos comentados de regras de filtragem (Tabela NAT) ▫ #iptables -t nat –L • Mostra as regras de NAT ativas. ▫ #iptables -t nat -F • Apaga todas as regras de NAT existentes. ▫ #iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE • Todos os pacotes que saírem pela interface ppp0 (modem) serão mascarados. Isso dá um nível de segurança elevado à rede que está atrás da ppp0. • É uma boa regra para navegação na Internet. Note que esse tipo de mascaramento não usa SNAT. 26
    • Exemplos comentados de regras de filtragem (Tabela NAT) ▫ #iptables -t nat -A POSTROUTING -d 0/0 -j MASQUERADE • Tem o mesmo efeito da regra anterior. No entanto, estabelece que qualquer pacote destinado a qualquer outra rede, diferente da interna, será mascarado. A regra anterior refere-se aos pacotes que saem por determinada interface. A opção -d 0/0 poderia ser -d 0.0.0.0/0 também. É uma outra regra para navegação na Internet. ▫ #iptables -t nat -A PREROUTING -p tcp -d 10.0.0.2 -- dport 80 -j DNAT --to 172.20.0.1 • Redireciona todos os pacotes destinados à porta 80 da máquina 10.0.0.2 para a máquina 172.20.0.1. Esse tipo de regra exige a especificação do protocolo. Como não foi especificada uma porta de destino, a porta 80 será mantida como destino. 27
    • Exemplos comentados de regras de filtragem (Tabela NAT) ▫ #iptables -t nat -A OUTPUT -p tcp -d 10.0.0.10 -j DNAT - -to 10.0.0.1 • Qualquer pacote TCP, originado na máquina filtro, destinado a qualquer porta da máquina 10.0.0.10, será desviado para a máquina 10.0.0.1 . ▫ #iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 200.20.0.1 • Essa regra faz com que todos os pacotes que irão sair pela interface eth0 tenham o seu endereço de origem alterado para 200.20.0.1 . ▫ #iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 172.20.0.1 • Todos os pacotes que entrarem pela eth0 serão enviados para a máquina 172.20.0.1 . 28
    • Exemplos comentados de regras de filtragem (Tabela NAT) ▫ #iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 172.20.0.1-172.20.0.3 • Aqui haverá o load balance. Todos os pacotes que entrarem pela eth0 serão distribuídos entre as máquinas 172.20.0.1 , 172.20.0.2 e 172.20.0.3 . ▫ #iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j SNAT 200.20.5.0/24 • Uma situação interessante: todos os pacotes que saírem da rede 192.168.1.0 serão transformados em 200.20.5.0 . 29
    • Exemplos comentados de regras de filtragem (Tabela NAT) ▫ #iptables -t nat -A PREROUTING -s 10.0.0.0/8 -p tcp --dport 80 -j REDIRECT --to-port 3128 • Todos os pacotes TCP que vierem da rede 10.0.0.0, com máscara 255.0.0.0, destinados à porta 80 de qualquer host, não sairão; serão redirecionados para a porta 3128 do filtro. • Isso é o passo necessário para fazer um proxy transparente. O proxy utilizado deverá aceitar esse tipo de recurso. • No caso, o Squid, que aceita transparência, deverá estar instalado na máquina filtro, servindo na porta 3128. 30
    • Exemplos comentados de regras de filtragem (Tabela NAT) ▫ #iptables -t nat -A PREROUTING -d 200.135.203.20 -p tcp --dport 22 -j DNAT --to 172.29.50.12 • Todos os pacotes com destino a 200.135.203.20 via protocolo TCP na porta 22, serão redirecionados para o endereço 172.29.50.12 . ▫ #iptables -t nat -A PREROUTING -d 172.29.45.45 -p tcp --dport 5900 -j REDIRECT --to-port 6500 • Todos os pacotes com destino a 172.29.50.12 via protocolo TCP na porta 5900, serão redirecionados para a porta 6500 . 31
    • Tabelas FILTER e NAT. 32
    • Filter e NAT • As tabelas FILTER e NAT podem atuar em conjunto, funcionando em paralelo. • Há de se ter cuidado pois, como já disse, elas atuam em paralelo, como duas pilhas que serão executadas ao mesmo tempo. Assim sendo, se tivermos as regras: ▫ #iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -o eth0 -j MASQUERADE ▫ #iptables -A FORWARD -j DROP • Apesar da primeira (tabela nat) possibilitar a navegação mascarada da rede 10.0.0.0 na Internet, essa navegação não ocorrerá, pois a segunda regra (Tabela Filter) irá barrar o FORWARD entre as redes. 33
    • Topologia de Filtros de Pacotes 34
    • Topologia de Filtros de Pacotes • O posicionamento de um filtros de pacotes dentro da rede é de extrema importância para ela. • Pode-se utilizar dois tipos de filtros de pacotes: filtro isolado (mais seguro) e filtro incorporado (sendo este último o mais inseguro e menos desejável). • O filtro será isolado quando estiver entre máquinas, com função exclusiva de filtro: 35
    • Topologia de Filtros de Pacotes • O filtro será incorporado quando não houver uma máquina isolada como filtro. • Nesse caso, as máquinas da rede deverão estabelecer, individualmente, as suas próprias regras de filtragem. É o sistema mais inseguro: 36 • Nada impede que os dois sistemas sejam utilizados em parceria, oferendo assim um alto grau de segurança à rede. Cabe ressaltar que no filtro incorporado há maior nível de insegurança, uma vez que outros processos rodam junto com o filtro.
    • Dúvidas? 37
    • Exercícios • Considere o seguinte esquema de rede: 38
    • Exercícios • Regras para servidor S: 1. Todas as conexões recebidas na porta 8008 devem ser redirecionadas a porta 22. 2. O único host da rede B que poderá se conectar será o: Y. 3. Toda a rede A poderá acessar o servidor S. 4. Bloquear outras conexões a essa porta. 5. Quando o servidor tentar acessar o site www.facebook.com.br e www.facebook.com, redirecionar para 177.99.179.99.  iptables -t nat -A PREROUTING -p tcp --dport 8008 -j REDIRECT --to-port 22  iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT  iptables -A INPUT -s 172.29.0.3 -p tcp --dport 22 -j ACCEPT  iptables -A INPUT -p tcp --dport 22 -j DROP  iptables -t nat -A OUTPUT -d www.facebook.com -j DNAT --to 177.99.179.99  iptables -t nat -A OUTPUT -d www.facebook.com.br -j DNAT --to 177.99.179.99 39
    • Exercícios • Regras para roteador R: 1. Mascarar todas os pacotes que irão sair da rede B. 2. Mascarar todas os pacotes que irão sair do servidor S. 3. Todas as conexões recebidas na porta 80 devem ser redirecionadas para o servidor S. 4. Quando a máquina X tentar enviar qualquer pacote para a máquina A redirecionar para o servidor S. 5. Todos os pacotes originados na rede A devem ser redirecionados e balanceados na rede B  iptables -t nat -A POSTROUTING -s 192.168.1.0/16 -j MASQUERADE  iptables -t nat -A POSTROUTING -s 200.143.81.25 -j MASQUERADE  iptables -t nat -A PREROUTING -p tcp -d 200.143.81.20 --dport 80 -j DNAT --to 200.143.81.25  iptables -t nat -A PREROUTING -p tcp -s 192.168.0.4 -d 172.20.0.2 -j DNAT --to 200.143.81.25  iptables -t nat -A PREROUTING -s 172.29.0.0/16 -j DNAT --to 192.168.0.4- 192.168.0.5 40
    • Exercícios • Regras para B: 1. Todas os pacotes para acesso de Internet deverão ser redirecionados para o ip 177.99.179.99.  iptables -t nat -A PREROUTING -p tcp -d 0/0 --dport 80 -j DNAT --to 177.99.179.99 41
    • Dúvidas? 42
    • Firewall Iptables - NAT Prof. Andrei Carniel Universidade Tecnológica Federal do Paraná – UTFPR E-mail: andreicarniel@utfpr.edu.br / andrei.carniel@gmail.com