Você está na página 1de 60

Segurança na Web

Capítulo 6: Firewall

Prof. Roberto Franciscatto


4º Free
Semestre - TSITemplates
Powerpoint - CAFW
Page 1
Capítulo 6: Firewall

• Introdução

• Qual a função básica de um firewall?

Free Powerpoint Templates


Page 2
Capítulo 6: Firewall

• Introdução

• Qual a função básica de um firewall?

• Bloquear acesso a portas que não estão em


uso

• ou que não devem receber conexões por parte


da internet

Free Powerpoint Templates


Page 3
Capítulo 6: Firewall

• Quem precisa de um firewall?

• Se você planeja conectar-se a internet, precisa


de um firewall...

Free Powerpoint Templates


Page 4
Capítulo 6: Firewall

• Por que eu preciso de um firewall?

• Para proteger seu computador e sua rede, se for


o caso...

• Existem atualmente inúmeras formas de ataque a


um computador ou serviço específico

• Motivos para invadir seu computador ou sua rede


não faltam...

Free Powerpoint Templates


Page 5
Capítulo 6: Firewall

• Tenho qualquer coisa que valha a pena proteger?

• Existe sempre algo que seja necessário proteger


em algum grau, exemplo:

• Responsabilidade vertical

• Dados perdidos

• Comprometer dados confidenciais

• Queda da rede

Free Powerpoint Templates


Page 6
Capítulo 6: Firewall

• O que faz um firewall?

• Um firewall examina o tráfego enquanto ele entra


em uma das suas interfaces e aplica regras ao
tráfego...

• Essencialmente:

• permitindo ou impedindo o tráfego baseado


nestas regras

Free Powerpoint Templates


Page 7
Capítulo 6: Firewall

• Ex.: um firewall em operação...

Tráfego restrito
O tráfego é bloqueado porque ele
Bloqueado não atingiu o critério especificado

Tráfego permitido Para a internet


Permitido

Apenas o tráfego da internet que Tráfego desconhecido


atinge um critério especificado Bloqueado
tem permissão para passar
Tráfego especificado permitido
Acesso a recursos especificos Permitido
Free Powerpoint Templates
Page 8
Capítulo 6: Firewall

• Visão geral operacional do firewall

• Regras comuns e características dos firewalls:

• Bloquear tráfego de rede recebido baseado na


origem ou destino

• Bloquear tráfego de rede enviado baseado na


origem ou destino

• Bloquear tráfego de rede baseado no conteúdo

• Tornar disponíveis os recursos internos


Free Powerpoint Templates
Page 9
Capítulo 6: Firewall

• Visão geral operacional do firewall

• Regras comuns e características dos firewalls


(cont.):

• Permitir conexões à rede interna

• Relatar tráfego de rede a atividades do firewall

Free Powerpoint Templates


Page 10
Capítulo 6: Firewall

• Revisão sobre TCP/IP

• Por que TCP/IP?

• Para formular boas regras de firewall, é necessário ter


uma boa noção de:

• endereços, portas e protocolos de rede

Free Powerpoint Templates


Page 11
Capítulo 6: Firewall

• Revisão sobre TCP/IP

• Todos os dados transmitidos através da internet são


agrupados em pacotes TCP

• que podem conter até 1460 bytes de dados

• Além dos dados, cada pacote inclui 40 bytes


adicionais contendo:

• endereço IP de origem, endereço IP de destino, porta de


origem, porta de destino, códigos de verificação, número
do pacote, etc...
Free Powerpoint Templates
Page 12
Capítulo 6: Firewall

• Revisão sobre TCP/IP

• No total tem-se:

• 20 bytes para os headers do protocolo TCP


• 20 bytes para os headers do protocolo IP

• totalizando assim, 40 bytes de headers por pacote.

• Dessa forma temos 1460 bytes de dados em um pacote de


1500 bytes, por exemplo.

Free Powerpoint Templates


Page 13
Capítulo 6: Firewall

• Pacote TCP/IP

Header IP Header TCP Conteúdo

Headers IP e TCP Dados


(40 bytes) (até 1460 bytes)

Free Powerpoint Templates


Page 14
Capítulo 6: Firewall

• Pacote TCP/IP

• Pode-se dizer que o IP (header IP) se encarrega do


endereçamento e da entrega dos pacotes

• enquanto o TCP (header TCP) se encarrega da


verificação de erros, numeração de portas e outras
funções.

Free Powerpoint Templates


Page 15
Capítulo 6: Firewall

• Pacote TCP/IP

• Um arquivo de 15 KB, por exemplo, como seria


transmitido na rede ?

Free Powerpoint Templates


Page 16
Capítulo 6: Firewall

• Pacote TCP/IP

• Um arquivo de 15 KB, por exemplo, como seria


transmitido na rede ?

• Seria dividido em 11 pacotes

• Os 10 primeiros contendo 1460 bytes cada um e


o último contendo os 760 bytes finais.

Free Powerpoint Templates


Page 17
Capítulo 6: Firewall

• Pacote TCP/IP

• É graças aos códigos de verificação e


numeração de pacotes que arquivos grandes
podem ser transmitidos de forma íntegra.

• Caso sejam corrompidos ou perdidos, basta


retransmitir os pacotes extraviados ou danificados,
quantas vezes for necessário.

Free Powerpoint Templates


Page 18
Capítulo 6: Firewall

• Pacote TCP/IP

• Importante:

• O protocolo TCP/IP permite o uso de pacotes


com até 64 KB

• Porém o tamanho mais usado é de 1500 bytes,


padrão para frames Ethernet.

Free Powerpoint Templates


Page 19
Capítulo 6: Firewall

• Portas TCP

• Existem 65.536 portas TCP, numeradas de 0 a


65.535

• Cada porta porde ser usada por um programa ou


serviço diferente, de forma que:

• em teoria poderiamos ter até 65536 serviços


diferentes ativos, com um único endereço IP
válido.

Free Powerpoint Templates


Page 20
Capítulo 6: Firewall

• Portas TCP

• As portas TCP mais usadas vão de 0 à 1023, que


são reservados a serviços mais conhecidos e
utilizados

• A porta 0 é reservada, por isso não entra na lista.

Free Powerpoint Templates


Page 21
Capítulo 6: Firewall

• Portas TCP e UDP

• Além das 65.536 portas TCP, temos o mesmo


número de portas UDP.

TCP = confiabilidade e confirmação


UDP = velocidade e simplicidade

Free Powerpoint Templates


Page 22
Capítulo 6: Firewall

• Exemplo de transmissão TCP

• Mensagem de texto de 300 bytes via TCP

Estação: SYN (solicita a abertura da conexão)


Servidor: SYN (confirma o recebim. e avisa que a porta está dispon.)
Servidor: ACK (inicia conexão)
Estação: ACK (confirma)
Estação: DATA (é enviado o pacote com a mensagem de texto)
Servidor: OK (a confirm., depois de verificar a integrid. do pacote)
Estação: FYN (solicita o fechamento da conexão)
Servidor: FYN (confirma)
Estação: FYN (confirma que recebeu a confirmação)

Free Powerpoint Templates


Page 23
Capítulo 6: Firewall

• Exemplo de transmissão UDP

• Streaming de vídeo e áudio via web

• situação onde o que vale é a velocidade e não a


confiabilidade.

• Outra situação comum são os servidores de DNS

• ao acessar um site, a solicitação do endereço IP


referente ao domínio do site e a resposta do
servidor são enviadas via UDP, para ganhar tempo

Free Powerpoint Templates


Page 24
Capítulo 6: Firewall

• TCP e UDP

• Ao configurar um firewall é necessário atenção


quanto aos protocolos TCP e UDP

• DNS e SAMBA por exemplo, utilizam tanto os


protocolos TCP como UDP.

Free Powerpoint Templates


Page 25
Capítulo 6: Firewall

• Portas mais usadas para serviços de internet

22 = SSH
21 = FTP
25 = SMTP
53 TCP e 53 UDP = DNS
80 = HTTP
110 = POP3
143 = IMAP
443 = HTTPS
1194 UDP = OpenVPN
5901 = VNC

Free Powerpoint Templates


Page 26
Capítulo 6: Firewall

• TCP, UDP e ICMP

• Além do TCP e UDP temos ICMP (Internet Control


Message Protocol) um protocolo de controle.

• Uso do protocolo ICMP:

• ping (echo request) usado para verificar se


determinada máquina está online e medir a
latência da conexão.

Free Powerpoint Templates


Page 27
Capítulo 6: Firewall

• TCP, UDP e ICMP

• Outra função importante do ICMP é o controle do


TTL (time to live) de cada pacote TCP ou UDP.

• O que acontece com um pacote caso ele não chegue


até o destino ?

Free Powerpoint Templates


Page 28
Capítulo 6: Firewall

• TCP, UDP e ICMP

• O que acontece com um pacote caso ele não chegue


até o destino ?

• Existem duas possibilidades.

• A primeira é um roteador próximo perceber


que a máquina está fora do ar e destruir o
pacote

• A segunda é utilizar a TTL com valores que


variam de 64 a 128 hops
Free Powerpoint Templates
Page 29
Capítulo 6: Firewall

• Entendendo as regras do firewall (Iptables)

• Escrever regras do firewall é como que aprender um


novo dialeto...

• Imagine que ao escrever uma nova regra, você está


explicando uma ideia, tente ser claro para que seja
entendido...

Free Powerpoint Templates


Page 30
Capítulo 6: Firewall

• Entendendo as regras do firewall (Iptables)

• Parâmetros do Iptables:

-A INPUT: especifica que a regra se aplica a pacotes


de entrada, ou seja, pacotes recebidos pelo servidor,
em qualquer interface

-A OUTPUT: a regra se aplica a pacotes de saída,


transmitidos pelo próprio servidor.

Free Powerpoint Templates


Page 31
Capítulo 6: Firewall

• Entendendo as regras do firewall (Iptables)

• Parâmetros do Iptables:

-A FORWARD: este parâmetro é usado para


compartilhar a conexão com a internet, permitindo
que os micros da rede local acessem através do
servidor.

Os pacotes dos outros micros, encaminhados pelo


servidor, são tratados como ‘FORWARD’, diferente dos
pacotes transmitidos pelo próprio servidor, que são
tratados como ‘OUTPUT’.
Free Powerpoint Templates
Page 32
Capítulo 6: Firewall

• Entendendo as regras do firewall (Iptables)

• Parâmetros do Iptables:

-p tcp: especifica que a regra se aplica a pacotes TCP


-p udp: especifica que a regra se aplica a pacotes UDP

Ex.: iptables –A INPUT –p udp --dport 53 –j ACCEPT

Importante: é necessário sempre especificar o


protocolo, caso contrário, ERRO !

Free Powerpoint Templates


Page 33
Capítulo 6: Firewall

• Entendendo as regras do firewall (Iptables)

• Parâmetros do Iptables:

• Caso seja preciso bloquear os três protocolos para


um determinado endereço, pode-se usar:

iptables –A INPUT –p ALL –s 88.191.79.206 –j DROP

Free Powerpoint Templates


Page 34
Capítulo 6: Firewall

• Entendendo as regras do firewall (Iptables)

• Parâmetros do Iptables:

• É comum bloquear as portas 0 a 1023 UDP,


autorizando apenas as portas que devem ficar
abertas como:

iptables –A INPUT –p udp --dport 53 –j ACCEPT


iptables –A INPUT –p udp --dport 0:1023 –j DROP

Free Powerpoint Templates


Page 35
Capítulo 6: Firewall

• Entendendo as regras do firewall (Iptables)

• Parâmetros do Iptables:

-p icmp: bloquear o pedido de pings

Ex.:
iptables –A INPUT –p icmp --icmp-type echo-
request –j DROP

Free Powerpoint Templates


Page 36
Capítulo 6: Firewall

• Entendendo as regras do firewall (Iptables)

• Parâmetros do Iptables:

-i eth0: a opção ‘-i’ permite definir a interface onde os


pacotes devem ser recebidos ou enviados.

Exemplos:

iptables –A INPUT –p tcp –j REJECT


iptables –A INPUT –i eth2 –p tcp –j REJECT
iptables –A INPUT –i eth0 –p tcp --dport 22 –j ACCEPT
Free Powerpoint Templates
Page 37
Capítulo 6: Firewall

• Entendendo as regras do firewall (Iptables)

• Parâmetros do Iptables:

-dport ou --destination-port: especifica uma porta.

• O uso mais comum para esta opção é para abrir


portas de entrada e depois aplicar uma regra que
feche as demais.

Free Powerpoint Templates


Page 38
Capítulo 6: Firewall

• Entendendo as regras do firewall (Iptables)

• Parâmetros do Iptables:

-d (destiny): destinado ao endereço IP ou domínio


citado. Bastante utilizado para bloquear o acesso a
determinados sites a partir dos micros da rede local.

Ex.:

iptables –A FORWARD –d dominio.com –j REJECT

Free Powerpoint Templates


Page 39
Capítulo 6: Firewall

• Entendendo as regras do firewall (Iptables)

• Parâmetros do Iptables:

-m mac --mac-source 00:11:D8:76:59:2E: esta é a


regra que permite especificar endereços MAC dentro
das regras do Iptables.

