OpenSSHEn principi, no s'ha d'accedir físicament a un servidor excepte per raons excepcionals (com l'actualització o la reparació de hardware, per exemple). La millor manera de gestionar un servidor és remotament. No obstant això, aquest accés caldria fer-se de manera segura, per garantir que la comunicació no siga interceptada per tercers. Una bona eina per dur a terme aquesta tasca és OpenSSH.

OpenSSH és l'eina de connectivitat principal per a l'inici de sessió remot amb el protocol SSH. Encripta tot el trànsit per eliminar l'escolta, el segrest de connexió i altres atacs. A més, OpenSSH proporciona un ampli conjunt de capacitats de tunelització segura, diversos mètodes d'autenticació i opcions de configuració sofisticades.

La suite OpenSSH consta de les següents eines:

 

El protocol SSH

És la solució per garantir connexions remotes segures. SSH és un protocol de comunicació que encripta les dades que s'intercanvien, i és virtualment impossible trencar la privacitat de la comunicació. L'acrònim ssh ve de l'anglés: Secure SHell.

El protocol ssh és molt versàtil, té un software client que possibilita l'accés a la línia d'ordres, permet la transferència d'arxius i la creació de túnels segurs amb suport de comunicació per a altres protocols.

 

Clients SSH

Els clients ssh es divideixen en dos grups:

  • Terminal SSH. És un emulador de terminal que permet accedir de forma remota des d'un equip a la línia d'ordres de l'equip remot, utilitzant el protocol SSH.
  • Client SFTP. Es tracta d'un client per transferència d'arxius que utilitza el Protocol de Transferència Segura d'Arxius. Les seues sigles signifiquen en anglés (Secure File Transfer Protocol (SFTP).

Clients Linux:

  • openssh-client: Aquest programari ofereix utilitats per a accés remot (client ssh), còpia de seguretat d'arxius (scp) i transferència segura d'arxius (sftp), entre d'altres.
  • FileZilla: Cliente SFTP.

Clients Windows:

 

Instal·lació del Servidor SSH

Ja instal·larem OpenSSH durant la instal·lació del sistema, si no l'instal·lareu, podeu fer-ho amb:

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

 

Configuració del Servidor SSH

Totes les possibilitats de configuració del servidor ssh són a l'arxiu /etc/ssh/sshd_config. Si volem editar l'arxiu amb l'editor nano:

root@server-angles:~# nano -w /etc/ssh/sshd_config

Per configurar el servidor cal indicar les adreces IP on el servei va a "escoltar" i "respondre". En aquest cas són connexions lligades a l'adreça 192.168.1.100, a través del port 22 i utilitzant la versió 2 del protocol ssh:

/etc/ssh/sshd_config
   
#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
ListenAddress 192.168.1.100
 
#[...]

Port 22 - Port per defecte pel qual escolta (si volem que escolte pel port default o Port 22 no serà necessari des comentar la línia Port 22), si utilitzem el port default haurem d'accedir així: ssh usuari@maquina.

ListenAddress 192.168.1.100 - Per defecte el servei SSH escoltarà peticions de qualsevol direcció. Podem indicar per exemple que només es puga accedir localment des d'una IP determinada. Exemple: ListenAddress 192.168.1.100

Si volem que el servidor SSH escolte per altre port, modificarem o afegirem el número del port:

/etc/ssh/sshd_config

#Port 22
Port 2233 # Roig - Modificar Port d'escolta.
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

#[...]

Port 2233 - Si canviem el port d'escolta, haurem d'accedir així: ssh -p port usuari@maquina. Exemple (port 2233, IP del servidor 192.168.1.6:

roig@Debian-escriptori:~$ ssh -p Aquesta adreça de correu-e està protegida dels robots de spam.Necessites Javascript habilitat per veure-la..1.6

 

Per seguretat, convé desactivar el login com a root. En aquesta configuració, per adquirir els privilegis de root, cal iniciar una sessió login amb un compte d'usuari normal, i després, adquirir els privilegis de root. Així es prevenen els atacs a la contrasenya password del compte root.

/etc/ssh/sshd_config
   
#[...]
 
# Authentication:
 
#LoginGraceTime 2m
#PermitRootLogin prohibit-password
 
#[...]

 

També cal impedir les sessions o logins de comptes sense contrasenya (Empty Passwords):

/etc/ssh/sshd_config

   
#[...]

# Authentication:

#[...]
 
# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no
 
#[...]


Finalment, perquè el servei prenga els canvis que s'han fet a l'arxiu de configuració, es reinicia el servei:

root@server-angles:~# systemctl restart ssh

 

Verificació del Servidor SSH

Connexió remota via SSH (Clients Linux)

Per connectar-nos des d'un altre ordinador connectat a la nostra xarxa interna, haurem d'obrir una Terminal des de l'ordinador que vulguem connectar-nos i executem ssh nom_usuari@ip_del_servidor, pel tant segons aquesta guia, per  establir una connexió ssh a la direcció 192.168.1.6 pel port 2233:

roig@Debian-escriptori:~$ ssh -p 2233 Aquesta adreça de correu-e està protegida dels robots de spam.Necessites Javascript habilitat per veure-la..1.6
Aquesta adreça de correu-e està protegida dels robots de spam.Necessites Javascript habilitat per veure-la..1.6's password:

El sistema ens preguntarà la contrasenya i llest. Ja estem dins del nostre servidor com si tinguérem el monitor connectat però en una finestra dins del nostre sistema operatiu.

Poden confirmar que el servidor SSH està en funcionament executant l'ordre (sot a root o superusuari) '# service ssh status'. Busqueu la paraula clau 'Active: active (running)'. Premeu 'q' si necessiteu recuperar la seua sol·licitud de línia d'ordres:

 

root@server-angles:~# service ssh status
ssh.service - OpenBSD Secure Shell server
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2019-01-08 19:12:19 CET; 3min 35s ago
  Process: 801 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
 Main PID: 804 (sshd)
    Tasks: 3 (limit: 4915)
   CGroup: /system.slice/ssh.service
           ├─804 /usr/sbin/sshd -D
           ├─807 sshd: roig [priv]
           └─808 sshd: roig [net]

 

En un esdeveniment en el qual necessite desactivar temporalment SSH al seu host, executeu:

# sudo service ssh stop

Per començar de nou, executa:

# sudo service ssh start

Per desactivar completament SSH després de reiniciar executa:

# sudo systemctl disable ssh

Per habilitar SSH novament:

# sudo systemctl enable ssh

 

La primera vegada que s'estableix la connexió, aquesta ha de ser confirmada, perquè el servidor no està registrat a la llista dels sistemes coneguts pel client.

roig@Debian-escriptori:~$ ssh Aquesta adreça de correu-e està protegida dels robots de spam.Necessites Javascript habilitat per veure-la..1.6
The authenticity of host '192.168.1.6 (192.168.1.6)' can't be established.
ECDSA key fingerprint is SHA256:zmW87Mj7rZBgnkkD32tpxTSOFbRYPAGO/ufoPJvuG54.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.6' (ECDSA) to the list of known hosts.
Aquesta adreça de correu-e està protegida dels robots de spam.Necessites Javascript habilitat per veure-la..1.6's password:
Linux server-angles 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) 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.
Last login: Sat Jan  5 18:35:44 2019 from 192.168.1.3
roig@server-angles:~$ logout
Connection to 192.168.1.6 closed.
roig@Debian-escriptori:~$

 

Les connexions amb el login root no s'acceptaran:

roig@Debian-escriptori:~$ ssh -p 2233 Aquesta adreça de correu-e està protegida dels robots de spam.Necessites Javascript habilitat per veure-la..1.6
Aquesta adreça de correu-e està protegida dels robots de spam.Necessites Javascript habilitat per veure-la..1.6's password:
Permission denied, please try again.
Aquesta adreça de correu-e està protegida dels robots de spam.Necessites Javascript habilitat per veure-la..1.6's password:
Permission denied, please try again.
Aquesta adreça de correu-e està protegida dels robots de spam.Necessites Javascript habilitat per veure-la..1.6's password:
Permission denied (publickey,password).
roig@Debian-escriptori:~$

 

Connexió remota via SSH (Clients Windows)

Es pot accedir des de clients en el sistema operatiu Windows amb un programa d'emulació del terminal que suporte ssh, com Putty. Els clients windows poden utilitzar l'aplicació PuTTy connection manager; és una implementació lliure de Telnet i SSH per a plataformes Windows i Unix, amb un emulador de terminal xterm.

PuTTY: A Free Telnet/SSH Client - PuTTY Download Page

 

Obtenir privilegis de root

Ja que la sessió o login amb el compte d'usuari root està desactivada, l'única forma d'obtenir privilegis de root en una connexió ssh és a través d'un usuari comú que escala privilegis executant l'ordre su:

roig@Debian-escriptori:~$ ssh -p 2233 192.168.1.6
Aquesta adreça de correu-e està protegida dels robots de spam.Necessites Javascript habilitat per veure-la..1.6's password:
Linux server-angles 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) 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.
Last login: Tue Jan  8 19:16:11 2019 from 192.168.1.10
roig@server-angles:~$ su - root
Contraseña:
root@server-angles:~#

 

