En 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:
- Les operacions remotes es fan mitjançant ssh, scp i sftp.
- Gestió de claus amb ssh-add, ssh-keysign, ssh-keyscan i ssh-keygen.
- El costat del servei està format per sshd, sftp-server i ssh-agent.
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
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
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
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.
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
Permission denied, please try again.
Permission denied, please try again.
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
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:

Torna a la portada