Aumentando a Segurança do Servidor SSH
Aumentando a Segurança do Servidor SSH
O SSH (Secure Shell) é normalmente o principal meio para acesso aos servidores, especialmente aqueles ambientes que rodam sistemas Unix-like. Apesar de ter um nível de segurança agradável, é necessário o ajuste de alguns parâmetros.
Antes de fazer alterações na configuração do servidor SSH, faça
backup
do arquivo:/etc/ssh/sshd_config
.
1
$ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bkp
Para alterar e fortalecer as configurações do servidor SSH, você precisa editar o arquivo de configuração principal do OpenSSH /etc/ssh/sshd_config. Cada linha não comentada no arquivo representa uma configuração ativa que você pode definir para corresponder às suas preferências.
Alterando a porta padrão do SSH
A porta padrão do SSH é a 22 e por conta disso muitos ataques são direcionado a ela, para mitigar esse problema, iremos mudar para a porta 5050.
A mudança da porta padrão, como a porta
22
doSSH
, para outra não garante que a porta seja permanentemente escondida, pois o port scanning (ou varredura de portas) é uma ferramenta comum usada para identificar portas abertas em um sistema.
1
$ sudo sed -i 's/#Port 22/Port 5050/' /etc/ssh/sshd_config
Desativar logins com senha
Em comparação com as chaves SSH, os invasores usam força bruta em servidores SSH usando senhas. Desabilite logins baseados em senha para todos os usuários do sistema.
Para desabilitar logins baseados em senha e aceitar apenas chaves SSH, encontre a seguinte linha PasswordAuthentication yes. Por padrão, ele é definido como yes, altere para "no".
1
$ sudo sed -i 's/PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
Habilitando autenticação de chave pública SSH
No servidor, verifique se a configuração do SSH permite autenticação por chave pública. Edite o arquivo de configuração do SSH /etc/ssh/sshd_config
1
$ sudo sed -i 's/#PubkeyAuthentication yes/PubkeyAuthentication yes/' /etc/ssh/sshd_config
Desative o login como root
Impeça que o usuário root consiga fazer o login via SSH, tome como boa prática a utilização de um usuário sem privilégio administrativo para acessar o servidor.
Procure no arquivo de configuração o parâmetro PermitRootLogin e defina como “no“.
1
$ sudo sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin no/' /etc/ssh/sshd_config
Definindo o número máximo das tentativas de acesso
Durante um ataque de força bruta é normal que várias tentativas de acesso sejam feitas, para mitigar esse problema vamos definir como 5. Fique à vontade para definir o número de tentativas que quiser.
Procure no arquivo de configuração o parâmetro MaxAuthTries e defina como “5“.
1
$ sudo sed -i 's/#MaxAuthTries 6/MaxAuthTries 5/' /etc/ssh/sshd_config
Bloqueando o login de um usuário sem senha
O parâmetro PermitEmptyPasswords especifica se o servidor SSH vai permitir o login de contas com sequências de senha vazias.
Procure no arquivo de configuração o parâmetro PermitEmptyPasswords e defina como “no“.
1
$ sudo sed -i 's/#PermitEmptyPasswords no/PermitEmptyPasswords no/' /etc/ssh/sshd_config
Desabilite o X11Forwarding
O X11Forwarding permite a execução de programas em modo gráfico via SSH, e dependendo da configuração o acesso com permissão ilimitada pode acontecer, se você não tem necessidade de usar, desabilite.
Procure no arquivo de configuração o parâmetro X11Forwarding e defina como “no“.
1
$ sudo sed -i 's/X11Forwarding yes/X11Forwarding no/' /etc/ssh/sshd_config
Conceder acesso SSH a usuários autorizados
Para permitir apenas os usuários admin e guest efetuem login via SSH, adicione AllowUsers no final do arquivo
1
AllowUsers admin guest
A regra acima permite
ADMIN
eGUEST
a fazer login a partir de qualquer endereçoIP
Para permitir que usuários específicos efetuem login apenas a partir de endereços IP específicos, adicione o seguinte.
1
AllowUsers admin@127.0.0.1 guest@127.0.0.2
Limitar o número de sessões ativas por usuário
Às vezes, usuários SSH podem abrir no máximo 5 conexões SSH, dependendo das operações em andamento. No entanto, às vezes, invasores podem iniciar sessões extras durante ataques MITM (Man in the Middle). Para aumentar a segurança do seu servidor, limite o número de sessões ativas por usuários.
1
$ sudo sed -i 's/#MaxSessions 10/MaxSessions 5/' /etc/ssh/sshd_config
Neste artigo, abordamos as etapas importantes necessárias para aumentar a segurança do sistema e configurar a autenticação de chave pública entre um computador local e um servidor remoto. Também vimos como podemos desabilitar a autenticação tradicional baseada em senha para proteger nosso servidor remoto de ataques de força bruta.