Cómo construir un servidor Shadowsocks-Rust con Docker

Introducción

En este tutorial, aprenderá cómo crear su propio servidor Shadowsocks en una plataforma Linux usando Docker.

El servidor que creará implementará el cifrado autenticado con cifrado de datos asociados (AEAD) chacha20-ietf-poly1305. Probarás tu servidor con el cliente de interfaz gráfica de usuario (GUI) de Shadowsocks para Windows.

Al final de este tutorial, tendrá un servidor Shadowsocks en funcionamiento y probado.

Requisitos previos

Antes de comenzar este tutorial, necesitará un servidor privado, una Raspberry PI, ordenador viejo o VPS puede valer. No necesita un nombre de dominio para el servidor en este tutorial.

Paso 1: iniciar sesión como raíz

SSH en su servidor. En Linux y macOS, puede usar el comando de terminal sshpara llegar a su servidor. En Windows, puede usar PowerShell o una interfaz gráfica de usuario (GUI) como PuTTY o XSHELL .

Si no ha iniciado sesión como root, conviértase rootde la siguiente manera. Si aún no conoce la contraseña de root, configúrela emitiendo el comando:

sudo passwd root

El sudo comando permite a los usuarios no root ejecutar comandos de root. El passwdcomando le permite establecer la contraseña para usted o para otro usuario, que en este caso es el usuario llamado root.

Se le pedirá que introduzca su propia contraseña:

[sudo] password for amy:

Ingrese su propia contraseña (no root).

A continuación, se le pedirá que introduzca una nueva contraseña para el usuario root:

New password:

Elija e ingrese la nueva contraseña para root.

Se le pedirá que confirme la nueva contraseña volviendo a escribirla:

Retype new password:

Introduzca la misma contraseña nueva para root.

Si todo está bien, recibirá un mensaje de respuesta:

passwd: password updated successfully

Ahora que conoce la contraseña de root, conviértase en root:

su -

El sucomando (abreviatura de cambiar de usuario) le permite cambiar a otra identificación de usuario, para que pueda ejecutar comandos con los privilegios de ese usuario. Dado que no se nombra ningún usuario específico, cambiará de forma predeterminada al usuario root. El guión ( -) significa crear un nuevo entorno de inicio de sesión para el nuevo usuario, que será completamente independiente de su entorno de inicio de sesión existente.

Se le pedirá que ingrese la contraseña rootque estableció hace unos momentos:

Password:

Ingrese la contraseña raíz.

Notará que su símbolo del sistema cambia de un signo de dólar a un signo de almohadilla:

#

Este es un recordatorio de que ha iniciado sesión como root. Ahora que lo está root, no necesita anteponer comandos privilegiados con sudo.

Actualice sus listas de paquetes y actualice todos sus paquetes a la última versión:

apt update && apt upgrade -y

Verá mensajes de actualización de paquetes en su terminal.

Paso 2: generar un número de puerto aleatorio

Su servidor Shadowsocks utilizará un puerto aleatorio para su entrada. Genere un número aleatorio entre 1024 y 65535 para su número de puerto de Shadowsocks.

shuf -i 1024-65535 -n 1

El shufcomando genera permutaciones aleatorias. -iespecifica un rango de entrada y -nes el número de líneas de salida requeridas. Usaremos el siguiente ejemplo en el resto de este tutorial:

25117

Tome nota de este número, ya que lo necesitará tanto en el servidor como en el cliente.

Paso 3: Activar el cortafuegos (opcional)

Le recomendamos que proteja su servidor y especialmente el puerto 22(el puerto SSH) instalando un firewall. En este tutorial, instalará y configurará el cortafuegos sin complicaciones ( ufw).

En muchos sistemas Ubuntu, ufwya está instalado. Compruebe que ufwestá instalado en su sistema:

apt list ufw

Deberías ver un mensaje:

ufw/focal,now 0.36-6 all [installed]

