Você está na página 1de 87

Firewalls

2 Ten Luciana

Roteiro
Introduo Caractersticas do Firewall Tipo de Firewall
Filtro de Pacotes Servidores Proxy

Concluso Bibliografia

Introduo
Firewall um programa cujo objetivo
proteger as mquinas da rede interna contra acessos e trfego indesejados proteger servios que estejam rodando nas mquinas bloquear a passagem de acessos como conexes vindas da Internet.

Introduo
Alto ndice de ataques a redes Necessidade de controle de trfego Garantir integridade aos servios

Introduo

Princpios Bsicos
Toda solicitao chega ao Firewall Somente trfego autorizado passa por ele

O que um Firewall no pode fazer?


1. 2. 3. 4.

um foco para a tomada de decises Pode ser usado como um ponto de partida para a poltica de segurana Pode gravar requisies Limita a exposio da rede interna

O que um Firewall no pode fazer?


1. 2. 3. 4.

Proteger uma rede contra usurios internos Proteger uma rede contra conexes que no passam por ele Proteger contra ameaas completamente novas Proteger contra vrus

O que proteger?
Quais servios precisa proteger.
Servios que devem ter acesso garantido a usurios externos e quais sero bloqueados a todas/determinadas mquinas.

Que tipo de conexes eu posso deixar passar e quais bloquear.


Servios como telnet, ftp, NFS, DNS, SMTP. Estes servios podem ser usados para tentativa de acesso a rede.

Que mquinas tero acesso livre e quais sero restritas. Que servios devero ter prioridade no processamento.

O que proteger?
Que mquinas/redes NUNCA devero ter acesso a certas/todas mquinas. O que tem permisso de passar de uma rede para outra em mquinas que atuam como roteadores/gateways de uma rede interna. A anlise destes pontos pode determinar a complexidade do firewall, custos de implementao e prazo de desenvolvimento. Existem muitos outros pontos que podem entrar na questo de desenvolvimento de um sistema de firewall, eles dependem do tipo de firewall que est desenvolvendo e das polticas de segurana da rede.

Tipos de Firewall
Existem dois tipos principais:
nvel de aplicao (proxy) - analisa o contedo do pacote para tomar suas decises de filtragem. nvel de pacotes - toma as decises baseadas nos parmetros do pacote, como porta/endereo de origem/destino, estado da conexo, e outros parmetros do pacote. Os dois tipos de firewalls podem ser usados em conjunto para fornecer uma camada dupla de segurana no acesso as suas mquinas/mquinas clientes.

Tipos de Firewall
Nvel de aplicao (Proxy)
So mais intrusivos (pois analisam o contedo de tudo que passa por ele) e permitem um controle relacionado com o contedo do trfego. Combinam em uma s ferramenta recursos bsicos existentes em firewalls em nvel de pacotes com as funcionalidades de controle de trfego de acesso.

Tipos de Firewall
Nvel de pacotes
Pode negar o pacote (DROP) ou deixar o pacote passar (ACCEPT). O iptables um excelente firewall que se encaixa nesta categoria.

Filtro de Pacotes
Filtrar = peneirar, separar Controle do trfego que entra e sai Filtro de pacotes em Roteadores Incrementa a segurana

Filtro de Pacotes
As regras dos filtros podem ter: Endereo IP de origem Endereo IP de destino Protocolos TCP, UDP, ICMP Portas TCP ou UDP origem Portas TCP ou UDP destino Tipo de mensagem ICMP

Filtro de Pacotes

Rede Interna

Roteador com Filtro de Pacotes

Internet

Filtro de Pacotes
Filtros de pacotes no tratam protocolos da camada de aplicao Filtragem pode provocar atraso no roteamento Filtros de pacotes no so uma soluo nica um complemento

Firewall IPTables
No kernel do Linux 2.4, foi introduzido o firewall iptables (tambm chamado de netfilter). Este novo firewall tem como vantagem: estabilidade, confiabilidade, flexibilidade na programao de regras pelo administrador do sistema, disponibilidade ao administrador para controle de trfego, controle independente do trfego da rede local/entre redes/interfaces devido a nova organizao das etapas de roteamento de pacotes.

