Sei sulla pagina 1di 13

FIREWALL ( IPTABLE )

Um dos grandes desafios de um Administrador de uma Rede garantir que os


pacotes que trafegam na rede sejam realizados com segurana. Um exemplo o
que consta da Figura 1.
Figura 1 Navegando em uma rede sem segurana.

Todo o trfego atravs de uma rede enviado no formato de pacotes, onde o incio
de cada pacote informa para onde ele est indo, de onde veio e o tipo do pacote,
entre outros detalhes.
A parte inicial deste pacote chamada cabealho e o restante do pacote, contendo
a informao propriamente dita, costuma ser chamado de corpo do pacote.
Para que isto ocorra necessrio termos um filtro de pacotes que analisa o
cabealho dos pacotes que passam pela mquina e decide o que fazer com o
pacote inteiro.
Em um pacote as possveis aes a serem tomadas so:
aceitar: o pacote pode seguir at seu destino;
bloquear: o pacote ser descartado, mas a origem do pacote ser informada de que
esta ao foi tomada; e/ou
rejeitar: o pacote ser descartado, como se a mquina jamais o tivesse recebido.
Para garantir que os pacotes trafeguem com segurana necessrio que sejam
criadas e atualizadas constantemente as defesas para reduzir a vulnerabilidade s
ameaas inovadoras dos invasores, devendo escolher entre alternativas ou
combinao adequada de diversas opes de solues disponveis e adotar aquelas
que satisfaam os requisitos exclusivos da rede.

Dentre as alternativas no mercado existe o Firewall que podem ser aplicativos ou


at mesmo a configurao de um hardware.
Firewall
Firewall (porta de fogo) o nome dado a mecanismos que atua como defesa em um
computador ou em uma rede controlando o acesso ao sistema por meio de regras
de filtragem de dados, isolando redes distintas e permitindo o controle do trfego
entre elas, podendo tambm envolver servidores proxy, analisadores de logs.
Tem como finalidade aplicar polticas de segurana a um determinado ponto de
controle da rede, permitindo somente a transmisso e recepo de dados
autorizados, para regular o trfego de dados entre redes distintas, impedindo a
transmisso e/ou recepo de acessos malficos ou no autorizados de uma rede
para outra.
Na Figura 2 ilustrada a ideia de um Firewall.
Figura 2 - Firewall

Quando da tomada de deciso para a criao de um Firewall dever ser feita uma
escolha acertada, para o sucesso em nvel da segurana de uma rede. A Figura 3
apresenta uma navegao realizada atravs de uma poltica de Firewall, onde os
pacotes aceitos continuam com a sua navegao at o seu destino e os regeitados
so descartados.

Figura 3 Politica de Firewall.

Nesta deciso dever ser levando em considerao os dois tipos de Firewall:


hardware ou software, para atender as seguintes exigncias:

Ser capaz de suportar a politica de segurana definida para a rede da


organizao, no impondo restries a essa politica;
Ser flexvel, de modo a poder adaptar-se s necessidades de segurana da
organizao;
Ser capaz de controlar o acesso a servios, negando ou permitindo a sua
utilizao consoante as necessidades;
Suportar necessidade de filtragem de trfego, de modo a permitir ou restringir
o acesso a servios oferecidos por servidores especficos;
Suportar mecanismos de especificao, de filtragem simples e flexveis, com
base em endereos IP, tipos de protocolos, portas e interfaces;
Suportar mecanismos de autenticao eficazes;
Desejavelmente suportar a funcionalidade de proxy para os principais
servios (FTP, SMTP, HTTP, entre outros);
Permitir o acesso a servidores pblicos, no comprometendo a segurana
das zonas no pblicas da rede.
Opcionalmente, ter capacidade para concentrar e filtrar acessos dial-in rede;
Manter ficheiros de histrico (log) de trfego, acesso e tentativas de acesso,
disponibilizando ferramentas para uma fcil analise desses ficheiros;
Ser expansvel em termos de capacidade e funcionalidade; em particular,
dever ter suporte por parte do fabricante, de forma a que haja acesso a
patchs para resoluo de problemas e bugs;
Ter uma interface de configurao e administrao amigvel e flexvel.

