Você está na página 1de 37

www.4linux.com.

br

Iptables um Firewall de Statefull

Ralf Braga ralf@4linux.com.br

www.4linux.com.br

Tpicos Abordados
Conceito de statefull Camadas de atuao Regras utilizadas no dia a dia Trabalhando com recursos do kernel Mascaramento de pacotes Bloqueio de pacotes Regras de icmp Nat (network address translation)

www.4linux.com.br

O que um Firewall
Mecanismo de segurana entre a rede interna e rede externa com a finalidade de liberar ou bloquear o acesso de computadores remotos aos servios que so oferecidos em um permetro ou dentro da rede corporativa, atravs do controle de pacotes que passam pelo Firewall .

Este mecanismo de segurana pode ser baseado em hardware e/ou software ou uma mistura dos dois.

(Fonte treinamento@4linux.com.br)

www.4linux.com.br

Riscos
Trs fatores esto em risco quando nos conectamos a Internet , so eles: A reputao Os Computadores As informaes guardadas Trs fatores precisam ser resguardados: Privacidade Integridade Disponibilidade
(Fonte treinamento@4linux.com.br)

www.4linux.com.br

Para que Server

Ponto de conexo com a Internet Aplicar as regras de segurana Autenticar usurios em funo de auditoria Logar Trfego Separar Rede Lan e Wan

(Fonte treinamento@4linux.com.br)

www.4linux.com.br

Arquiteturas

Roteador com Triagem (Screening Router); Gateway de Base Dupla (Dual Homed Gateway) Gateway Host com Triagem (Screened Host Gateway) Sub-rede com Triagem (Screened Subnet)

(Fonte treinamento@4linux.com.br)

www.4linux.com.br

Roteador com Triagem (Screening Router)

Mais comum, e de fcil implementao, entretanto se as regras (ACLs) do roteador forem quebradas, a rede ficar totalmente vulnervel.
SWITCH/HUB

(Fonte treinamento@4linux.com.br)

www.4linux.com.br

Gateway de Base Dupla (Dual Homed)

Todo o controle possvel do trfego feito pelo Bastion Host


SWITCH/HUB

(Fonte treinamento@4linux.com.br)

Gateway Host com Triagem (Screened Host Gateway)

www.4linux.com.br

A segunda camada, a rede interna, e quem limita os acessos neste ponto um Bastion Host com um Proxy Firewall, pois nele, temos um outro filtro de pacotes alm de mecanismos de autenticao da prpria rede interna
SWITCH/HUB

(Fonte treinamento@4linux.com.br)

www.4linux.com.br

Sub-rede com Triagem (Screened Subnet)

Router configurado com ACL pra filtrar pacotes

FIREWALL
SWITCH/HUB

SWITCH/HUB

LAN Rede Perifrica


(Fonte treinamento@4linux.com.br)

www.4linux.com.br

Packet Filter Camada OSI


CAMADA 7
APLICAO

CAMADA
APLICAO

6 APRESENT. 5
SESSO

APRESENT. SESSO TRANSPORTE

4 TRANSPORTE

PACKET FILTER
3 2 1
REDE ENLACE FSICA IP / ICMP / IGMP REDE ENLACE FSICA

(Fonte treinamento@4linux.com.br)

www.4linux.com.br

StateFull Camada OSI


CAMADA
APLICAO

CAMADA 7
APLICAO

6 APRESENT. 5
SESSO

STATEFULL PACKET

APRESENT. SESSO TRANSPORTE

4 TRANSPORTE 3 2 1
REDE ENLACE FSICA

TCP/UDP

TCP/UDP

IP / ICMP / IGMP

REDE ENLACE FSICA

(Fonte treinamento@4linux.com.br)

www.4linux.com.br

Viso Geral Camada OSI


StateFull Packet (Iptables)

Aplica o Apresent.

Aplica o Apresent.

Sesso
Transporte

StateFull Packet (Iptables)


Rede

Sesso
Transporte

Rede

StateLess Packet (Ipchains) Packet Filter (Ipfwadm) Rede


Enlace Fsica Enlace Fsica Fsica Fsica Enlace Fsica

Rede Enlace Fsica

Enlace Enlace Fsica Fsica

(Fonte treinamento@4linux.com.br)

www.4linux.com.br

Conceito de Statefull
Statefull uma caractersticas tambm utilizados por Firewalls , que tem por finalidade analisar o pacote TCP nos detalhes.

Isso permite co m que um Firewall de Statefull seja melhor tecnicamente do que um Packet Filter (Filtro de Pacotes), ou stateless (Menos recursos), devido sua criticidade na anlise dos pacotes de uma rede.

Statefull Inspection (Inspeo e controle dos estados dos pacotes)

(Fonte treinamento@4linux.com.br)

www.4linux.com.br

Netfilter
Para o funcionamento do iptables no kernel 2.4 foi implementado um Framework chamado de Netfilter.

Ele pode ser suportado via mdulo ou Built-in.

