<div style="width: 45%; margin-left: auto;"> ![image](https://hackmd.io/_uploads/By3ai4Bolx.png) </div> <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img alt="Llicència de Creative Commons" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a><br />Aquesta obra està subjecta a una llicència de <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Reconeixement-CompartirIgual 4.0 Internacional de Creative Commons</a> # Pràctica intro a Wireguard Com ja hem comentat a classe, Wireguard és un dels programaris de VPN més populars en l'actualitat juntament amb OpenVPN. ## Infraestructura ![imagen](https://hackmd.io/_uploads/SkmyJAR-bl.png) Per a realitzar correctament aquesta pràctica necessitareu 2 màquines virtuals a Isard (Box1 i Box2) amb la següent parametrització: - __SO__: Ubuntu server 24.04 LTS - __Hardware__: - 2 vCPUS - 4 GB de memòria RAM - Xarxes: Default + Personal1 ## Treball a classe :eyes: :fire: El primer cop que s'arrenquin les màquines heu de configurar el nom de cada màquina de manera que amb les captures de pantalla de les consoles es pugui saber a quina màquina som i el nom de l'alumne que realitza l'activitat. Per això haureu d'executar la següent instrucció: ```bash= hostnamectl set-hostname 'nom-host' ``` on el nom-host tindrà el format: * o boxX-nom-cognom ****no poseu guions baixos Per exemple: ```hostnamectl set-hostname 'box1-xavi-quesada'``` Continuareu configurant amb [Netplan](https://hackmd.io/@JdaXaviQ/H1vZQT0-bx) la interfície de xarxa de Personal1. Us proposo els següents fitxers de configuració: ```yaml= # Configuració Box1 network: ethernets: enp1s0: dhcp4: true enp2s0: addresses: - 10.0.0.3/24 version: 2 ``` ```yaml= # Configuració Box2 network: ethernets: enp1s0: dhcp4: true enp2s0: addresses: - 10.0.0.4/24 version: 2 ``` 1. (1 punt) Comproveu que podeu realitzar ping entre ambdues màquines. Adjunteu captura de pantalla. 2. (1 punt) Adjunteu captures de tots els passos. - Instaleu el paquet wireguard a la màquina Box1. - Aixequeu una nova interfície temporal de tipus Wireguard: ```bash= sudo ip link add dev wg0 type wireguard ``` - Modifiqueu el fitxer de netplan d'aquesta màquina per a donar una adreça a la nova interfície. Noteu que les VPN funcionen amb espais d'adreces privades, la única condició és que sigui un espai d'adreces independent de la resta d'interfícies. A continuació teniu un exemple de configuració: ```yaml= # Configuració Box1 network: ethernets: enp1s0: dhcp4: true enp2s0: addresses: - 10.0.0.3/24 wg0: addresses: - 10.0.1.101/24 version: 2 ``` - Adjunteu captura provant que la interfície està activada realitzant un ping a aquesta interfície. 3. (1 punt) Adjunteu captura de cada pas. - Instal·leu el paquet apache2. - Reemplaceu el fitxer /var/www/html/index.html pel següent contingut: ```html= <!DOCTYPE html> <html> <head> <title>Pàgina d'ASIX2</title> </head> <body> <h1> Pàgina d'ASIX2 </h1> </body> </html> ``` 4. (1 punt) Creació de claus. Wireguard utlitza l'algorisme [Curve25519](https://ca.wikipedia.org/wiki/Curve25519) de criptografia asimètrica. - Utilitzeu la comanda wg per a crear una nova clau privada. ```bash= wg genkey > key sudo wg set wg0 private-key key sudo wg show ``` - No necessitem crear una clau pública perquè amb wireguard la podem crear a partir de la clau privada: ```bash= wg pubkey < key ``` 5. (3 punt) Connexió entre Peers. Una interfície wireguard fa servir UDP. Una interfície wireguard només respon a un paquet UDP si el remitent és un node de confiança. Un node és de confiança si has registrat la seva clau pública com a un peer. - Instal·la wireguard i configura wg0 a la màquina box2 amb l'adreça 10.0.1.102/24. - Comprova que desde la mateixa box2 pots fer ping a la interfície wg0 - La id d'un node és la seva clau pública. Executa la comanda ```sudo wg show wg0``` a la box2 per a consultar la seva id i el port on està escoltant. - Amb la clau pública de box2 podem anar a box1 i afegir-ne un nou peer de confiança: ```bash= sudo wg set wg0 peer la_pubkey_de_box2 allowed-ips 10.10.0.102/32 endpoint 10.0.0.4:el_port_de_box2 ``` - Executeu la comanda ```sudo wg show wg0``` per a comprovar que estem acceptant el peer box2. - Repetiu els passos anteriors però afengint en aquesta ocasió el peer box1 a la màquina box2. - Comproveu que hi ha connexió per la interfície de VPN ![imagen](https://hackmd.io/_uploads/HypVKJJz-x.png) 6. (3 punts) Integració de la configuració amb Netplan. - Afegiu la següent configuració al fitxer Netplan d'ambdues màquines per a que es configuri automìcament el sistema: ```yaml= network: ethernets: enp1s0: dhcp4: true enp2s0: addresses: - 10.0.0.3/24 tunnels: wg0: mode: wireguard port: 51820 key: UMjI9WbobURkCDh2RT8SRM5osFI7siiR/sPOuuTIDns= addresses: - 172.16.0.1/24 peers: - allowed-ips: [172.16.0.0/24] endpoint: 10.86.126.56:51820 keys: public: AIm+QeCoC23zInKASmhu6z/3iaT0R2IKraB7WwYB5ms= ``` On port és el port UDP d'escolta, key és la clau privada de la màquina que estem configurant i keys:->public és la clau pública del peer que volem aceptar. - Lliureu captures de pantalla demostrant el funcionament i la configuració netplan.