Antes de terminar este artigo gostaria de dar uma dica de segurança em servidores
ssh.
A porta padrão usada pelo ssh é a 22, e por esquecimento ou desconhecimento alguns usuários deixam servidores abertos nesta porta. Tudo bem que se alguém tentar invadir seu servidor deve ter um usuário e uma senha, mas só o fato dele já estar chegando até a tela de login já é assustador. Para isso aconselho alterar a porta do servidor ssh para uma outra qualquer, como a 24680, por exemplo.
Entre no arquivo
/etc/ssh/sshd_config (pode variar dependendo da sua distro), procure e altere a opção port de 22 para o número que você quiser.
Depois disso dê uma reiniciada no seu servidor ssh e pronto. Para entrar nele a partir de outro
Linux passe a usar o comando:
$ ssh seu_ip -p sua_porta
Uma dica para saber se tem alguém tentando entrar no seu servidor é dar uma olhada nos seus arquivos de log. Lá ficam guardadas as tentativas erradas de logar como root ou com outro usuário.
Para ver as tentativas erradas de acesso entre em
/var/log/messages. Dentro deste arquivo procure por linhas com o seguinte texto:
"Failed password for root from"
Ou para ver tentativas de acesso com um usuário inexistente procure por linhas com o seguinte texto:
"Illegal user"
Se desejar copie as linhas abaixo e monte um script para fazer esta tarefa facilmente pra você. O resultado final é bem mais limpo e fácil de entender. O script também pode ser
acessado aqui.
#!/bin/sh
clear
echo
echo "Aguarde..."
echo
logs=`ls /var/log/messages*`
echo "Arquivos Selecionados:
`du -ah /var/log/messages*`" && echo
for i in `echo $logs`;do
echo "Verificando o arquivo $i"
cat $i | grep -i "Failed password for root from" > tent_root.log
cat $i | grep -i "Illegal user" > tent_user.log
done
echo
echo "#############################################"
echo "########### Tentativas de acesso do root ##############"
echo "#############################################"
echo
for i in `cat tent_root.log | tr -s ' ' ','`;do
mes=`echo $i | cut -d , -f 1`
dia=`echo $i | cut -d , -f 2`
hora=`echo $i | cut -d , -f 3`
host=`echo $i | cut -d , -f 11`
echo "$dia/$mes,$hora,$host" | tr ',' '\t'
done
echo
echo "############################################"
echo "######## Tentativas de acesso com outros usuários ########"
echo "############################################"
for i in `cat tent_user.log | tr -s ' ' ','`;do
mes=`echo $i | cut -d , -f 1`
dia=`echo $i | cut -d , -f 2`
hora=`echo $i | cut -d , -f 3`
user=`echo $i | cut -d , -f 8`
host=`echo $i | cut -d , -f 10`
echo "$dia/$mes,$hora,$user,$host" | tr ',' '\t'
done
rm -rf tent_root.log
rm -rf tent_user.log
Espero que este artigo possa ajudar alguém, assim como uso bastante todas as funções informadas nele.
Estou aberto a sugestões, dicas e correções sobre quaisquer erros que por ventura venham a aparecer nos códigos.
Agradeço a quem enviar algum comentário e a todos que escrevem para este site, mantendo vivo o sentimento que deu origem ao Linux.