Ex.:
iptables –A INPUT --dport 22 –m mac --mac-
source 00:11:D8:76:59:2E –j ACCEPT

Free Powerpoint Templates


Page 40
Capítulo 6: Firewall

• Entendendo as regras do firewall (Iptables)

• Parâmetros do Iptables:

--syn: cria uma regra válida apenas para novas


conexões, não impedindo que o outro micro responda
a conexões iniciadas pelo servidor, como em:

Ex.:
iptables –A INPUT –p tcp --syn –j DROP

Free Powerpoint Templates


Page 41
Capítulo 6: Firewall

• Entendendo as regras do firewall (Iptables)

• Parâmetros do Iptables:

-j: é usado no final de cada regra, especificando uma


ação, que pode ser:

-j ACCEPT: aceita o pacote. Ele é encaminhado ao


destino sem passar pelas demais regras.

-j REJECT: rejeita educadamente o pacote, enviando


um pacote de resposta ao emissor.

Ex.: ‘connect to host 192.168.1.1 port 22: Connection refused’


Free Powerpoint Templates
Page 42
Capítulo 6: Firewall

• Entendendo as regras do firewall (Iptables)

• Parâmetros do Iptables:

-j DROP: o DROP é mais enfático. O pacote é


simplesmente descartado, sem aviso.

• O emissor fica um longo tempo esperando, até


que eventualmente recebe um erro de time-out.

-j LOG: permite logar conexões. É interessante usar


estas regras principalmente em regras muito visadas,
como a SSH.
Free Powerpoint Templates
Page 43
Capítulo 6: Firewall

• Entendendo as regras do firewall (Iptables)

• Parâmetros do Iptables:

-j LOG: para ativar o log, é necessário


(continuação)
duplicar a regra que abre a porta, usando a opção
‘-j LOG’ na primeira e ‘-j ACCEPT’ na segunda, como
em:

iptables –A INPUT –p tcp --dport 22 –j LOG


iptables –A INPUT –p tcp --dport 22 –j ACCEPT

Free Powerpoint Templates


Page 44
Capítulo 6: Firewall

• Entendendo as regras do firewall (Iptables)

• Parâmetros do Iptables:

-j LOG: as mensagens são gravados no


(continuação)
arquivo ‘/var/log/messages’.

• é possível ver as mensagens com o comando


‘dmesg’

Free Powerpoint Templates


Page 45
Capítulo 6: Firewall

• Entendendo as regras do firewall (Iptables)

• Parâmetros do Iptables:

Importante: alterar a ordem das regras altera o


resultado.

Ex.:
iptables –A INPUT –p tcp –j REJECT
iptables –A INPUT –p tcp --dport 22 –j REJECT

• Qual o problema nas regras acima ?


Free Powerpoint Templates
Page 46
Capítulo 6: Firewall

• Entendendo as regras do firewall (Iptables)

• Parâmetros do Iptables:

Exemplo 2:

iptables –A INPUT –p tcp --dport 22 –j ACCEPT


iptables –A INPUT –p tcp --dport 22 –j LOG

• Qual o problema nas regras acima ?

Free Powerpoint Templates


Page 47
Capítulo 6: Firewall

• Escrevendo um script de firewall (Iptables)

• Simplesmente acessar a internet como cliente, sem


rodar nenhum servidor, nem compartilhar a conexão
com outros micros

• Solução para proteção inicial:

#!/bin/sh

iptables –A INPUT –i lo –j ACCEPT


iptables –A INPUT –p tcp --syn –j DROP

Free Powerpoint Templates


Page 48
Capítulo 6: Firewall

• Escrevendo um script de firewall (Iptables)

• A ideia aqui é que o micro possa acessar a internet


sem ficar vulnerável a acessos externos.

• Estes dois comandos fazem isso da forma mais


simples possível.

iptables –A INPUT –i lo –j ACCEPT


iptables –A INPUT –p tcp --syn –j DROP

Free Powerpoint Templates


Page 49
Capítulo 6: Firewall

• Escrevendo um script de firewall (Iptables)

• Para desativar o firewall e voltar a aceitar conexões,


use o comando ‘iptables – F’, que limpa as regras do
Iptables:

# iptables -F

Free Powerpoint Templates


Page 50
Capítulo 6: Firewall

• Exemplo de script de firewall completo (Iptables)


# Abre para a faixa de endereços da rede local:
iptables –A INPUT –s 192.168.1.0/255.255.255.0 –j ACCEPT