Firewall IPTables
O iptables um firewall em nvel de pacotes e funciona baseado no endereo/porta de origem/destino do pacote, prioridade, etc. Ele funciona atravs da comparao de regras para saber se um pacote tem ou no permisso para passar. Ele tambm pode ser usado para modificar e monitorar o trfego da rede, fazer NAT (masquerading, source nat, destination nat), Redirecionar e modificar a prioridade de pacotes que chegam/saem do servidor. Bloquear/Liberar o acesso de mquinas desconhecidas da rede atravs do uso de simples regras.

Firewall IPTables
Um firewall no funciona de forma automtica, necessrio pelo menos conhecimentos bsicos de rede TCP/IP, roteamento e portas para criar as regras que faro a segurana da rede. A segurana do sistema depende do controle das regras que sero criadas, as falhas humanas so responsveis por mais de 95% das invases.

Firewall IPTables
Pacote: iptables iptables: sistema de controle principal para protocolos ipv4 ip6tables: sistema de controle principal para protocolos
ipv6

iptables-save: salva as regras atuais em um arquivo

especificado como argumento. Este utilitrio pode ser dispensado por um shell script contendo as regras executado na inicializao da mquina. iptables-restore: restaura regras salvas pelo utilitrio iptables-save.

Firewall IPTables
Requerimentos
Praticamente todas as distribuies Linux j vem com suporte ao iptables includo no kernel. Dependendo do trfego que ser manipulado pela(s) interface(s) do firewall ele poder ser executado at em uma mquina 486 com 4MB de RAM. Como as configuraes residem no kernel no necessrio espao extra em disco rgido para a execuo deste utilitrio.

Firewall IPTables
Instalao
O Sistema Operacional utilizado o Linux Kurumin 7. Os mdulos do iptables j esto presentes no kernel do Linux. Para instalao dos executveis para manipulao das regras do Iptables, utliza-se o comando abaixo: apt-get install iptables

O que so regras?
As regras so como comandos passados ao iptables para que ele realize uma determinada ao de acordo com o endereo/porta de origem/destino, interface de origem/destino, etc. So armazenadas dentro dos chains e processadas na ordem que so inseridas. So gravadas no kernel, o que significa que quando o computador for reiniciado tudo o que fez ser perdido. Por este motivo elas devero ser gravadas em um arquivo para serem carregadas a cada inicializao.

O que so regras?
Targets (alvos) ACCEPT DROP REJECT Envia pacote ICMP de resposta LOG Um exemplo de regra:
iptables -A INPUT -s 123.123.123.1 -j DROP

O que so regras?
Alvos: so as aes que sero tomadas com os pacotes que casarem com a regra
ACCEPT: o pacote aceito e deixar de passar pelas regras seguintes daquela chain. DROP: o pacote descartado. No informa ao emissor do pacote o que houve. REJECT: como no DROP, mas envia mensagem de erro para quem originou o pacote. RETURN: usado quando se trabalha com mltiplos chains, para retornar o processamento para o chain anterior. LOG: cria uma entrada de log para o pacote (normalmente em /var/log/messages) e continua a analisar as demais regras.

O que so regras?
SNAT: altera o endereo de origem das mquinas clientes antes dos pacotes serem roteados. Pode, por exemplo, enviar um pacote do Host A ao Host B e informar ao Host B que tal pacote fora enviado pelo Host C. DNAT: altera o endereo de destino das mquinas clientes. Pode, por exemplo, receber um certo pacote destinado a porta 80 do Host A e encaminha-lo por conta prpria a porta 3128 do Host B. Isso o que se chama Proxy Transparente, um encaminhamento dos pacotes dos clientes sem que os mesmos possuam a opo de escolher ou no tal roteamento. REDIRECT: realiza redirecionamento de portas em conjunto com a opo --to-port.

O que so chains?
onde especifica-se a situao do tratamento dos pacotes, seja qual for a tabela. Existem dois tipos de chains: padro do iptables (INPUT, OUTPUT e FORWARD) criado pelo usurio Os nomes dos chains padro do iptables devem ser especificados sempre em maisculo.

O que so chains?
As chains agrupam as regras de acordo com o fluxo dos pacotes. As principais chains so:
INPUT OUTPUT FORWARD PREROUTING POSTROUTING

Cada chain tem um poltica (policy) que define um alvo padro. A poltica a ao padro executada se nenhuma das regras da chain casar com os pacotes.