Funcionamento do Firewall
Existem diversas formas de funcionamento de um firewall, variando de acordo com o
sistema, aplicao ou do desenvolvedor do programa.
Atualmente, no mercado, so mais comuns as utilizaes de um ou mais mtodos
para controlar o trfego que circula na rede.
Dentre os metos utilizados podemos citar:

Firewall em nvel de Pacotes: Os pacotes de dados so analisados e


comparados com um conjunto de filtros predefinidos pela configurao do
firewall por parte do utilizador e os que estiverem de acordo com os padres
pr-estabelecidos passam pelo firewall, e os que estiverem fora do padro
estabeleciod sero recusados ou descartados.
Firewall em nvel de Aplicao: A informao da Internet recolhida pelo
firewall e posteriormente enviada para o sistema requisitante e vice-versa.
Firewall em nvel de Estado: Ao contrrio da filtragem de pacotes., este
mtodo inspecciona cada ligao que atravessa todos os interfaces do
firewall assegurando que a mesma fidedigna.

O kernel do GNU/Linux j vem com um filtro de pacotes bem eficiente denominado


de Netfilter, tambm conhecido como iptables, que proporciona um host ou
Servidor aceitar, rejeitar ou descartar pacotes, baseando-se na origem, no destino e
na interface pela qual o pacote foi recebido.
Iptables
O iptables um aplicativo que funciona tomando como base o endereo/porta de
origem/destino do pacote, dando prioridade, funcionando atravs da comparao
das regras para determinar se em um pacote existe ou no a permisso para
continuidade de sua navegao.
No arquivo de iptable a sua configurao dividido em quatro categorias:

Cadeia de entrada (input chain);


Cadeia de sada (output chain);
Cadeia de reenvio (forward chain;) e
Cadeias definidas pelo usurio (user defined chain).

Para cada uma destas cadeias mantida uma tabela de regras de firewall em que
especifica os critrios de anlise de um pacote e o seu alvo (target).

Se o pacote no casa com o padro especificado pela regra, a regra seguinte da


cadeia analisada. Se desta vez o pacote casar com o padro, a regra seguinte
definida pelo alvo, que pode ser o nome de uma cadeia definida pelo usurio, ou um
dos seguintes valores especiais:

ACCEPT: Significa que o filtro de pacotes deve deixar o pacote passar.


DENY / DROP: Tm o mesmo significado, porm, DENY utilizado pelo
ipchains e DROP utilizado pelo iptables, significando que o filtro de pacotes
deve impedir que o pacote siga adiante.
REJECT: Assim como DENY, significa que o pacote no deve seguir adiante,
mas uma mensagem ICMP enviada ao sistema originador do pacote,
avisando-o de que o pacote foi rejeitado. Note que DENY e REJECT tm o
mesmo significado para pacotes ICMP.
MASQ / MASQUERADE: O MASQ utilizado pelo ipchains e MASQUERADE
pelo iptables. Este alvo somente vlido para a cadeia de reenvio e para
cadeias definidas pelo usurio, e somente pode ser utilizado quando o kernel
compilador com suporte a IP Masquerade. Neste caso, pacotes sero
mascarados como se eles tivessem sido originados pela mquina local.
REDIRECT: Este alvo somente vlido para a cadeia de entrada e para
cadeias definidas pelo usurio e somente pode ser utilizado se o kernel foi
compilado com a opo de Transparent proxy. Com isto, pacotes sero
redirecionados para um socket local, mesmo que eles tenham sido enviados
para uma mquina remota. Obviamente isto s faz sentido se a mquina local
utilizada como gateway para outras mquinas. Se a porta especificada para
redirecionamento "0", que o valor padro, a porta de destino dos pacotes
ser utilizada como porta de redirecionamento. Se for especificada uma outra
porta qualquer, esta ser utilizada, independentemente daquela especificada
nos pacotes.
RETURN: Se a regra contendo o alvo RETURN foi chamada por uma outra
regra, a regra seguinte da cadeia que a chamou analisada. Caso ela no
tenha sido chamada por outra regra, a poltica padro da cadeia utilizada
para definir o destino do pacote.

