Aula 8.1 - Iptables tabela Filter

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

description

Descrição básica sobre IPTables e a tabela Filter, para gerenciamento de pacotes.

Transcript of Aula 8.1 - Iptables tabela Filter

Page 1: Aula 8.1 - Iptables tabela Filter

Firewall Iptables - FilterProf. Andrei Carniel

Universidade Tecnológica Federal do Paraná – UTFPR

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

Page 2: Aula 8.1 - Iptables tabela Filter

Firewall Iptables (1/4)

• O IPTables é uma versão robusta, completa e tão estável quanto seus antecessores IPFWADM e IPCHAINS, implementados nos KernelsLinux 2.0 e 2.2 respectivamente.

• IPTables é um firewall muito conhecido na comunidade Linux que foi incorporado ao mesmo em 1999.

• Principais características:

Filtro de Pacotes (Foco dessa aula)

NAT

QoS sobre tráfego

Redirecionamento de endereços e portas

Detecção de fragmentos

Bloqueio de ataques

Entre outros.

2

Page 3: Aula 8.1 - Iptables tabela Filter

Firewall Iptables (2/4)

• Surgiu com o objetivo de proteger as máquinas de acessos ou tráfego indesejado.

• Proteger serviços que estejam rodando na máquina.

• Bloquear a passagem de algo que não deseja receber (por exemplo: conexões vindas da Internet).

• Foi introduzido no kernel 2.4 do Linux.

• É um firewall em nível de pacotes, com funcionamento baseado em endereço e porta de origem/destino, prioridade, entre outros.

• Seu funcionamento é baseado na comparação de regras para saber se um pacote pode ou não passar.

3

Page 4: Aula 8.1 - Iptables tabela Filter

Firewall Iptables (3/4)

• Pode ser usado para:

▫ Monitorar e/ou modificar tráfego de rede, efetuar NAT (masquerading, source NAT, destination NAT);

▫ Redirecionamento de pacotes;

▫ Marcação de pacotes;

▫ Modificação de prioridade dos pacotes de entrada/saída;

▫ Contagem de bytes;

▫ Divisão de tráfego;

▫ Proteção anti-spoofing (pacotes com IP falsificado);

▫ Proteção contra syn flood (forma de negação de serviço);

▫ Proteção contra DoS (forma de negação de serviço);

▫ Etc.

4

Page 5: Aula 8.1 - Iptables tabela Filter

Firewall Iptables (4/4)

• Não funciona de forma automática, ou seja, somente instalar e esperar que ele faça o resto.

• É necessário pelo menos conhecimentos básicos em redes TCP/IP e roteamento e portas.

• Esses conhecimentos são necessários para criar regras de segurança.

• Lembre-se:

▫ A segurança do sistema depende do conjunto de regras que serão criados por você;

▫ 95% das invasões de sucesso são devido a falhas humanas na configuração;

• Trabalharemos principalmente com a função Filtro de Pacotes que é a mais utilizada no IPTables, bloqueando e permitindo serviços em uma rede.

5

Page 6: Aula 8.1 - Iptables tabela Filter

Filter

6

Page 7: Aula 8.1 - Iptables tabela Filter

Chains – Lista de regras

• Basicamente para filtragem de pacotes existem basicamente três tipos de chains, são elas:

▫ INPUT --> Refere-se a todos os pacotes destinados à máquina filtro.

▫ OUTPUT --> Refere-se a todos os pacotes gerados na máquina filtro.

▫ FORWARD --> Refere-se a todos os pacotes oriundos de uma máquina e

destinados a outra. São pacotes que atravessam a máquina filtro, mas não são destinados a ela.

7

Page 8: Aula 8.1 - Iptables tabela Filter

Chains – Lista de regras

• Para verificar as regras em nas CHAINS, digite:

▫ # iptables -L

• O resultado deve ser algo como:

Chain INPUT (policy ACCEPT)

target prot opt source destination

Chain FORWARD (policy ACCEPT)

target prot opt source destination

Chain OUTPUT (policy ACCEPT)

target prot opt source destination

8

Page 9: Aula 8.1 - Iptables tabela Filter

Chains – Lista de regras

• Note que não existem regras em qualquer das CHAINS, mas o policypadrão é ACCEPT, ou seja, aceite qualquer pacote de qualquer