Si no ve el mensaje que indica que ufwya está instalado, instale el paquete de software ahora:

apt install ufw

Ahora configurará el firewall. Si puede garantizar que siempre accederá a SSH a su servidor desde una única dirección IP, entonces limite el acceso SSH a esa única dirección. Por ejemplo, si su dirección IP es 51.51.51.51, emita el comando:

ufw allow from 51.51.51.51/32 to any port 22 proto tcp

Cuando ejecute ese comando, verá un mensaje:

Rules updated

Si no es posible limitar el acceso a una sola dirección IP, pero puede garantizar que siempre se conectará desde un rango de direcciones IP conocido, limite el acceso SSH solo a ese rango. Por ejemplo, si está en una oficina que siempre usa el rango de direcciones IP 51.51.51.0/24, emita el comando:

ufw allow from 51.51.51.0/24 to any port 22 proto tcp

Si no es posible limitar el acceso a un rango de direcciones IP, deberá abrir el puerto SSH para acceder desde todo el mundo:

ufw allow ssh

En cualquier caso, le recomendamos que proteja aún más el puerto 22utilizando la autenticación de clave SSH en lugar de la autenticación de contraseña. La generación de pares de claves SSH y la carga en su servidor están fuera del alcance de este tutorial. Puedes encontrar tutoriales sobre este tema en la web.

Abra su puerto Shadowsocks, que en nuestro ejemplo es 25117.

ufw allow 25117/tcp
ufw allow 25117/udp

Habilitar UFW:

ufw enable

Verá un mensaje de advertencia:

Command may disrupt existing ssh connections. Proceed with operation (y|n)?

Escriba Yy presione ENTERpara confirmar que desea habilitar ufw. Verás un mensaje:

Firewall is active and enabled on system startup

Compruebe el estado de su cortafuegos:

ufw status

Verá una pantalla de estado del firewall similar a la siguiente:

Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       51.51.51.0/24
25117/tcp                  ALLOW       Anywhere
25117/udp                  ALLOW       Anywhere
25117/tcp (v6)             ALLOW       Anywhere (v6)
25117/udp (v6)             ALLOW       Anywhere (v6)

Si su proveedor de VPS implementa el concepto de grupos de seguridad, también deberá abrir sus asignaciones de grupos de seguridad para estos puestos en el panel de control de su proveedor.

Paso 4: generar una contraseña segura

Debe generar una contraseña segura para proteger su servidor. Copie y pegue el siguiente comando en su sesión de terminal con su servidor:

< /dev/urandom tr -dc A-Za-z0-9 | head -c 16; echo;

El archivo especial /dev/urandomen los sistemas Linux proporciona una interfaz para el generador de números pseudoaleatorios del núcleo. El contenido de /dev/urandomse convierte en entrada para tr. El trcomando es una utilidad de línea de comandos para traducir o eliminar caracteres. -dsignifica eliminar y -csignifica complemento, por lo que -dcsignifica eliminar cualquier carácter que no esté en el conjunto Athrough Zathrough z0through 9.

La salida, ahora solo alfanumérica, se canaliza a head. El headcomando es una utilidad de línea de comandos para generar la primera parte de un archivo que se le proporciona a través de la entrada estándar. El -cconmutador limita el número de caracteres. El operando 16es el número de caracteres que desea.

Finalmente, el echocomando repite la entrada al terminal, que en este caso solo le da una nueva línea después de mostrar su contraseña.

Aquí está la salida de muestra. Verá este ejemplo utilizado en el resto de este tutorial:

25u4kC4XbIWZJ75Q

Copie su contraseña generada. Abra un editor de texto en su PC. Pegue la contraseña en su editor de texto.

Necesitará esta contraseña tanto en su servidor como en su cliente cuando ejecute Shadowsocks.

Paso 5: Instalación de Docker

Ahora instalará Docker en su servidor.

