[AVISO LEGAL] Eu percebo que estou atrasado para a festa, mas gostaria de colar uma resposta que eu dei para outra pergunta , porque eu sinto que pode oferecer uma boa visão para os leitores, e essa questão parece ser o lugar para informações básicas do ssh.
Houve um problema semelhante que me surpreendeu depois de ler esta pergunta aqui no AskUbuntu e checagem do meu VPS, apenas para ver um bazillion de tentativas de força bruta. Foi quando decidi agir.
Agora, de acordo com a pergunta a que me vinculei, se você quiser ver tentativas de login com falha em sua máquina por ssh (pode ser uma tentativa de força bruta ou qualquer outra coisa), tente digitá-la:
grep sshd.\*Failed /var/log/auth.log | less
Se a saída consistir em várias linhas, ou seja, muitas tentativas de força bruta, especialmente se tiverem ocorrido entre intervalos curtos, convém executar as seguintes ações:
Altere o arquivo de configuração do ssh
Para fazer isso, abra o arquivo localizado em / etc / ssh / sshd_config com seu editor favorito, como este vim /etc/ssh/sshd_config
.
1. Tente mover o ssh da porta 22 : Agora localize a linha que diz:
# What ports, IPs and protocols we listen for
Port 22
e comente a Port 22, e use qualquer um que você goste. Exemplo:
# What ports, IPs and protocols we listen for
# Port 22
Port 28934
Lembre-se de que as portas abaixo de 1024 precisam de permissão especial (raiz). Não sei como isso pode interferir, mas estou apenas dizendo.
2. Desativar logins da raiz via ssh : Como o nome de usuário root é previsível e fornece acesso completo ao sistema, fornecer acesso irrestrito a essa conta pelo SSH é insensato. Localize a linha que lê PermitRootLogin e defina como no .
PermitRootLogin no
3. Desative a autenticação por senha : Gere e use chaves SSH para efetuar login no sistema. Sem senhas ativadas, os invasores precisarão adivinhar (ou roubar) sua chave privada SSH para obter acesso ao seu servidor. Algo que é muito muito difícil. Continue para encontrar a linha que lê PasswordAuthentication e defina como não
PasswordAuthentication no
! ATENÇÃO! Antes de fazer isso, consulte este guia aqui sobre como configurar a autenticação de certificado.
OBSERVAÇÃO: Depois de fazer as alterações, use sudo /etc/init.d/ssh restart
. Para se conectar a outra porta por meio do uso de ssh: ssh [email protected] -p <port_number>
.
Configurar um firewall
Por favor, confira este guia sobre como configurar o firewall extremamente poderoso e eficaz, que é integrado ao Linux, IPTables .
Configurar scripts para ajudá-lo com segurança
Um que eu uso pessoalmente e rapidamente me vem à mente é Fail2Ban . O Fail2ban irá monitorar seus arquivos de log por tentativas de login com falha. Depois que um endereço IP excedeu o número máximo de tentativas de autenticação, ele será bloqueado no nível da rede e o evento será registrado em /var/log/fail2ban.log
. Para instalá-lo: sudo apt-get install fail2ban
Verifique o histórico de comandos via ssh
Existe um comando linux, chamado history
, que permite ver quais comandos foram inseridos até esse ponto. Tente digitar history
em um terminal para ver todos os comandos até esse ponto. Poderia ajudar se você fosse root .
Para pesquisar por um comando em particular , tente: history | grep command-name
Para listar todos os comandos após ssh : fc -l ssh
Você também pode editar comandos usando o vi (não tentei usar o vim, embora eu assuma que ele também funciona): fc -e vi
Você também pode excluir o histórico : history -c
NOTA: Se você não é fã do comando history
, há também um arquivo no seu diretório pessoal ( cd ~
), chamado .bash_history ( se você estiver usando o bash), você pode cat
ver tudo o que foi digitado no bash shell.