O que so tabelas?
Tabelas so os locais usados para armazenar os chains e conjunto de regras com uma determinada caracterstica em comum. As tabelas podem ser referenciadas com a opo -t e existem 3 tabelas disponveis no iptables:
filter: tabela para regras gerais de filtragem de pacotes que passam pelo firewall. nat: tabela para regras de converso de endereos e alteraes dos pacotes antes ou depois de passarem pela tabela filter. mangle: tabela para alteraes especiais em pacotes em um nvel mais complexo. A tabela mangle pode ser usada, por exemplo, para alterar a prioridade de entrada e sada de um pacote baseado no tipo de servio (TOS) para o qual o pacote se destina.

O que so tabelas?
Chains pr-definidos da tabela Filter:
INPUT: todos pacotes que entram no Firewall OUTPUT: todos pacotes que saem do Firewall FORWARD: todos pacotes que chegam ao Firewall mas devem ser redirecionados a um host secundrio ou outra interface de rede.

Listagem de regras: iptables -t filter -L

O que so tabelas?
Chains pr-definidos da tabela NAT
PREROUTING: Pacotes que precisam ser modificados quando chegam no firewall. OUTPUT: Acessada quando os pacotes precisam ser filtrados antes de serem roteados. POSTROUTING: Acessada quando os pacotes precisam ser filtrados depois de serem roteados.

Listagem de regras: iptables -t nat -L

O que so tabelas?
Chains pr-definidos da tabela MANGLE
POSTROUTING - Consultado quando os pacotes precisam POSTROUTING da tabela nat.

ser modificados antes de serem enviados para o chain

PREROUTING Modifica pacotes dando-lhes um tratamento especial antes que os mesmos sejam roteados OUTPUT Altera pacotes de forma especial gerados localmente antes que os mesmos sejam roteados.

Listagem de regras: iptables -t mangle -L

Processo de Filtragem
Pacote analisado e encaminhado para a tabela correta. Dentro da tabela o pacote encaminhado para a chain correta. Dentro da chain verificado sequencialmente se casa com uma regra, se no casar com nenhuma regra aplica-se a poltica padro da cadeia. Se casar com uma regra, executa a ao alvo da regra.

Processo de Filtragem
Serve para mudar o pacote antes do roteamento O Pacote segue este caminho quando no destinado ao Firewall e o Servidor Proxy no existe ou no est instalado na mesma mquina do Firewall.

Importante: As mesmas regras so verificadas em ambos os sentidos de comunicao (Rede A para Rede B e Rede B para Rede A). Por isso recomendvel sempre escrever as regras da chain FORWARD especificando as interfaces de entrada e sada (-i, -o)

Contm regras de Filtragem. a nica tabela de filtragem que ser verificada nas requisies de acesso externo

Se tiver IP Masquerade deve estar neste chain

Serve para mudar o pacote antes do roteamento

Um Firewall que no roda juntamente com outros servios de rede (por exemplo, o Servidor Proxy) no vai ter praticamente nenhum trfego destinado a ele.

Caso no exista um processo local esperando na porta de destino do pacote, o pacote descartado. Se existir, entrega o pacote para o processo que estiver escutando a porta. Regras de filtragem somente para a proteo do Firewall.

Se tiver IP Masquerade deve estar neste chain. Mesmo chain utilizado aps o FORWARD da tabela filter

No so muito comuns regras na chain OUTPUT. Ex: impedir que o Firewall faa um ping em outra mquina

Caminho utilizado quando algum processo do Firewall deseja acessar a rede (interna ou externa).

Comandos do iptables
-A: adiciona uma nova entrada ao fim da lista de regras; Sintaxe: iptables -A INPUT
Adiciona uma nova regra ao final da lista referente a INPUT chain

Exemplo: criar uma regra que bloqueia o acesso a prpria mquina (127.0.0.1 loopback): iptables -t filter -A INPUT -d 127.0.0.1 -j DROP
Todos os pacotes com o destino 127.0.0.1 (-d 127.0.0.1) so rejeitados (-j DROP). A opo -A usada para adicionar novas regras no final do chain. Alm de -j DROP que serve para rejeitar os pacotes, podemos tambm usar -j ACCEPT para aceitar pacotes. A opo -j chamada de alvo da regra ou somente alvo pois define o destino do pacote que atravessa a regra.