Instale paquetes para permitir aptel uso de un repositorio a través de HTTPS:

apt install -y apt-transport-https ca-certificates curl gnupg lsb-release

Agregue la clave GPG oficial de Docker:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Use el siguiente comando para configurar el repositorio estable de Docker:

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null

El archivo /etc/apt/sources.list.d/docker.listahora contiene el repositorio de Docker. Actualice sus listas de paquetes en consecuencia:

apt update

Instalar ventana acoplable:

apt install -y docker-ce docker-ce-cli containerd.io

Verifique que Docker Engine esté instalado correctamente ejecutando la hello-worldimagen.

docker run hello-world

Deberías ver mensajes:

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
b8dfde127a29: Pull complete
Digest: sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

Paso 6: tirar de la imagen

Extraiga la imagen de Docker de Teddysun para Shadowsocks-Rust emitiendo el comando:

docker pull teddysun/shadowsocks-rust

Verá mensajes similares a los siguientes:

Using default tag: latest
latest: Pulling from teddysun/shadowsocks-rust
45b42c59be33: Pull complete
f50629ee3cc4: Pull complete
b270b750cfe4: Pull complete
3854afaafaf8: Pull complete
0cc26c8d335f: Pull complete
c02c65108591: Pull complete
Digest: sha256:4d79f0f64c397e5beb82661367449eeb3ab27022fd0c10581f13f55056973ea4
Status: Downloaded newer image for teddysun/shadowsocks-rust:latest
docker.io/teddysun/shadowsocks-rust:latest

Paso 7: Configuración de Shadowsocks

Ahora creará su archivo de configuración de Shadowsocks en el servidor.

Hacer un directorio en /etcnamed /shadowsocks-rust:

mkdir /etc/shadowsocks-rust

Cree un archivo de configuración /etc/shadowsocks-rust/config.jsonutilizando el siguiente ejemplo como plantilla. Antes de usar el ejemplo:

  • Reemplace 25117por su elección de número de puerto aleatorio
  • Reemplace 25u4kC4XbIWZJ75Qpor su elección de contraseña segura
  • Reemplace chacha20-ietf-poly1305por su elección de cifrado, pero asegúrese de usar un cifrado AEAD
cat > /etc/shadowsocks-rust/config.json <<EOF
{
    "server":"0.0.0.0",
    "server_port":25117,
    "password":"25u4kC4XbIWZJ75Q",
    "timeout":300,
    "method":"chacha20-ietf-poly1305",
    "nameserver":"8.8.8.8",
    "mode":"tcp_and_udp"
}
EOF

Paso 8: ejecutar el contenedor

Ejecute el siguiente comando, reemplazando 25117en los cuatro lugares por su elección de número de puerto:

docker run -d -p 25117:25117 -p 25117:25117/udp --name ss-rust --restart=always -v /etc/shadowsocks-rust:/etc/shadowsocks-rust teddysun/shadowsocks-rust

La -dopción significa correr separado. La -popción especifica los puertos expuestos. La -vopción da los volúmenes.

Paso 9: Prueba con el cliente de Windows

Ahora trabaja en tu PC.

Descargue la versión más reciente del cliente de Windows desde https://github.com/shadowsocks/shadowsocks-windows/releases .

Archivo zip de Shadowsocks para Windows

Descomprima el ziparchivo.

Shadowsocks para Windows descomprimido

Haga doble clic en la aplicación shadowsocks.exe para iniciar el cliente Shadowsocks para Windows. Si aparece Microsoft Defender SmartScreen, haga clic en Más información y luego en Ejecutar de todos modos .

Ingrese los parámetros del cliente que coincidan con la configuración que especificó en su servidor:

  • Ingrese la dirección IP real de su servidor
  • Ingrese su elección de número de puerto del servidor Shadowsocks , que se encuentra 25117en nuestro ejemplo
  • Ingrese su elección de Contraseña , que está 25u4kC4XbIWZJ75Qen nuestro ejemplo
  • Seleccione su elección de cifrado de cifrado, que se encuentra chacha20-ietf-poly1305en nuestro ejemplo

Haga clic en Aplicar .

Servidores de edición de Shadowsocks

Haga clic en Aceptar . Aparece una notificación que dice que Shadowsocks está conectado.

Shadowsocks está conectado

Haga clic derecho en el icono del avión de papel de Shadowsocks en la bandeja del sistema. Esto abre el menú contextual. Seleccione Proxy del sistema . Asegúrese de estar en modo Global .

Modo global de Shadowsocks

En su navegador, visite https://www.iplocation.net para confirmar que su navegación web ahora proviene de la ubicación de su servidor.

Cuando haya terminado de navegar, salga de Shadowsocks desde el menú contextual.

Conclusión

Ahora tiene un servidor Shadowsocks en funcionamiento que ha probado con el cliente de Windows.

Puede obtener más información sobre las diferentes versiones de Shadowsocks en https://github.com/shadowsocks .

 

Esta es una traducción y reimpretación del artículo original siguiente.

Configurar servidor VPN Raspberry Pi IpSec – Linux

Buenos días, vamos a usar unos Script para instalar un servidor VPN y poder acceder desde fuera de nuestra red.

Los Scripts de instalación necesarios no funcionan con virtualizaciones OpenVZ

 Raspberry OS – Raspbian – Debian, Ubuntu y otros:

# wget https://git.io/vpnsetup -O vpnsetup.sh && VPN_IPSEC_PSK='KvLjedUkNzo5gBH72SqkOA==' VPN_USER='tecmint' VPN_PASSWORD='8DbDiPpGbcr4wQ==' sudo sh vpnsetup.sh

Por defecto, el instalador creará su script de generación de claves aleatorias, pero si prefieres hacerlo de manera manual, las deberás cambiar en los siguientes cambios del comando:

  • VPN_IPSEC_PSK: es la clave IPsec compartida.
  • VPN_USER: tu nombre de usuario.
  • VPN_PASSWORD: la contraseña privada del VPN.

Para agregar un nuevo usuario o eliminar uno existente, usaremos otro Script. Primero un nuevo usuario.

wget -O add_vpn_user.sh https://raw.githubusercontent.com/hwdsl2/setup-ipsec-vpn/master/extras/add_vpn_user.sh

# Usuario y password
sudo sh add_vpn_user.sh 'username_to_add' 'user_password'

Para eliminar un usuario:

wget -O del_vpn_user.sh https://raw.githubusercontent.com/hwdsl2/setup-ipsec-vpn/master/extras/del_vpn_user.sh

# Usuario y contraseña
sudo sh del_vpn_user.sh 'username_to_delete'

Es importante actualizar Libreswan con un script.

wget https://git.io/vpnupgrade -O vpnupgrade.sh && sudo sh  vpnupgrade.sh

Puertos que usa

Tenemos que abrir estos puertos en nuestro Router:

500 UDP    
4500 UDP

Otras VPN

Fuente

Cómo usar fácilmente Pi-Hole fuera de su red personal con Zerotier

Este post es una traducción y adaptación de esta fuente del foro oficial, puedes pasarte para revisar más detalles o errores.

¿Tiene su Pi-Hole instalado en su red personal, pero quieres usarlo fuera de tu casa? Si ese es el caso, quédate conmigo y sigue este tutorial que te explicará cómo integrar tu Pi-Hole con Zerotier 670, una red virtual fácil de acceder desde cualquier lugar del mundo donde todo el tráfico está encriptado de un extremo a otro.

