Melhorando a segurança do seus servidores em FreeBSD

Pra quem me conhece ou já leu meus outros artigos, já percebeu que minha vida é o FreeBSD. Sinceramente nunca usei o Linux como sistema de um servidor (apenas como desktop), mas este artigo, apesar de ser voltado para o FreeBSD (hihi), com certeza ajudará a você que usa Linux a melhorar a segurança dos seus servidores.

[ Hits: 41.557 ]

Por: Alcir Cardoso em 21/03/2007 | Blog: http://maboo.us


Brute Force Blocking



Este aqui é um script que eu achei aqui no VOL e dei uma melhora sem falar na adaptação para FreeBSD.

O primeiro passo foi instalar o bash.

Depois o script:

#!/usr/local/bin/bash

MODE="AUTO"
#MODE="MANUAL"

if [ -f /var/log/auth.log ] ; then
   ips=$(cat /var/log/auth.log | grep -i illegal | grep -i sshd | awk -F" " {'print $15'})

   attempts=1

   for ip in $ips ; do

      lastip=$ip

      if [ "$lastip" == "$ip" ] ; then
         attempts=$(expr $attempts + 1)
         if [ $attempts -ge 3 ] ; then
            echo -n "Brute force SSHD ataque detectado vindo do ip $ip" > /dev/ttyv0
            attempts=1
            lastip=""
            blocked=$(ipfw list | grep $ip | grep deny)
                   if [ "$blocked" ] ; then
               echo -n "> Ip já bloqueado. Continuando com o scan" > /dev/ttyv0
               echo -n " " > /dev/ttyv0
            else
               if [ $MODE == "MANUAL" ] ; then
                  echo "> Você deseja bloquear este ip nas regras do IPFW? (y/n)"
                  read resp
                  if [ "$resp" == "y" ] ; then
                  /sbin/ipfw add deny ip from any to $ip
                  /sbin/ipfw add deny ip from $ip to any
                     echo "> IP $ip adicionado as regras de bloqueio"
                     echo " "
                  fi
               else
                  /sbin/ipfw add deny ip from any to $ip
                  /sbin/ipfw add deny ip from $ip to any

                  echo -n "> IP $ip adicionado as regras de bloqueio" > /dev/ttyv0
                  echo -n " " > /dev/ttyv0
                #echo $ip >> /var/log/ips
               fi
            fi
         fi
      fi

   done

fi

Agora salve, de permissão de executável e agende sua execução no cron, eu coloquei a cada 10 min.

Acredito que lendo ele você já entenderá seu funcionamento, mas explicando ele lê as últimas 15 linhas do arquivo /var/log/auth.log em busca de tentativas de login, e bloqueia os ips que realizaram 3 tentativas infelizes.

Esta solução não precisa ser usada se você esta fazendo controle na conexão na porta 22.

Página anterior     Próxima página

Páginas do artigo
   1. Definições gerais
   2. Parando o que não usa
   3. Serviços
   4. Spoofing e outros
   5. Brute Force Blocking
   6. Considerações finais
Outros artigos deste autor

Firewall e NAT em FreeBSD com controle de banda e redirecionamento de portas e IPs

Configurando uma VPN no FreeBSD

Leitura recomendada

Quebrando chave WEP (Wired Equivalent Privacy) - parte 1

Implementando a segurança em servicos de acesso remoto

Introdução ao ModSecurity

SSH Blindado - Protegendo o seu sistema de ataques SSH

Computação de alto desempenho

  
Comentários
[1] Comentário enviado por removido em 21/03/2007 - 03:42h

Gostei do artigo.
Mas faltou muita coisa referente a segurança no FreeBSD que você pode usar para fazer a versão 2 do artigo. Como:
Segurança do kernel do FreeBSD;
TCPwrappers;
E também outros tipos de ataques.

Parabéns, faz tempo que não vejo um artigo sobre segurança aqui no vivaolinux. Nota 10.

[2] Comentário enviado por renatomartins em 21/03/2007 - 09:41h

parabens !!!
é sempre bom dar uma ideia para o pessoal
para versao 2 o secure level é ua boa chflags as acl do filesystem e as permiçoes de pastas os modulos no kernel do bsd para bloqueios portaudit e varias outras soluçoes de segurança que o freebsd nos oferece nativamente por ser o unico há implementar o case 100% posix 1e
ta otimo seu artigo
abraço

[3] Comentário enviado por grayfox em 21/03/2007 - 20:37h

#fechando o icmp na interface externa
/sbin/ipfw add deny icmp from any to any in via bge1 icmptypes 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18

deveria ser trocado por:
/sbin/ipfw add deny icmp from any to any via bge1


A porta reservada para nfs, é utilizada somente no rc.conf dos freebsds antigos, entao os novos, nao tem a necessidade de colocar a referencia no rc.conf.

[4] Comentário enviado por fernandoamador em 08/04/2007 - 23:58h

Ótimo artgo...

[5] Comentário enviado por l0c0 em 24/05/2007 - 08:47h

bom artigo

Mas para Brute Force recomendo usar denyhosts:

# cd /usr/ports/security/denyhosts
# make install clean

# cd /usr/local/share/denyhosts
# cp denyhosts.cfg-dist denyhosts.cfg

--- edite o denyhosts.cfg

# ./daemon-control start


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts