Salta el contingut

Bastió

Aquest manual és funcional per a instal·lacions d'IsardVDI en una versió v14.64.3 o posterior.

La funcionalitat Bastió d’IsardVDI permet accedir als escriptoris virtuals per SSH i a través d’un domini públic per als servidors web muntats, sense necessitat d’establir una connexió VPN (Wireguard).

Aquesta característica possibilita l’accés mitjançant un domini que combina el UUID de l’escriptori virtual amb el domini configurat per a IsardVDI. A més, permet connectar-se per SSH sense necessitat d’establir túnels addicionals.

És especialment útil en entorns que requereixen servidors públics, ja que facilita l’accés directe als escriptoris virtuals de manera segura i senzilla.

Quan s’activa el Bastió, el servidor d’IsardVDI actua com un pont per a les connexions externes:

graph LR
  dt1(Client):::dt -.- dk1([IsardVDI Bastion]):::dk -.- dt2(Guest Desktop):::dt
  classDef dk fill:#ffd1dc,stroke:#ff3465,stroke-width:1px

Per tal que els usuaris puguin utilitzar Bastió, han de tenir permisos per a la seva categoria. Aquesta configuració només la pot fer un usuari amb rol d’Administrador.

Només per a Administradors

Per modificar la configuració i els permisos de Bastió, es recomana consultar la guia següent: Configuració del Bastió

Configuració

En editar un escriptori virtual, es troba l’apartat Bastió (si es disposa dels permisos necessaris).

  • Ports: Encara que els ports externs apunten al 80/TCP i al 443/TCP (que també són els que, per defecte, escolten a la màquina virtual), dins l’escriptori és possible redirigir-los a altres ports si es desitja. Per fer-ho, cal especificar el nou port a l’edició de l’escriptori virtual, en els paràmetres indicats per a cada servei (HTTP, HTTPS i SSH).

  • Claus autoritzades: Per fer servir la connexió SSH, s’han d’afegir una o més claus públiques SSH (una per línia) per a cada usuari que necessiti accés. Cada usuari ha de generar les seves pròpies claus públiques. Es poden actualitzar en temps real, sense haver d'aturar l'escriptori per poder afegir o modificar les claus.

Generar claus SSH

Per generar un parell de claus SSH és tan senzill com executar una ordre:

Després d’executar l’ordre ens preguntarà a quina ruta volem desar les claus generades. Prement +enter+ les desem a la ruta per defecte (/home/user/.ssh/id_rsa).

ssh-keygen -t rsa -b 4096

La clau que necessitem afegir és la pública que es troba al fitxer id_rsa.pub. Copiem el contingut i l’enganxem a les claus autoritzades dins la configuració del Bastió.

Per a un amfitrió Windows, obrim el terminal PowerShell amb permisos d’administrador i executem l’ordre següent:

ssh-keygen

Després d’executar l’ordre ens preguntarà a quina ruta volem desar les claus generades. Prement +enter+ les desem a la ruta per defecte.

La clau que necessitem afegir és la pública que es troba al fitxer id_rsa.pub. Per veure’n el contingut podem executar:

Get-Content $env:USERPROFILE\.ssh\id_rsa.pub

Copiem el contingut i l’enganxem a les claus autoritzades dins la configuració del Bastió.

Només per a Managers/Admins

Per als usuaris managers, l’edició de l’apartat Bastió en la configuració de la màquina virtual apareix de la manera següent:

Apareix un apartat nou:

  • Nom de domini personalitzat: Aquesta opció permet assignar un nom propi al servidor web (a l’escriptori virtual) en lloc d’utilitzar el UUID de l’escriptori com a domini.

Per fer ús d’aquesta funció, cal afegir un registre CNAME que apunti al domini format pel UUID de l’escriptori virtual + domini de la instal·lació, al servidor DNS que resol el domini d’IsardVDI.

Continuant dins de l’apartat d’edició de la màquina virtual, a la secció Credencials de l’escriptori, es troben les credencials necessàries per accedir remotament a l’escriptori virtual a través del servei SSH. Aquestes credencials serveixen tant per a la connexió per RDP com per a Bastió.

No es poden crear plantilles de la configuració

No és possible afegir a la plantilla els paràmetres que s’han modificat a Bastió. És a dir, es desarà l’estat general de l’escriptori, però no es conservaran els canvis fets a l’apartat Bastió.


