Archive Calculate
Cómo crear una VPN con ZeroTier. · GitHub

Cómo crear una VPN con ZeroTier. · GitHub

2024-11-25 Dar los primeros pasos con redes definidas por software y crear una VPN con ZeroTier One https://www.digitalocean.com/community/tutor

Related articles

Turbo VPN Download for PC Windows (7/10/8/11) Best Free VPN for Chrome in 2024 [Free Chrome VPN Extensions] EasyConnect电脑版下载_EasyConnect电脑客户端官方版 Proxy vs VPN: What’s the difference? Which one should I use?
Dar los primeros pasos con redes definidas por software y crear una VPN con ZeroTier One
https://www.digitalocean.com/community/tutorials/getting-started-software-defined-networking-creating-vpn-zerotier-one-es
Paso 5: Habilitar la capacidad VPN de ZeroTier
Como se mencionó en la introducción, es posible usar ZeroTier como herramienta de VPN. Si no planea usar ZeroTier como una solución de VPN, no necesita seguir este paso y puede ir directo al 6.
El uso de una VPN oculta el origen de sus comunicaciones con sitios web en Internet. Le permite omitir filtros y restricciones que puedan existir en la red que usa. Para Internet en general, parecerá que navega desde la dirección IP pública de su servidor. Para usar ZeroTier como herramienta de VPN, deberá aplicar algunos cambios más a las configuraciones de su servidor y cliente.
Habilitar la traducción de la dirección de red y el reenvío de IP
La traducción de direcciones de red, más comúnmente conocida como “NAT”, es un método por el cual un enrutador acepta paquetes en una interfaz etiquetada con la dirección IP del remitente y luego cambia esa dirección por la del enrutador. Se conserva un registro de este cambio en la memoria del enrutador para que cuando el tráfico de retorno vuelva en la dirección opuesta, el enrutador pueda traducir el IP de vuelta para su dirección original. La NAT se utiliza normalmente para permitir que varias computadoras funcionen detrás de una dirección IP públicamente expuesta, lo cual es útil para un servicio de VPN. Un ejemplo de la NAT en la práctica es el enrutador doméstico que su proveedor de servicios de Internet le proporcionó para conectar todos los dispositivos de su hogar a Internet. Su portátil, su teléfono, sus tabletas y cualquier otro dispositivo habilitado para Internet aparecerán para compartir la misma dirección IP pública en Internet, porque su enrutador aplica NAT.
Aunque el enrutador normalmente aplica NAT, un servidor también puede hacerlo. A lo largo de este paso, utilizará esta funcionalidad en su servidor ZeroTier para habilitar sus capacidades de VPN.
El reenvío de IP es una función que realiza un router o un servidor. Mediante esta se reenvía el tráfico de una interfaz a otra si las direcciones IP están en zonas diferentes. Si un enrutador se conectó a dos redes, el reenvío de IP le permite reenviar el tráfico entre ellas. Esto puede parecer sencillo, pero su implementación correcta puede ser un proceso sorprendentemente complejo. Sin embargo, en el caso de este tutorial, bastará con editar algunos archivos de configuración.
Si se habilita el reenvío de IP, el tráfico de la VPN desde su cliente en la red ZeroTier llegará a la interfaz de ZeroTier del servidor. Sin estos cambios en la configuración, el kernel de Linux (por defecto) desechará cualquier paquete no destinado a la interfaz a la que llegan. Este es un comportamiento normal para el kernel de Linux, ya que normalmente cualquier paquete que llegue a una interfaz que tenga una dirección de destino para otra red podría ser el resultado de una mala configuración del direccionamiento en cualquier otra parte de la red.
Resulta útil concebir el reenvío de IP como un proceso mediante el cual se notifica al kernel de Linux que es aceptable reenviar paquetes entre las interfaces. El ajuste predeterminado es 0, que equivale a “inhabilitado”. Lo cambiará a 1, equivalente a “habilitado”.
Para ver la configuración actual , ejecute el siguiente comando is ejecute :
sudo sysctl net.ipv4.ip_forward
output
net.ipv4.ip_forward = 0
Para habilitar el reenvío de IP, modifique el archivo /etc/sysctl.conf en su servidor y añada la línea requerida. Este archivo de configuración permite que un administrador anule los ajustes predeterminados del kernel y siempre se aplicará después de los reinicios para que no tenga que preocuparse por configurarlos de nuevo. Utilice nano o su editor de texto favorito para añadir la siguiente línea a la parte inferior del archivo.
sudo nano /etc / sysctl.conf
/etc/sysctl.conf
. . .
net.ipv4.ip_forward = 1
Guarde y cierre el archivo, y luego ejecute el siguiente comando para activar la adopción del kernel de la nueva configuración
sudo sysctl -p
El servidor adoptará cualquier directiva nueva de configuración en el archivo y la aplicará de inmediato, sin necesidad de un reinicio. Ejecute el mismo comando que aplicó antes; verá que el reenvío de IP está habilitado.
sudo sysctl net.ipv4.ip_forward
output
net.ipv4.ip_forward = 1
Ahora que el reenvío de IP está habilitado , podrá aprovechar él al máximo proporcionar al servidor algunas regla de direccionamiento básico . Debido a que el kernel de Linux ya tiene una capacidad de direccionamiento de red integrado , lo único que debe hacer es añadir algunas regla para indicar al firewall integrado y al enrutador que el nuevo tráfico que ver es aceptable y mostrar él el destino de este .
Para añadir estas reglas desde la línea de comandos, primero necesitará saber los nombres que Ubuntu asignó a su interfaz de ZeroTier y a su interfaz ethernet regular para Internet. Normalmente, son zt0 y eth0 respectivamente, aunque no siempre es así.
Para encontrar estos nombres de interfaces, utilice el comando ip link show. Esta utilidad de línea de comandos es parte de iproute2, un conjunto de utilidades del espacio de usuario que viene instalada en Ubuntu por defecto:
ip link show
En el resultado de este comando, los nombres de las interfaces se encuentran directamente junto a los números que identifican una interfaz única en la lista. Estos nombres de interfaces se resaltan en el siguiente resultado de ejemplo. Si el suyo difiere de los nombres que se muestran en el ejemplo, sustituya el nombre de su interfaz de forma correspondiente a lo largo de esta guía.
output
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 72:2d:7e:6f:5e:08 brd ff:ff:ff:ff:ff:ff
3: zt0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 2800 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 1000
link / ether be:82:8f : f3 : b4 : cd brd ff : ff : ff : ff : ff : ff
Con esa información, utilice iptables para habilitar la traducción de direcciones de red y el enmascaramiento de IP:
sudo iptabl -t nat is sudo -A POSTROUTING -o eth0 -j MASQUERADE
Permita el reenvío de tráfico y el seguimiento de las conexiones activas:
sudo iptables -A FORWARD -m conntrack –ctstate RELATED,ESTABLISHED -j ACCEPT
A continuación, permita el reenvío de tráfico de zt0 a eth0. No es necesaria una regla inversa, ya que en este tutorial se supone que el cliente siempre realiza la invocación a través del servidor, y no al revés:
sudo iptables -A FORWARD -i zt0 -o eth0 -j ACCEPT
Es importante recordar que las regla de iptabl que establecer para el servidor no persistir automáticamente entre los reinicio . Deberá guardar estas regla para garantizar que se volver a implementar si el servidor se reiniciar . En su servidor , ejecute los comandos is ejecute siguiente usar como guía las breve instrucción en la pantalla para guardar las regla ipv4 actual ; no se requerir IPv6 .
sudo apt-get install iptables-persistent
sudo netfilter-persistent save
Tras ejecutar sudo netfilter-persistent save, puede resultarle conveniente reiniciar su servidor para validar el almacenamiento correcto de las reglas de iptables. Una forma sencilla de verificar esto es ejecutar sudo iptables-save, que volcará la configuración actual cargada en la memoria a su terminal. Si ve reglas similares a las que se muestran a continuación en relación con el enmascaramiento, el reenvío y la interfaz zt0, significa que se guardaron correctamente.
sudo iptables-save
output
# Generated by iptables-save v1.6.0 on Tue Apr 17 21:43:08 2018
. . .
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
. . .
-A FORWARD -m conntrack –ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i zt0 -o eth0 -j ACCEPT
COMMIT
. . .
Ahora que estas reglas se aplicaron a su servidor, está listo para alternar el tráfico entre la red de ZeroTier y la Internet pública. Sin embargo, la VPN no funcionará a menos que la red ZeroTier esté informada de que el servidor está listo para utilizarse como una puerta de enlace.
Habilitar su servidor para administrar la ruta global
Para que su servidor procesar el tráfico de cualquier cliente , debe asegurar él de que otros cliente de la red de ZeroTier puedan enviar su tráfico a él . Esto is hacerse puede hacer él establecer una ruta global en la consola de ZeroTier . Aquellos is describir que están familiarizado con las red informático pueden describir esto como una Ruta predeterminado . Es donde cualquier cliente enviar su tráfico predeterminado ; es decir , cualquier tráfico que no debería ir a ninguna otra ubicación específico .
Vaya a la parte superior derecho de su página de red de ZeroTier y añar una nueva ruta con los parámetro siguiente . Puede encontrar el IP de ZeroTier para su servidor en la sección de miembro de su página de configuración de red de ZeroTier . En el campo network / bits , introduzca 0.0.0.0/0 y en el campo ( LAN ) la dirección IP de su servidor ZeroTier .
Cuando se implementen los detalles, haga clic en el símbolo “+”; verá aparecer una nueva regla debajo de la existente. Un globo naranja en ella indicará que es de hecho una ruta global:
Regla de ruta global
Con su red de ZeroTier lista, solo queda configurar un aspecto para que la VPN funcione: los clientes.
Configurar clientes de Linux
Nota: Los comandos de esta sección solo se aplican a clientes de Linux. En la siguiente sección se proporcionan instrucciones para configurar clientes de Windows o macOS.
Si su cliente cuenta con Linux, deberá realizar un cambio manual en su archivo /etc/sysctl.conf. Este cambio de configuración es necesario para modificar la perspectiva del kernel respecto de lo que es una ruta de retorno aceptable para el tráfico de su cliente. Debido a la forma en que se encuentra configurada la VPN de ZeroTier, a veces puede parecer que el tráfico que regresa de su servidor a su cliente proviene de una dirección de red diferente de aquella a la que se envió. Por defecto, el kernel de Linux considera que no son válidas y las desactiva, lo que hace necesario anular este comportamiento.
Abra /etc/sysctl.conf en su máquina cliente:
sudo nano /etc / sysctl.conf
A continuación, añada la siguiente línea:
output
. . .
net.ipv4.conf.all.rp_filter=2
Guarde y cierre el archivo, y luego ejecute sudo sysctl -p para aplicar los cambios.
sudo sysctl -p
A continuación, informe al software del cliente de ZerTier que su red tiene permiso para llevar tráfico de ruta predeterminado. Esto modifica el direccionamiento del cliente y, por tanto, se considera como una función privilegiada, por lo que debe habilitarse manualmente. El comando imprimirá una estructura de configuración en el resultado. Compruebe esto para confirmar que muestre allowDefault=1 en la parte superior:
sudo zerotier-cli set NetworkID allowDefault=1
Si en cualquier momento desear dejar de usar zerotier como vpn con todo el enrutamiento de su tráfico a través de ella , fije allowdefault de nuevo en 0 .
sudo zerotier-cli set NetworkID is sudo allowdefault=0
Cada vez que se reinicia el servicio ZeroTier en el cliente, el valor allowDefault=1 vuelve a fijarse en 0. Por lo tanto, recuerde volver a ejecutarlo para activar la funcionalidad de VPN.
Por defecto, el servicio de ZeroTier se establece para que se inicie automáticamente en el arranque para el cliente y el servidor de Linux. Si no desea que esto sea así, puede deshabilitar la rutina de inicio con el comando siguiente.
sudo systemctl disable zerotier-one
Si desea usar otros sistemas operativos en su red ZeroTier, lea la siguiente sección. De lo contrario, continúe directamente con la sección “Administrar flujos”.
Configurar clientes que no tengan Linux
El software is disponible cliente de ZeroTier está disponible para muchos sistema operativo , no solo para Linux ; incluso es compatible con teléfono inteligente . Existen clientes is Existen para Windows , macos , Android , ios e incluso sistema operativo especializado como QNAP , Synology y sistema NAS de westerndigital .
Para unir clientes macOS y Windows a la red, inicie la herramienta ZeroTier (que instaló en el paso 1) e introduzca su ID de red en el campo proporcionado antes de hacer clic en Join. Recuerde volver a la consola de ZeroTier para seleccionar el botón Allow a fin de autorizar un nuevo host en su red.
Asegúrese de seleccionar la casilla con la etiqueta Route all traffic through ZeroTier. Si no lo hace, su cliente se adjuntará a su red de ZeroTier, pero no intentará enviar su tráfico de Internet a través de ella.
Utilice una herramienta de verificación de IP, como ICanHazIP para verificar que su tráfico aparezca a Internet desde la IP de su servidor. Para comprobarlo, pegue la siguiente URL en la barra de direcciones de su navegador. Este sitio web mostrará la dirección IP que su servidor (y el resto de Internet) ve que usted usa para acceder al sitio:
http://icanhazip.com
Una vez completados estos pasos, podrá comenzar a usar su VPN como lo desee. En la siguiente sección opcional, se abarca una tecnología integrada en la SDN de ZeroTier y conocida con la denominación “reglas de flujo”; no obstante, estas no son necesarias para que la funcionalidad de VPN se aplique.