Documente Academic
Documente Profesional
Documente Cultură
Tutorial Básico
1
O que é um Firewall?
2
Arquiteturas de Firewalls
3
Arquiteturas de Firewalls
4
Arquiteturas de Firewalls
5
Aplicações
● Camada de Segurança
● Compartilhamento de Internet
● Perimetração
● Proteção Local
6
Tipos de Firewall
● Stateless:
● Camada de Rede
● Endereço de Origem/Destino, Portas Origem/Destino
● Statefull:
● Camada de Transporte
● Estado das conexões
● Proxy:
● Novo pedido de conexão através de Bastion Host
● Aplicação:
● Camada de Aplicação
7
Cabeçalho IP
8
Por que o Linux?
● Código Aberto
● Firewall nativo em kernel
● Estabilidade / Segurança
● Escrita de módulos
● Várias interfaces de administração
9
Programas p/ firewall em Linux
10
Iptables/netfilter
● Framework de filtragem de pacotes a nível de
kernel em Linux superiores a 2.4
● Stateless packet filtering
● Statefull packet filtering
● Network Address Translation (SNAT/DNAT)
● Infra-estrutura extensível e flexível
● Grande quantidade de plugins e extensões:
QoS, layer7, Level User, etc.
11
Iptables: tabelas
● filter : Tabela padrão. Contém três chains:
INPUT, FORWARD e OUTPUT;
● nat : Tabela para pacotes que queiram criar uma
nova conexão, utilizada em um computador
funcionando como gateway ou roteador. Tem as
chains PREROUTING, OUTPUT e
POSTROUTING;
● mangle : Tabela utilizada para alterações nos
pacotes. Desde o kernel 2.4.18 tem as chains
PREROUTING, OUTPUT, INPUT, FORWARD
e POSTROUTING.
12
Iptables: tratamento dos pacotes
Entrada saída
(interfaces) (interfaces)
Decisão de
PREROUTING roteamento FORWARD POST
(entrada) ROUTING
Decisão de
roteamento
(saída)
INPUT OUTPUT
13 Processamento Local
Iptables: manutenção de regras
● iptables -F
● limpa as regras atuais
● iptables -A
● adiciona uma nova regra
● iptables -D
● exclui uma regra atual
● iptables -I
● Insere uma nova regra c/ prioridade alta
14
Iptables: Targets
● ACCEPT
● deixa o pacote passar
● REJECT
● Rejeita o pacote
● DROP
● “dropa” o pacote. Não retorna resposta p/ remetente.
● LOG
● Registra o pacote em arquivos de log.
15
Iptables: Políticas
● Bloquear TUDO que não for expressamente permitido
● iptables -P INPUT DROP
● iptables -P OUTPUT DROP
● iptables -P FORWARD DROP
16
Iptables: Sintaxe
● -s (--source)
● especifica o endereço de origem. Ex: -s 192.168.1.1
● -d (--destiny)
● especifica o endereço de destino. Ex: -d 192.168.0.1/24
● -p (--protocol)
● especifica o protocolo. Ex: -p tcp
● -sport
● especifica a porta de origem. Ex: --sport 1025
● --dport
● especifica a porta de destino. Ex: --dport 80
17
Iptables: Sintaxe
● -i
● especifica a placa de rede de entrada. Ex: -i eth0
● -o
● especifica a placa de rede de saída. Ex: -o eth1
18
Juntando tudo...
19
Pacotes de Forwarding
20
NAT (Network Address Translation)
21
SNAT: Exemplos
22
DNAT - Host Forwarding
23
Opções de Firewall
24
iptables -L -v -n
25
LOG – Registrando pacotes
● LOG
● --log-level
● --log-prefix
● --log-tcp-sequence
● --log-tcp-options
● --log-ip-options
● iptables -A OUTPUT -o eth0 -j LOG
● iptables -A INPUT -m state --state INVALID -j
LOG --log-prefix "INVALID input: "
26
Exemplo de Log
Jun 25 09:05:11 hebe kernel: IN=eth1 OUT= MAC=00:00:92:a7:df:05:02:07:01:23:5e:29:08:00
SRC=10.90.10.112 DST=10.90.10.116 LEN=44 TOS=0x00
PREC=0x00 TTL=60 ID=7276 PROTO=TCP SPT=47785 DPT=10003 WINDOW=16384 RES=0x00 SYN URGP=0
Jun 25 09:05:11 hebe kernel: IN=eth1 OUT= MAC=00:00:92:a7:df:05:02:07:01:23:5e:29:08:00
SRC=10.90.10.112 DST=10.90.10.116 LEN=44 TOS=0x00
PREC=0x00 TTL=60 ID=7276 PROTO=TCP SPT=47785 DPT=10003 WINDOW=16384 RES=0x00 SYN URGP=0
Jun 25 09:05:12 hebe kernel: IN=eth1 OUT= MAC=ff:ff:ff:ff:ff:ff:00:06:5b:d1:24:bb:08:00
SRC=10.90.50.251 DST=10.90.255.255 LEN=241 TOS=0x00 PREC=0x00 TTL=128 ID=547 PROTO=UDP
SPT=138 DPT=138 LEN=221
Jun 25 09:05:12 hebe kernel: IN=eth1 OUT= MAC=ff:ff:ff:ff:ff:ff:00:06:5b:d1:24:bb:08:00
SRC=10.90.50.251 DST=10.90.255.255 LEN=241 TOS=0x00 PREC=0x00 TTL=128 ID=547 PROTO=UDP
SPT=138 DPT=138 LEN=221
Jun 25 09:05:12 hebe kernel: IN=eth1 OUT= MAC=ff:ff:ff:ff:ff:ff:00:50:04:74:0b:81:08:00
SRC=10.90.10.6 DST=10.90.255.255 LEN=78 TOS=0x00 PREC=0x00 TTL=64 ID=44852 PROTO=UDP SPT=137
DPT=137 LEN=58
Jun 25 09:05:12 hebe kernel: IN=eth1 OUT= MAC=ff:ff:ff:ff:ff:ff:00:50:04:74:0b:81:08:00
SRC=10.90.10.6 DST=10.90.255.255 LEN=78 TOS=0x00 PREC=0x00 TTL=64 ID=44852 PROTO=UDP SPT=137
DPT=137 LEN=58
Jun 25 09:05:15 hebe kernel: IN=eth1 OUT= MAC=ff:ff:ff:ff:ff:ff:00:60:cf:20:2d:37:08:00
SRC=10.90.10.104 DST=10.90.255.255 LEN=78 TOS=0x00 PREC=0x00 TTL=1 ID=60733 DF PROTO=UDP
SPT=137 DPT=137 LEN=58
Jun 25 09:05:15 hebe kernel: IN=eth1 OUT= MAC=ff:ff:ff:ff:ff:ff:00:60:cf:20:2d:37:08:00
SRC=10.90.10.104 DST=10.90.255.255 LEN=78 TOS=0x00 PREC=0x00 TTL=1 ID=60733 DF PROTO=UDP
SPT=137 DPT=137 LEN=58
Jun 25 09:05:23 hebe kernel: IN=eth1 OUT= MAC=00:00:92:a7:df:05:02:07:01:23:5e:29:08:00
SRC=10.90.10.112 DST=10.90.10.116 LEN=44 TOS=0x00
PREC=0x00 TTL=60 ID=11698 PROTO=TCP SPT=4778
27
Interfaces Gráficas
28
Interfaces Gráficas
29
FIM!!!
Sites:
http://www.netfilter.org
http://www.securityfocus.com
30