Instalando uma Firewall no seu Servidor ou VPS Linux | Blog PTWS Alojamento Web
Firewall? 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
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″
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)
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:
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.
IG_UDP_CPORTS="20,21,53,465,873,953,2077,2078″
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
EG_UDP_CPORTS="20,21,53,465,873,953"
Para um servidor ou VPS com Plesk usamos:
IG_UDP_CPORTS="20,21,53,161,162,953"
EG_UDP_CPORTS="20,21,53,113,123,161,162,873,953"
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!!!
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
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
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:
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:
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
Publicado em Administração de Sistemas, Linux Tags: administração de sistema, apf, firewall, gestão servidor, gestao vps, protecção, Segurança, servidor, svp, vps