Comandos do iptables
-L: lista as regras criadas. Sintaxe: iptables [-t tabela] -L [chain] [opes]
Tabela: se a tabela no for especificada, ser usada a filter. Chain: caso o chain no seja especificado, todos os chains da tabela sero mostrados. Opes: podem ser usadas para listar o contedo de chains:
-v: exibe mais detalhes sobre as regras criadas nos chains. -n: exibe endereos de mquinas/portas como nmeros ao invs de tentar a resoluo DNS e consulta ao /etc/services. A resoluo de nomes pode tomar muito tempo dependendo da quantidade de regras que suas tabelas possuem e velocidade de sua conexo. -x: exibe nmeros exatos ao invs de nmeros redondos. Tambm mostra a faixa de portas de uma regra de firewall. --line-numbers: exibe o nmero da posio da regra na primeira coluna da listagem.

Exemplo: iptables -t filter -L INPUT

Comandos do iptables
iptables -n -v -L INPUT
Chain INPUT (policy ACCEPT 78 packets, 5820 bytes) pkts bytes target prot opt source 2 194 DROP icmp -* * 0.0.0.0/0 destination 127.0.0.1

Os campos assim possuem o seguinte significado: Chain INPUT: nome do chain listado (policy ACCEPT 78 packets, 5820 bytes): Policiamento padro do chain pkts: quantidade de pacotes que atravessaram a regra. bytes: quantidade de bytes que atravessaram a regra. Pode ser referenciado com K (Kilobytes), M (Megabytes), G (Gigabytes). target: o alvo da regra, o destino do pacote. prot: protocolo especificado pela regra. Pode ser udp, tcp, icmp ou all. opt: opes extras passadas a regra. Normalmente ! in Interface de entrada (de onde os dados chegam). out: interface de sada (para onde os dados vo). source: endereo de origem. destination: endereo de destino.

Comandos do iptables
-F: limpa todas as regras de um chain. Sintaxe: iptables [-t tabela] [-F chain] Onde: tabela: tabela que contm o chain para limpar. chain: chain que ser limpado. Se no for especificado, todos os chains da tabela sero limpos. Exemplo: iptables -t filter -F Remove todas as regras da tabela filter iptables -t filter -F INPUT Remove todas as regras referentes a INPUT chain da tabela filter.

Comandos do iptables
-D: apaga uma regra especificada da lista. Sintaxe: iptables -D [chain]
Exemplo: iptables -D INPUT
(Apaga todas as regras da INPUT chain)

O comando -D tambm permite apagar uma regra por seu nmero da lista de ocorrncias no Iptables: iptables -D FORWARD 2 (Apaga a regra de nmero 2 da FORWARD chain) Para apagar um chain, existem duas alternativas:
Quando se sabe o nmero da regra no chain (listado com a opo -L)

iptables -t filter -D INPUT 1 (Esta opo no boa se o firewall tem


A mesma sintaxe para criar a regra no chain, trocando o -A por -D: iptables -t filter -D INPUT -d 127.0.0.1 -j DROP (Caso o chain possua
vrias regras semelhantes, somente a primeira ser apagada.)

um grande nmero de regras por chains, neste caso a segunda opo a mais apropriada.)

OBS: No possvel apagar os chains defaults do iptables (INPUT, OUTPUT,. . . ).

Comandos do iptables
-P: determina o que acontecer com um pacote quando ele chegar
ao final das regras contidas em um chain. O policiamento padro do iptables ACCEPT mas isto pode ser alterado.

Sintaxe: iptables [-t tabela] [-P chain] [ACCEPT/DROP] Onde:


tabela: tabela que contm o chain que ser modificado o policiamento padro. chain: define o chain que ter o policiamento modificado. O chain deve ser especificado. ACCEPT/DROP
ACCEPT: aceita os pacotes caso nenhuma regra do chain conferir (usado em regras permissivas). DROP: rejeita os pacotes caso nenhuma regra do chain conferir (usado em regras restritivas).

Comandos do iptables
O policiamento padro de um chain mostrado com o comando iptables -L: iptables -L INPUT
Chain INPUT (policy ACCEPT) target prot opt source DROP icmp -anywhere destination localhost

No exemplo, o policiamento padro de INPUT ACCEPT (policy ACCEPT), o que significa que qualquer pacote que no seja rejeitado pela regra do chain, ser aceito. Para alterar o policiamento padro deste chain usa-se o comando: iptables -t filter -P INPUT DROP NOTA: Os policiamentos PERMISSIVOS (ACCEPT) normalmente so usados em conjunto com regras restritivas no chain correspondentes (tudo bloqueado e o que sobrar liberado) e policiamentos RESTRITIVOS (DROP) so usados em conjunto com regras permissivas no chain correspondente (tudo liberado e o que sobrar bloqueado pelo policiamento padro).