Pr-requisitos para a utilizao do iptables


Para a utilizao do iptables deveremos ter o pacote instalado no host ou Servidor.
Deve conter tambm o mdulo ip_tables.
O carregamento do mdulo ip_tables dever ser executado, em um terminal como
root, o seguinte comando:
modprobe ip_tables

Instalao do iptables
A instalao do pacote iptables feita a partir de um terminal, no modo root,
digitando o seguinte comando:
apt-get install iptables

Configurao das regras de iptables


A configurao do iptables feita atravs da criao de um script, contendo as
regras, que fazem com que os pacotes possam ou no ser recebidos por toda uma
rede. Esta configurao deve ser feita somente em um host ou Servidor, para uma
interface, ou at mesmo em uma porta de comunicao.
Os elementos que devem ser especificados em uma regra do iptables so: Tabela,
Opo, Chain, Dados e Ao. A Figura 4 paresenta uma Tabela e suas
configuraes.
Figura 4 Tabela iptable.

As Tabelas so:

filter: define as principais regras de permisses de acessos (filtros) do


firewall, e comporta as chains INPUT, FORWARD e OUTPUT.
nat: responsvel pela implementao do NAT, e atravs dela podemos
realizar redirecionamento de conexes e acessos compartilhados. A tabela
nat comporta as chains PREROUTING e POSTROUTING.
mangle: utilizada para aplicar regras de acesso a qualquer pacote recebido
pelo firewall, podendo tambm marcar pacotes para realizao de
balanceamento de carga, alm de muitas outras possibilidades. A tabela
mangle nas verses de kernel mais atuais comporta todas as chains
(PREROUTING, INPUT, OUTPUT, FORWARD e POSTROUTING).
raw: usada principalmente para a configurao de isenes de
monitoramento de conexo, em combinao com o NOTRACK. Ele registra
no netfilter hooks com maior prioridade e assim chamado antes
ip_conntrack, ou qualquer outro IP tables. As suas chains so as seguintes:
PREROUTING (para pacotes que chegam atravs de qualquer interface de
rede) e OUTPUT (para pacotes gerados por processos locais).

Cada Tabela possui um conjunto de Chains, variando de acordo com a sua


funcionalidade. Chains so classificadas como um conjunto de regras com objetivos
semelhantes. So elas: input, forward, output, prerouting e postrouting, conforme
tabela Filter com suas respectivas chais mostrada na Figura 5.
Figura 5 Tabela Filter com as chain.

Detalhamento das chain:

INPUT responsvel por definir as regras que faro a filtragem de pacotes


cujo endereo de destino o firewall.
FORWARD responsvel por comportar as regras que faro a filtragem dos
pacotes que passaro pelo firewall, ou seja, que possuem como endereo de
destino algum host fora da rede interna.
OUTPUT fica responsvel por estabelecer as regras para a filtragem dos
pacotes que so originados pelo prprio firewall.
PREROUTING responsvel por definir regras especficas de roteamento
antes que o pacote seja enviado para a chain INPUT ou FORWARD, podendo
realizar algum redirecionamento de conexo (atravs do alvo DNAT) ou de
porta (atravs do REDIRECT).
POSTROUTING fica responsvel por regras especfica de roteamento aps o
pacote ter passado pelas chains PREROUTING, INPUT ou FORWARD ou
OUTPUT, podendo realizar algum tipo de filtro ou troca de endereos IPs de
origem, atravs do alvo SNAT ou MASQUERADE.