origem/destino.

• Outra observação importante aqui é que o comando acima nos mostrou a as 3 tabelas disponíveis.

• Sempre que formos inserir uma nova regra podemos utilizar a opção -t filter para especificar a tabela, mas essa opção não é

obrigatória.

9

Page 10: Aula 8.1 - Iptables tabela Filter

Manipulando Chains

• O Iptables trabalha com uma tabela de regras que é analisada uma a uma até que a última seja processada.

• Por padrão, se uma regra tiver qualquer erro, uma mensagem será mostrada e ela descartada.

• O pacote não conferirá e a ação final (se ele vai ser aceito ou rejeitado) dependerá das regras seguintes.

• Agora que sabemos a existência das três CHAINS, devemos usar comandos para adicionar regras:

10

Page 11: Aula 8.1 - Iptables tabela Filter

Manipulando Chains

Principais comandos para inclusão e exclusão de chains!

11

Page 12: Aula 8.1 - Iptables tabela Filter

Manipulando Chains

• Sintaxe padrão:

▫ #iptables -[COMANDO] [CHAIN] [TARGET]

• Exemplo:

▫ #iptables –P INPUT DROP

• Todos os pacotes por default serão rejeitados.

12

Page 13: Aula 8.1 - Iptables tabela Filter

Manipulando Chains – Inclusão e Exclusão (1/5)

• -P --> Policy (política). Altera a política da chain. A política inicial de cada chain é ACCEPT.

• Isso faz com que o filtro, inicialmente, aceite qualquer INPUT,OUTPUT ou FORWARD.

• A política pode ser alterada para DROP, que irá negar o serviço da chain, até que uma opção -A entre em vigor.

• O -P não aceita REJECT ou LOG. Exemplos:

▫ #iptables -P FORWARD DROP

▫ #iptables -P INPUT ACCEPT

13

Page 14: Aula 8.1 - Iptables tabela Filter

Manipulando Chains – Inclusão e Exclusão (2/5)

• -A --> Append (anexar). Acresce uma nova regra à chain.

• Tem prioridade sobre o -P.

• Geralmente, como buscamos segurança máxima, colocamos todas as chains em política DROP, com o -P e, depois, abrimos o que é necessário com o -A.

• Exemplos:

▫ #iptables -A OUTPUT -d 172.20.5.10 -j ACCEPT

▫ #iptables -A FORWARD -s 10.0.0.1 -j DROP

▫ #iptables -A FORWARD -d www.chat.com.br -j DROP

14

Page 15: Aula 8.1 - Iptables tabela Filter

Manipulando Chains – Inclusão e Exclusão (3/5)

• -D --> Delete (apagar). Apaga uma regra.

• A regra deve ser escrita novamente, trocando-se a opção para -D.

Exemplos:

• Para apagar as regras anteriores, usa-se:

▫ #iptables -D OUTPUT -d 172.20.5.10 -j ACCEPT

▫ #iptables -D FORWARD -s 10.0.0.1 -j DROP

▫ #iptables -D FORWARD -d www.chat.com.br -j DROP

15

Page 16: Aula 8.1 - Iptables tabela Filter

Manipulando Chains – Inclusão e Exclusão (4/5)

• Também é possível apagar a regra pelo seu número de ordem.

• Pode-se utilizar o -L para verificar o número de ordem.

• Verificado esse número, basta citar a chain e o número de ordem. Exemplo:

▫ #iptables -D FORWARD 4

• Isso deleta a regra número 4 da chain FORWARD.

16

Page 17: Aula 8.1 - Iptables tabela Filter

Manipulando Chains – Inclusão e Exclusão (5/5)

• -L --> List (listar). Lista as regras existentes. Exemplos:

▫ #iptables -L

▫ #iptables -L FORWARD (Lista apenas da Chain FORWARD)

• -F --> Flush (esvaziar). Remove todas as regras existentes. No entanto, não altera a política (-P). Exemplos:

▫ #iptables -F

▫ #iptables -F FORWARD (Remove apenas regras da Chain FORWARD)

17

Page 18: Aula 8.1 - Iptables tabela Filter

Manipulando Chains – Inclusão e Exclusão (6/6)

• -I --> Insert(inserir). Insere uma nova regra no início da

