O OpenSSH é um conjunto de ferramentas que nos permite gerir remotamente máquinas, recorrendo ao protocolo SSH. Ao contrário de outras, como o Telnet, rcp, rlogin e ftp, o OpenSSH garante que as comunicações entre máquinas sejam seguras, pois, recorre à criptografia para cifrar todo o tráfego (incluindo passwords).
Por questões de segurança é fundamental que desativem a autenticação remota da conta root. Hoje ensinamos como podem fazer.
O OpenSSH é uma versão gratuita da implementação do SSH. Para quem não sabe, o SSH – Secure Socket Shell é um protocolo que permite, de forma segura, aceder e gerir remotamente máquinas Linux e não só.
O OpenSSH é um conjunto de ferramentas das quais fazem parte o:
- ssh– um substituto para rlogin, rsh e telnet.
- scp– um substituto para rcp
- sftp– um substituto para o ftp
- sshd– daemon da versão server do SSH
- ssh-keygen– uma ferramenta para verificar e gerar chaves RSA, DSA e Elliptic Curve
- ssh-agentessh-add –utilitários para que o utilizador não necessite de introduzir sempre a password – ver aqui
Gerir máquinas remotamente é sempre um processo bastante cómodo, no entanto, é fundamental que se analisem todas as questões relativamente à segurança. Uma das primeiras configurações que devem ser realizadas é desativar o acesso à conta root. Como sabemos, esta conta tem todos os privilégios dentro de um sistema e nesse sentido não a devemos usar para proceder à autenticação por acesso remoto.
Depois de acederem remotamente a uma máquina com uma conta com um nível de privilégios mínimo, podem nesse momento usar a conta root para realizar tarefas que necessitem de outro tipo de permissões.
Como negar o acesso remoto à conta root?
Negar o acesso remoto à conta root é algo bastante simples e pode ser realizado de várias formas. Uma delas já apresentamos aqui. Outra das formas é usando o parametro DenyUsers
Para isso basta abrir o ficheiro /etc/ssh/sshd_config e incluir a seguinte informação:
DenyUsers root
Caso pretendam bloquear outros utilizadores basta que façam algo do tipo:
DenyUsers ppinto ppinto user1
Depois de procederem às alterações devem reiniciar o serviço usando o seguinte comando:
/etc/init.d/sshd restart
Para testarem se tudo está operacional podem executar no macOS, Linux e até no Windows o seguinte comando:
ssh root@xxx.xxx.xxx.xxx
Além destas configurações existem outras que podem ser facilmente adotadas. Por exemplo, fazer Logins remotos pela rede “sem password” – ver aqui. Podemos também usar o DenyHosts, um script desenvolvido para sistemas Linux que permite “ajudar” no controlo de ataques indevidos via SSH.