OpenSSH Server
Escenario
O principal obxectivo deste escenario é revisar e familiarizarse co funcionamento dun sistema SSH, tanto na parte servidor como no cliente. Instalaremos o servidor openssh-server nunha máquina Ubuntu Server e faremos probas de conexión dende clientes ssh para probar os mecanismos de autenticación do server grazas ó uso da súa clave pública. Ademáis, este escenario supón o comezo do estudo e revisión dos arquivos de configuración máis importantes tanto da parte servidor como da cliente, así como dos principais comandos ssh.
Escenario
Ó longo do escenario realizaremos as seguintes accións:
- Actualizar a listaxe de paquetes no equipo correndo Ubuntu Server e instalar a última versión de openssh-server.
- Unha vez rematada a instalación, verificar que o servidor ssh está escoitando peticións no porto por defecto.
- Facer un listado dos arquivos de configuración do servidor ssh e localizar as claves públicas e privadas dos distintos algoritmos criptográficos.
- Explicar a misión do arquivo arquivo known_hosts.
- Conectarse dende o cliente Linux, verificando que se pide aceptar a clave pública e que unha vez aceptada, aparecerá no arquivo known_hosts do usuario.
- Conectarse novamente dende o cliente Linux, verificando que esta vez non se solicita aceptar a clave pública.
- Rexenerar as claves privada-pública que usa o servidor openssh-server.
- Comprobar que sucede cando o cliente detecta un erro na autenticación do server e como xestionar esta situación.
Configuración do server
Contedores LXC
NOTA: para este escenario é posible empregar o contedor admin2 dos escenarios anteriores directamente, tendo en conta que ten configurada a IP.2 en vez da .11. Poño as instruccións para preparar o escenario de xeito manual por dúas razóns: a primeira porque é interesante que o alumnado faga todo o proceso se nunca traballou a instalación e configuración de ssh e a segunda para que comparedes, o que é unha configuración a man fronte os despregamentos automatizado dos escenarios anteriores.
Con Ubuntu 22.04 Para montar o equipo Server do Escenario 4C nun contedor LXC teremos en conta os seguintes puntos:
Imaxe a usar Linux Ubuntu 22.04. Perfil da máquina: lan
O contedor estará directamente conectado á rede lan xestionada por LXC/incus.
Ten conexión co anfitrión e cos demais contedores conectados a esa rede.
Sairá a Internet a través da interface lan que exerce de switch-router-nat.
Non é directamente accesible dende fóra do equipo anfitrión.
Con este perfil podemos facer que todo o alumnado simule unha rede local coas mesmas IPs e poida facer a práctica seguindo as mesmas indicacións. A rede lan e o perfil lan xa foron creados en temas anteriores:
$ incus launch images:ubuntu/jammy/cloud server-ssh -p LAN Launching server-ssh $ incus ls -c n,4,s,P,S,l
+------------+-----------------------+---------+-------------+-----------+----------------------+ | NAME | IPV4 | STATE | PROFILES | SNAPSHOTS | LAST USED AT | +------------+-----------------------+---------+-------------+-----------+----------------------+ | admin2 | | STOPPED | LAN | 0 | 2026/01/31 09:13 CET | +------------+-----------------------+---------+-------------+-----------+----------------------+ | fw | | STOPPED | WAN-LAN-DMZ | 0 | 2026/01/31 11:59 CET | +------------+-----------------------+---------+-------------+-----------+----------------------+ | server | | STOPPED | DMZ | 0 | 2026/01/31 09:13 CET | +------------+-----------------------+---------+-------------+-----------+----------------------+ | server-ssh | 192.168.100.29 (eth0) | RUNNING | LAN | 0 | 2026/01/31 12:06 CET | +------------+-----------------------+---------+-------------+-----------+----------------------+
Configuración de rede do contedor: A IP que ten o contedor neste momento é por dhcp e procederemos a configurala de forma estática. Ó estar na rede lan o server debera ter unha configuración válida para a esa rede; e no exemplo, a configuración escollida é: Interface de rede: eth0 IP do server: 192.168.100.11/255.255.255.0 Default gateway: 192.168.100.1 (IP asignada á interface lan creada con lxc network en escenarios do tema Contedores LXC/LXD) Servidores DNS: 8.8.8.8 e 8.8.4.4
Para configurar o server hai que editar o arquivo /etc/network/interfaces.
$ incus shell server-ssh # nano /etc/netplan/50-cloud-init.yaml
network:
version: 2
ethernets:
eth0:
addresses:
- 192.168.100.11/24
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
search: []
routes:
- to: default
via: 192.168.100.1
# netplan apply # ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
14: eth0@if15: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:16:3e:8a:15:74 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 192.168.100.11/24 brd 192.168.100.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::216:3eff:fe8a:1574/64 scope link
valid_lft forever preferred_lft forever
# ip route
default via 192.168.100.1 dev eth0 proto static 192.168.100.0/24 dev eth0 proto kernel scope link src 192.168.100.10
Instalación de opensss server:
# apt update # apt install openssh-server
Permitir as conexións haberá que poñer a directiva PasswordAuthentication a yes:
# nano /etc/ssh/sshd_config
... # Change to no to disable tunnelled clear text passwords PasswordAuthentication yes ...
# systemctl restart sshd.service # ss -lntp
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=1053,fd=3))
LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:* users:(("systemd-resolve",pid=303,fd=13))
LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=1053,fd=4))
Asignar un contrasinal ó usuario ubuntu que ven na imaxe:
# passwd ubuntu
Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
Nos contedores LXC/incus o usuario root ven activado e podemos usalo para executar os comandos ou usar o usuario administrador ubuntu elevando privilexios con sudo (nos apuntamentos normalmente aparecerán desta última forma).
En Virtualbox
No caso de empregar Virtualbox para realizar o escenario 4C, o server corre nunha máquina virtual coas seguintes características:
- Sistema Operativo Ubuntu Server 22.04.
- Memoria RAM: a partir de 512 MBytes
- Rede: un único adaptador de rede configurado en modo ponte (bridge). IMPORTANTE: debe ter unha configuración de rede válida para a rede da túa casa/centro.
- Configurar a rede en modo estático seguindo as indicacións dadas no apartado anterior, tendo especial coidado no nome da interface que pode non ser eth0.
Para instalar o servidor openssh e verificar que o servizo está levantado execútanse os seguintes comandos:
$ sudo apt update $ sudo apt install openssh-server $ sudo ss -ltnp
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=1053,fd=3))
LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:* users:(("systemd-resolve",pid=303,fd=13))
LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=1053,fd=4))