Diretrio de Mdulos: /lib/modules/2.4.20/kernel/net/ipv4/netfilter

www.4linux.com.br

Setup Mnimo para o kernel

CONFIG_PACKET CONFIG_NETFILTER CONFIG-CONNTRACK CONFIG_IP_NF_FTP CONFIG_IP_NF_IRC CONFIG_IP_NF_IPTABLES CONFIG_IP_NF_FILTER CONFIG_IP_NF_NAT CONFIG_IP_NF_MATCH_STATE CONFIG_IP_NF_TARGET_LOG CONFIG_IP_NF_MATCH_LIMIT CONFIG_IP_NF_TARGET_MASQUERADE

www.4linux.com.br

Evoluo

1994 1994

Ipfw Portado por Alan Cox do BSD para oLinux

Ipfwadm Melhorado por Jos Vos e outros voluntrios para o kernel 2.0

1998 1999

Ipchains Rust Russel e Michael Neuling - kernel 2.2 Iptables Kernel 2.4 Netfilter

www.4linux.com.br

OPES
-A - Adiciona uma ou mais regras no final de uma cadeia -D - Deleta uma ou mais regras -R - Altera uma regra -I - Insere uma regra -L - Lista todas as regras -F Limpa o fluxo de regras -N - Adiciona uma nova cadeia de regras -X - Deleta uma cadeia de regras -P - Configura uma Politica para uma cadeia de regras ((INPUT, OUTPUT, FORWARD) Exemplo: iptables -P INPUT ACCEPT iptables -A INPUT -p udp --dport 53 -j ACCEPT

www.4linux.com.br

Roteamento de Pacotes pelo Kernel

www.4linux.com.br

Tabelas
Existem alguns tipos de tabelas para serem trabalhadas no iptables: filter Esta tabela o default se no declarada em nenhuma regra, ou seja ela permite a filtragem em regras de INPUT (para pacotes vindos da internet), OUTPUT (para pacotes gerados localmente) e FORWARD. nat - Esta tabela consultada, quando um pacote responsvel por criar uma nova conexo encontrado, ou seja, quando a dport (destination port) diferente dos IPs conhecidos. mangle - Esta tabela utilizada para pacotes especiais: PREROUTING - Para alterar pacotes recebidos antes do roteamento OUTPUT - (Para alterar localmente pacotes gerados antes do roteamento

www.4linux.com.br

Extenses de Controle de Protocolos


-p Onde: tcp = 6 icmp = 1 udp = 17 0 = todos Protocol (tcp, udp, icmp ou todos)

-s Endereo IP origem dos pacotes -d - Endereo IP destino dos pacotes -j - (Jump-Alvo) Informa o que ser feito com os pacotes/ip -i - Informa a interface para pacotes recebidos via (INPUT, FORWARD e PREROUTING). -o Informa a interface para pacotes enviados via (FORWARD, OUTPUT E POSTROUTING) -f - Esta flag furta fragmentos de pacotes fragmentados -n - Habilita sadas numricas. Endereos IP's e nmeros de portas so exibidos em forma numrica.
Obs: Caso o nome da interface termine com o sinal + , significa que todas as interfaces sero utilizadas .

www.4linux.com.br

Extenses de Controle - icmp


Bloqueando pacotes com extenso do tipo icmp. Exemplo de bloqueio do ping
iptables -A INPUT -i eth1 -p icmp -s 0.0.0.0/0 -d 200.168.65.73 --icmp-type echo-request -j DROP

Exemplo de bloqueio de echo-reply


iptables -A INPUT -i eth1 -p icmp -s 0.0.0.0/0 -d 200.168.65.73 --icmp-type echo-reply -j DROP

www.4linux.com.br

Pacotes considerados INVLIDOS


Descartando pacotes considerados INVLIDOS. Exemplo:
iptables A INPUT -m state state INVALID -j DROP

www.4linux.com.br

Registrando pacotes
Descartando pacotes considerados INVLIDOS. Exemplo:
iiptables A INPUT -p icmp -j LOG log-level warning log-prefix Pacotes ICMP: Obs: Este log ser gerado no nvel de warning conforme configurao do syslog.conf.

www.4linux.com.br

Bloqueando traceroute

iptables -A INPUT -i eth0 -p tcp -s 0.0.0.0/0 -d 200.204.10.36 --dport 33434:33523 -j DROP iptables -A INPUT -i eth0 -p udp -s 0.0.0.0/0 -d 200.204.10.36 --dport 33434:33523 -j DROP

www.4linux.com.br

Mascaramento de Pacotes
IP-Masquerade echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A POSTROUTING -o eth1 -s 192.168.200.0/24 -d 0.0.0.0/0 -j MASQUERADE

www.4linux.com.br

NAT Network Address Translation


Internet IP Vlido NAT IP Invlido

Router
SWITCH/HUB

Linux Firewall IDS Proxy Logs

Linux Firewall IDS WebServer FTP DNS 1 Logs

Linux Firewall IDS Correio Anti-Vrus DNS 2 Logs

Linux Firewall IDS WebMail Logs

Rede DMZ

SWITCH/HUB

Estaes

Linux SAMBA Servidor de Arquivos Logs

Linux WebServer FTP DNS Logs

Rede Lan

www.4linux.com.br

NAT Network Address Translation


DNAT Destination Network Address Translation Utilizado para redirecionar pacotes de um IP Pblico (Vlido ex: 200.xxx) para um host em um IP no pblico (No Vlido ex: 192.168). SNAT Source Network Address Translation Utilizado para devolver pacotes de uma rede LAN para a Internet Exemplo: iptables -A PREROUTING -t nat -p tcp -d ip-valido --dport porta -j DNAT --to ip-invalido:porta iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables -t nat -A PREROUTING -p tcp -i eth1 -d 200.207.28.35 --dport 5631 -j DNAT --to 192.168.200.1:80 iptables -t nat -A POSTROUTING -p tcp -o eth0 -s 192.168.200.1 --sport 5632 -j SNAT --to 200.207.28.35:5631

www.4linux.com.br

NAT Network Address Translation


Redirecionando os pacotes para um Servidor Netmeeting iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables -t nat -A PREROUTING -p tcp -i eth1 -d 200.207.28.35 --dport 5631 -j DNAT --to 192.168.200.1:5631 iptables -t nat -A POSTROUTING -p tcp -o eth0 -s 192.168.200.1 --sport 5632 -j SNAT --to 200.207.28.35:5631

www.4linux.com.br

NAT Proxy Transparente


Iptables -t NAT -A PREROUTING -p tcp dport 80 -j REDIRECT to-ports 3128

Obs: No esquecer de habilitar no squid o aceleramento de porta

www.4linux.com.br

Parmetros
- - source-port - Porta origem ou a flag (--sport). Tambm pode ser usado o nome do servio ou um range de IP's. Se a primeira porta omitida ela ser assumida como 0 . Se a ltima omitida ser assumida como 65535 . Formato: port:port - - destination-port - Porta destino ou a flag (--dport). Mesmas regras de sport. --tcp-flags - Informa como as flags do tcp sero especificadas SYN ACK FIN RST URG PSH ou ALL

www.4linux.com.br

Parmetros
Exemplo: iptables -A INPUT - p tcp --tcp-flags SYN,ACK,FIN,RST SYN -j ACCEPT No exemplo, somente os pacotes com a flag SYN setada e as flags ACK, FIN, e RST no setadas, passaro pelo ACCEPT.

www.4linux.com.br

Parmetros
--syn - Somente os pacotes TCP, com o bit SYN setados e com os bits ACK e FIN no setados. Esse tipo de pacote solicitado em uma requisio TCP por uma conexo. --tcp-option - Habilita uma flag tcp icmp-type - Esta opo habilita o tipo de icmp. Pode ser especificado numericamente. --mac-source - Habilita trabalhar com MAC adress para pacotes recebidos via PREROUTING, FORWARD e INPUT. O formato XX:XX:XX:XX:XX:XX l -- snat - Origem do nat. S poder ser usado, quando a tabela nat estiver ativada e POSTROUTING. -- dnat - Destino do nat S poder ser usado quando a tabela nat estiver ativada e PREROUTING e OUTPUT.

www.4linux.com.br

Onde chegaremos...

Embora o Firewall seja a parte mais importante em um programa de segurana, no devemos esquecer a importncia de se utilizar ferramentas que auxiliam na deteco de brechas e vulnerabilidades dos sistemas operacionais que esto em uso na rede, bem como, o uso de programas que detectam intrusos ou ataques.

www.4linux.com.br

Concluso

importante tambm, saber qual ao a ser tomada quando uma violao ou um servio importante parar. Tudo isso tem que estar somando a METODOLOGIA e casado com NEGCIO da empresa.

www.4linux.com.br

Obrigado

Preservem sempre as 4 liberdades 0) 1) 2) 3)

Executar o software para qualquer uso. Estudar o funcionamento do cdigo e adapt-lo as suas necessidades. Redistribuio das cpias. Melhorarem o programa e tornarem essas melhorias pblicas.

www.4linux.com.br

Fontes
http://www.conectividade.com.br/download.html http://www.inf.ufrgs.br/~gseg/producao/jai-sbc-seguranca-slides-p2-2002.pdf http://www.ipsobcontrole.hpg.ig.com.br/metodo.html http://netfilter.gnumonks.org/ http://www.networkdesigners.com.br/Artigos/incidente/incidente.html http://www.spyket.com.br/ficha.html http://distro2.conectiva.com.br/pipermail/seguranca/2000-September/000308.html http://members.lycos.co.uk/paulogryfo/ssi2002/Artigos/umaferramenta.pdf http://zeus.atua.com.br/~pedro/site/faculdade/tc/docs/ http://200.171.155.61/zago/iptables.txt RFC 792 - ou http://www.ee.siue.edu/~rwalden/networking/icmp.html

Você também pode gostar