Implementando segurança no SSH
Compartilho através deste artigo algumas dicas valiosas para aumentar o nível de segurança do acesso SSH ao seu servidor.
Parte 2: Restrinja o acesso à usuários específicos com as diretivas AllowGroups e AllowUsers
Através da diretiva AllowUsers você pode informar um ou mais usuários cujo acesso ao SSH estará liberado.
Se você especificar algum usuário nesta diretiva, à todos os demais usuários que não estiverem nesta lista, o acesso ao SSH será bloqueado. Por exemplo, a linha abaixo somente permitirá que os usuários "thiago" e "joao" acessem o SSH:
# vim /etc/ssh/sshd_config
Após abrir o arquivo, basta inserir a linha abaixo:
A diretiva AllowGroups funciona de maneira idêntica, porém, ao invés de validar o usuário em si, ela irá validar se o usuário está em algum dos grupos cujo login está liberado. Isto é especialmente interessante quando você tem uma rotatividade grande de usuários cujo login será liberado, e não quer ficar editando o arquivo de configuração a todo momento. Neste caso, basta criar um grupo, por exemplo, "allowssh":
# groupadd allowssh
# groupmems -a thiago -g allowssh
# groupmems -a joao -g allowssh
E incluí-lo no AllowGroups:
# vim /etc/ssh/sshd_config
Agora, basta inserir a linha permitindo acesso SSH ao grupo allowssh:
Basta reiniciar o SSH, e após isto ninguém que não estiver no grupo allowssh conseguirá realizar login no sistema.
# /etc/init.d/sshd restart
Isto diminui muito as chances de algum atacante conseguir subir como root em seu servidor, pois, qualquer tentativa de login como root diretamente irá falhar. Além disto, com esta mudança, caso algum atacante queira invadir seu sistema, ele deverá primeiro deduzir o nome de um usuário válido em seu sistema.
Para isto, basta alterar a diretiva PermitRootLogin para "no".
# vim /etc/ssh/sshd_config
Agora basta inserir a linha permitindo acesso SSH ao grupo allowssh:
Depois disto, basta reiniciar o serviço de SSH e o root não poderá mais realizar login via SSH.
# /etc/init.d/sshd restart
Se você especificar algum usuário nesta diretiva, à todos os demais usuários que não estiverem nesta lista, o acesso ao SSH será bloqueado. Por exemplo, a linha abaixo somente permitirá que os usuários "thiago" e "joao" acessem o SSH:
# vim /etc/ssh/sshd_config
Após abrir o arquivo, basta inserir a linha abaixo:
AllowUsers thiago joao
A diretiva AllowGroups funciona de maneira idêntica, porém, ao invés de validar o usuário em si, ela irá validar se o usuário está em algum dos grupos cujo login está liberado. Isto é especialmente interessante quando você tem uma rotatividade grande de usuários cujo login será liberado, e não quer ficar editando o arquivo de configuração a todo momento. Neste caso, basta criar um grupo, por exemplo, "allowssh":
# groupadd allowssh
# groupmems -a thiago -g allowssh
# groupmems -a joao -g allowssh
E incluí-lo no AllowGroups:
# vim /etc/ssh/sshd_config
Agora, basta inserir a linha permitindo acesso SSH ao grupo allowssh:
AllowGroups allowssh
Basta reiniciar o SSH, e após isto ninguém que não estiver no grupo allowssh conseguirá realizar login no sistema.
# /etc/init.d/sshd restart
Nunca, jamais, never e em hipótese alguma permita o acesso do root via SSH
Esta é uma das dicas que você mais vai encontrar se pesquisar sobre segurança em SSH. Proibir o login do root através do SSH fará com que qualquer usuário que quiser realizar login tenha que subir com um usuário comum, e somente depois de já estar no SSH, efetuar login como root através do comando su.Isto diminui muito as chances de algum atacante conseguir subir como root em seu servidor, pois, qualquer tentativa de login como root diretamente irá falhar. Além disto, com esta mudança, caso algum atacante queira invadir seu sistema, ele deverá primeiro deduzir o nome de um usuário válido em seu sistema.
Para isto, basta alterar a diretiva PermitRootLogin para "no".
# vim /etc/ssh/sshd_config
Agora basta inserir a linha permitindo acesso SSH ao grupo allowssh:
PermitRootLogin no
Depois disto, basta reiniciar o serviço de SSH e o root não poderá mais realizar login via SSH.
# /etc/init.d/sshd restart