# Faz a mesma coisa, só que especificando a interface:


iptables –A INPUT –i eth0 –j ACCEPT

# Abre uma porta:


iptables –A INPUT –p tcp --dport 22 -j ACCEPT

# Ignora pings:
iptables –A INPUT –p icmp-type echo-request -j DROP

Free Powerpoint Templates


Page 51
Capítulo 6: Firewall

• Exemplo de script de firewall completo (Iptables)


(Continuação)

# Protege contra IP spoofing:


echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter

# Descarta pacotes mal formados, protegendo contra ataques


#diversos:
iptables –A INPUT –m state --state INVALID –j DROP

# Abre para a interface de loopback:


iptables –A INPUT –i lo –j ACCEPT

# Impede a abertura de novas conexões, bloqueando acesso


#externo ao servidor, com exceção das regras anteriores:
iptables –A INPUT –p tcp --syn –j DROP
Free Powerpoint Templates
Page 52
Capítulo 6: Firewall

• Exemplo de script de firewall completo (Iptables)

•Após incluir todas as regras do firewall, é necessário salvar e


dar permissão de execução.

• Ex.:

# cd /etc/init.d/
# chmod +x firewall

Free Powerpoint Templates


Page 53
Capítulo 6: Firewall

• Exemplo de script de firewall completo (Iptables)


• Comandos importantes

iptables –F: limpa a tabela principal do Iptables

iptables –t nat –F: limpa a tabela nat, que é usada por


regras que compartilham a conexão e fazem forwarding
de portas

iptables –L: este comando lista a configuração atual sem


alterar nada

iptables –t nat –L: este comando lista a configuração de


forwarding e compartilhamento
Free Powerpoint Templates
Page 54
Capítulo 6: Firewall

• Forwarding de Portas
• Ao compartilhar uma conexão via NAT, apenas o servidor
recebe conexões vindas da internet.

• Os micros da rede local acessam através do servidor e


recebem apenas pacotes de resposta.

• Entretanto existem casos em que você realmente deseja


que alguns dos hosts fique diretamente acessível a internet

Free Powerpoint Templates


Page 55
Capítulo 6: Firewall

• Forwarding de Portas
• Exemplo:

• Um servidor web, escutando na porta 80 do micro


192.168.1.3 da rede local, fique disponível na internet.

• A única forma de fazer isso é o servidor ‘passar a bola’


para este micro

• A limitação é que continua existindo uma única porta 80,


uma única porta 22, etc...

Free Powerpoint Templates


Page 56
Capítulo 6: Firewall

• Forwarding de Portas
• Exemplo de Forwarding:

# Redireciona uma única porta para um micro da rede local

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables –t nat –A PREROUTING –p tcp –i eth1 --dport


22 –j DNAT --to 192.168.1.10

iptables –t nat –A POSTROUTING –d 192.168.1.10 –j


SNAT --to 192.168.1.1

Free Powerpoint Templates


Page 57
Capítulo 6: Firewall

• Forwarding de Portas
• É possível ainda indicar uma lista de portas
(usando a opção –m multiport), como em:

# Redireciona um conjunto de portas


echo 1 > /proc/sys/net/ipv4/ip_forward

iptables –t nat –A PREROUTING –p tcp –i eth1 –m


multiport --dport 21,22,80 –j DNAT --to-dest
192.168.1.10

iptables –t nat –A POSTROUTING –d 192.168.1.10 –j


SNAT --to 192.168.1.1
Free Powerpoint Templates
Page 58
Capítulo 6: Firewall

• Exercícios
• Construa um firewall básico para uso em um servidor web,
contendo as seguintes regras:

• Abrir para a interface de loopback


• Bloqueie um determinado IP (hosts específicos)
• Abra as portas referentes aos seguintes serviços usados:
• SSH, DNS, HTTP, HTTPS
• Bloqueie as conexões nas demais portas
• Garanta que o firewall permitira pacotes de conexões já
iniciadas
• Bloqueie as portas UDP de 0 a 1023
• Crie este script na forma de um arquivo executável
• Adicione este arquivo na inicialização
Free Powerpoint Templates do Linux
Page 59
Capítulo 6: Firewall

• Exercícios (2)
• Você deve detectar possíveis rootkits em seu servidor. Para
isso faça os seguintes passos:

• Instale o software chkrootkit


• Execute o software
• Armazene os resultados em um arquivo teste
• Faça a análise dos resultados e explique o que o
software encontrou.

Free Powerpoint Templates


Page 60

Você também pode gostar