Tabela de Conteúdos
Página desactualizada Esta página contém uma versão anterior deste guia que pode estar desatualizada. Para a consultar a versão mais recente clique aqui.
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:~# aptitude 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, através da porta 22 e utilizando a versão 2 do protocolo SSH:
- /etc/ssh/sshd_config
# Package generated configuration file # See the sshd_config(5) manpage for details # What ports, IPs and protocols we listen for Port 22 # Use these options to restrict which interfaces/protocols sshd will bind to #ListenAddress :: #ListenAddress 0.0.0.0 ListenAddress 192.168.1.100 Protocol 2 #[...]
Por segurança, desativar o login como root. Assim, para adquirir privilégios de root, deverá ser efetuado o login como utilizado não privilegiado e, posteriormente, adquirir privilégios de root. Deste modo a password de root não está sujeita a um ataque de força bruta.
- /etc/ssh/sshd_config
#[...] # Authentication: LoginGraceTime 120 PermitRootLogin no StrictModes yes #[...]
Verificar também que não são permitidos logins com passwords vazias:
- /etc/ssh/sshd_config
#[...] # To enable empty passwords, change to yes (NOT RECOMMENDED) PermitEmptyPasswords no #[...]
Reiniciar o serviço:
root@server:~# /etc/init.d/ssh restart
Verificação
Clientes Linux
Deverá ser possível estabelecer uma ligação ssh ao endereço 192.168.1.100.
A primeira vez que essa ligação for efetuada, deverá ser confirmada a ligação, uma vez que o servidor não consta na lista dos sistemas conhecidos do cliente.
fribeiro@laptop:~$ ssh 192.168.1.100 The authenticity of host '192.168.1.100 (192.168.1.100)' can't be established. ECDSA key fingerprint is 98:c1:0a:ae:2b:h4:1c:5c:39:10:de:a4:47:5c:d9:83. 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 server 3.2.0-4-686-pae #1 SMP Debian 3.2.41-2 i686 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. Last login: Sun May 5 21:21:58 2013 from laptop.home.lan 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 -l 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).
Clientes Windows
O acesso a partir de clientes Windows é possível com um programa emulador de terminal com suporte ssh, como 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: inux server 3.2.0-4-686-pae #1 SMP Debian 3.2.41-2 i686 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. Last login: Wed Oct 27 21:48:09 2013 from laptop.home.lan fribeiro@server:~$ su - root Password: root@server:~#