lista. Exemplos:

▫ #iptables –I OUTPUT –d 200.200.2 –j ACCEPT

• -N --> New(nova). Adiciona uma nova chain.

▫ #iptables -N internet

• Para adicionar uma regra na chain:

▫ #iptables -A internet -d 127.0.0.1 -j DROP

• Para deletar uma chain:

▫ #iptables -X internet

18

Page 19: Aula 8.1 - Iptables tabela Filter

Manipulando Chains

Principais comando para manipulação de

origem e destino!

19

Page 20: Aula 8.1 - Iptables tabela Filter

Manipulando Chains – Origem e Destino (1/4)

• -s --> Source (origem). Estabelece a origem do pacote.

• Geralmente é uma combinação do endereço IP com a máscara de sub-rede, separados por uma barra. Exemplo:

▫ #-s 172.20.0.0/255.255.0.0

• No caso, vimos a sub-rede 172.20.0.0. Para hosts, a máscara sempre será 255.255.255.255. Exemplo:

▫ #-s 172.20.5.10/255.255.255.255

20

Page 21: Aula 8.1 - Iptables tabela Filter

Manipulando Chains – Origem e Destino (2/4)

• Agora vimos o host 172.20.5.10. Ainda no caso de hosts, a máscara pode ser omitida.

• Caso isso ocorra, o Iptables considera a máscara como 255.255.255.255. Exemplo:

▫ #-s 172.20.5.10

• Isso corresponde ao host 172.20.5.10. Há um recurso para simplificar a utilização da máscara de sub-rede.

• Basta utilizar a quantidade de bits 1 existentes na máscara. Assim, a máscara 255.255.0.0 vira 16. A utilização fica assim:

▫ #-s 172.20.0.0/16

21

Page 22: Aula 8.1 - Iptables tabela Filter

Manipulando Chains – Origem e Destino (3/4)

• Outra possibilidade é a designação de hosts pelo nome. Exemplo:

▫ #-s www.chat.com.br

• Para especificar qualquer origem, utilize a rota default, ou seja, 0.0.0.0/0.0.0.0, também admitindo 0/0.

• Exemplo Geral:

▫ #iptables -A INPUT -s 200.200.200.0/24 -j DROP

• Bloqueia o tráfego vindo da rede 200.200.200.*.

22

Page 23: Aula 8.1 - Iptables tabela Filter

Manipulando Chains – Origem e Destino (4/4)

• -d --> Destination (destino). Estabelece o destino do

pacote.

• Funciona exatamente como o -s, incluindo a sintaxe.

• Exemplo Geral:

▫ #iptables -A OUTPUT -d 10.1.2.3 -j DROP

• Bloqueia conexões com o destino 10.1.2.3:

23

Page 24: Aula 8.1 - Iptables tabela Filter

Manipulando Chains – Protocolos

• -p --> Protocol (protocolo). Especifica o protocolo a ser

filtrado.

• O protocolo IP pode ser especificado pelo seu número (vide /etc/protocols) ou pelo nome. Os protocolos mais utilizados são udp, tcp e icmp. Exemplo:

▫ #-p icmp

• Exemplo:

▫ #iptables -A OUTPUT -d 200.200.200.20 -p tcp -j DROP

• Bloqueia qualquer pacote com destino para 200.200.200.20 via protocolo TCP.

24

Page 25: Aula 8.1 - Iptables tabela Filter

Manipulando Chains – Interface de Rede (1/3)

• -i --> In-Interface (interface de entrada). Especifica a

interface de entrada.

• As interfaces existentes podem ser vistas com o comando #ifconfig.

• Exemplo:

▫ #-i ppp0

• O -i não pode ser utilizado com a chain OUTPUT.

25

Page 26: Aula 8.1 - Iptables tabela Filter

Manipulando Chains – Interface de Rede (2/3)

• O sinal + pode ser utilizado para simbolizar várias interfaces.

• Exemplo:

▫ #-i eth+

• eth+ refere-se à eth0, eth1, eth2 e etc.

• Exemplo geral:

▫ #iptables -A FORWARD -i eth0 -j ACCEPT

• Os pacotes que entrarem pela interface eth0 serão aceitos.

26

Page 27: Aula 8.1 - Iptables tabela Filter