Comandos do iptables
-I: insere uma nova regra ao incio da lista de regras (ao contrrio do
comando -A que insere ao final da lista)
Exemplo: precisa-se que o trfego vindo de 192.168.1.15 no seja rejeitado pelo firewall. No pode-se adicionar uma nova regra (-A) pois esta seria includa no final do chain e o trfego seria rejeitado pela primeira regra (nunca atingindo a segunda). A soluo inserir a nova regra antes da regra que bloqueia todo o trfego ao endereo 127.0.0.1 na posio 1:

iptables -t filter -I INPUT 1 -s 192.168.1.15 -d 127.0.0.1 -j ACCEPT Assim, a regra inserida na primeira posio do chain (repare no nmero 1 aps INPUT) e a antiga regra nmero 1 passa a ser a nmero 2. Desta forma a regra acima ser consultada, se a mquina de origem for 192.168.1.15 ento o trfego estar garantido, caso contrrio o trfego com o destino 127.0.0.1 ser bloqueado na regra seguinte.

Comandos do iptables
-R: substitui uma regra j adicionada por outra.
Iptables -R FORWARD 2 -s 10.0.40.3 -d 10.0.30.0/8 -j DROP (Substitui a segunda regra referente a FOWARD chain pela seguinte: -s 10.0.40.3 -d 10.0.30.0/8 -j DROP) Exemplo: Aps criar a regra anterior, percebe-se que a inteno era somente bloquear os pings com o destino 127.0.0.1 (pacotes ICMP) e no havia necessidade de bloquear todo o trfego da mquina. Existem duas alternativas: apagar a regra e inserir uma nova no lugar ou modificar diretamente a regra j criada sem afetar outras regras existentes e mantendo a sua ordem no chain (isso muito importante). iptables -R INPUT 2 -d 127.0.0.1 -p icmp -j DROP O comando acima substituir a regra 2 do chain INPUT (-R INPUT 2) bloqueando (-j DROP) qualquer pacote icmp (-p icmp) com o destino 127.0.0.1 (-d 127.0.0.1).

Comandos do iptables
-N: insere/cria uma nova chain a tabela especificada.
Exemplo: em firewalls organizados com um grande nmero de regras,
interessante criar chains individuais para organizar regras de um mesmo tipo ou que tenha por objetivo analisar um trfego de uma mesma categoria (interface, endereo de origem, destino, protocolo, etc). O tamanho mximo de um nome de chain de 31 caracteres e podem conter tanto letras maisculas quanto minsculas. iptables [-t tabela] [-N novochain] Para criar o chain internet: iptables -t filter -N internet Para inserir regras no chain internet, especific-lo aps a opo -A: iptables -t filter -A internet -s 200.200.200.200 -j DROP E ento criamos um pulo (-j) do chain INPUT para o chain internet: iptables -t filter -A INPUT -j internet OBS: O chain criado pelo usurio pode ser em maisculas ou minsculas.

Comandos do iptables
Se uma mquina do endereo 200.200.200.200 tentar acessar a mquina protegida pelo firewall, o iptables consultar as regras:

No chain internet, a primeira regra confere com o endereo de origem 200.200.200.200 o pacote bloqueado.

Comandos do iptables
Se uma mquina com o endereo de origem 200.200.200.201 tentar acessar a mquina, o iptables consultar as regras:

O pacote passa pelas regras 1 e 2 do chain internet, como ele no confere com nenhuma das 2 regras ele retorna ao chain INPUT e analisado pela regra seguinte.

A regra nmero 4 diz para descartar o pacote.

Comandos do iptables
-E: renomea um chain criado pelo usurio na tabela filter, nat
ou mangle. Sintaxe: iptables [-t tabela] -E [chain-antigo] [novo-chain] Exemplo: iptables -t filter -E internet chain-internet

-X: apaga um chain criado pelo usurio.


Sintaxe: iptables [-t tabela] [-X chain] Exemplo: iptables -t filter -X internet (ou apenas: iptables -X)

