Dica de segurança em servidores Slackware com SSH habilitado

Slackware logo

Sim, você provavelmente já viu um texto com esse título, e vai notar que também trato do mesmo assunto, que é apenas uma dica trivial para a implementação de segurança básica e inicial em servidores que utilizem acesso via SSH, principalmente aqueles que estão disponíveis a acesso externo ( leia-se Internet ).

O artigo que escrevi anteriormente foi postado em outro blog, e foi uma pequena contribuição para a difusão de experiências que temos, e que optamos por compartilhar com a comunidade, facilitando a iniciação daqueles que tenham interesse em assuntos diversos, tratados pelos profissionais que lá queiram dividir seus conhecimentos.

No post original, eu tratei sobre a customização do arquivo de configuração do serviço de SSH em um servidor com sistema operacional GNU/Linux, mais especificamente a distribuição CentOS, então quis registrar o assunto aqui também, utilizando a nossa querida Slackware Linux.

Caso já tenha lido o post original, este não lhe trará nenhuma informação nova, sendo apenas uma adaptação para outra distribuição GNU/Linux, mas, caso ainda não o tenha lido, e assim como eu, utilize a distribuição Slackware, então talvez ache essa pequena dica algo interessante de se compartilhar com alguém que talvez precise.🙂

Como é de conhecimento geral, uma das primeiras providências que possíveis invasores tomam, tão logo escolhem um alvo, é iniciar a coleta de informações a respeito deste, e quando este está disponível para acesso através da Internet, entre essas atividades de reconhecimento inicial está a varredura de portas, buscando possíveis pontos de entrada no sistema.

Um destes pontos de entrada pode ser o serviço de SSH, que geralmente é deixado habilitado como forma de acessar remotamente esses servidores, e é por isso que precisamos reconfigurar esse serviço para que não tentem utilizá-lo para obtenção deste acesso com o único usuário de que eles tem certeza que existe no sistema alvo, e esse usuário é o root. A dica é simplesmente configurar o serviço de forma que o acesso como superusuário não seja possível, e para tanto devemos seguir alguns passos. Para este tutorial, utilizei a versão estável mais recente da Slackware Linux, que é a 14.1, sendo que a versão 14.2 não deve demorar muito mais para ser lançada.

Através da linha de comando, já com privilégios de root, vamos acessar o arquivo de configuração do serviço, localizado no diretório /etc. Com o editor de textos para linha de comando de sua preferência, edite o arquivo /etc/ssh/sshd_config. Utilizando o vi seria:

# vi /etc/ssh/sshd_config

Localize a linha com a opção que precisamos alterar. Ainda utilizando o Vi bastaria utilizar o caractere “/” para realizar a busca:

/#PermitRootLogin

Isso nos levaria à linha que precisamos mudar. Ela estaria assim:

#PermitRootLogin yes

Utilize a tecla insert para entrar em modo de edição no Vi e navegue pela linha, alterando-a para deixá-la assim:

PermitRootLogin no

Em seguida vá até o final deste arquivo e adicione um campo chamado AllowUsers. Este campo será utilizado para explicitar quais usuários terão acesso remoto via SSH autorizado. Veja o exemplo utilizado em meu post anterior:

AllowUsers=fulanodetal

Isso faria com que apenas o usuário fulanodetal pudesse acessar o sistema utilizando o protocolo SSH, e outros usuários, mesmo tendo contas configuradas no servidor, não conseguiriam autorização de acesso. Caso queira que outros usuários tenham acesso, basta listá-los entre os permitidos, separando-os por vírgulas. Após o término de adições basta salvar o arquivo e voltar ao prompt do shell. No caso do Vi seria a combinação de teclas ctrl+x.

Essa deve, ou deveria ser, uma das primeiras medidas de segurança a ser implantada, e não demora quase nada para que se torne efetiva. Bastando agora que o serviço seja reiniciado para que as mudanças sejam efetivadas. O comando para reiniciar o SSH varia de acordo com a distribuição utilizada. No nosso caso, utilizamos os comandos a seguir:

# /etc/rc.d/rc.sshd stop

# /etc/rc.d/rc.sshd start

Como também esclareci no post anterior, existem outras opções que podem ser modificadas no arquivo, e que são interessantes para ampliar essa proteção, como por exemplo o tempo permitido pelo sistema para que a pessoa entre com as credenciais de acesso, a quantidade de tentativas em sequência que a pessoa pode tentar antes de ser desconectada, entre outras, portanto vale a pena explorá-las, modificá-las de acordo com as suas necessidades, não esquecendo é claro de sempre salvar o arquivo com essas modificações e reiniciar o serviço sempre que desejar aplicar novas alterações.

Recomendo ainda que coloque a porta, na qual o serviço está habilitado, sob a proteção do firewall. Em nosso caso, o IPTables é o firewall que acompanha a Slackware Linux, e para proteger o serviço SSH vamos adicionar algumas regras a ele. Essas regras foram retiradas de um outro artigo, publicadas em um outro blog, pertencente à rackAID, e que tem por objetivo proteger os sistemas contra ataques de força bruta:

# iptables -N LOGDROP

# iptables -A LOGDROP -j LOG

# iptables -A LOGDROP -j DROP

# iptables -I INPUT -p tcp –dport 22 -i eth0 -m state –state NEW -m recent –set

# iptables -I INPUT -p tcp –dport 22 -i eth0 -m state –state NEW -m recent –update –seconds 60 –hitcount 4 -j LOGDROP

Isso fará com que um endereço IP seja bloqueado caso tente acesso mais de três vezes durante um minuto. As regras implicam somente os casos de novas conexões, não impactando as que sejam bem sucedidas. Além disso, a configuração permitirá o registro destas tentativas através de logs.

Para confirmar que as regras foram acrescidas, basta listá-las como normalmente faria:

# iptables – L

Bem essa era a dica, agora com foco na implementação em uma distribuição Slackware Linux. Espero que tenham gostado. Até a próxima!

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s