Você está na página 1de 28

Projeto de Ensino

Grupo de Estudos em Tecnologia de Redes e


Processamento Paralelo

iptables
Prof. Luiz Antonio
Unioeste

Introduo

Firewall

O Firewall um programa que tem como objetivo


proteger a mquina contra acessos indesejados,
trfego indesejado e proteger servios que estejam
rodando na mquina.

Tipos de Firewall

Nvel de Aplicao

Nvel de Pacotes

iptables

Aspectos gerais

um firewall em nvel de pacotes

Baseado em regras

Tambm funciona como NAT

Altamente flexvel
SNAT
DNAT

Instalao (Debian)
apt-get install iptables
3

iptables

Pacote

iptables - Sistema de controle para ipv4

ip6tables - Sistema de controle para ipv6

iptables-save - Salva as regras atuais

iptables-restore - Restaura regras salvas pelo


iptables-save

Log

Padro /var/log/kern.log.
4

iptables

O que so regras?

So como comandos passados ao iptables para


que ele realize uma determinada ao

Ex.: iptables

As regras so processadas na ordem em que so


inseridas nos chains

-A INPUT -s 123.123.123.1 -j DROP

O que so chains?

So locais onde as regras so armazenadas

Ex.: INPUT, OUTPUT e FORWARD


5

iptables

O que so tabelas?

So os locais usados para armazenar os chains

3 tabelas:

filter
nat
mangle

Tabela tabela1
Chain CHAIN1
Regra1: ...
Regra2: ...
RegraN: ...

Chain CHAIN2
Regra1: ...
Regra2: ...
RegraN: ...

Chain CHAINn
Regra1: ...
Regra2: ...
RegraN: ...

Tabela filter

Tabela padro

3 chains:

INPUT - para dados que chegam a mquina

OUTPUT - para dados que saem da mquina

FORWARD - para dados que so redirecionados


para outra interface de rede ou outra mquina

Tabela nat

Usada para dados que geram outra conexo

masquerading

source nat

destination nat

proxy transparente

3 chains

PREROUTING

OUTPUT

POSTROUTING
8

Tabela mangle

Utilizada para alteraes especiais de pacotes

Ex.: modificar o tipo de servio

Chains

INPUT

FORWARD

PREROUTING

POSTROUTING

OUTPUT
9

IP masquerading

Conecta sua rede interna a Internet de forma


rpida e simples

192.168.0.5/24

192.168.0.6/24

Host com
iptables

Acesso a
Internet

eth0: 192.168.0.1/24
eth1: 200.201.81.130/24

192.168.0.11/24

LAN

WAN

10

IP masquerading

No host com iptables (Servidor)


iptables -t nat -A POSTROUTING -s
192.168.1.0/24 -j MASQUERADE
echo "1" >/proc/sys/net/ipv4/ip_forward

Nos demais hosts


Configurar gateway com ip do servidor

11

Manipulao de Chains

Opes para manipular os chains so


SEMPRE em maisculas
Adicionar regras - A

Exemplo: bloquear acesso ao localhost

iptables -t filter -A INPUT -d 127.0.0.1 -j DROP

incluir uma regra no chain INPUT (-A INPUT)

que bloqueia (-j DROP)

qualquer acesso indo ao endereo 127.0.0.1


(-d 127.0.0.1):
12

Manipulao de Chains

Listar regras L

iptables [-t tabela] -L [chain] [opes]

Exemplo:
iptables -t filter -L INPUT
iptables -L INPUT -n --line-numbers

13

Manipulao de Chains

Apagar uma regra D

Por nmero
iptables -t filter -D INPUT 1

Usando a mesma sintaxe da criao


iptables -t filter -D INPUT -d 127.0.0.1 -j
DROP

Inserir uma regra numa posio I

iptables -t filter -I INPUT 1 -s


192.168.1.20 -d 127.0.0.1 -j ACCEPT
14

Manipulao de Chains

Substituir uma regra R

Apagar e incluir a nova

Ou, substituir com -R


iptables -R INPUT 2 -d 127.0.0.1 -p
icmp -j DROP

2 a indicao da linha da regra que sera


substituda

15

Manipulao de Chains

Criar um novo chain N


iptables [-t tabela] [-N novochain]

Exemplo:
#criacao do chain
iptables -t filter -N INTERNET
#regra para o novo chain
iptables -t filter -A INTERNET
-d 192.168.0.20 -j DROP
#jump do chain INPUT para o INTERNET
iptables -t filter -A FORWARD -j INTERNET
16

Manipulao de Chains

Execuo das regras anteriores


Ex.: pacote com endereo de origem
200.200.200.200

Tabela filter
Chain INPUT
Regra1: ...
Regra2: ...
Regra3: -j INTERNET

Chain INTERNET
Regra1: Regra1: -s 200.200.200.200 -j DROP

17

Manipulao de Chains

Renomear um chain criado pelo usurio E


iptables -t filter -E chain-antigo novochain

Limpar as regras de um chain F


iptables [-t tabela] [-F chain]

Obs.: Caso um chain no seja especificado, todos os


chains da tabela sero limpos

Apagar um chain criado pelo usurio X


iptables [-t tabela] [-X chain]
18

Manipulao de Chains

Mudar policiamento padro de um chain P

O policiamento padro ACCEPT

Policiamento permissivo ou restritivo

Sintaxe:

iptables [-t tabela] [-P chain]


[ACCEPT/DROP]

Exemplo:
iptables -t filter -P INPUT DROP

19

Opes do iptables

Endereos de origem e destino

-s (source) e -d (destination)

Aceitam: IP completo, rede/mascara, hostname

Exemplos:

# Bloqueia o trfego vindo da rede 200.200.200.*:


iptables -A INPUT -s 200.200.200.0/24 -j DROP
# Bloqueia conexes com o destino 10.1.2.3:
iptables -A OUTPUT -d 10.1.2.3 -j DROP
# Bloqueia o trfego da mquina
# www.siteproibido.com a maquina 200.201.8.20
iptables -A INPUT -s www.siteproibido.com
-d 200.201.8.20 -j DROP
20

Opes do iptables

Interfaces de origem e destino

-i (in-interface) e -o (out-interface)

Exemplos:

#bloquear dados de 200.123.123.10 vindos da interface ppp0


iptables -A INPUT -s 200.123.123.10 -i ppp0 -j DROP
ou
iptables -A INPUT -s 200.123.123.10 -i ppp+ -j DROP
#bloquear trafego local para a Internet
iptables -A OUTPUT -o ppp+ -j DROP
#bloquear internet para eth1
iptables -A FORWARD -i ppp0 -o eth1 -j DROP
21

Opes do iptables

Especificar um protocolo

-p (protocol)

--sport (source-port) e --dport (destination-port)

Intervalos (0:1023) ou diversas (21,23,25,6667)

Exemplos:

#rejeitar todos os pacotes UDP vindos de 200.200.200.200:


iptables -A INPUT -s 200.200.200.200 -p udp -j DROP
# Bloqueia qualquer pacote indo para 200.200.200.200 na
# faixa de portas 0 a 1023
iptables -A OUTPUT -d 200.200.200.200 -p tcp --dport 0:1023
-j DROP
iptables -A INPUT -p tcp --syn --dport 23 -i ppp+ -j DROP

22

Opes do iptables

Registrar pacotes no syslog


# Para registrar o bloqueio de pacotes vindos de
# 127.0.0.1
iptables -A INPUT -s 127.0.0.1 -j LOG

Salvar e restaurando as regras

iptables-save >/dir/iptables-regras
iptables-restore </dir/iptables-regras

23

Tabela nat

SNAT Source nat

DNAT Destination nat

24

SNAT

#
#
#
#

Modifica o endereo de origem das mquinas


clientes antes dos pacotes serem enviados
Toda operao de SNAT feita no chain
POSTROUTING
Exemplo:

Modifica o endereo IP dos pacotes vindos da mquina 192.168.1.2


da rede interna que tem como destino a interface eth1 para
200.200.217.40 (que # o nosso endereo IP da interface ligada
a Internet).

iptables -t nat -A POSTROUTING


-s 192.168.1.0/24 -o eth0 -j
SNAT --to 200.201.81.110

25

DNAT

Modifica o endereo de destino das mquinas


clientes
muito usado para fazer redirecionamento de
pacotes, proxyes transparentes e
balanceamento de carga
Toda operao de DNAT feita no chain
PREROUTING

26

DNAT

Exemplo:

# Modifica o endereo IP destino dos pacotes de


# 200.201.81.110 vindo da interface eth1 para
# 192.168.1.2.
iptables -t nat -A PREROUTING -s 200.201.81.110 -i
eth1 -j DNAT --to 192.168.1.2

Pode-se usar faixas de destino

iptables -t nat -A PREROUTING -i eth1 -s


200.201.81.110 -j DNAT
--to 192.168.0.2-192.168.0.2

27

DNAT

Redirecionamento de portas REDIRECT

ideal para proxy transparente

iptables -t nat -A PREROUTING -i eth0 -p tcp


--dport 80 -j REDIRECT --to-port 8080

28

Você também pode gostar