Você está na página 1de 7

Firewall Iptables - Administrao com Shorewall

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 shorewall 0:off 1:off 2:on 3:on 4:on 5:on 5:on 6:off 6:off

Alm disso, deve-se ajustar a varivel STARTUP_ENABLED para Yes no arquivo /etc/shorewall/shorewall.conf.

Firewall Iptables - Administrao com Shorewall

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 do Shorewall

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 # fw net loc TYPE firewall ipv4 ipv4 OPTIONS IN OPTIONS OUT OPTIONS

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 net loc INTERFACE eth0 eth1 BROADCAST detect detect

OPTIONS routefilter,norfc1918,logmartians,nosmurfs,tcpflags,blac 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 # fw net ACCEPT fw loc ACCEPT net all DROP info # A SEGUINTE POLTICA SEMPRE DEVE SER A LTIMA all all REJECT info LOG LEVEL LIMIT:BURST

Configurao de Zonas

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: DEST PORT(S) Interv. de Portas

ACTION ACCEPT, DROP, REJECT, DNAT, DNAT-, REDIRECT, CONTINUE, LOG, QUEUE

SOURCE

DEST

PROTO

dmz, fw, loc, net, loc:ipaddr, dmz, loc:ipaddr/mask, fw:~mac, fw, loc, net:ipaddrrange, net dmz:ipaddr,ipaddr

tcp, udp, icmp, all

nmero, menor:maior

Eis um exemplo comentado sobre a construo de regras:


#ACTION SOURCE DEST PROTO DEST SOURCE # PORT PORT(S) # Aceitar pacotes icmp da internet para o firewall em no mximo 8 por segundo ACCEPT net fw icmp 8 ORIGINAL DEST

Configurao de Polticas

# 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 inte 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 inte 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

Configurao de Regras

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 # PARAM DEST PROTO tcp DEST SOURCE RATE PORT(S) PORT(S) LIMIT 1194 USER/ GROUP

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.

Teste da Configurao

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.

Shorewall Web interface

Você também pode gostar