Instalando uma Firewall no seu Servidor ou VPS Linux

Instalando Firewall Servidor VPSFirewall? Tal coisa é necessária?

Eu diria que nos dias que correm, “tal coisaé essencial! Ou temos uma firewall por hardware a proteger os nossos servidores ou se tal não existir é essencial ter uma Firewall (que usa o IPTables neste caso) no Servidor ou VPS.

Uma Firewall bem configurada protege o servidor de vários tipos de ataques, se bem que não abrange todos, alguns dos quais se forem de grande dimensão, podem deitar abaixo qualquer servidor. Uma Firewall também não protege o servidor ou vps contra o uso de passwords fracas, roubos de password via trojans nos pc’s dos utilizadores ou software antigo e com vulnerabilidades.

A Firewall de que vamos falar hoje é a APF (Advanced Policy Firewall) e a forma como a devemos instalar. Este artigo pretende ser um tutorial de como instalar e configurar o APF de uma forma básica.

Os exemplos dados em baixo são baseados num sistema Linux CentOS v5.x.

Em primeiro lugar devemos efectuar o login no nosso servidor ou vps como root.  Após entrar como root a primeira coisa que necessitamos é do ficheiro de instalação do APF. Para isso executamos o seguinte comando:

root# wget http://www.rfxnetworks.com/downloads/apf-current.tar.gz

Este comando faz o download da última versão do APF directamente do autor.

De seguida temos de descomprimir o ficheiro:

root# tar -zxf apf-current.tar.gz
root# cd apf-9.7-1/

Agora que estamos dentro do directório da versão mais corrente (à altura em que este artigo está a ser escrito) vamos iniciar a instalação do APF:

root# ./install.sh

Após uns momentos deve receber a mensagem “APF installed“. Inportante neste momento é saber onde é que o APF colocou os seus ficheiros, por isso tome nota destes caminhos (paths):
Instalação: /etc/apf/
Ficheiro de configuração: /etc/apf/conf.apf
Binários: /usr/local/sbin/apf
Start/Stop: /etc/init/d/apf (start|stop|restart)
Logs: /var/log/apf_log
Ficheiro de configuração Antidos: /etc/apf/ad/config.antidos

Configurar a Firewall

Para iniciar a configuração da nossa firewall começamos por editar o ficheiro de configuração localizado em /etc/apf/conf.apf :

root# nano /etc/apf/conf.apf

Passo 1

Dentro do ficheiro vamos agora mudar alguns parametros:

Primeiro vamos activar o DShield que básicamente lista as redes de topo que tem evidenciado um comportamento suspeito:

Procurar por (ctrl+w): USE_DS=”0″
Substituir por: USE_DS=”1″

Procurar por: EGF=”0″
Substituir por: EGF=”1″

Procurar por: USE_AD=
Verificar se está: USE_AD=”1″

Passo 2

Muito importante antes de activar a Firewall é coloca-la em modo de teste enquanto estamos na fase de configuração. em modo de teste, a Firewall mesmo que bloqueie todo o tráfego ao fim de 5 minutos faz um auto-reset às regras permitindo assim voltar a aceder ao servidor ou vps. Caso este parametro esteja em modo de produção e a configuração não esteja correcta corre o risco de a Firewall bloquear TUDO e a unica forma de resolver o tema é aceder via consola local ou KVMoIP (Keyboarb, Video e Mouse via IP).

Procurar por: DEVEL_MODE=
Verificar que está: DEVEL_MODE=”1″

Apenas quando estiver certo que a Firewall está totalmente funcional deve mudar este parametro para “0” (zero)

Passo 3

Aqui iniciamos uma das fases da configuração mais importantes, ou seja, configurar os portos de entrada e saida que irão ficar abertos, pois a Firewall bloqueia tudo por defeito.

Para um servidor ou vps com cPanel temos:

Localizar: # Common ingress
Colocar a linha da seguinte forma:

# Common ingress (inbound) TCP ports
IG_TCP_CPORTS="20,21,22,25,26,53,80,110,143,443,465,993,995,2077,2078,2082,2083,2086,2087,2095,2096,3306,30000_35000"

Nota: Portas 30000 a 35000 são usadas como portas para o FTP passivo. Deve editar o ficheiro de configuração do servidor de FTP para usar estas portas.

# Common ingress (inbound) UDP ports
IG_UDP_CPORTS=”20,21,53,465,873,953,2077,2078″

# Common egress (outbound) TCP ports
EG_TCP_CPORTS=”20,21,22,25,26,37,43,53,80,110,113,443,587,873,953,2087,2089,2703,3306″

Nota: A porta 3306 pertence ao MySQL e só deve ser mantida aberta em caso de necessidade de acesso externo ao MySQL, de outra forma de ser eliminada desta linha

# Common egress (outbound) UDP ports

EG_UDP_CPORTS="20,21,53,465,873,953"

Para um servidor ou VPS com Plesk usamos:

# Common ingress (inbound) TCP ports
IG_TCP_CPORTS="20,21,22,25,53,80,110,143,443,465,993,995,8443"

# Common ingress (inbound) UDP ports
IG_UDP_CPORTS="20,21,53,161,162,953"

# Common egress (outbound) TCP ports
EG_TCP_CPORTS="20,21,22,25,53,37,43,80,113,443,465,873,5224"

# Common egress (outbound) UDP ports
EG_UDP_CPORTS="20,21,53,113,123,161,162,873,953"

Passo 4