Manipulando Chains – Interface de Rede (3/3)

• -o --> Out-Interface (interface de saída). Especifica a

interface de saída.

• Similar a -i, inclusive nas flexibilidades.

• O -o não pode ser utilizado com a chain INPUT.

• Exemplo:

▫ #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.

27

Page 28: Aula 8.1 - Iptables tabela Filter

Manipulando Chains – Portas (1/2)

• --sport --> Source Port. Porta de origem.

• Só funciona com as opções -p udp e -p tcp. Exemplo:

▫ #-p tcp --sport 80

• Refere-se à porta 80 sobre protocolo TCP.

• Exemplo:

▫ #iptables -A OUTPUT -d 200.200.200.20 -p tcp --sport

100:1023 -j DROP

• Bloqueia qualquer pacote com destino a 200.200.200.20, que utiliza protocolo TCP e se originou na faixa de portas 100 a 1023.

28

Page 29: Aula 8.1 - Iptables tabela Filter

Manipulando Chains – Portas (2/2)

• --dport --> Destination Port. Porta de destino.

• Só funciona com as opções -p udp e -p tcp.

• Similar a --sport.

• Exemplo:

▫ #iptables -A OUTPUT -d 200.200.200.20 -p tcp --dport

100:1023 -j DROP

• Bloqueia qualquer pacote com destino a 200.200.200.20, que utiliza protocolo TCP e tem como destino qualquer porta da faixa de 100 a 1023.

29

Page 30: Aula 8.1 - Iptables tabela Filter

Manipulando Chains – Exclusão (1/2)

• ! --> Exclusão. Utilizado com -s, -d, -p, -i, -o e outros,

para excluir o argumento.

• Funciona para muitos parâmetros, como o endereço de origem/destino, protocolo, porta, mensagens ICMP, fragmentos, etc... podem ser precedidos pelo sinal “!” que significa exceção

• Exemplo:

▫ #-s ! 10.0.0.1

• Isso refere-se a qualquer endereço de entrada, exceto o 10.0.0.1.

▫ #-p ! tcp

• Todos os protocolos, exceto o TCP.

30

Page 31: Aula 8.1 - Iptables tabela Filter

Manipulando Chains – Exclusão (2/2)

• Exemplos:

▫ #iptables -A INPUT ! -s 200.200.200.10 -p tcp -j DROP

• Diz para rejeitar todos os pacotes EXCETO os que vem do endereço 200.200.200.10 .

▫ #iptables -A INPUT -s 200.200.200.10 ! -p tcp -j DROP

• Bloqueia todos os pacotes vindos de 200.200.200.10, EXCETO os do protocolo TCP.

31

Page 32: Aula 8.1 - Iptables tabela Filter

Manipulando Chains

• O alvo (-j) é o destino que um pacote terá quando conferir com as condições de uma regra.

32

Page 33: Aula 8.1 - Iptables tabela Filter

Manipulando Chains – Jump Target

• Isto especifica o alvo da regra, isto é, o que fazer se o pacote corresponde a ele.

• O alvo pode ser uma cadeia definida pelo usuário, um dos alvos embutidos especiais, que decidem o destino do pacote imediatamente, ou uma extensão.

• Se esta opção for omitido em regra, a regra não é usada, então a regra de correspondência não irá ter qualquer efeito sobre o destino do pacote, mas os contadores na regra será incrementado.

33

Page 34: Aula 8.1 - Iptables tabela Filter

Manipulando Chains – Jump Target

• ACCEPT --> Aceitar. Permite a passagem do pacote normalmente.

• DROP --> Abandonar. Não permite a passagem do pacote, ele será

descartado. Não avisa a origem sobre o ocorrido.

• REJECT --> Igual ao DROP, mas avisa a origem sobre o ocorrido (envia pacote icmp unreachable).

• LOG --> Cria um log referente à regra, em /var/log/messages.

Usar antes de outras ações¹.

¹ : LOG é uma extensão não terminal, ou seja, mesmo que seja validado em uma regra ele continuará a ser avaliado pelas regras subsequentes. Portanto se quiser descartar o pacote terá que criar uma mesma regra mas com a target DROP ou REJECT, ou colocar a política default como DROP.

34

