aula 8.3 - iptables tabela nat

43
Firewall Iptables - NAT Prof. Andrei Carniel Universidade Tecnológica Federal do Paraná – UTFPR E-mail: [email protected] / [email protected]

Upload: andrei-carniel

Post on 18-Dec-2014

1.104 views

Category:

Education


5 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Aula 8.3 - Iptables Tabela NAT

Firewall Iptables - NATProf. Andrei Carniel

Universidade Tecnológica Federal do Paraná – UTFPR

E-mail: [email protected] / [email protected]

Page 2: Aula 8.3 - Iptables Tabela NAT

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

Page 3: Aula 8.3 - Iptables Tabela NAT

NAT – Mascaramento (1/3)

• O mascaramento é uma forma de fazer NAT (Network AddressTranslation).

• 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

Page 4: Aula 8.3 - Iptables Tabela NAT

NAT – Mascaramento (2/3)

• ...e os entrega aos solicitantes.

4

Page 5: Aula 8.3 - Iptables Tabela NAT

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

Page 6: Aula 8.3 - Iptables Tabela NAT

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

Page 7: Aula 8.3 - Iptables Tabela NAT

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.

Page 8: Aula 8.3 - Iptables Tabela NAT

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

Page 9: Aula 8.3 - Iptables Tabela NAT

NAT – Network Address Translator

9

Page 10: Aula 8.3 - Iptables Tabela NAT

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

Page 11: Aula 8.3 - Iptables Tabela NAT

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

Page 12: Aula 8.3 - Iptables Tabela NAT

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

Page 13: Aula 8.3 - Iptables Tabela NAT

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

Page 14: Aula 8.3 - Iptables Tabela NAT

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

Page 15: Aula 8.3 - Iptables Tabela NAT

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, --sportdefine 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

Page 16: Aula 8.3 - Iptables Tabela NAT

Regras de NAT – Chains

• Obs: A maioria dos dados básicos apresentados para a tabela filtercontinuam valendo.

• Exemplo: -p servirá para definir um protocolo de rede; -d define um

host de destino.

16

Page 17: Aula 8.3 - Iptables Tabela NAT

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

Page 18: Aula 8.3 - Iptables Tabela NAT

Regras de NAT

• Redirecionamentos.

18

Page 19: Aula 8.3 - Iptables Tabela NAT

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

Page 20: Aula 8.3 - Iptables Tabela NAT

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

Page 21: Aula 8.3 - Iptables Tabela NAT

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

Page 22: Aula 8.3 - Iptables Tabela NAT

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

Page 23: Aula 8.3 - Iptables Tabela NAT

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

Page 24: Aula 8.3 - Iptables Tabela NAT

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

Page 25: Aula 8.3 - Iptables Tabela NAT

Exemplos comentados de regras de filtragem

(Tabela NAT)

25

Page 26: Aula 8.3 - Iptables Tabela NAT

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

Page 27: Aula 8.3 - Iptables Tabela NAT

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

Page 28: Aula 8.3 - Iptables Tabela NAT

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

Page 29: Aula 8.3 - Iptables Tabela NAT

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

Page 30: Aula 8.3 - Iptables Tabela NAT

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

Page 31: Aula 8.3 - Iptables Tabela NAT

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

Page 32: Aula 8.3 - Iptables Tabela NAT

Tabelas FILTER e NAT.

32

Page 33: Aula 8.3 - Iptables Tabela NAT

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

Page 34: Aula 8.3 - Iptables Tabela NAT

Topologia de Filtros de Pacotes

34

Page 35: Aula 8.3 - Iptables Tabela NAT

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

Page 36: Aula 8.3 - Iptables Tabela NAT

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.

Page 37: Aula 8.3 - Iptables Tabela NAT

Dúvidas?

37

Page 38: Aula 8.3 - Iptables Tabela NAT

Exercícios

• Considere o seguinte esquema de rede:

38

Page 39: Aula 8.3 - Iptables Tabela NAT

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

Page 40: Aula 8.3 - Iptables Tabela NAT

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 --to200.143.81.25

iptables -t nat -A PREROUTING -p tcp -s 192.168.0.4 -d 172.20.0.2 -j DNAT --to200.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

Page 41: Aula 8.3 - Iptables Tabela NAT

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 --to177.99.179.99

41

Page 42: Aula 8.3 - Iptables Tabela NAT

Dúvidas?

42

Page 43: Aula 8.3 - Iptables Tabela NAT

Firewall Iptables - NATProf. Andrei Carniel

Universidade Tecnológica Federal do Paraná – UTFPR

E-mail: [email protected] / [email protected]