Caso tudo esteja funcional e nenhum erro detectado existe apenas mais um passo a dar:

Procurar por: DEVEL_MODE=’1′

Substituir por: DEVEL_MODE=’0′

Nota: Não execute este passo até ler este guia por completo!!!

Passo 5

Salvar o ficheiro de configuração (ctrl+x e depois y )

APF e as VPS’s

Para funcionar numa VPS, existem mais alguns passos que necessitam de ser dados, principalmente se a VPS for baseada em OpenVZ. Nesse caso deve editar o ficheiro /etc/apf/conf.apf e verificar/mudar:

Procurar por: IFACE_IN
Colocar: IFACE_IN = “venet0”

Procurar por: IFACE_OUT
Colocar: IFACE_IN = “venet0”

Procurar por: SET_MONOKERN
Colocar: SET_MONOKERN=”1″

Nota: Esta ultima linha é muito importante esta a “1” se está numa VPS pois de outro modo o modulo iptables não consegue fazer o seu carregamento.

Configurar AntiDOS para o APF

Apesar de ser relativamente recente, esta funcionalidade do APF é de etrema importância e por isso merece aqui a nossa atenção. Esta funcionalidade pode ser encontrada em /etc/apf/ad e o ficheiro de log encontrado em /var/log/apfados_log. Para configurar esta funcionalidade devidamente devemos seguir os seguintes passos:

root# nano /etc/apf/ad/conf.antidos

Existem alguns parametros que devemos mudar como por exemplo:

Procurar por: # [E-Mail Alerts]

Mudar os seguintes campos mesmo em baixo:

CONAME="Your Company" <- Substituir pelo seu nome/empresa
USR_ALERT="0"  <- Mudar para "1" para receber os alertas
USR="your@email.com" <- mudar para o seu email

Salvar o ficheiro (ctrl+x + y)

Re-carregar as configurações do APF: /usr/local/sbin/apf -r

Fazer o APF iniciar automaticamente

Falta neste momento que o APF se inicie automáticamente cada vez que o servidor ou VPS faça um reboot ou seja ligado. Para isso basta executar o seguinte comando:

root# chkconfig --level 2345 apf on

Adicionar ou Bloquear IP’s com o APF

Agora que temos a nossa firewall instalada e configurada, convém saber como bloquear ou remover um IP.

Bloquear: /etc/apf/apf -d IPAQUI COMENTARISEMESPACOSAQUI

Remover IP da lista de bloqueados: nano /etc/apf/deny_hosts.rules

Adicionar IP à lista de permitidos: /etc/apf/apf -a IPAQUI COMENTARISEMESPACOSAQUI

Remover um IP da lista de permitidos: nano /etc/apf/allow_hosts.rules

Exemplos:

apf -d 82.102.55.24 ATAQUEMALANDRO <- Bloqueia o IP 82.102.55.24 e adiciona o comentário ATAQUEMALANDRO

apf -a 82.102.66.35 IPFIXOCLIENTE <- Permite acesso do IP 82.102.66.35 e adiciona o comentário IPFIXOCLIENTE – Estando na lista de permitidos (allow) este IP não será bloqueado.

Outros comandos do APF

Iniciar o APF: /usr/local/sbin/apf -s

Uso: /usr/local/sbin/apf [OPÇÃO]

-s|–start  <- carrega as politicas da firewall

-r|–restart <- Limpa e re-carrega as politicas da firewall

-f|–flush|–stop <- limpa e para a firewall

-l|–list  <- lista regras/politicas da Firewall

-st|–status  <- lista o estado da firewall

Passo final para activar a Firewall APF

Uma vez que a firewall esteja a funcionar correctamente e não existam bloqueios, todas as portas configuradas e que estamos seguros de que está tudo em condições, está então na hora de colocar o APF em produção. Para isso devemos ir ao ficheiro de configuração e mudar um parametro:

root# nano /etc/apf/conf.apf

Procurar por: DEVEL_MODE=
Mudar para: DEVEL_MODE=”0″

root# /usr/local/sbin/apf -r

A partir deste momento temos uma Firewall totalmente configurada a proteger o nosso servidor ou VPS.

Como desinstalar o APF

Uma vez que existe sempre a hipotese de querer remover o APF do seu sistema, aqui ficam os comandos/procedimentos para o fazer:
Primeiro temos de parar a firewall:

root# /etc/init.d/apf stop

De seguida temos de limpar o iptables de todas as regras existentes:

root# iptables -F

De seguida removemos os ficheiros e directórios do APF:

root# rm -Rf /etc/apf

root# rm -Rf /usr/local/sbin/apf
root# rm -Rf /etc/rc.d/init.d/apf
root# rm -Rf /var/log/apf_log
root# rm -Rf /var/log/apfados_log

Temos também de remover o APF de se iniciar automáticamente para evitar erros:

root# /sbin/chkconfig --level 345 apf off

Finalmente falta remover o cronjob do APF:

root# nano /etc/cron.daily/fw

Encontrar e remover a linha: /etc/rc.d/init.d/apf restart >> /dev/null 2>&1

Sobre o Autor
Author Image
Carlos Santos é um dos Gestores de Clientes da PTWS. Responsavel por toda a área Técnica e de Sistemas da PTWS Lda., Engenheiro de formação, divide o seu dia na coordenação das actividades das equipas técnicas, no apoio total ao cliente final e à sua Familia.
Pode deixar um comentário, ou responder no seu blog.

Deixe a sua opinião