CSF ou ConfigServer Firewall é um firewall dinâmico na inspeção de pacotes (SPI), detecção de intrusão e segurança em aplicações para servidores Linux, baseado em IPTables. Ele é gratuito e você pode instalar com comandos básicos, o problema é na hora da configuração que muitas pessoas acabam se atrapalhando, por isso estou aqui para tentar amenizar essa dor que é ficar trancado para fora do seu próprio site.
Algumas Características:
- Notificação de login no SSH
- Bloqueio de conexão excessiva
- Reporte de processo suspeito
- IDS
- Proteção contra SYN Flood
- Proteção contra PortScan
- Bloqueio de Webscanners
- Bloqueio de DoS
- Fácil administração
Quer mais características? Veja no seguinte link: http://configserver.com/cp/csf.html
A dica que dou é que tenha instalado o Apache, perl e módulos, a instalação é simples:
# wget http://www.configserver.com/free/csf.tgz
# tar -xzf csf.tgz
# cd csf
# sh install.sh
Depois que está instalado adicione seu IP dentro da WhiteList (A nova versão do CSF adiciona automaticamente o seu IP, mas veja o arquivo para ter certeza que está la) que fica no seguinte caminho:
# /etc/csf/csf.allow ou com o comando: # csf -a (IP)
Para começar a configuração, entre no arquivo CONF com o seguinte comando:
# nano /etc/csf/csf.conf
Os tempo de teste é de 5 minutos que está configurado na linha: “TESTING_INTERVAL = 5″. Um pouco acima dessa linha tem uma chamada: “TESTING= 1″, nessa linha diz que o modo de teste está ativado, como você colocou seu ip na whitelist então não tem problema de alterar de 1 para 0.
Para configurar 100% funcional o CSF Firewall você precisará ler muito, então não vou seguir passo a passo as configurações, vou apenas pegar as que eu achei mais interessante e explicá-las. Como o arquivo de configuração é grande, eu prefiro usar o CTRL + W para encontrar as palavras chaves para configuração, vou colocar aqui como deve ficar cada uma e o que cada uma faz dentro do arquivo. Vamos lá!
Configuração básica CSF Firewall
TCP_IN = “20,21,22,25,53,80….” (Aqui é a liberação de portas, geralmente deixo padrão que já vem no arquivo e coloco as que faltam).
TCP_OUT = “20,21,22,25,37,43,53,80,110,113,443…” (Também faz parte da liberação de saída, também deixo padrão e adiciono as que faltam).
UDP_IN = “20,21,53″ (Liberação de porta UDP, deixo padrão).
UDP_OUT = “20,21,53,113,123,873,6277″ (Liberação de porta UDP de saída, deixo padrão também).
ICMP_IN = “1″ e ICMP_OUT=”1″ (Se você deixar como “1″ então o ping contra o servidor vai ser permitido, você pode deixar como “0″, assim será bloqueado, vai da sua escolha).
ETH_DEVICE = “INTERFACES” (Por padrão o CSF usará o Iptables para aplicar as regras por todas as interfaces, claro que exceto o Loopback. Você pode definir as interfaces ao qual ele deve ou não aplicar).
Bloquear atacantes
DENY_IP_LIMIT = “100” (Limitar quantos IP’s podem ser bloqueados).
DENY_TEMP_IP_LIMIT = “100″ (Limitar quantos IP’s podem ser bloqueados temporariamente).
LF_DAEMON = “1″ (Quando “1″ estiver nessa linha quer dizer que o LFD (Login Failure Detection) estará ligado, caso não queira bloquear tentativas de bruteforce altere para “0″).
Você pode bloquear o atacante de três formas, primeiramente você pode adicionar o ip ou range do atacante dentro o arquivo: CSF.DENY, pode dar o comando “csf –d IP” ou automaticamente, quem faz isso é o próprio CSF Firewall.
LF_PERMBLOCK = “1″ (Ativa o bloqueio permanente com “1″ ou desativa com “0″).
LF_PERMBLOCK_INTERVAL = “86400″ (Quanto tempo em segundos que o IP ficará bloqueado).
LF_PERMBLOCK_COUNT = “3″ (Quantas vezes ele vai ser temporariamente bloqueado antes de ser bloqueado permanentemente).
LF_PERMBLOCK_ALERT = “1″ (Será gerado relatório de bloqueio).
CC_DENY = “CH,AR” (Bloquear por países).
CC_ALLOW = “CH,BR,AR” (Liberar por países).
Informar ao atacante que ele foi bloqueado
MESSENGER = “1″ (Ativa o serviço, “0″ desativa).
MESSENGER_TEMP = “1″ (Ativa o serviço para IP’s temporários).
MESSENGER_PERM = “1″ (Ativa o serviço para IP’s permanentes).
# useradd csf -s /bin/false (Adiciona o usuário que mostra a mensagem).
MESSENGER_USER = “csf” (Usuário que mostra a mensagem).
MESSENGER_HTML = “8888″ (Porta do serviço).
MESSENGER_HTML_IN = “80,443,2082,2095″ (Portas que podem ser redirecionadas para a apresentação da mensagem).
MESSENGER_TEXT = “8889″ (Porta do serviço em modo texto).
MESSENGER_TEXT_IN = “21″ (Porta que será redirecionada para avisar que o atacante foi bloqueado).
# /etc/csf/messenger/index.html ou index.txt (Diretório que fica o arquivo de apresentação da mensagem de bloqueio).
Bloqueando SynFlood
SYNFLOOD = “1″ (Ativar serviço de bloqueio, troque por “0″ para desativar se quiser).
SYNFLOOD_RATE = “100/s” (Número de conexões permitidas por segundo).
SYNFLOOD_BURST = “200″ (Tempo de espera para começar uma nova conexão).
PORTFLOOD = “80;tcp;20;5″ (PORTA;PROTOCOLO;CONEXÕES;TEMPO).
Bloqueando PortScan
PS_LIMIT = “3″ (Quantas portas ele pode varrer).
PS_INTERVAL = “300″ (Tempo que ele tem para varrer as portas, geralmente deixo “20″).
PS_PORTS = “0:65535,ICMP” (Ranges de portas para proteger).
PS_PERMANENT = “1″ (Ativa o bloqueio permanente de quem tentar escanear).
PS_BLOCK_TIME = “3600″ (Se o bloqueio permanente estiver desabilitado esse comando limita quantos segundos o atacante vai ficar bloqueado).
PS_EMAIL_ALERT = “1″ (Ativa o envio de relatório por e-mail).
Bloqueando BruteForce
LF_SSHD = “5″ (Tentativas de login até bloquear).
LF_SSHD_PERM = “1″ (O IP vai para a lista de bloqueio permanente, troque por “0″ para desabilitar a função).
Conclusão
Bom, creio que é isso. Essas são as configurações básicas, qualquer dúvida você pode ver diretamente com o fabricante da ferramenta:
http://configserver.com/cp/csf.html
Apesar de eu não entrar em alguns âmbitos como o bloqueio de e-mail, é interessante ler sobre isso. Essa é uma ferramenta muito poderosa, por isso muitos administradores não conseguem controlá-la e acabam deixando-a de lado, leia sobre ela e se torne um perito, a segurança agradece.
fonte: http://securityattack.com.br/