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 [2022/02/20 11:14] – [Servidor] tempwininformatica:software:internet:wireguard [2025/11/21 13:15] (actual) 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 =====
  
-La forma más sencilla de instalarlo es mediante Docker con la imagen de +==== WireGuard Easy ====
  
-Una forma sencilla de instalarlo es mediante Docker con la imagen [[https://hub.docker.com/r/weejewel/wg-easy|WireGuard Easy]] ([[https://github.com/WeeJeWel/wg-easy|repositorio en GitHub]]). Ejemplo del ''docker-compose.yml'':+Una forma sencilla de instalarlo es mediante [[..:..:sistemas_operativos:virtualizacion:docker|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> 
 +version: "3.8" 
 +services: 
 +  wg-easy: 
 +    environment: 
 +    #  Optional: 
 +    #  - PORT=51821 
 +    #  - HOST=0.0.0.0 
 +    #  - INSECURE=false # Si nos conectamos a la interfaz web por HTTP tendríamos que poner 'true' 
 +    image: ghcr.io/wg-easy/wg-easy 
 +    container_name: wg-easy 
 +    volumes: 
 +      - .:/etc/wireguard 
 +      - /lib/modules:/lib/modules:ro 
 +    ports: 
 +      - "51820:51820/udp" # Puerto de WireGuard 
 +      - "51821:51821/tcp" # Interfaz de administración web 
 +    restart: unless-stopped 
 +    cap_add: 
 +      - NET_ADMIN 
 +      - 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> <code yaml>
Línea 19: Línea 67:
       # Change this to your host's public address       # Change this to your host's public address
       - WG_HOST=raspberrypi.local       - WG_HOST=raspberrypi.local
- +      PASSWORD_HASH=$$2b$$12$$coPqCsPtcFO.Ab99xylBNOW4.Iu7OOA2/ZIboHN6/oyxca3MWo7fW
-      # Optional: +
-      # PASSWORD=foobar123 +
-      # - 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: weejewel/wg-easy     image: weejewel/wg-easy
Línea 42: Línea 83:
       - net.ipv4.ip_forward=1       - net.ipv4.ip_forward=1
       - net.ipv4.conf.all.src_valid_mark=1       - net.ipv4.conf.all.src_valid_mark=1
- 
 </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 130: Línea 175:
   * 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.1645352053.txt.gz · Última modificación: por tempwin