Després de configurar Bastió i les credencials d'accés, podem desar els paràmetres de la màquina virtual.

En tornar a la secció principal d’escriptoris, es podrà accedir al botó per veure l’identificador de l’escriptori juntament amb les URLs per als protocols activats i com accedir-hi.

I apareixerà una finestra com la següent:

A partir del UUID de l’escriptori, es poden generar les connexions següents a l’escriptori (on "domain.com" correspon al domini del servidor que allotja la web d’IsardVDI):

  • URL HTTP: http://{UUID}.domain.com
  • URL HTTPS: https://{UUID}.domain.com
  • SSH: ssh {UUID}@domain.com -p 443

A l’apartat de claus d’autorització podrem veure les que tenim afegides. Es poden modificar sense necessitat d’aturar l’escriptori, és a dir, en temps real. Per actualitzar el canvi es prem el botó:

Només per a managers

Als usuaris managers els apareix l’apartat per canviar el nom de domini personalitzat, i poden fer-ho en temps real sense apagar l’escriptori virtual. Per aplicar els canvis, premem el botó:

Recomanació

Si es vol accedir als serveis web, es recomana obrir la URL en una finestra d’incògnit o en un altre navegador si ja s’ha visitat prèviament la web d’IsardVDI.

Exemples

Servei web

Exemple de prova d’un servei web dins d’un escriptori.

Durant la prova, per evitar altres problemes, cal comprovar:

  • Que el tallafoc no bloquegi el trànsit. Per desactivar-lo: systemctl disable --now ufw
  • Que s’instal·li el servidor SSH amb apt install openssh-server i s’activi amb systemctl enable --now ssh

Per fer una petita prova del funcionament utilitzarem el servidor web Caddy:

  1. Instal·lem Caddy i verifiquem que la instal·lació s’hagi completat correctament:
curl -1sLf \
'https://dl.cloudsmith.io/public/caddy/stable/setup.deb.sh' \
| sudo -E bash
sudo apt update
sudo apt install caddy -y
caddy version
sudo systemctl status caddy
  1. Creem una petita pàgina web de demostració:
sudo mkdir -p /var/www/la-meva-web
sudo chown -R $USER:$USER /var/www/la-meva-web
cat <<EOF > /var/www/la-meva-web/index.html
<!DOCTYPE html>
<html lang="es">
<head>
  <meta charset="UTF-8" />
  <title>IsardVDI</title>
  <style>
    body, html {
      height: 100%;
      margin: 0;
    }
    body {
      display: flex;
      justify-content: center;
      align-items: center;   
      height: 100vh;          
      font-family: Arial, sans-serif;
    }
    h1 {
      text-align: center;
    }
    img.isard {
      height: 2em; 
      vertical-align: middle; 
    }
  </style>
</head>
<body>

  <h1>Hola des d'IsardVDI :) <img src="https://avatars.githubusercontent.com/u/18657560?s=280&v=4" alt="Icono" class="isard"></h1>

</body>
</html>

EOF
  1. Editem el fitxer de configuració de Caddy i hi afegim el domini amb què entrem a l’escriptori virtual (Cal canviar {UUID}.domain.com pel domini de l’escriptori!)
sudo sed -i -e 's/^:80 {/{UUID}.domain.com {/' -e 's|root \* /usr/share/caddy|root * /var/www/la-meva-web|' /etc/caddy/Caddyfile

sudo systemctl reload caddy

Ara visitem el servei web amb la URL corresponent i hauríem de veure el contingut de index.html:

Servei SSH

El servei SSH requereix que verifiquem que a l’escriptori virtual:

  • No existeixin regles que bloquegin el trànsit: systemctl disable --now ufw
  • Tingui instal·lat el servidor SSH: apt install openssh-server; i que estigui activat: systemctl enable --now ssh

Les credencials d’accés són les mateixes que les del visor RDP i es poden consultar en editar la màquina virtual.

Credencials d’accés

Si l’usuari i la contrasenya no coincideixen en el moment d’entrar per SSH, no s’hi podrà accedir. A més, aquest usuari ha de pertànyer al grup d’Administradors.

Per poder accedir, cal afegir la clau pública del dispositiu des del qual es vol connectar a l’apartat de claus autoritzades a l’edició de Bastió.


Darrera actualització: July 8, 2025