Conceitos sobre Firewall

Transcrição

Conceitos sobre Firewall
Conceitos sobre Firewall
Redes Multimı́dia
Prof. Emerson Ribeiro de Mello
Instituto Federal de Santa Catarina – IFSC
campus São José
[email protected]
1 de setembro de 2011
1 / 56
Sumário
1
Conceitos sobre Firewall
Tipos de firewall
2
Projetos de firewall
Estratégias de configuração
Perı́metros de segurança
Tradução de endereços de rede – NAT
3
Ferramentas
iptables
Laboratórios com iptables
2 / 56
Sumário
1
Conceitos sobre Firewall
Tipos de firewall
2
Projetos de firewall
Estratégias de configuração
Perı́metros de segurança
Tradução de endereços de rede – NAT
3
Ferramentas
iptables
Laboratórios com iptables
3 / 56
Firewall
Definição convencional: Parede corta fogo
Dispositivo feito de material a prova de fogo para evitar que o fogo se
espalhe de uma parte do edifı́cio para outra
4 / 56
Firewall
Definição convencional: Parede corta fogo
Dispositivo feito de material a prova de fogo para evitar que o fogo se
espalhe de uma parte do edifı́cio para outra
Definição para sistemas computacionais
Ponto de controle que mantém acessos não autorizados fora do perı́metro
de segurança, ao mesmo tempo possibilita acesso aos sistemas externos
ˆ Atua como uma barreira de segurança entre a rede interna e o mundo
exterior
ˆ Evita que potenciais vulnerabilidades de serviços sejam exploradas
ˆ Nenhum software complexo é 100% seguro
ˆ Pode ser classificado como firewall de máquina ou de rede
4 / 56
Firewall de máquina (ou Firewall pessoal)
ˆ Perı́metro de segurança: A própria máquina
ˆ Analisa todo o tráfego entrante e sainte
ˆ Uma forma de proteção contra spywares, máquinas zombis
ˆ As regras podem seguir uma polı́tica de segurança da organização
(mais seguro) ou o próprio usuário pode definir suas regras (menos
seguro)
ˆ Exemplo: Firewall do Microsoft Windows
5 / 56
Firewall de máquina (ou Firewall pessoal)
ˆ Perı́metro de segurança: A própria máquina
ˆ Analisa todo o tráfego entrante e sainte
ˆ Uma forma de proteção contra spywares, máquinas zombis
ˆ As regras podem seguir uma polı́tica de segurança da organização
(mais seguro) ou o próprio usuário pode definir suas regras (menos
seguro)
ˆ Exemplo: Firewall do Microsoft Windows
5 / 56
Firewall de rede
ˆ Perı́metro de segurança: rede local da organização
ˆ Todo o tráfego de dentro para fora, e vice-versa, deverá passar pelo
Firewall
ˆ Somente o tráfego autorizado, definido pela polı́tica de segurança
local, deverá ter permissão para passar
ˆ O próprio Firewall deverá ser imune a invasões
ˆ Implica na utilização de um sistema confiável, com um sistema
operacional seguro e rodando um conjunto mı́nimo de serviços
Perímetro de segurança
Internet
Rede local
Firewall
6 / 56
Caracterı́sticas de um firewall de rede
ˆ Ponto único de controle garante uma maior segurança da rede
ˆ Mesmo que máquinas de clientes não estejam plenamente seguras
ˆ Um bom local para realizar Traduções de Endereços de Rede (NAT) e
registro do tráfego
ˆ Não protege contra ataques oriundos da rede interna
ˆ Não evita que máquinas internas façam uso de modems (3G) e se
conectem à rede externa
7 / 56
Caracterı́sticas de um firewall de rede
ˆ Ponto único de controle garante uma maior segurança da rede
ˆ Mesmo que máquinas de clientes não estejam plenamente seguras
ˆ Um bom local para realizar Traduções de Endereços de Rede (NAT) e
registro do tráfego
ˆ Não protege contra ataques oriundos da rede interna
ˆ Não evita que máquinas internas façam uso de modems (3G) e se
conectem à rede externa
Firewall pessoal + Firewall rede
Se o firewall de rede protege contra ataques oriundos da rede externa, o
firewall pessoal pode proteger contra ataques originados dentro da rede
local
7 / 56
Tipos de Firewall
ˆ Filtro de pacotes (camada de rede)
ˆ Se preocupa com endereço IP de origem/destino, porta de
origem/destino, protocolo utilizado
ˆ Geralmente combinado com roteador
ˆ Inspeção de estado (camada de transporte)
ˆ Não filtram pacotes individuais, o filtro é baseado em regras de sessões
ˆ Gateway no nı́vel de aplicação
ˆ O tráfego é analisado na camada de aplicação
ˆ Hı́bridos
8 / 56
Filtro de pacotes
ˆ Atua na camada de rede e não se preocupa com o conteúdo dos
pacotes
Analisa todo datagrama que passa por este e decide se serão descartados
ou encaminhados
ˆ Endereço IP de origem e de destino
ˆ Porta de origem e de destino
ˆ Interface de entrada e de saı́da
ˆ Protocolo TCP, UDP ou ICMP
9 / 56
Filtro de pacotes – Exemplos
Polı́tica
Configuração do firewall
10 / 56
Filtro de pacotes – Exemplos
Polı́tica
ˆ Máquinas de usuários não
podem gerar SPAM
Configuração do firewall
ˆ Descarte todos pacotes saintes
com destino a porta 25
10 / 56
Filtro de pacotes – Exemplos
Polı́tica
ˆ Máquinas de usuários não
podem gerar SPAM
ˆ Máquinas internas não
podem ser acessadas
remotamente
Configuração do firewall
ˆ Descarte todos pacotes saintes
com destino a porta 25
ˆ Descarte pacotes destinados as
portas do SSH, VNC,
RDesktop
10 / 56
Filtro de pacotes – Exemplos
Polı́tica
ˆ Máquinas de usuários não
podem gerar SPAM
ˆ Máquinas internas não
podem ser acessadas
remotamente
ˆ Usuários podem navegar
na web
Configuração do firewall
ˆ Descarte todos pacotes saintes
com destino a porta 25
ˆ Descarte pacotes destinados as
portas do SSH, VNC,
RDesktop
ˆ Permita o tráfego sainte para
as portas 80 e 443
10 / 56
Inspeção de estado
1
2
ˆ Atua na camada de
transporte (camada 4)
ˆ Não analisa pacotes
individuais
ˆ Mantém estado de todas as
3
4
5
6
7
8
9
10
conexões que passam por
este
ˆ Consegue determinar se um
pacote faz parte de uma
conexão existente ou de uma
nova conexão
11
ˆ TCP Flags: SYN, ACK. . .
19
12
13
14
15
16
17
18
20
21
22
172.18.0.4
|
|
|(41143)
|
|(41143)
|
|(41143)
|
|(41143)
|
|(41143)
|
|(41143)
|
|(41143)
|
|(41143)
|
|(41143)
|
|(41143)
172.18.0.10
|
SYN
|
------------------> (1234)|
SYN, ACK
|
<------------------ (1234)|
ACK
|
------------------> (1234)|
PSH, ACK - Len: 3
|
------------------> (1234)|
ACK
|
<------------------ (1234)|
PSH, ACK - Len: 6
|
<------------------ (1234)|
ACK
|
------------------> (1234)|
FIN, ACK
|
------------------> (1234)|
FIN, ACK
|
<------------------ (1234)|
ACK
|
------------------> (1234)|
11 / 56
Gateway no nı́vel de aplicação
ˆ Atua na camada de aplicação (camada 7), examinando o conteúdo
dos pacotes
ˆ Permite um controle mais granular que aquele presente nos filtros de
pacotes e de sessões
ˆ Ex: Aos usuários internos não é permitido baixar arquivos .EXE
ˆ Pode ser combinado com antivı́rus
ˆ Consome uma carga maior de processamento se comparado a outros
filtros
ˆ A conexão entre clientes e servidores é sempre intermediada
Pacotes originados pelos clientes param no gateway, onde são
analisados
2 Se estiverem de acordo, o gateway inicia uma conexão com o servidor
externo
1
12 / 56
Comparativo entre os tipos de firewall
ˆ Filtro de pacotes
ˆ Inspeção de estados
ˆ Gateway de aplicação
13 / 56
Comparativo entre os tipos de firewall
ˆ Filtro de pacotes
Vantagens Com regras simples é possı́vel se proteger da maioria das
ameaças de segurança
Desvantagens Segurança vs facilidade para usuários
ˆ Inspeção de estados
ˆ Gateway de aplicação
13 / 56
Comparativo entre os tipos de firewall
ˆ Filtro de pacotes
Vantagens Com regras simples é possı́vel se proteger da maioria das
ameaças de segurança
Desvantagens Segurança vs facilidade para usuários
ˆ Inspeção de estados
Vantagens Evita ataques mais elaborados; facilidade para usuários
Desvantagens Aplicações UDP não são atendidas
ˆ Gateway de aplicação
13 / 56
Comparativo entre os tipos de firewall
ˆ Filtro de pacotes
Vantagens Com regras simples é possı́vel se proteger da maioria das
ameaças de segurança
Desvantagens Segurança vs facilidade para usuários
ˆ Inspeção de estados
Vantagens Evita ataques mais elaborados; facilidade para usuários
Desvantagens Aplicações UDP não são atendidas
ˆ Gateway de aplicação
Vantagens Filtro granular baseado em conteúdo; cache;
autenticação de usuários
Desvantagens Nem todas aplicações funcionam com este;
desempenho
13 / 56
Comparativo entre os tipos de firewall
ˆ Filtro de pacotes
Vantagens Com regras simples é possı́vel se proteger da maioria das
ameaças de segurança
Desvantagens Segurança vs facilidade para usuários
ˆ Inspeção de estados
Vantagens Evita ataques mais elaborados; facilidade para usuários
Desvantagens Aplicações UDP não são atendidas
ˆ Gateway de aplicação
Vantagens Filtro granular baseado em conteúdo; cache;
autenticação de usuários
Desvantagens Nem todas aplicações funcionam com este;
desempenho
A combinação destes se mostra como uma boa solução
13 / 56
Sumário
1
Conceitos sobre Firewall
Tipos de firewall
2
Projetos de firewall
Estratégias de configuração
Perı́metros de segurança
Tradução de endereços de rede – NAT
3
Ferramentas
iptables
Laboratórios com iptables
14 / 56
Estratégias de configuração
Estratégia
Local
Roteador/Firewall
Firewall com 2 interfaces
Firewall com subredes
2 Firewalls com subredes
Descrição
Instalado em cada máquina individual
Uma única máquina para roteamento e filtragem de pacotes
Intermedia a conexão entre a LAN e o roteador
Máquinas da rede interna são alocadas em
diferentes subredes
Separação de tarefas por 2 firewalls
15 / 56
Estratégia: Local
Rede local
Internet
16 / 56
Estratégia: Local
Agente Malicioso
Rede local
Internet
16 / 56
Estratégia: Local
Agente Malicioso
Rede local
Internet
16 / 56
Estratégia: Roteador/Firewall
Agente Malicioso
Rede local
Internet
17 / 56
Estratégia: Firewall com 2 interfaces
Agente Malicioso
Rede local
Internet
18 / 56
Estratégia: Firewall com subredes
Suporte
Internet
TI
19 / 56
Estratégia: 2 Firewalls com subredes
Suporte
FW2
Internet
FW1
TI
20 / 56
Estratégia: Estação bastião
ˆ Uma estação especial com poucas aplicações em execução, projetada
e configurada para resistir a ataques
ˆ Servidores proxy (SOCKS, HTTP, RTP, etc.)
ˆ Somente pacotes oriundos e destinados a esta máquina podem passar
pelo firewall
Agente Malicioso
Rede local
Estação
bastião
Internet
Proxy
21 / 56
Organização da rede
1
Somente com estações de
trabalho
ˆ Residencias e pequenas
empresas
22 / 56
Organização da rede
1
Somente com estações de
trabalho
ˆ Residencias e pequenas
empresas
2
Estações e servidores internos
ˆ Servidor de impressão,
arquivos, etc.
22 / 56
Organização da rede
1
Somente com estações de
trabalho
ˆ Residencias e pequenas
empresas
2
Estações e servidores internos
email
www
ˆ Servidor de impressão,
arquivos, etc.
3
Estações, servidores internos
e externos
ˆ WWW, SMTP, DNS, POP,
IMAP, etc.
22 / 56
Organização da rede
1
Somente com estações de
trabalho
ˆ Residencias e pequenas
empresas
2
Estações e servidores internos
email
www
ˆ Servidor de impressão,
arquivos, etc.
3
Estações, servidores internos
e externos
ˆ WWW, SMTP, DNS, POP,
IMAP, etc.
Como oferecer serviços externos sem que isto resulte em ameaças para a
rede interna?
22 / 56
DMZ – Zona desmilitarizada
ˆ Segmento de rede tratado como zona neutra entre faixas em conflito
(rede local e Internet)
ˆ Local ideal para disponibilizar serviços que podem ser acessados tanto
por máquinas da rede local como da rede externa (Internet)
ˆ Exemplo: DNS, WWW, SMTP
ˆ Parte-se do pressuposto que as máquinas ali presentes seguem a risca
a polı́tica de segurança e estão sempre com as últimas atualizações de
segurança
ˆ Roda um conjunto mı́nimo de serviços
Principal objetivo
Proteger a rede interna contra ataques oriundos dos servidores externos,
caso estes sejam comprometidos
23 / 56
DMZ – Zona desmilitarizada
DMZ
DNS
WWW
Internet
email
Rede local
24 / 56
Replicar serviços pela DMZ e rede local
DMZ
DNS
WWW
Internet
email
Rede local
DNS
ˆ Replicar serviços pela rede local e DMZ garante que se o servidor na
DMZ for comprometido, isto não irá afetar os usuários da rede local
ˆ Exemplo: Servidor de DNS apontando para máquinas maliciosas
25 / 56
Tradução de endereços de rede
ˆ Network Address Translation – NAT
ˆ Permite reescrever endereços de origem e destino, bem como portas
de destino
ˆ Solução prática para a exaustão dos endereços IPv4
ˆ Permite que múltiplas estações, com endereços IP privados,
compartilhem um único endereço IP público
ˆ Blocos de IPs privados: 192.168.X.X, 172.16-31.X.X e 10.X.X.X
26 / 56
Tradução de endereços de rede
ˆ Network Address Translation – NAT
ˆ Permite reescrever endereços de origem e destino, bem como portas
de destino
ˆ Solução prática para a exaustão dos endereços IPv4
ˆ Permite que múltiplas estações, com endereços IP privados,
compartilhem um único endereço IP público
ˆ Blocos de IPs privados: 192.168.X.X, 172.16-31.X.X e 10.X.X.X
Funcionamento – Tráfego sainte da rede local
1
O roteador troca o endereço de origem e armazena dados referente a
esta conexão de saı́da
2
Quando o roteador recebe a resposta, analisa a qual conexão pertence
e encaminha para a máquina correspondente
26 / 56
Tipos de NAT
ˆ Full cone
ˆ Todos os pedidos de um mesmo endereço IP:PORTA interno são
mapeados para um mesmo endereço IP:PORTA externo
ˆ Máquinas externas podem iniciar conexão com a máquina interna
ˆ Restricted cone
ˆ Todos os pedidos de um mesmo endereço IP:PORTA são mapeados
para um mesmo endereço IP:PORTA
ˆ Uma máquina externa poderá enviar pacotes para a máquina interna
somente se a máquina interna já tiver enviado previamente algum
pacote a essa máquina externa
27 / 56
Tipos de NAT
ˆ Port restricted cone
ˆ Semelhante ao anterior, porém a restrição inclui também a porta de
origem da máquina externa
ˆ Symmetric
ˆ O mais restritivo de todos, para cada conexão originada por uma
máquina interna a uma máquina externa é gerado um mapeamento
ligando IPs e portas (origem e destino)
ˆ É reservada uma porta para cada máquina externa
28 / 56
Tipos de NAT
ˆ Port restricted cone
ˆ Semelhante ao anterior, porém a restrição inclui também a porta de
origem da máquina externa
ˆ Symmetric
ˆ O mais restritivo de todos, para cada conexão originada por uma
máquina interna a uma máquina externa é gerado um mapeamento
ligando IPs e portas (origem e destino)
ˆ É reservada uma porta para cada máquina externa
JSTUN
Ferramenta em Javaa que permite identificar o tipo de NAT que está
sendo aplicado na rede
a
http://jstun.javawi.de
28 / 56
NAT: Full cone
10.1.1.2
10.1.1.1
Máquina
interna
2.2.2.3
Full cone
2.2.2.4
Máquina
externa A
2.2.2.5
Máquina
externa B
Pacote UDP
s=10.1.1.1:2100
d=2.2.2.4:5060
s=2.2.2.3:4400
d=2.2.2.4:5060
10.1.1.1:2100
d=2.2.2.3:4400 <- s=ANY
s=2.2.2.4:5060
d=10.1.1.1:2100
s=2.2.2.4:5060
d=2.2.2.3:4400
s=2.2.2.4:1234
d=10.1.1.1:2100
s=2.2.2.4:1234
d=2.2.2.3:4400
s=2.2.2.5:5060
d=10.1.1.1:2100
s=2.2.2.5:5060
d=2.2.2.3:4400
s=2.2.2.5:4321
d=10.1.1.1:2100
s=2.2.2.5:4321
d=2.2.2.3:4400
29 / 56
NAT: Restricted cone
10.1.1.2 2.2.2.3
Restricted
cone
10.1.1.1
Máquina
interna
2.2.2.4
Máquina
externa A
2.2.2.5
Máquina
externa B
Pacote UDP
s=10.1.1.1:2100
d=2.2.2.4:5060
s=2.2.2.3:4400
d=2.2.2.4:5060
10.1.1.1:2100
d=2.2.2.3:4400 <- s=2.2.2.4:ANY
s=2.2.2.4:5060
d=10.1.1.1:2100
s=2.2.2.4:5060
d=2.2.2.3:4400
s=2.2.2.4:1234
d=10.1.1.1:2100
s=2.2.2.4:1234
d=2.2.2.3:4400
Inatingível
Pacote UDP
s=10.1.1.1:2100
d=2.2.2.5:5060
s=2.2.2.5:5060
d=2.2.2.3:4400
s=2.2.2.3:4400
d=2.2.2.5:5060
10.1.1.1:2100
d=2.2.2.3:4400 <- s=2.2.2.4:ANY
d=2.2.2.3:4400 <- s=2.2.2.5:ANY
s=2.2.2.5:5060
d=10.1.1.1:2100
s=2.2.2.5:5060
d=2.2.2.3:4400
s=2.2.2.5:4321
d=10.1.1.1:2100
s=2.2.2.5:4321
d=2.2.2.3:4400
30 / 56
NAT: Port restricted cone
10.1.1.2 2.2.2.3
Port
Restricted
10.1.1.1
Máquina
interna
2.2.2.4
Máquina
externa A
2.2.2.5
Máquina
externa B
Pacote UDP
s=10.1.1.1:2100
d=2.2.2.4:5060
s=2.2.2.3:4400
d=2.2.2.4:5060
10.1.1.1:2100
d=2.2.2.3:4400 <- s=2.2.2.4:5060
s=2.2.2.4:5060
d=2.2.2.3:4400
s=2.2.2.4:5060
d=10.1.1.1:2100
Inatingível
s=2.2.2.4:1234
d=2.2.2.3:4400
Inatingível
Pacote UDP
s=10.1.1.1:2100
d=2.2.2.5:5060
s=2.2.2.5:5060
d=2.2.2.3:4400
s=2.2.2.3:4400
d=2.2.2.5:5060
10.1.1.1:2100
d=2.2.2.3:4400 <- s=2.2.2.4:5060
d=2.2.2.3:4400 <- s=2.2.2.5:5060
s=2.2.2.5:5060
d=10.1.1.1:2100
Inatingível
s=2.2.2.5:5060
d=2.2.2.3:4400
s=2.2.2.5:4321
d=2.2.2.3:4400
31 / 56
NAT: Symmetric
10.1.1.2 2.2.2.3
Symmetric
10.1.1.1
Máquina
interna
2.2.2.4
Máquina
externa A
2.2.2.5
Máquina
externa B
Pacote UDP
s=10.1.1.1:2100
d=2.2.2.4:5060
s=2.2.2.3:4400
d=2.2.2.4:5060
10.1.1.1:2100
d=2.2.2.3:4400 <- s=2.2.2.4:5060
s=2.2.2.4:5060
d=2.2.2.3:4400
s=2.2.2.4:5060
d=10.1.1.1:2100
Inatingível
s=2.2.2.4:1234
d=2.2.2.3:4400
Inatingível
Pacote UDP
s=10.1.1.1:2100
d=2.2.2.5:5060
s=2.2.2.5:5060
d=2.2.2.3:4400
s=2.2.2.3:5500
d=2.2.2.5:5060
10.1.1.1:2100
d=2.2.2.3:4400 <- s=2.2.2.4:5060
d=2.2.2.3:5500 <- s=2.2.2.5:5060
Inatingível
s=2.2.2.5:5060
d=10.1.1.1:2100
s=2.2.2.5:5060
d=2.2.2.3:4400
s=2.2.2.5:5060
d=2.2.2.3:5500
32 / 56
Dificuldades com o NAT
ˆ Não permite o funcionamento de alguns protocolos de rede
ˆ Serviços que são iniciados fora da rede local não funcionam
ˆ Exemplos de serviços que terão dificuldade: SIP e FTP
ˆ Solução:
ˆ FTP passivo
ˆ Proxy de aplicações
ˆ SOCKS
ˆ STUN
ˆ UPnP
33 / 56
Funcionamento FTP – modo ativo
34 / 56
Funcionamento FTP – modo ativo
34 / 56
Funcionamento FTP – modo ativo
34 / 56
Funcionamento FTP – modo passivo
35 / 56
Funcionamento FTP – modo passivo
35 / 56
Funcionamento FTP – modo passivo
35 / 56
Sumário
1
Conceitos sobre Firewall
Tipos de firewall
2
Projetos de firewall
Estratégias de configuração
Perı́metros de segurança
Tradução de endereços de rede – NAT
3
Ferramentas
iptables
Laboratórios com iptables
36 / 56
Ferramentas
Ferramenta
ipchains
iptables
ipfw
pf
Squid
Sistema Operacional
Linux 2.2
Linux 2.4, 2.6
FreeBSD
OpenBSD
Linux, BSDs
Tipo
Filtro de pacotes (sem estado)
Filtro de pacotes (com estado)
Filtro de pacotes (com estado)
Filtro de pacotes (com estado)
Gateway de aplicação
37 / 56
Ferramenta: iptables
Iptables
Ferramenta administrativa para filtragem de pacotes e para tradução de
endereços de rede (IPv4)
ˆ iptables (IPv4) e ip6tables (IPv6)
ˆ Permite filtrar pacotes com base no endereço MAC ou ainda nas
marcações do cabeçalho IP
ˆ Proteção contra ataques que usam pacotes mal formados
ˆ Permite limitar o tráfego como forma de proteção contra ataque de
negação de serviço (Deny of Service – DoS)
ˆ Permite marcar pacotes para trabalhar com QoS
38 / 56
Funcionamento do iptables
ˆ Todos os pacotes que chegam a máquina são inspecionados e passam
por um conjunto de tabelas
filter – Usada para filtragem dos pacotes
nat – Usada na tradução de endereços de rede
mangle – Usada para alteração dos pacotes para QoS
ˆ Cada tabela é composta por um conjunto cadeias (chains), as
quais tratam os pacotes com uma maior granularidade
ˆ Dentro das cadeias estão armazenadas regras para filtragem,
tradução de endereços ou para alteração dos atributos dos pacotes
ˆ Endereço de origem, destino, portas, etc.
39 / 56
Tabela filter
ˆ INPUT – Filtra os pacotes que tem como destino o próprio firewall
ˆ OUTPUT – Filtra os pacotes gerados pelo próprio firewall
ˆ FORWARD – Filtra os pacotes que passam através do firewall
Internet
Rede local
INPUT
Internet
Rede local
OUTPUT
Internet
Rede local
FORWARD
40 / 56
Tabela nat
ˆ PREROUTING
ˆ NAT ocorre antes do roteamento do pacote. Tradução do IP destino
para ser compatı́vel com a tabela de roteamento do firewall
(conhecido por DNAT)
ˆ POSTROUTING
ˆ NAT ocorre depois do roteamento do pacote. Tradução do IP origem
permitindo que muitas máquinas sejam mapeadas para um único IP
ˆ SNAT – Quando se conhece o endereço de origem para o qual será
traduzido
ˆ MASQUERADE – Deixa o firewall detectar automaticamente o endereço
de origem
ˆ OUTPUT
ˆ Tradução dos pacotes gerados pelo próprio firewall
41 / 56
Tabela mangle
ˆ mangle – modificação dos bits de QoS do cabeçalho dos pacotes
ˆ PREROUTING, POSTROUTING, OUTPUT, INPUT, FORWARD
Criação de cadeias personalizadas
É possı́vel criar novas cadeias para qualquer uma das tabelas apresentadas.
A criação de mais cadeias pode ser interessante para tornar o
processamento de pacotes mais eficiente
42 / 56
Fluxo dos pacotes pelas tabelas e cadeias
Mangle - Filter
FORWARD
Mangle - NAT
POSTROUTING
Pacote chegando
Pacote saindo
Não
Mangle - NAT
REDE A
PREROUTING
Mangle - NAT
REDE B
Sim
Pacote saindo
POSTROUTING
É para
o firewall?
OUTPUT
Mangle - NAT - Filter
Processamento
do pacote
INPUT
Mangle - Filter
43 / 56
Criação de regras com o iptables
ˆ Cada regra deve indicar a qual tabela e a qual cadeia pertence
ˆ Ex: tabela filter, cadeia INPUT
ˆ A regra é composta ainda por outros parâmetros relacionados ao
cabeçalho dos pacotes
ˆ Ex: Destinados a porta 80 TCP
ˆ Por fim, a regra deve indicar qual ação deverá ser tomada para os
pacotes que “casarem” com esta
ˆ Ex: descarte os pacotes
1
iptables -t filter -A INPUT -p TCP --dport 80 -j DROP
44 / 56
Criação de regras com o iptables
ˆ Cada regra deve indicar a qual tabela e a qual cadeia pertence
ˆ Ex: tabela filter, cadeia INPUT
ˆ A regra é composta ainda por outros parâmetros relacionados ao
cabeçalho dos pacotes
ˆ Ex: Destinados a porta 80 TCP
ˆ Por fim, a regra deve indicar qual ação deverá ser tomada para os
pacotes que “casarem” com esta
ˆ Ex: descarte os pacotes
1
iptables -t filter -A INPUT -p TCP --dport 80 -j DROP
Nota
As regras são analisadas em ordem, assim será executada a primeira regra
que casar com o pacote
44 / 56
Alvos para as regras
ˆ O parâmetro -j indica para qual alvo determinado pacote deverá ser
enviado, quando este casar com a regra
ˆ Os alvos também podem ser outras cadeias
Alvo
ACCEPT
DROP
REJECT
REDIRECT
LOG
DNAT
SNAT
MASQUERADE
Descrição
O pacote tem seu percurso garantido
O pacote é descartado
Semelhante ao DROP, porém avisa o emissor
Para redirecionar para outra porta
Registra informações com o syslog
NAT de destino
NAT de origem
NAT de origem
45 / 56
Outros parâmetros do iptables
Parâmetro
-A
-D
-L
-P <polı́tica>
-F
-t <tabela>
-j <alvo>
-p <proto>
−−sport <porta>
−−dport <porta>
-s <IP>
-d <IP>
-i <nome>
-o <nome>
Descrição
Adiciona regra no final da cadeia
Remove regra
Lista todas as regras da tabela
Indica a polı́tica padrão da tabela
Limpa todas as regras da tabela
Indica a tabela
Indica o alvo
Indica o protocolo (TCP, UDP, ICMP)
Indica porta de origem
Indica porta de destino
Endereço de origem (rede ou máquina)
Endereço de destino (rede ou máquina)
Interface de entrada
Interface de saı́da
46 / 56
Outros parâmetros do iptables
Parâmetro
-m multiport −−sports
<port,port>
-m multiport −−dports
<port,port>
-m multiport −−ports
<port,port>
-m state −−state
<estado>
Descrição
Para indicar diversas portas de origem
(TCP/UDP). As portas podem ser separadas por vı́rgula ou por dois pontos, caso deseje uma faixa de portas
Para indicar diversas portas de destino. Ex:
−−dports 80,443
Para indicar diversas portas de origem ou
destino. Ex: −−ports 1024:65535
NEW - Inı́cio de conexão
ESTABLISHED - Parte de uma conexão
RELATED - Iniciando uma conexão secundária
INVALID - Pacote não identificado
47 / 56
Algumas regras com iptables
1
2
# limpando todas as regras da tabela filter
iptables -t filter -F
3
4
5
# Politica padrao de entrada: NEGAR TUDO
iptables -t filter -P INPUT DROP
6
7
8
# Aceitar todo o trafego entrante para interface de loopback
iptables -t filter -A INPUT -i lo -j ACCEPT
9
10
11
# Permite que a maquina 192.168.2.101 se conecte via SSH pela eth0
iptables -A INPUT -i eth0 -s 192.168.2.101 -p tcp --dport 22 -j ACCEPT
12
13
14
15
# Registrando quando acontece uma conexao na porta 22
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j LOG
--log-prefix "Acesso SSH: "
16
17
18
# Permite a entrada de pacotes de conexoes que foram iniciadas pela
maquina
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
19
20
21
# Listando as regras ativas na tabela filter
iptables -t filter -L -n
48 / 56
Criando cadeias e limitando o número de pacotes
1
2
# Criando uma cadeia chamada 'pacotes_icmp'
iptables -t filter -N pacotes_icmp
3
4
5
# Todo pacote ICMP deve ir para a cadeia pacotes_icmp
iptables -A INPUT -i eth0 -p ICMP -j pacotes_icmp
6
7
8
9
# Limitando a entrada de 5 pings por minuto
iptables -A pacotes_icmp -p ICMP --icmp-type echo-request
-m limit --limit 5/min -j ACCEPT
10
11
12
# As respostas (pong) dos pings gerados pela maquina podem entrar
iptables -A pacotes_icmp -p ICMP --icmp-type echo-reply -j ACCEPT
13
14
15
# Defesa contra ataques de SYN flood
iptables -A INPUT -i eth0 -p TCP --syn -m limit --limit 5/s -j ACCEPT
49 / 56
Roteador com NAT para rede doméstica
ˆ Roteador com NAT para rede doméstica
1
2
# ativando o roteamento
echo 1 > /proc/sys/net/ipv4/ip_forward
3
4
5
# Politica padrao do roteamento: DROP
iptables -t filter -P FORWARD DROP
6
7
8
9
# mascarando a saida de pacotes (eth1 ligada na rede externa)
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.2.0/24
-j MASQUERADE
10
11
12
13
14
# Permitindo rotear somente pacotes com destino a porta 80 na
Internet, bem como suas respostas
iptables -A FORWARD -i eth0 -o eth1 -p TCP --dport 80 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -m state
--state ESTABLISHED,RELATED -j ACCEPT
50 / 56
Serviços dentro da rede local com NAT e Proxy
transparente
ˆ Conexões que chegarem pela rede externa com destino a porta 8080
devem ser encaminhadas para a porta 80 da máquina 192.168.2.10
na rede local
1
2
# Trafego destinado a porta 80 pode ser roteado
iptables -t filter -A FORWARD -p TCP --dport 80 -j ACCEPT
3
4
5
# Trafego que sair pela eth1 (rede externa) pode ser roteado
iptables -t filter -A FORWARD -o eth1 -j ACCEPT
6
7
8
iptables -t nat -A PREROUTING -i eth1 -p TCP --dport 8080 -j DNAT
--to-destination 192.168.2.10:80
ˆ Proxy transparente – Pacotes destinados a porta 80 devem ser
redirecionados para porta 3128
1
iptables -t nat -A PREROUTING -i eth0 -p TCP --dport 80 -j REDIRECT
--to-port 3128
51 / 56
Shell script para ativar/desativar firewall
1
2
3
4
#!/bin/bash
# Variaveis
DEV_LAN=eth0
DEV_WAN=eth1
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
fw_start(){
# Adicionando regras
iptables -A INPUT -i $DEV_LAN
-j ACCEPT
}
fw_stop(){
# Limpando as regras
iptables -P INPUT ACCEPT
iptables -t filter -F
}
fw_uso(){
# Mensagem de ajuda
echo "Sintaxe errada..."
echo "./$0 (start|stop)"
}
25
26
27
28
29
30
case $1 in
start)
fw_start
;;
stop)
fw_stop
;;
*)
fw_uso
;;
esac
ˆ Iniciando o firewall
./firewall.sh start
ˆ Parando o firewall
./firewall.sh stop
ˆ Obtendo informações de uso
./firewall.sh
52 / 56
Laboratório 1 – Proteção da máquina local
ˆ Polı́tica de padrão: negar tudo (entrada e saı́da)
ˆ Usuário poderá navegar na web normalmente
ˆ Aplicações rodando na máquina do usuário terão acesso irrestrito à
interface lo para comunicação inter-processos
Desenvolva um shell script que permita ativar e desativar o firewall
53 / 56
Laboratório 2 – Firewall/roteador para rede doméstica
ˆ Polı́tica padrão: negar tudo (entrada e roteamento)
ˆ Usuários da rede local só poderão navegar na web, acessar e-mail
(POP, IMAP e SMTP)
ˆ Firewall poderá ser administrado remotamente via SSH, não
importando a origem da conexão
ˆ Para evitar ataques de varredura de portas, o servidor SSH deverá ouvir
em uma porta diferente da 22
ˆ Registrar todas conexões oriundas da rede externa
Questão
Aplicações como MSN, Gtalk e Skype funcionarão normalmente? Se sim, é
possı́vel proibir? Se não, é possı́vel liberar?
54 / 56
Laboratório 3 – Serviço SMTP rodando em rede com NAT
ˆ Polı́tica padrão: negar tudo (entrada e roteamento)
ˆ Permitir que pings a uma taxa máxima de 10 pacotes por minuto
ˆ Tráfego destinado à porta 25 deve ser encaminhado para a porta 25
da máquina M1 da rede local
ˆ Impedir que máquinas da rede local gerem SPAM através de conexões
diretas a servidores SMTP externos
ˆ Tanto o firewall quanto a máquina M1 poderão ser administradas
remotamente via SSH
Monitorando o número de pacotes que estão casando com as regras
watch iptables -t filter -L -v
55 / 56
Laboratório 4 – Cadeia personalizada para máquina M1
ˆ Refaça o Laboratório 3 criando uma cadeia especı́fica para a M1
ˆ Todos pacotes oriundos e destinados a máquina M1 devem estar na
cadeia ’maquina m1’
Salvando e restaurando regras
iptables-save > regras-salvas.txt
iptables-restore < regras-salvas.txt
56 / 56

Documentos relacionados

Firewall - PoP-BA

Firewall - PoP-BA roteamento de pacotes IP na rede. Alguns dos protocolos situados sobre esta camada incluem IP, ICMP e IGMP. Esta camada também é responsável por garantir que os pacotes IP alcancem seus

Leia mais