Configurando firewall Shorewall no CentOS

Este artigo trata da instalação e configuração do excelente firewall Shorewall na distribuição CentOS 5.5. Todos estão autorizados a publicar esse artigo, desde que preserve minha autoria.

[ Hits: 21.222 ]

Por: Rodrigo Morais em 27/07/2010


Instalação e configuração do Shorewall no CentOS



Netfilter faz a filtragem de pacotes Linux em kernels da série 2.4.x e 2.6.x. Permite a filtragem de pacotes (endereço de rede e portas), NAT e outros pacotes. Reprojetado e altamente melhorado do kernel anterior 2.2.x, ipchains e ipfwadm do kernel 2.0.x.

Netfilter é um conjunto de estruturas dentro do kernel permitindo que os módulos registrem funções com a rede.

Um registro das informações é retornado para informar o destino desse pacote. DENY, ACCEPT, REJECT são as informações retornadas para informar o destino/solicitação.

DROP - Rejeita o pacote, sem envio de mensagem.

REJECT - Faz a mesma função do DROP, com a diferença de que envia uma mensagem ICMP "icmp-port-unreachable" para a máquina de origem.

Iptables é uma estrutura de tabela para a definição de conjuntos de regras. Cada regra dentro de uma tabela (IP) consiste em solicitação e uma ação (regras).

Netfilter, ip_tables, rastreamento de conexão (ip_conntrack, nf_conntrack) e o NAT são subsistemas juntos para construir as principais partes da estrutura.

Referência: http://www.netfilter.org

Shoreline Firewall (netfilter)

Site do desenvolvedor: www.shorewall.net/index.htm

Vá em Documentation (Documentações) que lá vai constar item por item e outras coisas que se pode adicionar ao Shorewall.

Utilizando o "shorewall" você estará usando o iptables, porém de uma maneira mais fácil.

# yum install shorewall

Verificando os processos que estão para ser iniciados durante o reboot:

# chkconfig --list
iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off
shorewall       0:off   1:off   2:off   3:off   4:off   5:off   6:off

Note que o Shorewall encontra-se off. Ou seja, toda vez que a máquina for reiniciada, o Shorewall não irá subir.

# chkconfig shorewall on

Deixando ele (shorewall) habilitado aparecerá assim:

shorewall       0:off   1:off   2:on    3:on    4:on    5:on    6:off

Arquivos de configuração do Shorewall:
  • /etc/shorewall/shorewall.conf
  • /etc/shorewall/interfaces
  • /etc/shorewall/masq
  • /etc/shorewall/policy
  • /etc/shorewall/rules
  • /etc/shorewall/zones

Onde:
  • interfaces - Definição do que cada interface fará
  • masq - Definição de Masquerade/SNAT (eth0, eth1, eth2...)
  • police - Políticas (ACCEPT, DROP, REJECT ...)
  • rules - Regras do firewall
  • zones - Declaração de zonas

Configuração do Shorewall

Mudar no arquivo shorewall.conf:

STARTUP_ENABLED=No

Para:

STARTUP_ENABLED=Yes

e:

SHOREWALL_COMPILER=

Para:

SHOREWALL_COMPILER=perl

# cat /etc/shorewall/interfaces

#
# Shorewall version 4 - Interfaces File
#
# For information about entries in this file, type "man shorewall-interfaces"
#
# The manpage is also online at
# http://www.shorewall.net/manpages/shorewall-interfaces.html
#
#######################################
#ZONE   INTERFACE       BROADCAST       OPTIONS
net     eth0      detect        tcpflags,dhcp,routefilter,nosmurfs,logmartians
loc     eth1      detect        tcpflags,nosmurfs
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE


# cat masq
#
# Shorewall version 4 - Masq file
#
# For information about entries in this file, type "man shorewall-masq"
#
# The manpage is also online at
# http://www.shorewall.net/manpages/shorewall-masq.html
#
#######################################
#INTERFACE              SOURCE          ADDRESS         PROTO   PORT(S) IPSEC   MARK
eth0    200.x.x.x
eth0:1  200.y.y.y
eth1    10.x.y.z
#LAST LINE -- ADD YOUR ENTRIES ABOVE THIS LINE -- DO NOT REMOVE

Obs.: Ler muito bem esse manual, tem diversas opções a serem configuradas.

# cat policy

#
# Shorewall version 4 - Policy File
#
# For information about entries in this file, type "man shorewall-policy"
#
# The manpage is also online at
# http://www.shorewall.net/manpages/shorewall-policy.html
#
#######################################
#SOURCE         DEST            POLICY          LOG             LIMIT:BURST
fw      loc     ACCEPT
fw      net     ACCEPT
fw      fw      ACCEPT

loc     fw      ACCEPT
loc     net     ACCEPT
loc     loc     ACCEPT

net     fw      DROP    info
net     loc     DROP    info
net     net     DROP    info

all     all     DROP    info
#                                               LEVEL
#LAST LINE -- DO NOT REMOVE

Obs.: Deixei essa última linha (all all DROP info) porque eu decreto o que passa e não passa no firewall e irá gerar um log do que for.

# cat rules

#
# Shorewall version 4 - Rules File
#
# For information on the settings in this file, type "man shorewall-rules"
#
# The manpage is also online at
# http://www.shorewall.net/manpages/shorewall-rules.html
#
############################################
#ACTION         SOURCE          DEST            PROTO   DEST    SOURCE          ORIGINAL        RATE            USER/   MARK
#                                                       PORT    PORT(S)         DEST            LIMIT           GROUP
#SECTION ESTABLISHED
#SECTION RELATED
SECTION NEW

### NET to FW

ACCEPT  net     fw   icmp  echo-request
ACCEPT  net     fw   tcp   81
ACCEPT  net     fw   tcp   22

### LOC to FW

ACCEPT  loc     fw   tcp   ssh
ACCEPT  loc     fw   icmp  echo-request
ACCEPT  loc     fw   udp   snmp

### LOC to NET

ACCEPT  loc     net  udp   domain
ACCEPT  loc     net  tcp   domain
ACCEPT  loc     net  tcp   http,https
ACCEPT  loc     net  icmp  echo-request
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE


# cat zones
#
# Shorewall version 4 - Zones File
#
# For information about this file, type "man shorewall-zones"
#
# The manpage is also online at
# http://www.shorewall.net/manpages/shorewall-zones.html
#
#######################################
#ZONE   TYPE            OPTIONS         IN                      OUT
#                                       OPTIONS                 OPTIONS
fw      firewall
net     ipv4
loc     ipv4
#LAST LINE - ADD YOUR ENTRIES ABOVE THIS ONE - DO NOT REMOVE

# service shorewall start

Se apresentar algum erro:

# shorewall debug restart

Você poderá verificar onde está dando o erro informado.

   

Páginas do artigo
   1. Instalação e configuração do Shorewall no CentOS
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Script de firewall e análise de log

IPset - Bloqueie milhares de IPs com o iptables

Gerenciando regras de Iptables com Firewall Builder

Incremente o iptables com patch-o-matic

Squid + iptables (método ninja)

  
Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts