Pesquisa de site

Instale e configure o ConfigServer Security & Firewall (CSF) no Linux


Se você olhar as ofertas de emprego relacionadas a TI em qualquer lugar, notará uma demanda constante por profissionais de segurança. Isto não significa apenas que a segurança cibernética é um campo de estudo interessante, mas também muito lucrativo.

Com isso em mente, neste artigo explicaremos como instalar e configurar o ConfigServer Security & Firewall (também conhecido como CSF), um pacote de segurança completo para Linux e compartilhe alguns casos de uso típicos. Você poderá então usar o CSF como um firewall e um sistema de detecção de falhas de intrusão/login para proteger os servidores pelos quais você é responsável.

Sem mais delongas, vamos começar.

Instalando e configurando CSF no Linux

Para começar, observe que Perl e libwww são pré-requisitos para instalar o CSF em qualquer uma das distribuições suportadas (RHEL > e CentOS, openSUSE, Debian e Ubuntu). Como deveria estar disponível por padrão, não há nenhuma ação necessária de sua parte, a menos que uma das etapas a seguir retorne um erro fatal (nesse caso, use o sistema de gerenciamento de pacotes para instalar as dependências ausentes).

yum install perl-libwww-perl
apt install libwww-perl

Passo 1 – Baixe o CSF

cd /usr/src
wget https://download.configserver.com/csf.tgz

Passo 2 – Extraia o tarball do CSF

tar xzf csf.tgz
cd csf

Passo 3 – Execute o script de instalação do CSF

Esta parte do processo verificará se todas as dependências estão instaladas, criará as estruturas de diretórios e arquivos necessários para a interface web, detectará as portas atualmente abertas e lembrará você de reiniciar o csf e o lfd< daemons depois de concluir a configuração inicial.

sh install.sh
perl /usr/local/csf/bin/csftest.pl

A saída esperada do comando acima é a seguinte:

Testing ip_tables/iptable_filter...OK
Testing ipt_LOG...OK
Testing ipt_multiport/xt_multiport...OK
Testing ipt_REJECT...OK
Testing ipt_state/xt_state...OK
Testing ipt_limit/xt_limit...OK
Testing ipt_recent...OK
Testing xt_connlimit...OK
Testing ipt_owner/xt_owner...OK
Testing iptable_nat/ipt_REDIRECT...OK
Testing iptable_nat/ipt_DNAT...OK

RESULT: csf should function on this server

Etapa 4: desative o firewall e configure o CSF

Desative o firewalld se estiver executando e configure o CSF.

systemctl stop firewalld
systemctl disable firewalld

Altere TESTING="1" para TESTING="0" (caso contrário, o daemon lfd falhará ao iniciar) e liste as entradas e saídas permitidas portas como uma lista separada por vírgulas (TCP_IN e TCP_OUT, respectivamente) em /etc/csf/csf.conf conforme mostrado na saída abaixo :

Testing flag - enables a CRON job that clears iptables incase of
configuration problems when you start csf. This should be enabled until you
are sure that the firewall works - i.e. incase you get locked out of your
server! Then do remember to set it to 0 and restart csf when you're sure
everything is OK. Stopping csf will remove the line from /etc/crontab
#
lfd will not start while this is enabled
TESTING = "0"

Allow incoming TCP ports
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995"

Allow outgoing TCP ports
TCP_OUT = "20,21,22,25,53,80,110,113,443,587,993,995"

Quando estiver satisfeito com a configuração, salve as alterações e retorne à linha de comando.

Passo 5 – Reinicie e teste o CSF

systemctl restart {csf,lfd}
systemctl enable {csf,lfd}
systemctl is-active {csf,lfd}
csf -v

Neste ponto, estamos prontos para começar a configurar regras de firewall e detecção de intrusões, conforme discutido a seguir.

Configurando regras de CSF e detecção de intrusão

Primeiro, você desejará inspecionar as regras atuais do firewall da seguinte maneira:

csf -l

Você também pode pará-los ou recarregá-los com:

csf -f
csf -r

respectivamente. Certifique-se de memorizar essas opções – você precisará delas à medida que avança, principalmente para verificar depois de fazer alterações e reiniciar o csf e o lfd.

Exemplo 1 – Permitindo e Proibindo Endereços IP

Para permitir conexões de entrada de 192.168.0.10.

csf -a 192.168.0.10

Da mesma forma, você pode negar conexões originadas em 192.168.0.11.

csf -d 192.168.0.11

Você pode remover cada uma das regras acima se desejar.

csf -ar 192.168.0.10
csf -dr 192.168.0.11

Observe como o uso de -ar ou -dr acima remove as regras de permissão e negação existentes associadas a um determinado endereço IP.

Exemplo 2 – Limitando Conexões de Entrada por Fonte

Dependendo do uso pretendido do seu servidor, você pode querer limitar as conexões de entrada a um número seguro com base na porta. Para fazer isso, abra /etc/csf/csf.conf e procure por CONNLIMIT. Você pode especificar várias portas; pares de conexões separados por vírgulas. Por exemplo,

CONNLIMIT = "22;2,80;10"

permitirá apenas 2 e 10 conexões de entrada da mesma fonte para as portas TCP 22 e 80, respectivamente.

Exemplo 3 – Envio de alertas por e-mail

Existem vários tipos de alerta que você pode escolher. Procure as configurações de EMAIL_ALERT em /etc/csf/csf.conf e certifique-se de que estejam definidas como "1" para receber o alerta associado. Por exemplo,

 
LF_SSH_EMAIL_ALERT = "1"
LF_SU_EMAIL_ALERT = "1"

fará com que um alerta seja enviado para o endereço especificado em LF_ALERT_TO cada vez que alguém fizer login via SSH ou mudar para outra conta usando o comando su.

Opções de configuração e uso do CSF

As opções a seguir são usadas para modificar e controlar a configuração do csf. Todos os arquivos de configuração do csf estão localizados no diretório /etc/csf. Se você modificar qualquer um dos arquivos a seguir, precisará reiniciar o daemon csf para fazer as alterações.

  • csf.conf : O principal arquivo de configuração para controlar o CSF.
  • csf.allow : A lista de endereços IP e CIDR permitidos no firewall.
  • csf.deny : a lista de endereços IP e CIDR negados no firewall.
  • csf.ignore : A lista de endereços IP e CIDR ignorados no firewall.
  • csf.*ignore : A lista de vários arquivos ignorados de usuários, IPs.

Remover Firewall CSF

Se você quiser remover completamente o firewall CSF, basta executar o seguinte script localizado no diretório /etc/csf/uninstall.sh.

/etc/csf/uninstall.sh

O comando acima apagará completamente o firewall CSF com todos os arquivos e pastas.

Resumo

Neste artigo explicamos como instalar, configurar e usar o CSF como firewall e sistema de detecção de intrusões. Observe que mais recursos estão descritos em csf.conf.

Por exemplo, se você atua no ramo de hospedagem web, pode integrar CSF com soluções de gerenciamento como Cpanel, WHM ou o conhecido Webmin.

Você tem alguma dúvida ou comentário sobre este artigo? Fique à vontade para nos enviar uma mensagem através do formulário abaixo. Estamos ansiosos para ouvir de você!