Transferència remota d'arxius via SFTP (Clients Linux)

OpenSSH ens ofereix la possibilitat de connectar-nos al nostre servidor remotament des de la Terminal i també pot fer que ens connectem en xarxa gràcies a sFTP. Aquest és l'FTP segur de SSH que ens ofereix la possibilitat de connectar-nos per una via segura com és la de SSH des d'un explorador d'arxius com pot ser el que ve per defecte a Gnome anomenat Nautilus.

Des d'un ordinador client amb Linux Ubuntu o Debian connectat al router (com és el meu cas), tan sols hem d'anar a la pestanya (Llocs) o al directori Xarxa en KDE, després a (Connecta't a un servidor...) o (Afegeix una carpeta de xarxa). Amb aquest Frontend de l'Ubuntu i Debian, podem connectar-nos a diferents serveis remots.

Per connectar-nos via (SFTP) seleccionem com a Tipus de servei (SSH), seguidament a l'apartat Servidor introduïm l'adreça IP fixa del nostre servidor web i en el nom d'usuari l'usuari que usem al servidor. Premem sobre la casella (Afegir l'adreça d'interés) i li donem un nom al marcador, premem sobre el botó (Connecta) i ens demanarà la nostra contrasenya d'usuari, la introduïm i accedirem a tot el disc du.

Des d'ací i molt còmodament podrem pujar i baixar fitxers al nostre servidor web, com si es tractés d'un disc dur mes.

 

Transferència remota d'arxius via SFTP (client Windows, linux, Mac OS X)

Per clients windows, Linux i Mac OS X podeu utilitzar l'aplicació FileZilla (client); FileZilla és un client FTP multiplataforma de codi obert i programari lliure. Suporta els protocols FTP, SFTP i FTP sobre SSL/TLS (FTPS).

FileZilla - La solució FTP lliure - FileZilla - Client

 

 

Nota: Ja no necessitem estrictament tindre monitor si disposem d'un altre ordinador connectat al router o la nostra xarxa interna, ja que podrem accedir per SSH o SFTP des d'un altre ordinador.



Fonts: