Segurança SSH com Deny Hosts
por
em 18-12-2008 às 17:18 (5596 Visualizações)
O que é Denuy Hosts:
É um script feito em PYTHON por Phil Schwartz, no qual ajuda na segurança do serviço SSH contra ataques de FORÇA BRUTA.
Como funciona:
O DenyHosts busca as tentativas de conexão em /var/log/secure.log ou /var/log/auth.log dependendo da distribuição. Na configuração pode indicar quantas tentativas o usuário pode fazer sem sucesso se não o DenyHosts copia o IP para dentro de /etc/hosts.deny.
Essa configuração pode-se setar tentativas de usuários válidos no sistema ou inválidos, ou seja, 3 tentativas para usuários inválidos e 5 para usuários válidos, também informamos quanto tempo irá ficar bloqueado esse IP.
Requisitos:
É necessário do Python para rodar o DenyHosts.
Instalação:
1) Vamos entrar no diretório onde irá ficar o DenyHosts:
cd /opt
2) Agora iremos baixar o DenyHosts da seguinte forma:
wget -c http://ufpr.dl.sourceforge.net/sourc...sts-2.6.tar.gz
3) Iremos descompactar:
tar -zxvf DenyHosts-2.6.tar.gz
cd DenyHosts-2.6
4) Agora vamos criar os links
ln -s /opt/DenyHosts-2.6 /usr/share/denyhosts
ln -s /opt/DenyHosts-2.6/denyhosts.py /usr/bin
ln -s /opt/DenyHosts-2.6/daemon-control-dist /etc/rc.d/rc.denyshosts
5) O DenyHosts já vem com um arquivo de configuração pré-pronto, iremos apenas copiar ele
cp /opt/DenyHosts-2.6/denyhosts.cfg.dist /opt/DenyHosts-2.6/denyhosts.cfg
Configuração:
Dentro do arquivo de configuração /opt/DenyHosts-2.6/denyhosts.cfg, iremos descomentasr/comentar e acrescentar as seguintes linhas:
# Arquivo de log a ser verificado
SECURE_LOG = /var/log/secure
#Arquivo com os hosts bloqueados
HOSTS_DENY = /etc/hosts.deny
#Limpar o arquivo a cada 2 dias
PURGE_DENY = 2d
#Qual serviço deve ser bloqueado
BLOCK_SERVICE = sshd
#Número de tentativas que um usuário não valido pode tentar se conectar
DENY_THRESHOLD_INVALID = 2
#Número de tentativas que um usuário valido pode tentar para se conectar
DENY_THRESHOLD_VALID = 2
#Número de tentativas com a senha do ROOT
DENY_THRESHOLD_ROOT = 1
#Email do destinatário que receberá os logs de bloqueio de IP.
ADMIN_EMAIL = [email protected]
#Servidor de SMTP
SMTP_HOST = smtp.meudominio.com.br
#Porta do servidor SMTP
SMTP_PORT = 25
#Remetente
SMTP_FROM = DenyHosts <nobody@localhost>
#Assunto
SMTP_SUBJECT = DenyHosts IP bloqueado no servidor XXXX
#Arquivo de LOG do DenyHosts.
DAEMON_LOG = /var/log/denyhosts
#De quanto em quanto tempo o DenyHosts deve varrer o arquivo de logs do
sistema
DAEMON_SLEEP = 30s
OBS.: Ainda existe muitas outras opções do DenyHosts.
Colocando o DenyHosts em produção:
/etc/rc.d/rc.denyshosts restart
Verificando se ele está executando:
ps ax | grep denyhosts
2600 ? S 0:03 python /usr/bin/denyhosts.py --daemon --config=/usr/share/denyhosts/denyhosts.cfg
1940 pts/0 R+ 0:00 grep denyhosts
Testando o DenyHosts
#Vamos tentar locar na máquina local com o usuário fulano:
ssh -l fulano localhost
#Depois de colocar as senhas verifique o resultado
cat /opt/DenyHosts/data/users-invalid
fulano:5:Thu Dec 18 13:31:27 2008
Isso aí, agora seu serviço de Ssh está mais seguro.
Comentários
+ Enviar Comentário