Page 35: Aula 8.1 - Iptables tabela Filter

Manipulando Chains – Jump Target

• Caso seja necessário criar uma regra onde seja efetuado o LOG de um determinado pacote e logo após a exclusão dele, deve-se configurar da seguinte maneira:

▫ #iptables -A INPUT -s 200.200.200.1 -i eth0 -j LOG

• Para registrar o bloqueio de pacotes vindos de 200.200.200.1 pela interface eth0.

▫ #iptables -A INPUT -s 200.200.200.1 -i eth0 -j REJECT

• Para efetuar o bloqueio. Note que no exemplo anterior a regra que registra o pacote (-j LOG) deve aparecer antes da regra que REJEITA(-j REJECT), caso contrário a regra nunca funcionará.

35

Page 36: Aula 8.1 - Iptables tabela Filter

Manipulando Chains

• Manipulação de pacotes para iniciar conexão (pacotes syn).

36

Page 37: Aula 8.1 - Iptables tabela Filter

Manipulando Chains – Pacotes SYN

• Pacotes syn são usados para iniciarem uma conexão.

• O uso da opção --syn serve para especificar estes tipos de pacotes.

Desta maneira é possível bloquear somente os pacotes que iniciam uma conexão, sem afetar os pacotes restantes.

• Para que uma conexão ocorra é necessário que a máquina obtenha a resposta a pacotes syn enviados, caso ele seja bloqueado a resposta nunca será retornada e a conexão não será estabelecida.

▫ #iptables -A INPUT -p tcp --syn --dport 23 -i eth1 -j

DROP

• A regra acima bloqueia (-j DROP) qualquer tentativa de conexão (--syn) vindas da interface eth1 ao telnet (--dport 23) da máquina local. A opção --syn somente pode ser especificada para o protocolo TCP.

37

Page 38: Aula 8.1 - Iptables tabela Filter

Lógica de Regras

• Funcionamento das regras.

38

Page 39: Aula 8.1 - Iptables tabela Filter

Lógica das Regras (1/5)

• Observe os próximos exemplos:

• Exemplo A:

▫ #iptables -A INPUT -p ICMP -s 10.0.0.10 -j ACCEPT

▫ #iptables -A INPUT -p ICMP -j DROP

• Podemos concluir o seguinte:

• Exemplo A: todos os pings da máquina 10.0.0.10 serão aceitos, os outros pings serão deletados.

39

Page 40: Aula 8.1 - Iptables tabela Filter

Lógica das Regras (2/5)

• Exemplo B:

▫ #iptables -A INPUT -p ICMP -j DROP

▫ #iptables -A INPUT -p ICMP -s 10.0.0.10 -j ACCEPT

• Podemos concluir o seguinte:

• Exemplo B: todos os pings serão deletados, até mesmo os da máquina 10.0.0.10.

• Ou seja: a ordem da regras importam!

• Obs.: no caso do LOG, a regra mesmo que executada, passará para a próxima condição.

40

Page 41: Aula 8.1 - Iptables tabela Filter

Lógica das Regras (3/5)

• Impasses e ordem de processamento

• Se houver impasse entre regras, sempre valerá a primeira. Assim, entre as regras:

▫ #iptables -A FORWARD -p icmp -j DROP

▫ #iptables -A FORWARD -p icmp -j ACCEPT

• Valerá:

▫ #iptables -A FORWARD -p icmp -j DROP

41

Page 42: Aula 8.1 - Iptables tabela Filter

Lógica das Regras (4/5)

• Impasses e ordem de processamento

• Já entre as regras:

▫ #iptables -A FORWARD -p icmp -j ACCEPT

▫ #iptables -A FORWARD -p icmp -j DROP

• Valerá:

▫ #iptables -A FORWARD -p icmp -j ACCEPT

42

Page 43: Aula 8.1 - Iptables tabela Filter

Lógica das Regras (5/5)

• Essas situações ocorrem porque as regras são processadas na ordem em que aparecem.

• Depois do processamento da regra, pode haver continuidade de processamento ou não.

• Isso irá depender da ação:▫ ACCEPT --> Para de processar regras para o pacote atual;

▫ DROP --> Para de processar regras para o pacote atual;

▫ REJECT --> Para de processar regras para o pacote atual;

▫ LOG --> Continua a processar regras para o pacote atual;

43

Page 44: Aula 8.1 - Iptables tabela Filter

Regras Comentadas

• Exemplo de funcionamento das regras.

44

Page 45: Aula 8.1 - Iptables tabela Filter

Regras comentadas (1/6)

• Regras:

▫ #iptables -L

• Lista todas as regras existentes.

▫ #iptables -F

• Apaga todas as regras sem alterar a política.

▫ #iptables -P FORWARD DROP

• Estabelece uma política de proibição padrão para a passagem de pacotes entre sub-redes.

45

Page 46: Aula 8.1 - Iptables tabela Filter

Regras comentadas (2/6)

▫ #iptables -A FORWARD -j DROP

• Todos os pacotes oriundos de qualquer sub-rede e destinados a qualquer sub-rede deverão ser descartados.

▫ #iptables -A FORWARD -j ACCEPT

• Todos os pacotes oriundos de qualquer sub-rede e destinados a qualquer sub-rede deverão ser aceitos.

▫ #iptables -A FORWARD -s 10.0.0.0/8 -d www.chat.com.br -j

DROP

• Os pacotes oriundos da sub-rede 10.0.0.0 (máscara 255.0.0.0) e destinados aos hosts cujos endereços IP respondem pelo nome www.chat.com.br deverão ser descartados. Note que se a máquina possuir domínios virtuais, todos esses serão bloqueados.

46

Page 47: Aula 8.1 - Iptables tabela Filter

Regras comentadas (3/6)

▫ #iptables -A FORWARD -s 10.0.0.0/8 -d www.chat.com.br -j

REJECT

• Os pacotes oriundos da sub-rede 10.0.0.0 (máscara 255.0.0.0) e destinados aos hosts cujos endereços IP respondem pelo nome www.chat.com.br deverão ser descartados. Deverá ser enviado um ICMP avisando à origem.

▫ #iptables -A FORWARD -d www.chat.com.br -j DROP

• Os pacotes oriundos de qualquer lugar e destinados aos hosts cujos endereços IP respondem pelo nome www.chat.com.br deverão ser descartados.

47

Page 48: Aula 8.1 - Iptables tabela Filter

Regras comentadas (4/6)

▫ #iptables -A FORWARD -d 10.0.0.0/8 -s www.chat.com.br -j

DROP

• Os pacotes destinados à sub-rede 10.0.0.0 (máscara 255.0.0.0) e oriundos aos hosts cujos endereços IP respondem pelo nome www.chat.com.br deverão ser descartados.

▫ #iptables -A FORWARD -s www.chat.com.br -j DROP

• Os pacotes oriundos aos hosts cujos endereços IP respondem pelo nome www.chat.com.br e destinados a qualquer lugar deverão ser descartados.

▫ #iptables -A FORWARD -s 200.221.20.0/24 -j DROP

• Os pacotes oriundos da sub-rede 200.221.20.0 (máscara 255.255.255.0) e destinados a qualquer lugar deverão ser descartados.

48

Page 49: Aula 8.1 - Iptables tabela Filter

Regras comentadas (5/6)

▫ #iptables -A FORWARD -s 10.0.0.5 -p icmp -j DROP

• Os pacotes icmp oriundos do host 10.0.0.5 e destinados a qualquer lugar deverão ser descartados.

▫ #iptables -A FORWARD -i eth0 -j ACCEPT

• Os pacotes que entrarem pela interface eth0 serão aceitos.

▫ #iptables -A FORWARD -i ! eth0 -j ACCEPT

• Os pacotes que entrarem por qualquer interface, exceto a eth0, serão aceitos.

49

Page 50: Aula 8.1 - Iptables tabela Filter

Regras comentadas (6/6)

▫ #iptables -A FORWARD -s 10.0.0.5 -p tcp --sport 80 -j

LOG

• O tráfego de pacotes TCP oriundos da porta 80 do host 10.0.0.5 e destinados a qualquer lugar deverá ser gravado em log. No caso, /var/log/messages.

▫ #iptables -A FORWARD -p tcp --dport 25 -j ACCEPT

• Os pacotes TCP destinados à porta 25 de qualquer host deverão ser aceitos.

50

Page 51: Aula 8.1 - Iptables tabela Filter

Dúvidas?

51

Page 52: Aula 8.1 - Iptables tabela Filter

Exercícios

• Responda os exercícios assumindo que sua máquina irá assumir a posição do host informado no exercício.

52

Page 53: Aula 8.1 - Iptables tabela Filter

Exercícios

• Responda os exercícios de acordo com a seguinte topologia:

53

Page 54: Aula 8.1 - Iptables tabela Filter

Exercícios

• 1 - Algumas regras para o roteador “R”:

a) Não permita que a rede 192.168/16 envie pings para o servidor “S”.

b) Não permita que a máquina “B” envie pacotes UDP para a máquina “Y”.

54

Page 55: Aula 8.1 - Iptables tabela Filter

Exercícios

• 2 - Algumas regras para o servidor “S”:

a) Só será permitido à máquina “X” fazer telnet (baseado em TCP e opera na porta 23) no servidor.

b) A máquina “B” está proibida de acessar TFTP no servidor.

c) A rede 172.29/16 está proibida de enviar e-mails pelo servidor. E se alguém tentar, registrar em log.

55

Page 56: Aula 8.1 - Iptables tabela Filter

Exercícios

• 3 - Algumas regras para a máquina “A”:

a) Só será permitido resolver DNS pelo servidor “S”.

b) A única página web que se permite acessar é a que está no servidor “S”. Bloquear e registrar em log outras tentativas.

56

Page 57: Aula 8.1 - Iptables tabela Filter

Respostas

57

Page 58: Aula 8.1 - Iptables tabela Filter

Exercício 1

• 1 - Algumas regras para o roteador “R”:

a) Não permita que a rede 192.168/16 envie pings para o servidor “S”.

(policy = ACCEPT)

#iptables -A FORWARD -p ICMP -s 192.168.0.0/16 -d

200.143.81.25 -j REJECT

b) Não permita que a máquina “B” envie pacotes UDP para a máquina “Y”.

#iptables -A FORWARD -p UDP -s 172.29.0.3 -d

192.168.0.5 -j DROP

58

Page 59: Aula 8.1 - Iptables tabela Filter

Exercício 2

• 2 - Algumas regras para o servidor “S”:

a) Só será permitido à máquina “X” fazer telnet (baseado em TCP e opera na porta 23) no servidor. (policy = ACCEPT)

#iptables -A INPUT -s 192.168.0.4 -p TCP --dport 23 -j

ACCEPT

#iptables -A INPUT -p TCP --dport 23 -j DROP

b) A máquina “B” está proibida de acessar TFTP no servidor. #iptables -A INPUT -s 172.29.0.3 -p UDP --dport 69 -j DROP

c) A rede 172.29/16 está proibida de enviar e-mails pelo servidor. E se alguém tentar, registrar em log. #iptables -A INPUT -s 172.29.0.0/16 -p TCP --dport 25 -j LOG

#iptables -A INPUT -s 172.29.0.0/16 -p TCP --dport 25 -j

DROP

#iptables -A INPUT -s 172.29.0.0/16 -p TCP --dport 587 -j

LOG

#iptables -A INPUT -s 172.29.0.0/16 -p TCP --dport 587 -j

DROP

59

Page 60: Aula 8.1 - Iptables tabela Filter

Exercício 3

• 3 - Algumas regras para a máquina “A”:

a) Só será permitido resolver DNS pelo servidor “S”.

(policy = ACCEPT)

#iptables -A OUTPUT -d 200.143.81.25 -p UDP --dport 53

-j ACCEPT

#iptables -A OUTPUT -p UDP --dport 53 -j DROP

b) A única página web que se permite acessar é a que está no servidor “S”. Bloquear e registrar em log outras tentativas.

#iptables -A OUTPUT -d 200.143.81.25 -p TCP --dport 80

-j ACCEPT

#iptables -A OUTPUT -p TCP --dport 80 -j LOG

#iptables -A OUTPUT -p TCP --dport 80 -j DROP

60

Page 61: Aula 8.1 - Iptables tabela Filter

Outras Dúvidas?

61

Page 62: Aula 8.1 - Iptables tabela Filter

Firewall Iptables - FilterProf. Andrei Carniel

Universidade Tecnológica Federal do Paraná – UTFPR

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