Salta al contingut
Pàgines de la documentació

Documentació

Xarxa

Els tres tipus d'interfície que pot tenir un escriptori d'IsardVDI, i com arribar-hi des del teu ordinador amb isard vpn.

Parteix de CLI.

Introducció

Tens una màquina. No hi pots arribar.

No és un error teu: és el comportament per defecte, i val la pena entendre'l abans de posar-te a buscar l'opció que el desactiva.

Un escriptori d'Isard s'executa en un centre de dades al qual no tens cap ruta.

Pot sortir cap a internet, perquè un encaminador que té al davant li tradueix les adreces pel camí. Res no hi pot entrar, perquè no hi ha cap adreça per on entrar.

Per a bona part del que faràs, ja et va bé: obres el visor, escrius, aprens alguna cosa.

Deixa d'anar bé quan la màquina és un servidor: un servidor web que vols obrir al teu navegador, una base de dades a la qual vols connectar un client, una màquina on vols entrar per SSH des d'un terminal que no sigui dins d'una finestra SPICE.

Hi ha tres respostes, i un escriptori les pot tenir totes tres alhora:

interfície què et dona qui posa l'adreça
Default sortida a internet, cap entrada Isard, per DHCP
Wireguard VPN una adreça fixa a la qual arribes per una VPN Isard, per DHCP
Personal una xarxa privada entre els teus escriptoris tu, dins de cada màquina

Aquesta pàgina tracta aquestes tres, més la quarta resposta, el bastió, que és a Bastió i no necessita cap VPN.

Default

Tots els escriptoris la tenen i no la pots desactivar.

Dins de la màquina és la primera interfície:

$ ip --brief addr
lo      UNKNOWN  127.0.0.1/8 ::1/128
enp1s0  UP       192.168.122.214/22 fe80::cc46:102:1f0f:c495/64

192.168.122.0/22 és un rang privat, repartit per DHCP, amb DNS i una passarel·la darrere d'un encaminador NAT.

Així que això funciona:

$ sudo apt update && sudo apt install -y nginx

I això també, des de dins de la màquina:

$ curl -s localhost | head -n 4
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>

Però des del teu portàtil, 192.168.122.214 no és una adreça que vulgui dir res.

Ni tan sols és única: l'escriptori del costat en té una del mateix rang.

Wireguard VPN

La segona interfície posa la teva màquina en una xarxa a la qual et pots connectar.

Isard manté una xarxa privada, 10.2.0.0/16, assigna una adreça fixa en aquesta xarxa a cada escriptori que té aquesta interfície, i dona al teu compte una configuració de WireGuard que connecta el teu ordinador a la mateixa xarxa.

Marca-la quan creïs l'escriptori:

Dins de la màquina apareix com una segona interfície:

$ ip --brief addr
lo      UNKNOWN  127.0.0.1/8 ::1/128
enp1s0  UP       192.168.122.214/22 fe80::cc46:102:1f0f:c495/64
enp2s0  UP       10.2.76.37/16 fe80::3198:1530:28f9:3bff/64

10.2.76.37 és l'adreça que faràs servir.

També la pots consultar a la plataforma sense obrir la màquina:

O, més ràpid:

$ isard list
NAME   STATE    IP          OS
box-1  Started  10.2.76.37  Ubuntu 24.04

El teu extrem del túnel

L'escriptori és a la xarxa. Tu no.

El que necessites és el fitxer de configuració del teu extrem, i Isard en genera un per compte.

Al navegador és al menú desplegable del teu usuari, com a VPN, i descarrega isard-vpn.conf:

Des del terminal és una sola ordre:

$ isard vpn config
✓ Config written to /Users/david/.config/isard/isard-vpn.conf

0600, com els fitxers de sessió, i per un motiu més seriós: aquest fitxer conté la teva clau privada.

Qualsevol que el tingui és a la xarxa dels escriptoris com si fos tu.

Per això no es mostra:

$ isard vpn config --show
[Interface]
PrivateKey = ...
Address = 10.0.29.109/32
DNS = 10.2.0.1

[Peer]
PublicKey = ...
AllowedIPs = 10.2.0.0/16
Endpoint = elmeuescriptori.gestioeducativa.gencat.cat:443

Ho has de demanar amb --show, i no ho hauries de fer en una aula amb un projector.

Aixecar-lo

$ isard vpn up
✓ Config refreshed
Running: sudo wg-quick up /Users/david/.config/isard/isard-vpn.conf
[#] wg-quick up isard-vpn
✓ VPN is up (utun4)

Demana sudo, perquè afegir una interfície de xarxa no és cosa d'un usuari corrent.

A Windows executa wireguard.exe /installtunnelservice, que demana permisos d'administrador de la mateixa manera.

Comprova'l sempre que no n'estiguis segur:

$ isard vpn status
VPN: up (utun4)
Config: /Users/david/.config/isard/isard-vpn.conf

I tomba'l quan acabis:

$ isard vpn down
✓ VPN is down

Totes dues es poden executar dues vegades sense problema: up amb el túnel actiu no fa res, i down amb el túnel caigut, tampoc.

Què pots fer ara

Fes-li ping:

$ ping -c 2 10.2.76.37
PING 10.2.76.37 (10.2.76.37): 56 data bytes
64 bytes from 10.2.76.37: icmp_seq=0 ttl=63 time=47.412 ms
64 bytes from 10.2.76.37: icmp_seq=1 ttl=63 time=44.938 ms

Obre l'nginx que has instal·lat al principi d'aquesta pàgina:

$ curl -s 10.2.76.37 | head -n 4
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>

O al teu navegador, a http://10.2.76.37.

Entra-hi directament per SSH, amb l'ordre ssh de sempre i sense cap bastió pel mig:

$ ssh isard@10.2.76.37
isard@box-1:~$

Tots els ports, no només uns quants. Aquesta és la diferència amb el bastió.

Un servidor de desenvolupament a :5173, un client de PostgreSQL a :5432, un depurador remot, l'RDP de Windows a :3389: tot funciona, perquè per al teu ordinador l'escriptori no és més que un equip d'una xarxa a la qual estàs connectat.

ExerciciArriba a la teva màquina

Aixeca el túnel i obre un servidor web que s'executi a box-1 des del teu navegador.

Mostra la solució

A box-1, pel visor o pel bastió:

$ sudo apt update && sudo apt install -y nginx

Al teu ordinador:

$ isard vpn up
✓ VPN is up (utun4)

$ isard list
NAME   STATE    IP          OS
box-1  Started  10.2.76.37  Ubuntu 24.04

Després, http://10.2.76.37 al navegador.

Si es queda penjat, comprova tres coses en aquest ordre: que el túnel estigui aixecat (isard vpn status), que la màquina estigui arrencada (isard list) i que l'nginx s'estigui executant de debò (systemctl status nginx).

Nou de cada deu vegades la resposta és una de les dues primeres.

Personal

La tercera interfície és la que resol un problema diferent.

Default i Wireguard connecten totes dues un escriptori a alguna cosa que gestiona Isard.

Personal connecta els teus escriptoris entre ells, en una xarxa on no hi ha ningú més: un commutador amb les teves màquines connectades i res més.

Hi ha una cosa que cal entendre, i tota la resta en surt: Isard no assigna cap adreça en una xarxa Personal.

Ni DHCP, ni passarel·la, ni DNS. La interfície s'aixeca sense res:

$ ip --brief addr
lo      UNKNOWN  127.0.0.1/8 ::1/128
enp1s0  UP       192.168.122.214/22 fe80::cc46:102:1f0f:c495/64
enp2s0  UP       10.2.127.123/16 fe80::3198:1530:28f9:3bff/64
enp3s0  UP

Tres interfícies, i la tercera està buida.

No és cap error. És justament la gràcia: una xarxa Personal és un tros de cable, i el que hi circula ho decideixes tu.

Per això és la que vols per a un exercici d'encaminament, de tallafocs, d'un servidor DHCP que escrius tu mateix: la xarxa no té cap opinió que interfereixi amb la teva.

Donar una adreça a enp3s0 és feina del sistema convidat, no d'Isard, i a Ubuntu això és Netplan.

Quina em cal

Llegeix l'exercici, no el menú.

la pàgina et demana marca
seguir un tutorial dins d'una màquina Default: ja la tens
obrir un servidor web al teu navegador Wireguard VPN
entrar per SSH des del teu terminal Wireguard VPN, o el bastió
publicar alguna cosa per a algú que no ets tu el bastió: Bastió
fer que dues màquines es parlin Personal, més Wireguard per poder arribar a totes dues
posar les adreces tu mateix Personal

I marca Wireguard a totes, sempre.

No costa res si no la fas servir, i és la interfície que no pots afegir més tard sense reiniciar.

Exercicis

ExerciciLlegeix les tres interfícies

En una màquina que les tingui totes tres, executa ip --brief addr i digues quina línia és cada una.

Mostra la solució
$ ip --brief addr
lo      UNKNOWN  127.0.0.1/8 ::1/128
enp1s0  UP       192.168.122.214/22 fe80::cc46:102:1f0f:c495/64
enp2s0  UP       10.2.127.123/16 fe80::3198:1530:28f9:3bff/64
enp3s0  UP
  • enp1s0: Default. Una adreça 192.168.122.x, internet a través de NAT.
  • enp2s0: Wireguard VPN. Una adreça 10.2.x.x, accessible des del teu ordinador amb el túnel aixecat.
  • enp3s0: Personal. Cap adreça, perquè ningú no n'hi assigna cap.

L'ordre és el mateix en què es van marcar les interfícies al formulari, i per això val la pena marcar-les sempre en el mateix ordre a totes les màquines d'un exercici.

ExerciciAmunt, avall, amunt

Aixeca el túnel, comprova'n l'estat, fes ping a un escriptori, tomba el túnel i torna a fer ping.

Mostra la solució
$ isard vpn up
✓ VPN is up (utun4)

$ isard vpn status
VPN: up (utun4)
Config: /Users/david/.config/isard/isard-vpn.conf

$ ping -c 1 10.2.76.37
64 bytes from 10.2.76.37: icmp_seq=0 ttl=63 time=46.902 ms

$ isard vpn down
✓ VPN is down

$ ping -c 1 10.2.76.37
Request timeout for icmp_seq 0

El temps d'espera esgotat és la resposta correcta a l'última ordre, i val la pena veure-ho un cop.

Una adreça d'una xarxa privada no és inaccessible perquè alguna cosa s'hagi espatllat. És inaccessible perquè no ets en aquella xarxa.

ExerciciDues màquines, un túnel

Amb box-1 i box-2 totes dues en marxa i totes dues a Wireguard, instal·la l'nginx a cadascuna i comprova-les totes dues des del teu navegador.

Després canvia la pàgina d'una d'elles perquè les puguis distingir.

Mostra la solució
$ isard list
NAME   STATE    IP          OS
box-1  Started  10.2.76.37  Ubuntu 24.04
box-2  Started  10.2.76.41  Ubuntu 24.04

$ isard ssh box-1 -- 'sudo apt update && sudo apt install -y nginx'
$ isard ssh box-2 -- 'sudo apt update && sudo apt install -y nginx'
$ isard ssh box-2 -- 'echo "<h1>box-2</h1>" | sudo tee /var/www/html/index.html'
<h1>box-2</h1>

Després, http://10.2.76.37 i http://10.2.76.41.

Dues adreces en un sol túnel, i no has hagut de configurar res a cada màquina perquè funcioni.

ExerciciEl que el túnel no porta

Amb el túnel aixecat, mira quina és la teva adreça IP pública.

És la de la Generalitat?

Mostra la solució
$ curl -s https://api.ipify.org
88.11.42.7

És la teva: la que tingui la connexió de casa o del centre.

AllowedIPs = 10.2.0.0/16 vol dir que el túnel porta el trànsit cap a la xarxa d'escriptoris d'Isard i res més. Un túnel dividit no serveix per semblar que ets en un altre lloc, i aquesta no és l'eina per fer-ho.