Guia PES

Desplegueu el backend a virtech en deu minuts

Escriviu la IP de la màquina i el tipus de servidor: teniu cada ordre amb els ports ja calculats, un servei que sobreviu als reinicis i un setup.sh per descarregar. Tot passa al navegador i no s'envia res.

virtech, el núvol privat de la FIB

Un servei d'autoservei de màquines virtuals per a les assignatures que el demanen, a virtech.fib.upc.edu. Els comptes us els donen els professors.

  • Màquines Ubuntu amb l'usuari alumne, que pot fer servir sudo. Sou responsables de tot el que hi passi.
  • El nombre de màquines i la seva mida els fixa la quota de l'assignatura. No hi ha tallafocs.
  • No hi ha còpies de seguretat i s'esborren al final del quadrimestre. El codi, a GitHub; la configuració, documentada.
  • Si perdeu l'accés a una màquina, no es pot recuperar: s'esborra i se'n crea una altra. Un motiu més per tenir la instal·lació escrita en un script.
Plantilla amb VPN

Només xarxa de la FIB

Accessible des del campus o des de casa amb la VPN de la UPC (UPClink). Però la VPN és personal i només admet una connexió: no podeu tenir alhora l'ordinador i el mòbil, ni donar l'app a ningú de fora.

Recomanada per a apps

Plantilla sense VPN

Té 10 ports oberts a Internet a través de nattech.fib.upc.edu, i SSH des de la UPC o amb VPN. Qualsevol mòbil hi arriba, també els dels stakeholders.

Crear la màquina i posar-hi el servei

  1. VMs → +, trieu la plantilla, poseu-hi un nom i la contrasenya de l'usuari, i Create. Espereu que passi de DEPLOYING a RUNNING.
  2. Obriu la Consola (VNC) i inicieu sessió. El missatge de benvinguda us diu la IP i els ports. El podeu tornar a veure amb /etc/update-motd.d/99-info-nat.
  3. Des d'ara, millor per SSH (des de la UPC o amb VPN): les ordres, a sota.
  4. Arrenqueu el servei escoltant a 0.0.0.0 i a un port del 8080 al 8089. Si escolta a localhost, des de fora no s'hi arriba.
  5. Proveu-lo des de fora amb el port públic: http://nattech.fib.upc.edu:40330.

Les vostres ordres, ja calculades

Les dades es queden en aquest navegador. Canvieu qualsevol camp i les ordres s'actualitzen.

La que surt a virtech o al missatge de benvinguda.

El setup.sh fa la instal·lació, el servei i l'arrencada. Copieu-lo a la màquina amb scp i executeu bash setup.sh.

Com es calculen els ports

Totes les màquines surten a Internet per la mateixa adreça, nattech.fib.upc.edu, i cadascuna té el seu rang de ports segons l'últim número de la IP (172.16.4.XXX):

  • SSH: port 22000 + XXX.
  • Serveis: del port 40000 + XXX·10 en endavant, deu ports seguits que van al 8080-8089 de la màquina.
Com comprovo que la connexió funciona, abans de tenir cap servei?

A la màquina, nc -l -p 8080. Al vostre ordinador, nc nattech.fib.upc.edu 40330 (amb el vostre port) i escriviu qualsevol cosa: ha d'aparèixer a la màquina.

Per què no em respon el ping?

Per com està muntat el NAT, el ping no funciona des de fora de la xarxa de les màquines, ni tan sols amb VPN. Feu servir curl o nc.

Puc entrar per SSH des de casa sense VPN?

No. Per seguretat, l'SSH des de fora de la UPC només funciona amb la VPN. Els 10 ports de serveis sí que estan oberts a tothom.

He oblidat la contrasenya de la màquina.

No es pot recuperar: esborreu la màquina i creeu-ne una de nova. La contrasenya de virtech (no la de la màquina) es canvia al menú d'usuari → Settings → Change password.

L'app mòbil i l'HTTP sense xifrar

nattech serveix HTTP, no HTTPS. Android (des de la versió 9) i iOS bloquegen aquest trànsit per defecte, i la crida falla sense gaires pistes. Permeteu-lo només per a aquest domini.

<!-- res/xml/network_security_config.xml (a Flutter: android/app/src/main/res/xml/) -->
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="false">nattech.fib.upc.edu</domain>
        <domain includeSubdomains="false">10.0.2.2</domain>
    </domain-config>
</network-security-config>

<!-- AndroidManifest.xml -->
<application
    android:networkSecurityConfig="@xml/network_security_config"
    ... >

Les contrasenyes viatgen en clar per HTTP. Per a PES n'hi ha prou amb l'excepció per domini, però no hi poseu contrasenyes reals i expliqueu-ho a la documentació com a limitació coneguda.