O CSF (Config Server Firewall) é uma suite de scripts composta de três partes principais:
- O CSF propriamente dito, um firewall fácil de utilizar e configurar, podendo ser utilizado em uma grande variedade de sistemas Linux, com configurações para os painéis de controle cPanel, WebMin e DirectAdmin.
- O LFD (Login Failure Daemon) um script que roda como daemon, e monitora os arquivos de log dos serviços mais utilizados em busca de sinais de tentativas de ataques de força bruta. Adicionalmente, existem várias outras verificações que o lfd pode fazer no sistema e alertar o administrador em caso de alterações.
- Uma interface web integrada aos painéis cPanel, WebMin e DirectAdmin, através da qual o usuário pode adicionar regras, iniciar e parar os scripts utilizando uma interface amigável.
A instalação do CSF pode ser feita usando o seguinte comando:
cd /etc; wget http://www.configser...m/free/csf.tgz; tar -xzf csf.tgz; cd csf; sh install.cpanel.sh
Após isso, edite o arquivo /etc/csf/csf.conf alterando o valor da linha 'TESTING' de 1 para 0. Depois reinicie o csf com o comando:
csf -x && csf -e;
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.
Este tutorial é introdutório, destinado a aquelas pessoas que estão dando seus primeiros passos no uso desta ferramenta e precisam de uma referência em português.
Fonte: http://www.4site.com.br/blog/