Este artigo é direcionado àqueles que desejam implementar o Shorewall como interface de configuração de regras de Iptables. O Shoreline, mais conhecido como Shorewall, possibilita uma configuração mais organizada e rápida do seu firewall. O servidor utilizado neste artigo é um Debian Etch 4.
Vamos ao que interessa!
Instalar os pacotes
# apt-get install shorewall shorewall-doc
Copiar os arquivos de exemplo para o diretório de configuração do shorewall
# cp /usr/share/doc/shorewall/examples/two-interfaces/* /etc/shorewall/.
Uma rápida explicação de cada arquivo de configuração, para uma implementação simples de firewall.
Zones
Neste arquivo é definido os tipos de zonas de sua rede. Os três tipos de zonas mais utilizados são:
loc – Define a zona local. Será utilizado para definir regras para a rede local.
net – Define a zona de Internet. Será utilizado para definir regras para o link de dados.
dmz – Define a zona delimitada.
A variável FW já é uma zona declarada implicitamente. Essa zona corresponde-se ao firewall e é utilizado para definir regras para o mesmo.
Editar o arquivo /etc/shorewall/zones e inserir a seguinte configuração:
################################################################
#ZONE TYPE OPTIONS IN OUT
################################################################
net ipv4
loc ipv4
# NUNCA REMOVER ESTA LINHA
Obs.: A zona FW não precisa ser definida, pois como já disse é implicitamente definida.
Interfaces
Neste arquivo são atribuídas zonas às interfaces de rede. Antes de tudo deverá existir uma estrutura de rede. Neste artigo estou utilizando eth0 para Internet (DHCP) e eth1 para rede local (IP STATIC).
Editar o arquivo /etc/shorewall/interfaces e inserir:
#########################################################
#ZONE INTERFACE BROADCAST OPTIONS
#########################################################
net eth0 detect dhcp,tcpflags
loc eth1 detect tcpflags,detectnets,nosmurfs
# NUNCA REMOVA ESTA LINHA
Masq
Mais conhecido como masquerade (mascaramento de rede) o masq define as máscaras de rede e ordem que elas serão apresentadas. Usado por servidores que servem como gateway para rede local.
Editar o arquivo /etc/shorewall/masq e inserir:
##################################################################
#INTERFACE SUBNET ADDRESS PROTO PORT(S) IPSEC
##################################################################
eth0 eth1
# NUNCA REMOVER ESTA LINHA
Policy
Toda política da rede é definida nesta zona. Antes de executar qualquer regra de excessão definida na zona rules (próximo tópico), o Shorewall utiliza as regras globais definidas nesta zona para só então dar prosseguimento às excessões.
Editar o arquivo /etc/shorewall/policy e inserir:
#
# Policies for traffic originating from the firewall ($FW)
#
# If you want open access to the Internet from your firewall, change the
# $FW to net policy to ACCEPT and remove the 'info' LOG LEVEL.
# This may be useful if you run a proxy server on the firewall.
$FW net ACCEPT # LINHA 1
$FW loc ACCEPT # LINHA 2
$FW all REJECT info # LINHA 3
# Policies for traffic originating from the local LAN (loc)
#
# If you want to force clients to access the Internet via a proxy server
# on your firewall, change the loc to net policy to REJECT info.
loc net REJECT info
loc $FW REJECT info
loc ipsec ACCEPT
loc all DROP info
#
# Policies for traffic originating from the Internet zone (net)
#
net $FW DROP info
net loc DROP info
net all DROP info
# THE FOLLOWING POLICY MUST BE LAST
all all REJECT info
# ULTIMA LINHA - NUNCA REMOVA
Uma breve explicação de algumas linhas do conf policy:
LINHA 1 - Todas as requisições do firewall para a internet serão aceitas.
LINHA 2 - Todas as requisições do firewall para a rede local serão aceitas.
LINHA 3 - Todas as requisições do firewall para todos os outros lugares serão rejeitados e devidamente catalogado em log. Por isso o "info" ao final da linha.
As opções de ações usadas nas zonas policy e rules são:
ACCEPT - Aceita pacotes/requisições
REJECT - Rejeita pacotes/requisições e retorna mensagem de rejeição
DROP - Elimina pacotes/requisições e não retorna mensagem alguma
Rules
Nesta zona são definidas as regras finais para o destino e origem de cada pacote/requisição. Após terem passados pelas regras da zona policy, o firewall trata os pacotes com essas excessões e direciona-os para o seu destino/origem finais.
Editar o arquivo /etc/shorewall/rules e inserir:
##################################################################
#ACAO ORIGEM DESTINO PROTO DESTINO ORIGEM
#SOLICITANTE TAXA USUARIO
# ZONA ZONA PORTA PORTA(S)
##################################################################
# Aceita conexoes DNS vindas do firewall para a rede
#
DNS/ACCEPT $FW net
# Permite Ping vindos da "zone loc" para rede
#
Ping/ACCEPT loc $FW
Ping/ACCEPT loc loc
# Rejeita ping vindo da "zone net" batizados como "maus"...
#
Ping/ACCEPT net:200.200.200.00 $FW
Ping/DROP net $FW
ACCEPT $FW loc icmp
ACCEPT $FW net icmp
# Abrindo portas
#
ACCEPT net $FW tcp 22 # SSH
ACCEPT net $FW tcp 9000 # SSH
ACCEPT net $FW tcp 8080 # Tomcat6
ACCEPT net $FW tcp 9100 # Apache2
ACCEPT net $FW tcp 80 # Apache2
ACCEPT net $FW tcp 1521 # Oracle_Listener
ACCEPT net $FW tcp 10000 # Webmin
ACCEPT net $FW tcp 1158 # OEM
# Redirecionando conexões
# Neste exemplo estou direcionando uma requisição vinda da internet
# e direcionando-a para a rede local no IP 192.168.27.2 na porta 4899
#
DNAT $FW loc:192.168.27.2:4899 tcp 1158
# ULTIMA LINHA - NUNCA REMOVA
Esta foi uma breve explicação de como utilizar o Shorewall como firewall. Para quem deseja aprofundar-se neste software e implementar as outras diversas funcionalidades dele, o site oficial é http://www.shorewall.net/
3 comentários:
Amigo, muito bom o conteúdo, mas o que quer dizer o 1158 em: DNAT $FW loc:192.168.27.2:4899 tcp 1158 ???
Opa, obrigado!
Essa regra quer dizer:
Transferir (DNAT) todas as conexões que entram no firewall ($FW) na porta 1158 para a rede local (loc) no ip 192.168.27.2 na porta 4899. Ou seja, se alguém quizer acessar uma maquina da rede interna, como por exemplo via Radmin, é feita essa regra.
o que eu estava procurando, obrigado
Postar um comentário