Ventajas de usar Zerotier en lugar de una VPN tradicional

    • Zerotier funciona incluso en su red personal, por lo que no tendrá que cambiar la configuración de DNS ni conectarse a su VPN cada vez que salga de su casa.
    • Todavía puede usar la conexión a Internet existente que está usando fuera de su casa en lugar de enrutar su conexión a Internet actual a través de su red doméstica como lo haría con PiVPN y, por lo tanto, perder algo de ancho de banda si su conexión doméstica no es lo suficientemente potente.
    • No necesita configurar un DNS dinámico ni tener una IP estática ni configurar el reenvío de puertos porque Zerotier hará todo el trabajo para que usted configure automáticamente la mejor configuración de acuerdo con su red.
    • Zerotier funciona de inmediato en todos los entornos de red (a menos que el administrador prohíba explícitamente los servidores de Zerotier), incluso en redes muy restrictivas que solo permiten HTTP y HTTPS prueba aquí ).

Requisito

    • Un servidor Pi-Hole ya instalado

Tutorial

Primera parte : Configure Pi-Hole en su red Zerotier

Cree una cuenta en el sitio web de Zerotier: https://my.zerotier.com/login 538

Después de crear su cuenta, diríjase a la sección de red: https://my.zerotier.com/network 142 y luego haga clic en el Create Network botón azul.

Debería surgir una nueva red:

 

Haga clic en la nueva red y luego deje que se abra la página. Necesitará el ID de red después de un par de pasos:

Es posible que desee cambiar el nombre de la red y el IPv4 Auto-Assign a números más fáciles de recordar, por ejemplo: 192.168.192.*:

 

Abra una conexión SSH a su servidor Pi-Hole y luego instale Zerotier usando este comando:

curl -s https://install.zerotier.com/ | sudo bash

Cuando reciba este mensaje: Success! You are ZeroTier address. Está listo para unirse a su red virtual usando este comando:

sudo zerotier-cli join network_id

Necesitas reemplazar network_id con el ID de red especificado en la página de Zerotier Central que abrió hace un minuto.

Entonces debería recibir un mensaje de éxito: 200 join OK, si ese es el caso, vuelva a la página de Zerotier Central.

Desplácese hacia abajo hasta que One device has joined this network. mensaje.

Ahora deberá aceptar su servidor Pi-Hole para unirse a la red marcando la casilla justo debajo de la Auth?:

 

Luego espere un poco hasta que la línea roja cambie a verde y obtenga una tercera IP en el Managed IPs columna.

Dé un nombre a su servidor Pi-Hole en el short name campo.

Cambie la IP de su servidor Pi-Hole en el Managed IPs columna a números más fáciles de recordar, por ejemplo el mío es 192.168.192.1 porque la red está configurada para 192.168.192.* dentro de IPv4 Auto-Assign caja. No olvide eliminar la antigua IP administrada.

Abra una página en la configuración de DNS de Pi-Hole: http: //pi.hole/admin/settings.php? tab = dns 175

Comprobar el Listen on all interfaces para permitir que los dispositivos de su red Zerotier utilicen su Pi-Hole y luego guardar:

¡Eso es todo, ahora ha configurado su servidor Pi-Hole con Zerotier!

Segunda parte: Configure su (s) dispositivo (s) para usar su Pi-Hole a través de su red Zerotier

Ventanas (7, 8, 8.1 y 10)

Configurar Zerotier

Instale la aplicación Zerotier: https://download.zerotier.com/dist/ZeroTier%20One.msi 43 (no desmarque la Start Zerotier al final de la instalación).

UN Zerotier One subirá la ventana, tienes que iniciar sesión con tu cuenta.

A continuación, se le dará la bienvenida para unirse a una red, solo tiene que unirse a su red:

Haga clic en done y luego acepte la nueva ventana de red azul a la derecha si está en Windows 8 / 8.1 / 10.

Cambiar los servidores DNS

No le explicaré en detalle cómo cambiar sus servidores DNS porque ya hay muchos tutoriales en Internet para guiarlo, pero aquí hay un buen tutorial para ayudarlo: https://www.lifewire.com/how-to-change-dns-servers-in-windows-2626242 54

En la configuración de la IP del servidor DNS, si seguiste el tutorial que vinculé, tienes que ingresar la IP administrada (Zerotier) de su servidor Pi-Hole (disponible en la página de Zerotier Central).
Si ha seguido la primera parte al pie de la letra, asegúrese de ingresar 192.168.192.1 y teniendo un resultado similar al mío:

Androide

Configurar Zerotier

Instale la aplicación Zerotier One desde Google Play Store: https://play.google.com/store/apps/details?id=com.zerotier.one 81

Ejecútelo y luego toque el + botón en la parte superior derecha de la aplicación:

Ingrese su ID de red y luego verifique el «Usar servidores DNS personalizados» caja:
20190428_215243

Ingrese la IP administrada (Zerotier) de su servidor Pi-Hole en el primer campo DNS IPv4 y luego toque el «Agregar red» botón:

 

Regrese a la página de Zerotier Central.

Verá un nuevo dispositivo que tiene una línea vertical roja, solo tienes que hacer lo mismo que la primera parte, haz clic en el cuadro de la columna Auth? para permitir que el dispositivo se una a la red.

Ahora está listo para iniciar la conexión en la aplicación Zerotier One en su dispositivo Android activando el control deslizante dentro del cuadro de red:

Linux (Ubuntu, Linux Mint, Fedora y más)

Configurar Zerotier

La instalación de Zerotier en Linux es muy similar a la primera parte. 

Nota para los usuarios de ArchLinux. Hay un paquete oficial para Zerotier: https://www.archlinux.org/packages/community/x86_64/zerotier-one/ 10

Cambiar los servidores DNS

La configuración de los servidores DNS en Linux depende en gran medida de la interfaz gráfica, pero aquí hay algunos tutoriales para las distribuciones populares de Linux:

En la configuración de la IP del servidor DNS ingrese la IP administrada (Zerotier) de su servidor Pi-Hole, si ha seguido la primera parte al pie de la letra, asegúrese de ingresar 192.168.192.1.

Mac OS

Configurar Zerotier

Personalmente, no tengo un dispositivo Apple, pero es posible instalar Zerotier en tu Mac instalando el .pkg disponible en la página de descarga de Zerotier: https://www.zerotier.com/download.shtml 22 Apple Macintosh).
Si necesita ayuda, aquí hay un buen tutorial que encontré en Internet: https://www.stratospherix.com/support/setupvpn_02a.php 26

Cambiar los servidores DNS

Aquí hay un tutorial para ayudarlo a cambiar los servidores DNS en su Mac: https://serverguy.com/kb/change-dns-server-settings-mac-os/ 26

En la configuración de la IP del servidor DNS ingrese la IP administrada (Zerotier) de su servidor Pi-Hole, si ha seguido la primera parte al pie de la letra, asegúrese de ingresar 192.168.192.1.

iOS (iPhone / iPad / iPod Touch)

Configurar Zerotier

Puede instalar Zerotier en su dispositivo iOS instalando la aplicación oficial de la App Store: https://itunes.apple.com/us/app/zerotier-one/id1084101492?mt=8 132
Si necesita ayuda, aquí hay un buen tutorial que encontré en Internet: https://www.stratospherix.com/support/setupvpn_03.php 93

Cambiar los servidores DNS

Aquí hay un tutorial para ayudarlo a cambiar los servidores DNS en su dispositivo basado en iOS: https://appleinsider.com/articles/18/04/22/how-to-change-the-dns-server-used-by-your-iphone-and-ipad 152

En la configuración de la IP del servidor DNS ingrese la IP administrada (Zerotier) de su servidor Pi-Hole, si ha seguido la primera parte al pie de la letra, asegúrese de ingresar 192.168.192.1.

 

 

👌 Instalar VPN WIREGUARD Raspberry PI como DOCKER y PI-HOLE

Vamos a instalar WireGuard como Docker para poder conectarnos por VPN desde fuera de nuestra Red.

En el vídeo anterior lo hacemos con el sistema nativo de Docker de OpenMediaVault 6, y en el siguiente directamente por terminal.

Contenido del Docker Compose

version: "2.1"
services:
  wireguard:
    image: ghcr.io/linuxserver/wireguard
    container_name: wireguard
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/London
      - SERVERURL=wireguard.domain.com #optional
      - SERVERPORT=51820 #optional
      - PEERS=1 #optional
      - PEERDNS=auto #optional
      - INTERNAL_SUBNET=10.13.13.0 #optional
      - ALLOWEDIPS=0.0.0.0/0 #optional
    volumes:
      - /path/to/appdata/config:/config
      - /lib/modules:/lib/modules
    ports:
      - 51820:51820/udp
    sysctls:
      - net.ipv4.conf.all.src_valid_mark=1
    restart: unless-stopped

Fuente

Comandos que vamos a usar
nano docker-compose.yml
id admin
sudo docker-compose up -d
sudo docker ps
docker exec -it wireguard /app/show-peer 1

Sí quieres intalar Pi-Hole

Configurar VPN en Mikrotik básica con L2TP – IpSec

Buenos días, en este manual vamos a ver como configurar una VPN sencilla en MIkrotik. Está basado en el manual oficial de Mikrotik pero traduciéndolo al Español e intentado aclarar los pasos, así como corregir algún comando de versiones antiguas.

Este ejemplo demuestra cómo configurar fácilmente el servidor L2TP / IpSec en el enrutador Mikrotik para conexiones de clientes (funciona con Windows, Android y iPhones).

Todas estas opciones también se pueden hacer por la interfaz gráfica, por ejemplo, cuando pone /interface puedes ir a interface y luego al resto de opciones.

El primer paso es habilitar el servidor L2TP:

/interface l2tp-server server
set enabled=yes use-ipsec=required ipsec-secret=mySecret default-profile=default

required está configurado para asegurarse de que solo se aceptarán conexiones L2TP encapsuladas con IPSec.

Ahora, lo que hace es habilitar el servidor L2TP y crear ipsec peer dinámico con un secreto especificado

/ip ipsec peer print

Nota: Se debe tener cuidado si existe una configuración de pares ipsec estática.

El siguiente paso es crear un grupo de VPN y agregar algunos usuarios.

/ip pool add name=vpn-pool range=192.168.99.2-192.168.99.100 
/ppp profile
set default local-address=192.168.99.1 remote-address=vpn-pool 
/ppp secret
add name=user1 password=123
add name=user2 password=234

Si hay políticas de firewall estrictas, no olvide agregar reglas que acepten l2tp e ipsec.

/ip firewall filter
add chain=input protocol=udp port=1701,500,4500
add chain=input protocol=ipsec-esp

Ahora el enrutador está listo para aceptar conexiones de cliente L2TP / IpSec.

Aquí podéis ver una captura de los comandos:

Aquí nos tenemos que ir al Firewall y subir estas dos reglas que hemos creado y están en la parte de abajo, por encima del primer Drop.

En el Log, podemos comprobar que sucede, aquí en rojo se ve error, pero luego abajo ya conecta.

🔐 Cómo instalar OPENVPN en OpenMediaVault 5 DOCKER

 

¿Qué es OpenVPN?

OpenVPN es una herramienta de conectividad basada en software libreSSL (Secure Sockets Layer), VPN Virtual Private Network (red virtual privada). OpenVPN ofrece conectividad punto-a-punto con validación jerárquica de usuarios y host conectados remotamente. Resulta una muy buena opción en tecnologías Wi-Fi (redes inalámbricas IEEE 802.11) y soporta una amplia configuración, entre ellas balanceo de cargas. Está publicado bajo la licencia GPL, de software libre.

Guía de instalación de OpenMediaVault 5

   Equipamiento requerido :

 Raspberry Pi Todos los modelos

 Tarjeta Micro SD «Mínimo 8 GB»
 Fuente de alimentación
 Cable Ethernet para conexión LAN
 Disco duro externo o unidad USB

     Opcional :

 Raspberry Pi carcasa

 Teclado y Ratón  

Crear volumen OVPN_DATA

OVPN_DATA="ovpn-data-openvpn"
docker volume create --name $OVPN_DATA

Configurar DNS dinámico

Después de que el DNS dinámico se haya creado correctamente, podemos reemplazar el VPN.SERVERNAME.COM con nuestra dirección y ejecutar el contenedor desde el comando siguiente:

docker run -v $OVPN_DATA:/etc/openvpn --log-driver=none --rm darathor/openvpn ovpn_genconfig -u udp://VPN.SERVERNAME.COM

Generar certificado de CA

Introduciendo el siguiente comando nos pedirá meter una contraseña dos veces.

docker run -v $OVPN_DATA:/etc/openvpn --log-driver=none --rm -it darathor/openvpn ovpn_initpki

 

 

Inicie el proceso del servidor OpenVPN

Tenemos primero que abrir el puerto en nuestro Router, podemos usar este vídeo como ejemplo pero poniendo el puerto 1194 interno y externo, y protocolo UDP. En el primer vídeo está también.

docker run -v $OVPN_DATA:/etc/openvpn -d -p 1194:1194/udp --cap-add=NET_ADMIN darathor/openvpn

Metemos este comando de arriba con le puerto.

Generar un certificado de cliente sin una frase de contraseña

Con esto creamos un usuario para el cliente sin contraseña. Se puede cambiar CLIENTNAME por el nombre que queráis.

docker run -v $OVPN_DATA:/etc/openvpn --log-driver=none --rm -it darathor/openvpn easyrsa build-client-full CLIENTNAME nopass

Cree y descargue la configuración del cliente con certificados incrustados

Aquí pondremos el mismo nombre que arriba.

docker run -v $OVPN_DATA:/etc/openvpn --log-driver=none --rm darathor/openvpn ovpn_getclient CLIENTNAME > CLIENTNAME.ovpn

 

Descargar archivo de cliente

Para descargarlo, la opción más fácil es descargar WinSCP u otro programa FTP y conectarnos a nuestra IP como hacemos con Putty. 

Podemos pasarlo al móvil con Google Drive por ejemplo.

Configurar el cliente OpenVPN

Nos bajamos OpenVPN Client e importamos el archivo.


Iniciar contenedor docker automaticamente al encender

Vamos a crear un archivo con el siguiente contenido:

[Unit]
Description=NOMBRE_DOCKER  
Requires=docker.service  
After=docker.service

[Service]
Restart=always  
ExecStart=/usr/bin/docker start -a NOMBRE_DOCKER
ExecStop=/usr/bin/docker stop -t 2 NOMBRE_DOCKER

[Install]
WantedBy=default.target

Podemos crear el archivo conectando por Putty o por WinSCP.

Crear archivo:

touch docker-NOMBRE_DOCKER.service

Lo abrimos con nano y pegamos el contenido de arriba ya personalizado:

nano docker-NOMBRE_DOCKER.service

Copiamos el archivo a la carpeta especial de systemd:

sudo cp docker-NOMBRE_DOCKER.service /etc/systemd/system/

Lo habilitamos:

systemctl enable docker-NOMBRE_DOCKER.service

Al reiniciar nuestro SO debería de levantarse automáticamente nuestro contenedor.

 

Fuentes:

  • https://pcmac.biz/openvpn-on-openmediavault-5-raspberry-pi-4/
  • https://www.ingenieroperales.com/iniciar-un-contenedor-de-docker-automaticamente-al-reiniciar/

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies