Tutoriales y Manuales
Entradas Mensuales
-
►
2024
(Total:
1019
)
- ► septiembre (Total: 50 )
-
►
2023
(Total:
710
)
- ► septiembre (Total: 65 )
-
►
2022
(Total:
967
)
- ► septiembre (Total: 72 )
-
▼
2021
(Total:
730
)
-
▼
diciembre
(Total:
103
)
- Tecnología de Intel permite actualizar la BIOS de ...
- La Universidad de Kioto en Japón pierde 77TB de da...
- Redline Stealer es un malware que roba las contras...
- ¿Qué es un dropper? (Malware)
- Fundador de Signal asegura que Telegram es incluso...
- Diferencias entre el cifrado BitLocker y EFS en Wi...
- Mejores programas para reparar, recuperar y ver in...
- TWRP Recovery para teléfonos Android
- Herramientas para realizar ataques Man‑in‑the‑Midd...
- Vulnerabilidad en Azure App Service expone reposit...
- Las 20 mejores herramientas de Hacking de 2021
- Procesadores Intel 12th Alder Lake para el chipset...
- Alertan de una importante Campaña Phishing vía SMS...
- Extensiones Visual Studio Code para programar en ...
- ¿Qué es una APU (CPU + GPU) y un SoC?
- Crean un algoritmo capaz de adivinar el 41% de las...
- DuckDuckGo, la alternativa al buscador Google basa...
- Instalar MacOS Big Sur en una máquina Virtual con ...
- Editores de imágenes de vídeo gratuitos y de códig...
- Desinstalar todas las aplicaciones no deseadas que...
- Reparar tarjeta memoria SD dañada o estropeada
- Instalar aplicaciones Android en Windows 11: WSATo...
- Hackean servidores HP con CPUs AMD EPYC para minar...
- Logrotate: administra los registros (logs) de tu s...
- Las mejores shells para GNU/Linux
- Glosario términos en Linux: vocabulario básico
- Windows 10 versión 21H2 añade protecciones mejorad...
- Instalar varios sistemas operativos autoarrancable...
- Vulnerabilidad test de antígenos permite falsifica...
- Actualización de seguridad importante servidor web...
- Graves vulnerabilidades plugin SEO instalado en má...
- Vulnerabilidades Directorio Activo permiten hackea...
- Ministerio de Defensa de Bélgica es el primer país...
- La memoria DDR5 es apenas un 3% más rápida que la ...
- Actualizaciones de Windows 11 solucionan problemas...
- Disponible distro Hacking WiFi Wifislax de origen ...
- DuckDuckGo prepara navegador web que protegerá la ...
- Amazon patenta una red de cámaras que reconcen a p...
- Los mitos más comunes en ciberseguridad
- Hospital de Asturias (España) afectado por un ataq...
- Cable USB llamado BusKill permite borrar automátic...
- El hackeo con Pegasus para iPhone es uno de los at...
- Resumen de todas las vulnerabilidades de Log4j
- Instalación LineageOS en teléfonos Android
- Gestores de Contraseñas para Android
- Guía SysAdmin para SELinux
- Los mejores gestores de contraseñas gratuitos
- Configurar servidor DLNA para reproducir música y ...
- Instalar Kali Linux en tu teléfono móvil con NetHu...
- pfetch, screenfetch o neofetch : mostrar informaci...
- La estafa del supuesto familiar con la ‘maleta ret...
- Microsoft y Dell prepararan portátiles más reparables
- Contenedores en Firefox para mejorar privacidad al...
- Windows Terminal será la línea de comandos por def...
- Identificada una segunda vulnerabilidad en Log4j q...
- Protocolo WebDav permite conectar unidad de red re...
- Apple publica Tracker Detect para evitar que los u...
- Volvo Cars informa una brecha de seguridad
- Consejos de Seguridad para servidores Linux
- Vulnerabilidad en millones chips de WiFi y Bluetoo...
- Ataque de ransomware Lapsus al Ministerio de Salud...
- Configurar una VPN con Wireguard
- Distribuciones Linux para portátiles antiguos con ...
- Juegos retro para teléfonos móviles Androd e iPhone
- Solucionada vulnerabilidad de seguridad de Western...
- Ladrones de coches están utilizando AirTags de App...
- Cómo activar la autenticación en dos pasos en Goog...
- Detenida en España por estafar al Athletic de Bilb...
- ALPHV BlackCat es el ransomware más sofisticado de...
- Google permitirá ejecutar juegos de Android en Win...
- Google y Microsoft trabajan juntos para mejorar el...
- Vulnerabilidad crítica en Apache Log4j bautizada c...
- Nueva oferta de Microsoft 365 para los usuarios pi...
- Nueva versión de Kali Linux 2021.4 que mejora el s...
- Evitar que tus mails rastreen tus datos personales...
- Cómo configurar la privacidad y seguridad en Signal
- Google demanda a 2 rusos responsables de la botnet...
- Bots se hacen pasar por personal de Twitter para r...
- Importante vulnerabilidad en Grafana: actualizació...
- Descubiertos instaladores KMSPico para activar Win...
- Eltima SDK contiene hasta 27 múltiples vulnerabili...
- Mozilla publica Firefox 95 con mejoras destacadas ...
- Cómo migrar CentOS 8 a Rocky Linux 8, AlmaLinux 8 ...
- Freesync y G-Sync: tecnologías para monitores gami...
- Ansible permite automatizar tareas en distintos se...
- Syncthing es una herramienta gratuita multiplatafo...
- Curiosidades sobre el nuevo CEO de Twitter: 11.000...
- Filtros en Linux: pipes, tuberías: cut, sort, uniq...
- El auge del negocio de los ciberataques de denegac...
- ¿Qué son los (IoC) Indicadores de Compromiso?
- Teléfonos iPhone de empleados del Departamento de ...
- Mejores sistemas de rescate para recuperar fichero...
- Ciberataque denegación de servicio distribuido DDo...
- Hasta 9 routers de marcas muy conocidas acumulan u...
- Plantillas y archivos RTF de phishing contienen ma...
- Nvidia reedita la RTX 2060, ahora con 12 GB de RAM...
- Nueva versión IPFire mejora el rendimiento IPS e i...
- El perro robótico de Xiaomi usa Ubuntu de sistema ...
- WiFi 7 tendrá doble de velocidad (hasta 46 Gbps) y...
- Vulnerabilidad en impresoras HP tras 8 años afecta...
- ► septiembre (Total: 56 )
-
▼
diciembre
(Total:
103
)
-
►
2020
(Total:
212
)
- ► septiembre (Total: 21 )
-
►
2019
(Total:
102
)
- ► septiembre (Total: 14 )
-
►
2017
(Total:
231
)
- ► septiembre (Total: 16 )
-
►
2016
(Total:
266
)
- ► septiembre (Total: 38 )
-
►
2015
(Total:
445
)
- ► septiembre (Total: 47 )
-
►
2014
(Total:
185
)
- ► septiembre (Total: 18 )
-
►
2013
(Total:
100
)
- ► septiembre (Total: 3 )
-
►
2011
(Total:
7
)
- ► septiembre (Total: 1 )
Blogroll
Etiquetas
Entradas populares
-
Después de ver qué es una vCPU y la diferencia entre núcleos (cores) e hilos en los procesadores, pasamos a explicar toda la nomenclatura d...
-
En el panorama en constante evolución de la seguridad de redes, OpnSense se ha convertido en una formidable solución de firewall. Nacido de...
-
Pese a que Gemini ofrece multitudes de opciones, recientemente, se ha dado a conocer una situación fuera de lo común. Hace unos días, un es...
Configurar una VPN con Wireguard
El teletrabajo y las necesidades de conexión remota aumentan. Veremos como configurar una VPN con Wireguard. Explicaremos brevemente qué es una VPN. Configuraremos Wireguard sin necesidad de usar scripts como pivpn. Vamos a configurar Wireguard en Windows, Linux, macOS, Android e IOS. Ya seas particular, profesional de la ciberseguridad o una empresa, este tutorial puede ser de tu interés. Intentaremos explicar como implementar el servicio con el menor número de detalles técnicos posible. Os adelantamos que va a ser más rápido y sencillo que por ejemplo con OpenVPN. Por último añadimos conclusiones además de la solución a problemas habituales. Actualmente es una guía para configurar el Servidor y los clientes con cualquier sistema operativo.
¿Qué es una VPN?
Una red privada virtual (RPV) (en inglés, Virtual Private Network, VPN) es una tecnología de red de ordenadores que permite una extensión segura de la red de área local (LAN) sobre una red pública o no controlada como Internet. Permite que el ordenador en la red envíe y reciba datos sobre redes compartidas o públicas como si fuera una red privada, con toda la funcionalidad, seguridad y políticas de gestión de una red privada. Esto se realiza estableciendo una conexión virtual punto a punto mediante el uso de conexiones dedicadas, cifrado o la combinación de ambos métodos.
¿Para que sirve una VPN?
Ejemplos comunes son la posibilidad de conectar dos o más sucursales de una empresa utilizando como vínculo Internet, permitir a los miembros del equipo de soporte técnico la conexión desde su casa al centro de cómputo o bien que un usuario pueda acceder a su equipo doméstico desde un sitio remoto, como por ejemplo un hotel. Todo ello utilizando la infraestructura de Internet.
La conexión VPN a través de Internet es técnicamente una unión wide area network (WAN) entre los sitios, pero al usuario le parece como si fuera un enlace privado: de allí la designación virtual private network.
¿Qué es Wireguard?
WireGuard es una VPN extremadamente simple pero rápida y moderna que utiliza criptografía de última generación. Su objetivo es ser más rápida, más simple, más ágil y más útil que IPsec. Tiene la intención de tener un rendimiento considerablemente mayor que OpenVPN. WireGuard está diseñado como una VPN de propósito general para ejecutarse en interfaces integradas y supercomputadoras por igual, aptas para muchas circunstancias diferentes. Lanzado inicialmente para el kernel de Linux, ahora es multiplataforma (Windows, macOS, BSD, iOS, Android) y se puede implementar ampliamente. Actualmente se encuentra en un gran desarrollo, pero ya podría considerarse la solución VPN más segura, fácil de usar y más simple de la industria.
Su configuración, si la comparamos con otros productos similares, es realmente simple, similar a lo que sería configurar SSH. La conexión se establece mediante un intercambio de llaves públicas entre el servidor y el cliente. Solo un cliente que tenga su clave pública en el archivo de configuración del servidor puede conectarse.
WireGuard se encarga de configurar las interfaces de red, como por ejemplo wg0 o wg1, que se comportan de manera similar a la interfaz más típica eth0. Esto hace posible configurar y administrar interfaces WireGuard utilizando herramientas comunes como ifconfig
e ip
.
Configurar WireGuard con GUI
Características
- Todo en uno: WireGuard + Web UI
- Fácil instalación, uso sencillo
- Enumere, cree, elimine, habilite y deshabilite clientes
- Muestra el código QR de un cliente
- Descarga el archivo de configuración de un cliente
- Estadísticas para qué clientes están conectados
- Soporte Gravatar
Descargar WireGuard GUI
Configurar una VPN con Wireguard
Partimos de la base que tenéis un servidor (ya sea VPS, Raspberry Pi, etc) en el que vamos a realizar la instalación de Wireguard. Este servidor contará con una distribución basada en Debian y es el que vamos a utilizar para configurar una VPN con Wireguard.
Desde el kernel 5.4 Wireguard se encuentra en los repositorios de Linux en su versión estable.
Concretamente en la versión 20.04 de Ubuntu ya disponemos de este
kernel, de todas maneras la podemos instalar en su versión inestable en
casi cualquier distribución basada en Debian.
Instalando Wireguard en el servidor
apt install wireguard
A continuación, habilitamos los repositorios EPEL y PowerTools:
sudo dnf install epel-release
sudo dnf install dnf-plugins-core
sudo dnf config-manager --set-enabled powertools
Para a continuación habilitar el repositorio de Wireguard:
sudo dnf copr enable jdoss/wireguard
sudo dnf install wireguard-dkms wireguard-tools
Configurando la interfaz del servidor
Ya con Wireguard instalado procederemos a preparar la interfaz. Para ello utilizando el comando cd nos moveremos a la siguiente ruta:
cd /etc/wireguard/
umask 077
wg genkey | tee servidor_private.key | wg pubkey > servidor_public.key
chmod 600 -R ../wireguard/
touch wg0.conf
cat servidor_private.key >> wg0.conf
Editando el archivo wg0.conf
nano wg0.conf
[Interface]Address = 10.0.0.1PrivateKey = Aquí va vuestra clave privadaListenPort = 51820PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADEPostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
Explicación paso a paso del apartado [Interface]
- “Address” es la dirección en la VPN, le podéis dar la que queráis siempre y cuando no esté ocupada. Esta dirección es la que crea la red VPN, os sirve la que yo tengo perfectamente. Cada cliente deberá tener una distinta es decir, si el servidor es la 10.0.0.1 el cliente será la 10.0.0.2.
- “PrivateKey” es vuestra clave privada, recordar que estaba copiada y pegada previamente.
- “ListenPort” es el puerto donde va a trabajar Wireguard. Importante, por defecto 51820 UDP es el puerto en el que trabaja esta VPN, pero puede ser cualquier otro. Deberéis abrirlo en vuestro módem para que el servicio pueda funcionar.
- “PostUp y PostDown” son las reglas del firewall. Sólo las necesitáis si tenéis reglas Iptables (lo lógico es que sí). Podéis copiar y pegar éstas pero deberéis conocer la interfaz, es decir la mía es eth0 pero la vuestra puede tener otro nombre. Lo podéis consultar de manera sencilla desde vuestra terminal con el comando ifconfig.
Con nuestro archivo ya editado con nano, presionamos Ctrl O para guardarlo y Ctrl X para cerrarlo. Vamos a activar Wireguard para que inicie con el sistema:
Ctrl X para cerrarlo. Vamos a activar Wireguard para que inicie con el sistema:
systemctl enable wg-quick@wg0
Arrancamos el servicio, comprobamos que esté activo y que se ha creado la interfaz (primero una orden y luego la otra):
systemctl start wg-quick@wg0
systemctl status wg-quick@wg0
Apunte importante sobre Forwarding.
Cuidado con esto porque nos puede robar tiempo. Necesitamos tener habilitado el forwarding:
sysctl -w net.ipv4.ip_forward=1
En caso de utilizar el gestor de cortafuegos UFW habilitamos los puertos de esta manera:
ufw allow 22/tcp
ufw allow 51820/udp
ufw enable
Este apunte es importante para poder tener salida a internet. Si no fuera así una vez montado el servicio, conviene revisar la ruta /etc/sysctl.d y el archivo que se llama 99-sysctl.conf. Lo abriremos con nano y buscaremos las siguientes líneas:
# Uncomment the next line to enable packet forwarding for IPv4
#net.ipv4.ip_forward=1
Observar que en inglés pone “Elimine el comentario de la siguiente línea para habilitar el reenvío de paquetes para IPv4“. Simplemente borrarremos el # de la línea que pone net.ipv4.ip_forward=1 guardamos con Ctrl O y salimos. Ya deberíamos tener salida a internet.
Configurar cliente Wireguard en Windows
Wireguard es multiplataforma. Funciona en Linux, Windows, MacOS, Android e IOS. Os voy a enseñar como configurar todos los dispositivos como clientes. Veamos como configuramos un cliente Wireguard en Windows 10.
Desde nuestro PC Windows, nos vamos a la web de Wireguard y descargamos el programa para Windows. Lo instalamos y le damos permisos de administrador. A continuación en Add Tunnel presionamos sobre Add empty tunnel y rellenamos los datos tal y como salen en la imágenes. Las claves pública y privada ya nos las autogenera el propio programa.
- Hacemos click e “Add Tunnel” y seguidamente “Add empty tunnel”
- Rellenaremos los datos como en la imagen. Importante las claves pública y privada las autogenera el programa.
Configurando el servidor para añadir el cliente Windows.
Nuevamente dentro de nuestro servidor Linux y en la ruta /etc/wireguard/ vamos a modificar el archivo wg0.conf. Lo haremos así:
nano wg0.conf
Añadimos debajo de Interface el apartado Peer y queda de esta manera:
[Interface]
Address = 10.0.0.1
PrivateKey = Aquí va vuestra clave privada
ListenPort = 51820
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
Publickey = LA CLAVE PÚBLICA QUE GENERÓ TU CLIENTE WINDOWS
AllowedIPs =10.0.0.2/32
PersistentKeepAlive = 25
Hemos añadido el peer (nuestro cliente) con su clave pública generada previamente en el cliente windows (recordar que nos la generaba automáticamente cuando añadiamos el túnel). Tenemos también la IP 10.0.0.2 que corresponde con el cliente. Por último la línea PersistentKeepAlive = 25, es para que envíe un paquete cada 25 segundos, que es lo que recomiendan desde Wireguard.
Reiniciamos el servicio y comprobamos que se ha creado el cliente:
systemctl restart wg-quick@wg0
Una vez en el cliente Windows, le daremos al botón “Activate” y ya estaría listo.
Configurar una VPN con Wireguard en IOS y Android
Wireguard puede tener como clientes smartphones y teléfonos móviles que tengan como sistema operativo IOS y Android. Os mostramos como configurarlos.
Desde la consola de comandos de nuestro servidor, una vez escalado privilegios como usuario root nos dirijimos a la ruta /etc/wireguard. Recordar que para eso utilizamos la orden cd /etc/wireguard.
Vamos a crear un directorio para los clientes IOS y Android. Nos moveremos dentro de esa carpeta:
mkdir clientes_moviles
cd clientes_moviles
Para el tutorial en nuestro caso vamos a utilizar un sólo dispositivo móvil, así que no voy a generar más carpetas. Vosotros si queréis ser ordenados podéis generar una carpeta para cada teléfono móvil que queráis utilizar como cliente.
Generamos las claves pública y privada del cliente móvil:
wg genkey | tee clientemovil_private.key | wg pubkey > clientemovil_public.key
Creamos un fichero de configuración para el cliente móvil:
touch clientemovil.conf
Enviamos la clave privada de nuestro cliente móvil al archivo de configuración y además la clave pública de nuestro servidor con los siguientes comandos:
cat clientemovil_private.key > clientemovil.conf
cat ../../servidor_public.key >> clientemovil.conf
Ahora con nano clientemovil.conf vamos a editar el archivo de configuración. Recordar que la primera línea que tenemos dentro del archivo es la clave privada del cliente movil. La segunda línea es la clave pública de nuestro servidor. Con los anteriores comandos los hemos copiado y por eso están dentro. Ahora dejamos el archivo de esta manera:
[Interface]
Address = 10.0.0.4
PrivateKey = LA CLAVE PRIVADA DE TU CLIENTE MÓVIL
ListenPort = 51820
[Peer]
Publickey = LA CLAVE PÚBLICA DE TU SERVIDOR
Endpoint = TU IP PÚBLICA:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepAlive = 25
Configurar una VPN con Wireguard, añadiendo el cliente móvil al servidor.
Ahora vamos a por el archivo de configuración del servidor y lo que vamos a hacer es copiar dentro la clave pública del cliente móvil. Tener cuidado de poner bien este comando, que podéis borrar el contenido del archivo de configuración del servidor:
cat clientemovil_publica.key >> /etc/wireguard/wg0.conf
Ahora editamos con nano el archivo de configuración del servidor:
nano /etc/wireguard/wg0.conf
Al final del archivo estará la clave pública de nuestro cliente movil, dejamos el archivo de configuración de esta manera:
[Interface]
Address = 10.0.0.1
PrivateKey = Aquí va vuestra clave privada
ListenPort = 51820
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
PublicKey = LA CLAVE PÚBLICA QUE GENERÓ TU CLIENTE WINDOWS
AllowedIPs = 10.0.0.2/32
PersistentKeepAlive = 25
[Peer]
PublicKey = LA CLAVE PÚBLICA DE TU CLIENTE LINUX
AllowedIPs = 10.0.0.3/32
PersistentKeepAlive = 25
[Peer]
PublicKey = LA CLAVE PÚBLICA DE TU CLIENTE MÓVIL
AllowedIPs = 10.0.0.4/32
PersistentKeepAlive = 25
Reiniciamos Wireguard y comprobamos que el cliente móvil esté permitido:
systemctl restart wg-quick@wg0
Generando código QR con Qrencode.
Qrencode es un programa que nos permite generar un código QR desde la línea de comandos. Lo instalamos de esta forma:
apt install qrencode
Generamos nuestro código QR para escanear con nuestro dispositivo Android o IOS.
qrencode -t ansiutf8 < clientemovil.conf
Wireguard en el Smartphone
Desde App Store en IOS o Play Store en el caso de Android, descargamos la aplicación de Wireguard. En ambos sistemas operativos disponemos de un botón “+”. Pulsamos ese botón volvemos a presionar sobre Escanear desde código QR, o Crear desde código QR dependiendo del S.O.
Le damos un nombre a nuestro túnel y si todo ha ido bien, tenemos listo nuestro cliente móvil IOS o Android con su VPN Wireguard.
https://enclaveinformatico.com/configurar-una-vpn-con-wireguard/
2 comentarios :
grande
muchas gracias por tus explicaciones.
Estoy intentando conectar desde un PC ubuntu a un servidor debian. y no veo la forma de hacer un cliente wireguard linux.
mi idea mas adelante es lanzar copias de seguridad desde el pc Ubuntu al Servidor exterior debian.
mucha gracias.
Francisco
Publicar un comentario
Los comentarios pueden ser revisados en cualquier momento por los moderadores.
Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.
Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.