Segurança em servidores

Publicado por Giovanni carvalho em 24/10/2012

[ Hits: 6.024 ]

 


Segurança em servidores



É comum os usuários que implementam servidores diversos, preocuparem-se com a segurança do seu equipamento.

Uma coisa comum na Internet afora, são as tentativas de acesso externo de forma indevida, principalmente daqueles servidores com IP fixo, ou que utilizam No-IP, etc... Isto é necessário quando se tem algum servidor Web ou FTP, por exemplo.

Montando um script robot

Eu montei um servidor básico para um cliente, com firewall simples e compartilhamento de arquivos Samba, porém, em poucos meses tivemos problemas de ataques brute force via SSH, e mesmo com as portas do SSH alteradas e limitação de root por lá, aconteceu uma invasão.

Então, resolvi mexer da cadeira... (rs)

E como tudo na vida passa pela adaptação, resolvi criar um Script Shell para manter a segurança, então criei o script que passo a compartilhar com a comunidade, logo abaixo.

As primeiras coisas importantes são criar dois arquivos que servirão de auxílio para o script. O local onde eles se encontrem não faz diferença, faça em locais com os quais seja fácil a sua consulta, se necessário.

Eu criei na pasta de log mesmo, mas você pode alterar para o local que desejar. Aqui estão em /var/log/.

Os arquivos são o /var/log/negados e /var/log/robot.

Vamos ao script:

#!/bin/bash
verif=`tail -100 /var/log/auth.log  |grep  Failed |grep password |grep invalid`
if [ "$verif" = "" ] ; then
exit 1 ;
fi
tail -100 /var/log/auth.log  |grep  Failed |grep password |grep invalid    > /var/log/robot
ip=`tail -1 /var/log/robot |sed -e  '/^$/D' | cut -d " " -f 13  | tr -d "'"`
if cat /var/log/negados   | grep "$ip"
then
exit 1;
fi
echo $ip >> /var/log/negados
echo iptables -A INPUT -s $ip -j DROP >> /etc/init.d/iptables.conf
/etc/init.d/iptables.conf


Caso utilizem alguma outra distribuição diferente de derivados Debian, verifiquem os caminhos do arquivo do "auth.log" e também do IPtables, basta adaptar.

É um script simples, mas que resolve. Nega acesso a qualquer IP que errar a senha de usuário.

Se na sua empresa existirem usuários que acessam, e que possam cometer erro de login, basta colocar os IPs dentro do arquivo negados que ele passa direto sem adicionar ao IPtables, assim como aquele IP que já estiver por lá.

* Uma outra coisa muito importante, é colocar este script para que rode num curto período de tempo, evitando estragos por parte do invasor, por isso, recomendo que seja adicionado ao Cron. Aqui coloquei num Cron por minuto.

Espero que seja útil esta minha primeira dica para o Viva o Linux, e espero publicar muitas outras...

Obrigado!

Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Instalando Squid automaticamente no Slackware

Squid no CentOS - Configuração simples

Transparência real no X

Squid com grupo de usuários e computadores

Calculo de dias úteis entre duas datas em PHP

  

Comentários
[1] Comentário enviado por tgbaldo em 24/10/2012 - 12:23h

Giovanni,

Parabéns pela dica, gostei da lógica :)

[]'s

Tiago Baldo

[2] Comentário enviado por jptudobem em 24/10/2012 - 12:27h

Só vejo uma falha no seu Script, são situações que você não analisou.

1 - Se te der um branco e você mesmo digitar a senha errada algumas vezes? Pode acontecer.
2 - O tempo entre essas autenticações.

Adicione essas variáveis ao seu script, assim ele fica mais completo.

[3] Comentário enviado por ricardoolonca em 24/10/2012 - 18:39h

Olá, Giovanni.

É isso aí. Você não ficou sentado esperando uma solução cair do céu. Fez um script que resolveu o teu problema.

Eu também já passei por isso e fiz os meus scripts também. Vou postá-los aqui e te aviso depois. Mas hoje uso o Fail2ban. Aqui vão dois artigos que falam dele.

http://www.vivaolinux.com.br/artigo/Bloqueio-de-repetidas-tentativas-de-login-ao-seu-Linux
http://www.vivaolinux.com.br/artigo/Protecao-utilizando-fail2ban-contra-ataques-do-tipo

Um abraço.

[4] Comentário enviado por jptudobem em 25/10/2012 - 09:20h

Fail2ban também é uma ótima solução, mas ainda sou adepto a soluções personalizadas por nós mesmos.

[5] Comentário enviado por giggio em 25/10/2012 - 09:21h


[2] Comentário enviado por jptudobem em 24/10/2012 - 12:27h:

Só vejo uma falha no seu Script, são situações que você não analisou.

1 - Se te der um branco e você mesmo digitar a senha errada algumas vezes? Pode acontecer.
2 - O tempo entre essas autenticações.

Adicione essas variáveis ao seu script, assim ele fica mais completo.

.
Amigo , talvez vc não tenha lido com atenção ou não analisou com calma o script ...
Vc tem a opção de colocar IPs na lista de ignorados ou negados ( veja a função do arquivo em /var/log/negados )
.
Funciona perfeitamente e até o momento não vejo margens de bug neste script !

Obrigado por comentar ... :)


[6] Comentário enviado por ismael_farias em 25/10/2012 - 15:51h

Excelente dica, parabéns!

[7] Comentário enviado por cromado em 26/10/2012 - 00:17h

Parabens meu caro, é sempre bom, ver como os amigos estão tratando as invasões.
Iptables recent também é muito interessante.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts