Segurança: 02 – SSH

O SSH é uma ferramenta excelente. Permite acessar os arquivos de uma outra máquina conectada à rede sem ter que se deslocar até ele. No entanto, é necessário que ele esteja bem configurado para evitar problemas de segurança.

O primeiro e mais comum ajuste de segurança é usar somente o protocolo Versão 2. Para determinar qual versão a instalação do Linux está usando, acesse o arquivo /etc/ssh/sshd_config e pesquise nele qual é a versão usada:

cat /etc/ssh/sshd_config |grep Protocol

Se ele retornar 1, o arquivo sshd_conf deverá ser editado para utilizar a versão 2 e o serviço reiniciado para carregar a nova configuração.

Outra configuração que recomenda-se alterar é a porta do serviço, que por padrão é a 22.

cat /etc/ssh/sshd_config |grep Port

A menos que isso tenha sido alterado, será a porta 22. Isso garantirá que algum invasor em potencial tenha que escanear as portas em uso, já que não é padrão. No entanto, os usuários terão que ser comunicados da nova porta em uso.

Para conectar após a porta de uso ter sido alterada é necessário usar a flag -p e selecionar a nova porta. Nesse caso selecionarei a porta 58187.

ssh -p 58187 myhost.mynetwork

Ela pode ser especificada usando o scp também:

scp -P 58187

O parâmetro -P é utilizado com letras maiúsculas no scp mas não no comando ssh. Isso porque o scp utiliza a flag -p para preservar as propriedades originais dos arquivos na transferência.

Uma forma de facilitar a utilização dos comandos é usar um apelido para o comando ssh já com a porta utilizada especificada. Só não utilizar esse recurso caso haja máquinas usando outras portas para o serviço.

alias ssh=”ssh -p 58187″

Outra forma de aumentar a segurança do sistema é desabilitar o login do root. Para checar se está habilitado, use o comando:

cat /etc/ssh/sshd_config |grep PermitRootLogin

Se ele estiver habilitado, altere a linha PermitRootLogin do arquivo /etc/ssh/sshd_config, conforme mostrado abaixo. Mas garanta que os outros usuários possam realizar login com o SSH.

PermitRootLogin no

Reinicie o serviço. E quanto às transferências: fique tranquilo. Não serão interrompidas.

Para sistemas Debian, use:

systemctl restart ssh

Para sistemas Red Hat, use:

systemctl restart sshd

Outra boa prática é permitir conexões de grupos e usuários específicos. Para autorizar um usuário adicione a linha abaixo no final do arquivo de configuração:

AllowUsers diegohtg

Se você tem mais de um usuário no sistema é só alterar a linha AllowUsers do arquivo de configuração do SSH e identificá-los:

AllowUsers diegohtg henriquetg

Você pode também habilitar grupos de usuários no SSH. Para isso crie inicialmente um grupo:

groupadd ssh_admins

Depois adicione usuários nesse grupo. Nesse exemplo serão diegohtg e henriquetg:

usermod -aG ssh_admins diegohtg henriquetg

E finalmente só adicionar uma linha no final do arquivo de configuração, autorizando o grupo, e caso mais algum usuário seja criado é só adicionar o ID dele ao grupo (conforme o comando anterior) e estará liberado para realizar conexões.

AllowGroups ssh_admins

E finalmente, para desabilitar a autenticação por senha, e manter apenas a autenticação com o par de chaves, execute o ssh-keygen:

ssh-keygen

Você será questionado diversas vezes, no entanto, a maioria das questões permitirá manter a configuração padrão.

Quanto à frase de segurança, é recomendável fazer uma. No entanto, se for incômodo ter que digitá-la toda vez que for necessário conectar, deixe em branco.

A forma mais fácil de permitir que a sua máquina conecta a um servidor é importar as chaves dele, digitando o comando:

ssh-copy-id -i ~/.ssh/id_rsa.pub myserver.mynetwork.com

Nesse momento o servidor pedirá a sua senha. Nas próximas conexões será utilizado para autenticação o par de chaves mais a frase de segurança (caso tenha criado uma).

Após ter copiado as chaves acesse a última linha do arquivo de configuração do SSH e altere yes para no, desabilitando a autenticação por senha. Após alterar a configuração, reinicie o serviço para carregá-la.

PasswordAuthentication yes

Essa forma de configuração funciona porque ao copiar as chaves com o comando ssh-copy-id, o que você está fazendo é copiando o conteúdo da chave pública (~/.ssh/id_rsa.pub) na sua máquina local ao final do arquivo ~/.ssh/authorized_keys no arquivo de chaves autorizadas da máquina remota. Com isso o SSH checará que as chaves listadas conferem com as chaves públicas (~/.ssh/id_rsa) e permitirá o acesso.

Com essas configurações o OpenSSH terá a segurança devidamente implementada.

Caso não tenha realizado ainda acesse os seguintes tutoriais para garantir que todas as configurações serão implantadas.

Leave a comment

Design a site like this with WordPress.com
Get started