Melhorando a Segurança do SSH

O SSH é um dos meios mais utilizados para acesso de servidores, apesar de ter um certo nível de segurança na comunicação, precisamos ajustar algumas coisas.

0 – Backup do arquivo de configuração

O backup é algo indispensável, ainda mais quando iremos realizar modificações nos arquivos de configuração padrão de um sistema. Para criar um arquivo de backup das configurações do SSH, use o comando abaixo.

# cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

Pronto! Backup feito, vamos prosseguir.

1 – Crie uma senha segura

É indiscutível que o seu usuário tenha uma senha segura, de preferência com letras maiúsculas/minúsculas, números e caracteres especiais com tamanho de 16.

2 – Altere a Porta do SSH

Por padrão a porta do SSH é a 22 e com isso muitos ataques vão direto nela, vamos mudar para a porta 4002 (sugestão de teste).

Observação: Isso não evita que a porta seja não descoberta, como mostra o resultado de um scan com nmap. Mas você pode implementar uma camada de segurança extra com o KNOCKD. Outro detalhe importante é que só dá para ocultar a informação da versão do OpenSSH quando você modifica para não exibir, compila e instala.

Abra o arquivo de configuração do SSH.

# nano /etc/ssh/sshd_config

Descomente a linha.

# Port 22

Insira a sugerida

Port 4002

3 – Desative o login como root

Proíba que o usuário root consiga fazer o login via SSH, sempre que possível acesse com um usuário sem privilégio e quando necessário altere o privilégio para root.

Marque a permissão de login como “no“.

PermitRootLogin no

4 – Defina um número máximo das tentativas de acesso

Aqui deixei definido como 3 segundos mas você pode por mais ou menos.

MaxAuthTries 3

5 – Alterando o tempo de espera para login

Mude o tempo de espera para ser feito o login quando a conexão SSH é estabelecida no Terminal.

LoginGraceTime 15

6 – Defina o Protocol 2 como padrão

O Protocolo 1 e 2 são diferentes, além de trabalharem de maneira oposta o Protocolo 2 é mais seguro.

Para testar se o SSH2 é compatível, faça o seguinte:

ssh -2 usuario@IP DO SERVIDOR

Se for compatível, será mostrado uma mensagem perguntando se você deseja continuar se conectando. Para configurar o Protocolo 2, insira o parâmetro acima do Port onde foi mudada a porta do SSH.

Protocol 2

7 – Bloqueando o login de um usuário sem senha

Descomente a linha e defina o parâmetro “no“.

PermitEmptyPasswords no

8 – Desabilite o X11Forwarding

O X11Forwarding permite a execução de programas em modo gráfico via SSH, se você não tem necessidade de usar, desabilite.

X11Forwarding no

9 – Defina um tempo ocioso

As vezes finalizamos uma tarefa e deixamos o SSH conectado, para evitar problemas, defina um tempo máximo em que se não houver interação a conexão será encerrada automaticamente.

Aqui foi definido 300 segundos que equivale a 5 minutos.

ClientAliveInterval 300

10 – Desabilite totalmente as senhas

Se possível, dê preferência para o login com chaves SSH, é mais seguro do que utilizar senhas.

11 – Reinicie o processo do SSH

Quando finalizar todas as alterações no arquivo de configuração, reinicie o serviço para que elas entrem em vigor.

# systemctl restart sshd

12 – Instale um Firewall

Existem outros Firewalls que você pode implementar mas aqui irei dar um exemplo com o UFW.

Instale o UFW Firewall

# apt install ufw

Atualize as regras para rejeitar todas as conexões que chegarem e permitir a saída.

# ufw default deny incoming
# ufw default allow outgoing

Como tenho um Servidor Apache rodando em teste, irei permitir a porta 80 (http).

# ufw allow 80

Se você inseriu uma regra errada, apenas adicione o delete antes do allow ou deny para remover.

# ufw delete allow 80

Permita o acesso ao SSH somente pelo seu IP (lembre-se de usar um IP Fixo, independente de ser Privado ou Público) na porta 4002 modificada.

# ufw allow from SEU-IP-FIXO-AQUI to any port 4002

Habilite o serviço do UFW.

# ufw enable

Para resetar todas as configurações já feitas no UFW, use o comando abaixo.

# ufw reset

Se quiser ver o status do Firewall.

# ufw status verbose

Depois de terminar as configurações, você pode listar e conferir todas as regras com suas IDs.

# ufw status numbered

Aqui foram mostradas algumas maneiras de dificultar as tentativas de ataque direcionadas ao SSH, mas ainda existe muito trabalho a ser feito.

Esperamos ter ajudado e esclarecido a como Melhorar a Segurança do SSH. E não esqueça de nos seguir nas Redes Sociais. Até a próxima!

Você pode gostar...