Tabela de Conteúdos

2.3.2 Servidor Ssh

Regra geral não se deve aceder fisicamente a um servidor a não ser por razões excecionais (atualização ou reparação de hardware, por exemplo). A melhor maneira de gerir um servidor é remotamente. No entanto, esse acesso dever ser feito utilizando um protocolo seguro para garantir que as comunicações não serão intercetadas por terceiros.

Instalação

root@server:~# apt install openssh-server openssh-client

Configuração

Todas as configurações do servidor SSH estão no ficheiro /etc/ssh/sshd_config.

Indicar os endereços onde o serviço responde. Neste caso serão aceites ligações apenas no endereço 192.168.1.100:

#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
ListenAddress 192.168.1.100

#[...]

Também por segurança, o servidor SSH não permite o acesso remoto de root de forma interativa. Assim, para adquirir privilégios de root, deverá ser efetuado o login como utilizado não privilegiado e em seguida adquirir privilégios de root. Deste modo a password de root não está sujeita a um ataque de força bruta.

#[...]

# Authentication:

#LoginGraceTime 2m
#PermitRootLogin yes
PermitRootLogin no

#[...]

Verificar também que não são permitidos logins com passwords vazias:

#[...]

#PermitEmptyPasswords no

#[...]

Permitir que os utilizadores efetuarem logins com as suas passwords:

#[...]

PasswordAuthentication yes

#[...]

Verificar o ficheiro de configuração:

root@server:~# sshd -t
root@server:~#

Reiniciar o serviço:

root@server:~# systemctl restart ssh

Verificação

Clientes Linux

Deverá agora ser possível estabelecer uma ligação ssh ao endereço 192.168.1.100.

A primeira vez que essa ligação for efetuada deve ser confirmada a autenticidade do servidor, uma vez que este ainda não consta na lista dos sistemas conhecidos do cliente.

fribeiro@laptop:~$ ssh fribeiro@192.168.1.100
The authenticity of host '192.168.56.101 (192.168.56.101)' can`t be established.
ECDSA key fingerprint is SHA256:eC0Wva7QKqCiy5imegiPv/NxfCup3Dmjm1n4aB3LH2I.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.100' (ECDSA) to the list of known hosts.
fribeiro@192.168.1.100`s password:
Linux buster 4.9.0-3-amd64 #1 SMP Debian 4.9.30-2 (2017-06-12) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
fribeiro@server:~$ logout
Connection to 192.168.1.100 closed.
fribeiro@laptop:~$

E ligações com o login root não serão aceites:

fribeiro@laptop:~$ ssh root@192.168.1.100
root@192.168.1.100´s password:
Permission denied, please try again.
root@192.168.1.100´s password:
Permission denied, please try again.
root@192.168.1.100´s password:
Permission denied (publickey,password).
fribeiro@laptop:~$

Clientes Windows

O acesso a partir de clientes Windows é possível com um programa emulador de terminal com suporte ssh, como o Putty:

Sessão remota via ssh com o putty

Obter privilégios de root

Uma vez que o login como root está desligado, o modo de obter privilégios de root numa ligação ssh é através de um utilizado comum e em seguida escalar os privilégios com o comando su:

fribeiro@laptop:~$ ssh 192.168.1.100
fribeiro@192.168.1.100´s password:

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
fribeiro@server:~$ su - root
Password:
root@server:~#

Referências