CSF Firewall é um firewall muito popular, baseado no iptables para sistemas GNU/Linux, Nasce-o para integrar-se com o popular cPanel/WHM, porem seu exito foi tao grande que seus desenvolvedores implementaram uma versão genérica que funciona hoje nas distribuições mais populares dos sistemas operacionais GNU/Linux.
Antes de iniciar, se você tem o APF firewall, primeiro devera remove-lo executando o comando:
sh /etc/csf/remove_apf_bfd.sh
Para instalar o CSF Firewall bastá executar os seguintes comandos:
mkdir /root/temp
cd /root/temp
rm -fv csf.tgz
wget http://www.configserver.com/free/csf.tgz
tar -xzf csf.tgz
cd csf
sh install.generic.sh
Por padrão já é configurado as portas que foram detectada durante a instalação, ou seja que estão abertas. Esta configuração fica em modo teste, sendo que as regras do CSF Firewall se auto-apagarão em 5 minutos.
Logo que tenha terminado os procedimentos edit o arquivo csf.conf comando:
nano /etc/csf/csf.conf
Troque a variável abaixo:
"TESTING = "1"
por
TESTING = "0"
Após editar o texto (ctrl + x) S para sim depois enter, agora já esta salvo seu arquivo.
Com isto iremos reiniciar o CSF Firewall e já esta pronto para uso:
csf -r
Agora teste para ver se está tudo ok.
perl /etc/csf/csftest.pl
Notas importantes
Comandos
As funções mais poderosas do CSF estão na sua interface de linha de comando, cujas opções mais relevantes são as seguintes:
Uso: /usr/sbin/csf [opção] [valor]
Opção / Significado
-h, –help / Mostra a ajuda
-l, –status / Lista/Mostra a configuração do iptables
-s, –start / Inicia regras do firewall
-f, –stop / Limpa/Interrompe regras do firewall (Nota: lfd pode reiniciar o csf)
-r, –restart / Recarrega regras do firewall
-q, –startq / Reinicialização rápida (csf reiniciado pelo lfd)
-a, –add ip / Libera um IP e adiciona-o em /etc/csf.allow
-ar, –addrm ip / Remove um IP de /etc/csf.allow e deleta a regra
-d, –deny ip / Bloqueia um IP e adiciona-o em /etc/csf.deny
-dr, –denyrm ip / Desbloqueia um IP e remove-o de /etc/csf.deny
-df, –denyf / Remove e libera todos os IPs em /etc/csf.deny
-g, –grep ip / Procura nas regras do iptables por um IP (incl. CIDR)
-t, –temp / Mostra a lista atual de IPs bloqueados temporariamente e o tempo até o desbloqueio
-tr, –temprm ip / Remove um IP do bloqueio e liberação temporários
-td, –tempdeny ip ttl [-p porta] [-d direção] / Adiciona um IP a lista de de bloqueio temporário. ttl é quanto tempo o bloqueio dura (default:segundos, pode usar um sufixo de h/m/d).
Porta opcional. Direção opcional do bloqueio pode ser uma das seguintes:
in, out ou inout (default:in) -ta, –tempallow ip ttl [-p porta] [-d direção] / Adiciona um IP à lista de permissão temporária (default:inout)
-tf, –tempf / Limpa todos os IPs da lista de IPs temporários
-c, –check / Verifica se existem atualizações do csf mas não atualiza
-u, –update / Verifica se existem atualizações do csf e atualiza se possível
-uf / Força a atualização do csf
-x, –disable / Desabilita csf e lfd
-e, –enable / Habilita csf e lfd se desabilitados anteriormente
-v, –version / Mostra a versão do csf
Essas opções permitem a utilização e configuração rápida do csf, pela linha de comando, cobrindo a maior parte das necessidades diárias da administração de um servidor.
O csf utiliza alguns arquivos para configuração:
csf.conf - Arquivo de configuração principal, tem explicações detalhadas sobre as opções.
csf.allow - Uma lista de IPs e endereços CIDR que são sempre liberados pelo firewall.
csf.deny - Uma lista de IPs e endereços CIDR que são sempre bloqueados pelo firewall.
csf.ignore - Uma lista de IPs e endereços CIDR que o lfd deve ignorar e não devem ser bloqueados quando detectados.
csf.*ignore - Vários arquivos ignore que listam arquivos, usuários e IPs que devem ser ignorados pelo lfd. Veja cada arquivo para saber seu propósito específico.
Todos esses arquivos estão situados em /etc/csf, e toda vez que forem alterados o csf deverá ser reiniciado para carregar as novas configurações.
O csf é extremamente versátil, suportando uma variedade muito grande de configurações diferentes. As seguintes opções (todas em /etc/csf/csf.conf) causam (ou resolvem) a maioria dos problemas em ambientes de produção:
TCP_IN, TCP_OUT, UDP_IN, UDP_OUT: Essas opções controlam as portas TCP e UDP abertas pelo firewall, divididos por protocolo e entrada ou saída. As portas podem ser abertas individualmente, ou por intervalo.
SMTP_BLOCK, SMTP_ALLOWLOCAL: A opção SMTP_BLOCK, bloqueia todo o tráfego de saída na porta 25, exceto para os usuários root, exim e mailman (outras exceções podem ser adicionadas usando as opções SMTP_ALLOWUSER e SMTP_ALLOWGROUP esta é uma opção altamente recomendada, mas que pode atrapalhar o funcionamento de webmails. Para evitar isto, existe a opção SMTP_ALLOWLOCAL que permite as conexões de saída na porta 25 pela interface de loopback.
CT_LIMIT e relacionados: O csf tem a funcionalidade de monitoramento de conexões, que verifica se um único IP realizou uma quantidade de conexões maior do que o especificado em CT_LIMIT, durante um intervalo de tempo especificado em CT_INTERVAL. Por padrão, esse bloqueio é temporário, falaremos mais sobre bloqueios temporários mais adiante.
LF_TRIGGER e relacionados: O lfd monitora todas as tentativas de login aos serviços e caso um mesmo IP faça uma quantidade de logins falhos maior que LF_TRIGGER, o mesmo será bloqueado. Existem opções que permitem variar esta configuração por serviço, atribuindo se por exemplo, o limite de 10 tentativas para o IMAP e de 5 para o SSH.
O csf pode ser configurado ( e em alguns casos é o default) para bloquear IPs apenas temporariamente. Esta funcionalidade é controlada pelas opções LF_TRIGGER_PERM, LF_SSHD_PERM, LF_FTPD_PERM e relacionadas, que estipulam o tempo que irá durar este bloqueio temporário do IP transgressor. Os bloqueios temporários são logados em /var/log/lfd.log, o arquivo de log do LFD. É sempre importante verificar este arquivo em caso de bloqueios “inexplicáveis” acontecendo em seu servidor.
Qualquer dúvidas só postar.