Opes:
-P = Define uma regra padro.
-A = Adiciona uma nova regra as existentes. Este tem prioridade sobre a -P.
-D = Apaga uma regra.
-L = Lista as regras existentes.
-F = Limpa todas as regras.
-I = Insere uma nova regra.
-h = Exibe a ajuda.
-R = Substitui uma regra.
-C = Faz a checagem das regras existentes.
-Z = Zera uma regra especfica.
-N = Cria uma nova regra com um nome.
-X = Exclui uma regra especfica pelo seu nome.

Linha de configurao do iptables


A configurao de cada tabela do iptables :
iptables [-t tabela] [opo] [chain] [dados] -j [ao]

Exemplo de configurao de uma linha da tabela iptables


A seguir apresentado um exemplo prtico da aplicao de uma regra:
iptables -t filter -A INPUT -d 192.168.1.1 -a ACCEPT

Vamos entender a regra:


iptables: comea uma regra do iptables
-t filter: indica a tabela (se no indicado ser automaticamente assumido a tabela
filter). Neste caso estamos deixar explcito que estamos utilizando a tabela FILTER
-A INPUT: indica a chain que ser processada, neste caso a entrada de pacotes
-d 192.168.1.1: indica o destino do pacote, que neste caso o host 192.168.1.1
-a ACCEPT: indica a ao que ser atribuda quando um pacote com todas as
caractersticas chegar no iptables. Neste caso ACCEPT.

Criando um script iptables


As regras do iptables podem ser colocadas diretamente no Servidor, mas se este
Servidor for reinicializado as regras sero apagadas. Para evitar este problema
devemos criar um script e colocara na inicializao do Sistema, para que sempre
que o Servidor for reinicializado as regras sero mantidas.
Para criarmos um script iptables devemos abrir um terminal, no modo root, e criar
um script com um editor de texto, digitando os seguintes comandos, por exemplo:
sudo su
cd /etc/rc.d
nano rc.firewall

=================== inicio do script ============================


#!/bin/bask
# Limpando politicas e regras
iptables -X
iptables -F
# Configurando as politicas padroes
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
# Configurando portas de entrada
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

# Configurando portas de saida


iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 21 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 1863 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT

======================= fim do script ==========================

Aps a edio, o script dever ser salvo.

Permisso para o script iptables


Aps a criao do arquivo necessrio atribuir as permisses de execuo no script
atravs do comando chmod:
chmod +x /etc/rc.d/rc.firewall

Execuo do script iptables


Aps o comando acima, pode ser executado o script digitando o seguinte comando:
./rc.firewall

Execuo automtica do script iptables


Para no ter que ficar chamando o script toda vez que inicializar o sistema,
aconselhvel ativ-lo na inicializao. Para isso preciso editar o arquivo
/etc/rc.d/rc.local e incluir o comando no final do arquivo.
aconselhvel dar um reboot no Servidor para aceitar as novas regras de
firewall.ou digitar o comando:
reboot
Teste de execuo do script iptables
Aps o reboot, dever ser verificado se o script est sendo executado
automaticamente. A exibio feita atravs de uma tela com todas as polticas e
regras aplicadas. Para exibio da tela com as politicas do iptables de ser
executado, em um terminal como root, o seguinte comando:
iptables -L

Caso queira entender melhor sobre Firwal e iptables, fortemente recomendado a


leitura do contedo constante no link:
< http://www.vivaolinux.com.br/artigo/Desvendando-as-regras-de-Firewall-Linux-Iptables/ >

Referencial Bibliogrfico
http://tecnologia.culturamix.com/tecnologias/o-que-e-firewall-e-o-que-ele-faz-pelocomputador
http://firewall.no.sapo.pt/index.htm
http://sabinux.blogspot.com.br/2009/10/firewall-e-iptables-conceitos.html
http://www.dimap.ufrn.br/~aguiar/Manuais/Servidor/sec-filtro-pacotes.html
http://johnnyroot.wordpress.com/2012/06/06/conhecendo-o-iptables-o-que-e-comofunciona-parte-1/
http://tarcisiogambin.net/blog/como-configurar-um-iptables-simples-e-seguro-noslackware/