Você está na página 1de 7

Firewall Iptables - Administrao com Shorewall

dicas-l.com.br/arquivo/firewall_iptables_administracao_com_shorewall.php
Assine a Lista Dicas-L
Receba diariamente por email as dicas de informtica publicadas neste site Para se descadastrar,
clique aqui.
Colaborao: Jos Messias Alves da Silva
Data de Publicao: 05 de agosto de 2011
Em complemento dica Firewall Iptables - Administrao com FireHOL , ser abordado aqui a
ferramenta Shorewall, que tambm pode ser considerada um front-end para manter um firewall que,
por trs, roda iptables. Facilita e agiliza enormemente o gerenciamento de regras, dada a simplicidade
de seus arquivos de configurao.
Instalao
Em sistemas Debian-like
#apt-get install
shorewall
Shorewall tambm est desabilitado por padro, sendo necessrio modificar o arquivo
/etc/default/shorewall para ativ-lo, alterando
startup =
0
para
startup =
1
Em sistemas baseados em RPM
#yum install
shorewall
Habilitando Shorewall para ser iniciado durante o boot:
# chkconfig shorewall on
Verificando se os servios sero iniciados durante o boot:
# chkconfig --list | grep
"iptables\|shorewall"
iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
shorewall 0:off 1:off 2:on 3:on 4:on 5:on
6:off
Alm disso, deve-se ajustar a varivel STARTUP_ENABLED para Yes no arquivo
/etc/shorewall/shorewall.conf.
Configurao do Shorewall
Os arquivos de configurao do Shorewall so armazenados em diretrios especficos:
/etc/shorewall - armazena todos os arquivos de configurao.
/usr/share/shorewall - armazena os arquivos de suporte e de ao.
Geralmente, a configurao inicial do Shorewall realizada a partir dos exemplos de arquivos de
configurao, localizados em /usr/share/doc/shorewall/examples. Nesse diretrio, h
exemplos para configurao de servidores de uma, duas e at trs interfaces de rede. Em sistemas
baseados em RPM esse diretrio localizado em
/usr/share/doc/shorewall-common-*/Samples/. A configurao padro da ferramenta em
sistemas Debian encontra-se no diretrio /usr/share/doc/shorewall/default-config,
enquanto que em Sistemas RPM os arquivos j se encontram no diretrio de configurao. Assim, em
sistemas Debian deve-se copiar esses arquivos para o diretrio de configurao:
#cp /usr/share/doc/shorewall/default-config/*
/etc/shorewall/
O Shorewall composto de vrios pequenos arquivos de configurao, dentre eles esto:
accounting, actions, blacklist, clear, ecn, findgw, hosts, init, initdone, interfaces
, isusable, lib.private, maclist, masq, nat, netmap, notrack, params, policy,
providers, proxyarp, refresh, refreshed,restored, route_rules, routestopped, rules,
start, started, stop, stopped, tcclasses, tcclear, tcdevices, tcfilters, tcrules,
tos, tunnels, zones.
Os mais utilizados so:
/etc/shorewall/shorewall.conf - configurao das opes gerais da ferramenta
(inicializao, encaminhamento, log's, etc.) ;
/etc/shorewall/zones - declarao de zonas;
/etc/shorewall/interfaces - definio do que cada interface far;
/etc/shorewall/masq - define o mascaramento de interfaces de rede e a ordem em que
elas sero apresentadas;
/etc/shorewall/nat - definio de NAT;
/etc/shorewall/blacklist - declarao de IP's bloqueados;
/etc/shorewall/maclist - definio de associao de endereos MAC e IP;
/etc/shorewall/policy - definio de polticas padro (ACCEPT, DROP, REJECT);
/etc/shorewall/rules - regras efetivas de firewall.
Para uma configurao bsica, necessrio apenas os arquivos zones, interfaces, policy e
rules. Em sistemas baseados em RPM sempre necessrio colocar uma linha comentada ao final
dos arquivos para que no ocorram erros de sintaxe.
Configurao de Zonas
O primeiro passo editar o arquivo de zonas para especificar as zonas de diferentes redes, onde so
definidos rtulos que sero utilizados em outros arquivos. Ser considerada internet como uma zona e
a rede interna como uma outra zona. H uma zona especial, a zona de firewall, "fw", que vem
definida por padro, utilizada para controlar o trfego que parte e chega ao prprio servidor. Assim, o
arquivo de zonas deve ficar:
#ZONE TYPE OPTIONS IN
OUT
# OPTIONS OPTIONS
fw firewall
net ipv4
loc ipv4
Configurao de Interfaces
O passo seguinte editar o arquivo de interfaces para especificar as interfaces do servidor. Nesse
arquivo h a ligao das zonas definidas no passo anterior com uma interface real. O terceiro campo
o endereo de broadcast da rede ligado interface (a diretiva detect obtm esse valor
automaticamente). Por fim, os ltimos campos so opes para a interface. As opes listadas abaixo
representam uma boa configurao inicial:
#ZONE INTERFACE BROADCAST OPTIONS
net eth0 detect
routefilter,norfc1918,logmartians,nosmurfs,tcpflags,blacklist
loc eth1 detect tcpflags
Configurao de Polticas
Em seguida, define-se as polticas padres do firewall. Uma poltica padro usada caso no haja
outras regras associadas poltica. Em geral, define-se a poltica padro para REJECT ou DROP, e
depois configura-se especificamente quais portas/servios devem ser permitidos, o que realizado no
prxima passo, e todo trfego que no "case" com algum regra, por padro, ser rejeitado ou
descartado, de acordo com esta poltica. A seguir, um exemplo de definio de polticas (baseado nos
arquivos de zonas e interfaces criados nas etapas anteriores):
#SOURCE DEST POLICY LOG LIMIT:BURST
# LEVEL
fw net ACCEPT
fw loc ACCEPT
net all DROP info
# A SEGUINTE POLTICA SEMPRE DEVE SER A
LTIMA
all all REJECT info
Esta poltica faz com que, por padro, qualquer trfego proveniente do servidor (fw) para a internet e
para a rede local seja aceito. Qualquer trfego proveniente da internet destinado ao servidor ou a rede
local deve ser descartado e registrado no nvel de log do syslog "info". A ltima linha fecha tudo e
grava em log no nvel "info". Vale salientar a diferena entre as polticas DROP e REJECT, onde a
primeira apenas descarta silenciosamente, enquanto a segunda envia mensagem ao remetente que
os pacotes enviados foram rejeitados.
Configurao de Regras
O arquivo mais importante o de regras, rules. Nele que se define o que permitido ou no.
Qualquer nova conexo que chega ao firewall passa por essas regras e, se no "casar" com algumas
das regras, a poltica padro ser aplicada.
O formato usual para construo das regras :
ACTION: Ao dada ao trfego, se ser rejeitado, aceito ou descartado;
SOURCE: Remetente, quem origina o trfego. Pode ser usado como opes o nome da zona,
o nome da zona com dois pontos e o endereo IP do host da zona, a zona e a sub-rede, a zona
e uma lista de hosts separados por vrgula, a zona e o endereo MAC do host ou a zona e uma
faixa de endereos IP;
DEST: Destinatrio do trfego, para o qual a regra ser aplicada. Possveis opes: nome da
zona;
PROTO: Protocolo que ser usado;
DEST PORT(S): porta de destino do trfego. Para facilitar a construo da regras, segue um
quadro com um resumo das opes de cada campo do formato da regra:
ACTION SOURCE DEST PROTO
DEST
PORT(S)
Interv. de
Portas
ACCEPT, DROP, REJECT,
DNAT, DNAT-, REDIRECT,
CONTINUE, LOG, QUEUE
dmz, fw, loc, net, loc:ipaddr,
loc:ipaddr/mask, fw:~mac,
net:ipaddrrange,
dmz:ipaddr,ipaddr
dmz,
fw,
loc,
net
tcp,
udp,
icmp,
all
nmero,
menor:maior
Eis um exemplo comentado sobre a construo de regras:
#ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL RATE USER/ MARK
# PORT PORT(S) DEST LIMIT GROUP
# Aceitar pacotes icmp da internet para o firewall em no mximo 8 por
segundo
ACCEPT net fw icmp 8
# Aceitar pacotes icmp do firewall para a internet de forma ilimitada
ACCEPT fw net icmp
# Aceitar pacotes tcp da internet para o firewall no servios indicados
ACCEPT net fw tcp ssh,http,https,smtp,imap,imaps
# Aceitar pacotes udp da internet para o firewall no servio https
ACCEPT net fw udp https
# Aceitar pacotes tcp especificamente do IP internet 200.200.200.200 para
o firewall
ACCEPT net:200.200.200.200 fw tcp
NAT
Para realizar NAT, antes de qualquer coisa, deve-se alterar a vriavel IP_FORWARDING de Off para
On no arquivo de configurao /etc/shorewall/shorewall.conf. O mascaramento de
endereos nas interfaces (SNAT) realizada, de forma simples, no arquivo masq:
# Todo o trfego que vem da rede interna (eth1) deve ser traduzido para
fora pela interface internet (eth0)
eth0 eth1
Para a utilizao de regras DNAT, basta incluir no arquivo de regras (rules), linhas como a
comentada abaixo:
# Encaminha as requisies http provenientes da internet para a mquina
192.168.0.4 da rede interna
DNAT net loc:192.168.0.4 tcp www
Proxy Transparente
Uma regra para utilizar Proxy Transparente, ou seja, que os pacotes com destino porta 80 (http)
sejam desviados automaticamente pelo firewall para o servio proxy na porta 3128, obtida atravs
do comando:
# Neste caso, o Servidor Proxy est rodando junto com o Firewall.
# Se o Servidor Proxy estiver rodando em outra mquina, utilizar
DNAT.
REDIRECT loc 3128 tcp http - -
Teste da Configurao
Para testar se a configurao tem algum erro, executa-se:
# shorewall check
Se apresentar algum erro:
# shorewall debug
restart
Com isso, possvel verificar onde est ocorrendo o erro informado. Caso haja erro de sintaxe na
configurao, recomenda-se uma leitura no arquivo /var/log/shorewall-init.log para
descoberta da causa.
Se ao final do comando for exibido Shorewall configuration verified j possvel iniciar o Shorewall:
#/etc/init.d/shorewall start
Utilizao de Macros
O Shorewall disponibiliza macros (conjunto de regras) utilizadas para liberar ou bloquear alguma
conexo com base na identificao servio. Os arquivos de macros podem ser encontrados no
diretrio /usr/share/shorewall/.
A sintaxe de utilizao a seguinte:
MACRO/AO
opes
Por exemplo, descartar conexes provenientes da internet para o firewall no servio SSH:
SSH/DROP net
fw
Supondo que seja necessrio configurar uma macro para os servio OpenVPN em
/usr/share/shorewall/macro.OPENVPN.
#ACTION SOURCE DEST PROTO DEST SOURCE RATE
USER/
# PORT(S) PORT(S) LIMIT GROUP
PARAM - - tcp 1194
Neste caso, digitar:
OPENVPN/ACCEPT net fw
Ter o mesmo efeito que:
ACCEPT net fw tcp
1194
possvel e mais interessante substituir vrios comandos utilizando macros quando o servio utilizar
vrias portas e tanto o protocolo tcp quanto udp.
Shorewall Web interface
H poucas opes grficas para gerenciamento do Shorewall, sendo um mdulo do webmin a mais
consistente at o presente momento, disponvel em
http://www.webmin.com/download/modules/shorewall.wbm.gz.
Consideraes Finais
Assim como o FireHOL, Shorewall busca facilitar a vida de quem tem que administrar firewalls iptables
com muitas linhas e no requer que o mantenedor tenha conhecimento de iptables, embora isso
contribua bastante no momento da verificao da corretude da regras.
Shorewall, a exemplo de outros servios como Apache, procura manter a configurao em pequenos
arquivos separados para facilitar gerenciamento, ao invs de em uma configurao enorme. Shorewall
tambm mantm configuraes separadas para os servios (macros). Dessa forma, se requisitos de
um servio mudam, apenas a macro precisar ser editada.
Por fim, sempre importante estudar a fundo a ferramenta que se escolher, para estar preparado
quando tiver que resolver detalhes de configurao de um firewall em pouco espao de tempo.
Referncias
http://www.shorewall.net/
Jos Messias Alves da Silva Matemtico, Cientista da Computao pela UFPI,
Especialista em Administrao em Redes Linux, Analista Judicirio - rea Apoio
Especializado - Especialidade Tecnologia da Informao do Tribunal Regional do
Trabalho da 22 Regio. Entusiasta de solues FOSS e ativista de cultura Hacker.


19 Ago 2011, 21:15
05 Ago 2011, 12:33

Você também pode gostar