Herramientas de usuario

Herramientas del sitio


informatica:software:internet:wireguard

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
informatica:software:internet:wireguard [2021/03/26 15:50] – [Cliente] tempwininformatica:software:internet:wireguard [2025/08/03 17:25] (actual) – [WireGuard Easy] tempwin
Línea 1: Línea 1:
-====== Wireguard ======+====== WireGuard ======
  
 Solución para crear túneles VPN. Más segura, moderna y eficiente que otras soluciones de código abierto como OpenVPN. Solución para crear túneles VPN. Más segura, moderna y eficiente que otras soluciones de código abierto como OpenVPN.
Línea 7: Línea 7:
 ===== Servidor ===== ===== Servidor =====
  
-Una forma sencilla de instalarlo es mediante Docker con la [[https://hub.docker.com/r/linuxserver/wireguard|imagen de LinuxServer.io]]. Ejemplo del ''docker-compose.yml'':+==== WireGuard Easy ==== 
 + 
 +La forma más sencilla de instalarlo es mediante Docker con la imagen de  
 + 
 +Una forma sencilla de instalarlo es mediante Docker con la imagen [[https://github.com/wg-easy/wg-easy|WireGuard Easy]] ([[https://github.com/wg-easy/wg-easy|repositorio en GitHub]]). Ejemplo del ''docker-compose.yml'':
  
 <code yaml> <code yaml>
-version: "2.1"+version: "3.8"
 services: services:
-  wireguard+  wg-easy: 
-    image: ghcr.io/linuxserver/wireguard +    environment: 
-    container_name: wireguard+      # ⚠️ Required: 
 +      # Change this to your host's public address 
 +      - WG_HOST=midominio.com 
 + 
 +      # Optional: 
 +      # - PASSWORD_HASH=f$$asdf/.oob$$51234ar123UYUADasd 
 +      # - WG_PORT=51820 
 +      # - WG_DEFAULT_ADDRESS=10.8.0.x 
 +      # - WG_DEFAULT_DNS=1.1.1.1 
 +      # - WG_MTU=1420 
 +      # - WG_ALLOWED_IPS=192.168.15.0/24, 10.0.1.0/24 
 +       
 +    image: ghcr.io/wg-easy/wg-easy 
 +    container_name: wg-easy 
 +    volumes: 
 +      - .:/etc/wireguard 
 +    ports: 
 +      - "51820:51820/udp" 
 +      - "51821:51821/tcp" 
 +    restart: unless-stopped
     cap_add:     cap_add:
       - NET_ADMIN       - NET_ADMIN
       - SYS_MODULE       - SYS_MODULE
 +    sysctls:
 +      - net.ipv4.ip_forward=1
 +      - net.ipv4.conf.all.src_valid_mark=1
 +</code>
 +
 +Esta imagen provee también de un panel de administración web desde el que poder añadir y gestionar lo clientes de la VPN. Accesible desde http://ip.servidor.wireguard:51821
 +
 +<WRAP center round important 60%>
 +Para poder conectarnos a este servidor desde fuera de nuestra red local (Internet) es necesario realizar una redirección de puertos para que este puerto local pueda ser accesible desde el exterior.
 +</WRAP>
 +
 +=== Protección con contraseña ===
 +
 +Básicamente:
 +
 +<code>
 +docker run -it ghcr.io/wg-easy/wg-easy wgpw <TU_CONTRASEÑA>
 +</code>
 +
 +Devolverá algo como:
 +
 +<code>
 +PASSWORD_HASH='$2b$12$coPqCsPtcFO.Ab99xylBNOW4.Iu7OOA2/ZIboHN6/oyxca3MWo7fW' // literalmente sería <TU_CONTRASEÑA>
 +</code>
 +
 +Utilizaremos la variable ''PASSWORD_HASH'' en el Docker Compose sin las comillas simples y sustituyendo cada ''$'' por dos, es decir, ''$$'':
 +
 +<code yaml>
 +version: "3.8"
 +services:
 +  wg-easy:
     environment:     environment:
-      - PUID=1000 +      # ⚠️ Required: 
-      - PGID=1000 +      # Change this to your host's public address 
-      - TZ=Europe/Madrid +      - WG_HOST=raspberrypi.local 
-      - SERVERURL=tempwin.net #optional +      - PASSWORD_HASH=$$2b$$12$$coPqCsPtcFO.Ab99xylBNOW4.Iu7OOA2/ZIboHN6/oyxca3MWo7fW 
-      - SERVERPORT=51820 #optional +       
-      PEERS=1 #optional +    image: weejewel/wg-easy 
-      PEERDNS=auto #optional +    container_name: wg-easy
-      - INTERNAL_SUBNET=10.13.13.0 #optional +
-      - ALLOWEDIPS=0.0.0.0/0 #optional+
     volumes:     volumes:
-      - ./config:/config +      - .:/etc/wireguard
-      - /lib/modules:/lib/modules+
     ports:     ports:
-      - 51820:51820/udp+      - "51820:51820/udp
 +      - "51821:51821/tcp" 
 +    restart: unless-stopped 
 +    cap_add: 
 +      - NET_ADMIN 
 +      - SYS_MODULE
     sysctls:     sysctls:
 +      - net.ipv4.ip_forward=1
       - net.ipv4.conf.all.src_valid_mark=1       - net.ipv4.conf.all.src_valid_mark=1
-    restart: unless-stopped 
 </code> </code>
 +
 +  * [[https://github.com/wg-easy/wg-easy/blob/master/How_to_generate_an_bcrypt_hash.md|wg-password]]
 +==== Manual ====
 +
 +Otra opción es la [[https://hub.docker.com/r/linuxserver/wireguard|imagen de Linuxserver]]
  
   * ''PEERS'': indica el número de clientes para los que Wireguard creará configuraciones. Puede ser numérico o una lista de nombres (myPC, myPhone, myTablet...)   * ''PEERS'': indica el número de clientes para los que Wireguard creará configuraciones. Puede ser numérico o una lista de nombres (myPC, myPhone, myTablet...)
Línea 123: Línea 184:
   * Cliente Android en [[https://play.google.com/store/apps/details?id=com.wireguard.android&hl=es|Google Play]] o [[https://f-droid.org/en/packages/com.wireguard.android/|F-Droid]]   * Cliente Android en [[https://play.google.com/store/apps/details?id=com.wireguard.android&hl=es|Google Play]] o [[https://f-droid.org/en/packages/com.wireguard.android/|F-Droid]]
   * [[https://download.wireguard.com/windows-client/|Cliente Windows]]   * [[https://download.wireguard.com/windows-client/|Cliente Windows]]
 +
 +==== NetworkManager ====
 +
 +**NetworkManager** tiene soporte native para configurar interfaces de WireGuard. Una vez generado en el servidor el fichero de configuración para un cliente, podemos usar ''nmcli'' para crear el perfil de conexión de la siguiente manera:
 +
 +<code>
 +# nmcli connection import type wireguard file /fichero/wireguard/cliente.conf
 +</code>
informatica/software/internet/wireguard.1616770254.txt.gz · Última modificación: por tempwin