Aes do iptables
-p: especifica o protocolo aplicado a regra. Pode ser qualquer
valor numrico especificado no arquivo /etc/protocolo ou o prprio nome do protocolo (tcp, icmp, udp, etc...); Exemplo: -p icmp

Aes do iptables
-i: especifica a interface de entrada a ser utilizada; como um
Firewall possui mais de uma interface, esta regra acaba sendo muito importante para distinguir a que interface de rede o filtro deve ser aplicado. Para listar suas interfaces de rede configuradas utilize o comando ifconfig A regra -i no deve ser aplicada na OUTPUT chain pois refere-se apenas a interface de entrada (INPUT e FORWARD) so as duas chains aplicveis a flag -i). Exemplo: -i eth0 Podemos tambm especificar todas as interfaces eth de nosso host da seguinte forma: Exemplo: -i eth+

Aes do iptables
-o: especifica a interface de sada a ser utilizada e se aplica
da mesma forma que a regra -i, porm, somente nas chains OUTPUT e FORWARD se aplicam a regra. Exemplo: -o eth0

Aes do iptables
-s: especifica a origem (source) do pacote ao qual a regra deve ser aplicada. A origem pode ser um host ou uma rede. Nesta opo geralmente utilizamos o IP seguido de sua sub-rede; Exemplo: -s 10.0.10.0/255.0.0.0 A mscara de rede pode ser omitida deste comando, neste caso o iptables optar (de forma autnoma) pela mscara 255.255.255.0 (o que acaba se aplicando a todas as sub-redes). O -s tambm possibilita a utilizao de nomes ao invs do IP; Exemplo: -s www.gnu.org Obviamente para resolver este endereo o Iptables utilizar a resoluo de nomes (seu servidor DNS) que consta configurado em seu host Firewall.

Aes do iptables
-d: especifica o destino do pacote (destination) ao qual a regra deve ser aplicada. Sua utilizao se d da mesma maneira que a ao -s.

Aes do iptables
!: significa uma excluso e utilizado quando se deseja aplicar uma exceo a uma regra. utilizado juntamente com as aes -s, -d, -p, -i, -o e etc.; Exemplo: -s ! 10.0.0.3 Refere-se a todos os endereos possveis com exceo do 10.0.0.3 Exemplo: -p ! icmp Refere-se a todos os protocolos possveis com exceo do icmp

Aes do iptables
-j: define o alvo (target) do pacote caso o mesmo se encaixe a uma regra. As principais aes so ACCEPT, DROP, REJECT e LOG.

Aes do iptables
Portas: utiliza-se uma das opes aps especificar o protocolo. S se aplica a portas referentes aos protocolos UDP e TCP. -- sport: porta de origem (source port), com esta regra possvel aplicar filtros com base na porta de origem do pacote. Exemplo: -p tcp --sport 80 (Refere-se a porta 80 do TCP) iptables -A FORWARD -p tcp --sport 25 -j ACCEPT -- dport: porta de destino (destination port), especifica a porta de destino do pacote e similar a regra -- sport. Exemplo: -p tcp --dport 5000 Pode-se utilizar faixa de portas: 123:300 (entre 123 e 300) :450 (entre 0 e 450) 25: (entre 25 e 65535)

Aes do iptables
Redirecionamento de porta (Target REDIRECT)
Encaminha pacotes com destino a uma porta para outra numa mesma mquina. Exemplo: iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

Redirecionamento de porta (Target DNAT)


Encaminha pacotes com destino a uma porta para outra em mquinas diferentes. iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.1.10:3128

Manipulando Regras
Antes de iniciar a manipulao de qualquer regra, preciso habilitar a funo de redirecionamento de pacotes (forward) no Kernel atravs do comando: echo 1 >/proc/sys/net/ipv4/ip_forward

Manipulando Regras
Salvando as regras iptables-save > [nome do arquivo] Exemplo: iptables-save > /etc/regras.conf O ideal salvar as regras no diretrio /etc

Manipulando Regras
Restaurando as regras iptables-restore < [nome do arquivo] Exemplo: iptables-restore < /etc/regras.conf Para carregamento automtico das regras sempre que o servidor for inicializado, pode-se editar o arquivo /etc/rc.local adicionando a linha acima no final do arquivo.

Exerccios
Listar as regras anexadas a base do Iptables (poltica padro das chains): iptables -L Listar as regras referentes a tabela NAT: iptables -t nat -L Listar as regras referentes a tabela MANGLE: iptables -t nat -L Configurar o alvo padro das chains referentes a tabela filter como DROP: iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT DROP

Exerccios
5) Liberar totalmente o trfego de entrada de Interface de Loopback (Io). Esta regra deve obrigatoriamente fazer parte do script Firewall para permitir a comunicao entre processos: 6) Proibir que qualquer pacote oriundo da LAN 192.168.1.0 possa direcionar-se ao site www.proibido.com.br. 7) Proibir a entrada de pacotes oriundos do host www.cracker.com na rede (192.168.1.0)

Exerccios
5) Liberar totalmente o trfego de entrada de Interface de Loopback (Io). Esta regra deve obrigatoriamente fazer parte do script Firewall para permitir a comunicao entre processos:
iptables -A INPUT -i Io -j ACCEPT

6) Proibir que qualquer pacote oriundo da LAN 192.168.1.0 possa direcionar-se ao site www.proibido.com.br.
iptables -A FORWARD -s 192.168.1.0/24 -d www.proibido.com.br -j DROP

7) Proibir a entrada de pacotes oriundos do host www.cracker.com na rede (192.168.1.0)


iptables -A FORWARD -s www.cracker.com -d 192.168.1.0/24 -j DROP

Exerccios
8) Permitir a entrada de pacotes provenientes do Site www.suaempresa.com na rede: 9) Redirecionar para o computador 192.168.1.10, os pacotes oriundos de qualquer rede que penetrem no Firewall pela interface de rede eth2.
OBS: esta regra utiliza a tabela NAT e sua chain PREROUTING, que aplica a regra antes do roteamento do pacote.

Lembre-se: o alvo DNAT altera o endereo de destino das mquinas clientes.

Exerccios
8) Permitir a entrada de pacotes provenientes do Site www.suaempresa.com na rede:
iptables -A FORWARD -s www.suaempresa.com -d 192.168.1.0/24 -j ACCEPT

9) Redirecionar para o computador 192.168.1.1, os pacotes oriundos de qualquer rede que penetrem no Firewall pela interface de rede eth1.
iptables -t nat -A PREROUTING -i eth1 -j DNAT --to 192.168.1.1 OBS: esta regra utiliza a tabela NAT e sua chain PREROUTING, que aplica a regra antes do roteamento do pacote.

Exerccios
10) Qualquer pacote que saia da rede local para outra rede possua seu endereo de origem alterado para 192.168.1.1 (implementao do mascaramento ip). Este mesmo pacote somente sofrer modificaes se sair pela interface de rede eth0. Utiliza-se a ao -o, que se refere a interface de sada (output). Ao contrrio da ao -i que se refere a interface de entrada (input): 11) Pacotes que entram por qualquer interface de rede com exceo da eth0 sejam descartados:

Exerccios
10) Qualquer pacote que saia da rede local para outra rede possua seu endereo de origem alterado para 192.168.1.1 (implementao do mascaramento ip). Este mesmo pacote somente sofrer modificaes se sair pela interface de rede eth0. Utiliza-se a ao -o, que se refere a interface de sada (output). Ao contrrio da ao -i que se refere a interface de entrada (input):
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 192.168.1.1

11) Pacotes que entram por qualquer interface de rede com exceo da eth0 sejam descartados:
iptables -A FORWARD -i !eth0 -j DROP

Exerccios
12) Pacotes destinados a porta 25 do Firewall sejam arquivados em log (/var/log/messages) e depois descartados:

Exerccios
12) Pacotes destinados a porta 25 do Firewall sejam arquivados em log (/var/log/messages) e depois descartados:
iptables -A INPUT -p tcp - -dport 25 -j LOG iptables -A INPUT -p tcp - -dport 25 -j DROP

Fazendo NAT
Para fazer NAT existem targets especficos: SNAT (Source NAT) Altera o endereo de origem dos pacotes antes de serem enviados (roteados) ao destino final. Utiliza a chain POSTROUTING Utilizado quando na rede todas as estaes tem acesso a internet atravs de um nico IP (Proxy). Habilitando redirecionamentos de pacote echo "1" >/proc/sys/net/ipv4/ip_forward

Fazendo NAT
Fazendo IP Masquerading: Tipo especial de SNAT para Ips dinmicos recebidos por provedores.
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j MASQUERADE

Exerccios
13) Qualquer pacote que possua como origem a rede 192.168.1.0 e que sair por nossa interface eth0, dever ter seu endereo alterado para 192.168.1.1: 14) Qualquer pacote proveniente do host 192.168.1.? que saia pela interface eth0 dever ter seu endereo de origem alterado por qualquer ip disponvel na faixa entre 192.168.1.2 a 192.168.1.10.

Exerccios
13) Qualquer pacote que possua como origem a rede 192.168.1.0 e que sair por nossa interface eth0, dever ter seu endereo alterado para 192.168.1.1:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to 192.168.1.1

14) Qualquer pacote proveniente do host 192.168.1.? que saia pela interface eth0 dever ter seu endereo de origem alterado por qualquer ip disponvel na faixa entre 192.168.1.1 a 192.168.1.10.
iptables -t nat -A POSTROUTING -s 192.168.1.? -o eth0 -j SNAT --to 192.168.1.1-192.168.1.10

Fazendo NAT
Fazendo DNAT: Consiste em modificar o endereo de destino dos pacotes antes que os mesmos sejam roteados ao destino final. Utilizam somente a chain PREROUTING. Utilizados para esconder servidores na sua rede interna, desenvolvimento de proxys transparentes, entre outros.

Exerccios
15) Qualquer pacote que possua como origem o host 192.168.0.? e que entre pela interface eth0 deve ter seu endereo de destino alterado para 192.168.1.1.

Exerccios
15) Qualquer pacote que possua como origem o host 192.168.1.? e que entre pela interface eth0 deve ter seu endereo de destino alterado para 192.168.1.1.
iptables -t nat -A PREROUTING -s 192.168.1.? -i eth0 -j DNAT -to 192.168.1.1

Exerccios
16) Na sua rede interna existe um servidor de email e ftp. (Mesma mquina e ip). Faa as regras necessrias para: Seu servidor de email(smtp) seja acessvel apenas pela rede interna. Pop pode ser acessado de fora. Ftp s pode ser acessado internamente. As mquinas devem navegar na internet atravs do firewall O acesso ao site www.uol.com.br permitido apenas da mquina 192.168.1.?. Seu webmail fica na rede interna e deve ser acessvel apenas pra acesso externo. Faa um log de pacotes que esto tentando acessar seu servidor smtp de fora da rede.

Servidores Proxy X Filtro de Pacotes


Tomada de decises: Servidor proxy toma decises baseado em informaes fornecidas pelo servio;

Filtro de pacotes utiliza o cabealho do pacote. Desempenho: Filtro de pacotes possui uma vantagem por estar em nvel mais baixo. Auditoria: Servidor proxy possui vantagem por permitir auditoria sobre o controle do trfego.

Configurando Proxy e Firewall


Proxy no transparente
Bloquear no firewall o acesso da rede interna para os servios Web que sero acessados pelo proxy (HTTP, HTTPS, FTP) Liberar no firewall os servios Web que no devem passar pelo servidor proxy. Exemplo: SIAFI 161.148.40.200/32 tcp 8999 e 23000 SIRF 200.140.140.198/32 tcp 13352 Con. Social 200.201.0.0/16 tcp 2631 IRPF 161.148.0.0/16 tcp 3456 Imp. Nacional 200.252.141.0/24 tcp 3001

05

Configurando Proxy e Firewall


Proxy transparente
Bloquear no firewall o acesso da rede interna para a Internet via protocolo HTTP No possvel usar HTTPS com proxy transparente, ento esse protocolo deve estar liberado no firewall Configurar no firewall o redirecionamento automtico de todo pacote com porta destino 80 (HTTP) para a mquina e porta do proxy

05

Configurando Proxy e Firewall


Proxy transparente
Redirecionamento de porta no firewall iptables Proxy e firewall na mesma mquina iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128 Proxy e firewall em mquinas distintas iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.1.1:3128

05

Concluso
Importante ferramenta na proteo Firewall no deve ser o nico componente da poltica de segurana

Qual a melhor soluo de projeto de firewall para redes?

Bibliografia
Zwicky, E; Cooper, Simon Contruindo Firewalls para a Internet. Editora OReilly, 2000. Oliveira, W Segurana da Informao. Editora Visual Books, 2001 Firewalls UFRJ http://www.gta.ufrj.br/~jaime/trabalhos/firewall/firew all.htm Internet Firewalls UFRGS http://penta.ufrgs.br/redes296/firewall/fire.html