Creacion de un servidor CHR de mikrotik con su certificado openvpn para servidor y cliente, configuracion del servidor , nateo de puertos, firewall, perfiles de usuario, con direcciones ip estaticas para cliente mikrotik, configuracion de 2 clientes mikrotik con sus puertos nateados Configuracion del mikrotik cliente para acceso por remoto con la IP:puerto asignado del servidor.

El proceso fue creado con

  • Vps digitalocean
  • Puttygen
  • Mobaxterm
  • Mikrotik

Primero vamos a crear el vps en Digitalocean y conectarnos por ssh, despues de eso crearemos los certificados openvpn, puedes usar ese mismo vps o si tienes una maquina en ubuntu pues usa esa, asi no le instalas Docker a tu vps ya que el crear los certificados usaremos Docker, o alternativamente usar tu vps y despues borrar docker ,docker compose y las imagenes creadas, para que el vps quede liviano.

Supongamos que no tenemos instalado docker en el vps

Instalacion de Docker y Docker compose

sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
sudo apt update
  • Despues lo instalamos con
sudo apt install docker-ce
sudo systemctl status docker
sudo usermod -aG docker ${USER}
  • Ahora Docker compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version

Creacion de los certificados Openvpn

  • Cambiamos la zona en nuestro ubuntu, yo usare mexico
sudo timedatectl set-timezone America/Mexico_City
timedatectl

Lanzar el siguiente comando completo cambiando los datos de la IP 137.184.24.251 ,correo…etc por los tuyos y no te olvides de la zona anterior

docker run --rm \
--name=easy-rsa \
-ti \
--volume=`pwd`/keystore:/keystore \
--env TZ='America/Mexico_City' \
--env DOMAIN_OVPN='147.182.131.150' \
--env EASYRSA_REQ_COUNTRY='MX' \
--env EASYRSA_REQ_PROVINCE='San Luis Potosi' \
--env EASYRSA_REQ_CITY='San Luis Potosi' \
--env EASYRSA_REQ_ORG='UNIQEDUMX' \
--env EASYRSA_REQ_EMAIL='[email protected]' \
--env EASYRSA_REQ_OU='SERVIDOR' \
cnsoluciones/easy-rsa:3.0.6-r0 create -a
  • Comprimir los certificados y descargarlos al local pc para despues de que tengamos el vps CHR los subamos
sudo apt install zip unzip
sudo tar -zcvf keystore.tar.gz keystore/

Bien ,hasta aqui ya tenemos el certificado descargado a nuestra pc, ahora podemos borrar docker,docker-compose y las imagenes o contenedores creados, eso no lo pondre aqui.

Instalacion de CHR vps Mikrotik en Digitalocean

Desde la terminal lanzamos de preferencia los siguientes comandos linea por linea

sudo apt install net-tools
wget http://download2.mikrotik.com/routeros/6.37/chr-6.37.img.zip -O chr.img.zip
gunzip -c chr.img.zip > chr.img
mount -o loop,offset=33554944 chr.img /mnt
ifconfig #Lanzar ifconfig para saber si es eth0
ADDRESS=`ip addr show eth0 | grep global | cut -d' ' -f 6 | head -n 1`
GATEWAY=`ip route list | grep default | cut -d' ' -f 3`
  • Ahora estos juntos
echo "/ip address add address=$ADDRESS interface=[/interface ethernet find where name=ether1]
/ip route add gateway=$GATEWAY
" > /mnt/rw/autorun.scr

y Estos juntos

umount /mnt
echo u > /proc/sysrq-trigger
dd if=chr.img bs=1024 of=/dev/vda
  • Reiniciar el vps en digital ocean con Power cycle
  • Ingresa con tu winbox con la Ip de tu servidor y con usuario admin sin password

Instalacion CHR Mikrotik otro servidor por script

Si ya lo instalaste con los pasos de digitalocean omite este proceso, esto es por si no te funciona el anterior

sudo su -
wget -O Mikrotik_installer.sh https://support.cloudzy.com/dl.php?type=d\&id=8
chmod +x Mikrotik_installer.sh
./Mikrotik_installer.sh

Configuracion CHR mikrotik en el servidor

  • Descomprime la carpeta de tus certificados y sube al servidor los archivos que se encuentran en la carpeta server a tu mikrotik servidor
  • Lanza los siguientes comandos para importar los certificados
certificate import file-name=ca.crt
certificate set name=ca numbers=ca.crt_0
certificate import file-name=server.crt
certificate import file-name=server.key
certificate set name=server numbers=server.crt_0
  • Ahora en este codigo a continuacion ,ve agregandolo poco a poco a tu mikrotik CHR por la terminal, recuerda cambiar la IP de mi vps 147.182.131.150 por la IP del tuyo, al final tendras todo configurado y listo para dos mikrotik clientes (LuisOS y AviOS), las cuales contienen:
  • 2 perfiles de cliente
  • 2 secrets o usuario y password para 2 mikrotik cliente
  • 2 grupos de reglas en nateo para dos puertos, 4444 cliente LuisOS y 5555 cliente AviOs
# Buscar y reemplazar la IP 147.182.131.150 por la de tu CHR vps
# Desactivar ssh ftp telnet

/ip service
set telnet disabled=yes
set ftp disabled=yes
set ssh disabled=yes


/interface bridge
add name=OVPN-bridge

/ip pool
add name=OVPN-pool ranges=192.168.34.100-192.168.34.200

/ip address
add address=192.168.34.1/24 interface=OVPN-bridge network=192.168.34.0

/interface ovpn-server server
set certificate=server cipher=blowfish128,aes128,aes192,aes256 \
    default-profile=default-encryption enabled=yes \
    require-client-certificate=yes


/ip dns
set servers=8.8.8.8,8.8.4.4


/ip firewall filter
add action=accept chain=input comment="Allow ICMP ping" protocol=icmp
add action=accept chain=forward connection-state=established,related
add action=drop chain=forward connection-state=invalid
add action=accept chain=input comment="INPUT WINBOX" connection-state=\
    established,related dst-port=8291 protocol=tcp
add action=accept chain=input comment="INPUT OVPNSERVER MKT02" dst-port=1443 \
    protocol=tcp
add action=drop chain=input connection-state=invalid
add action=accept chain=output connection-state=established,related
add action=drop chain=output connection-state=invalid


/ppp profile
add bridge=OVPN-bridge change-tcp-mss=yes comment="LuisOS Profile" \
    dns-server=9.9.9.9,149.112.112.112 local-address=192.168.34.1 name=LuisOs \
    remote-address=192.168.34.195 use-encryption=yes
add bridge=OVPN-bridge change-tcp-mss=yes comment="AviOS Profile" dns-server=\
    9.9.9.9,149.112.112.112 local-address=192.168.34.1 name=AviOS \
    remote-address=192.168.34.196 use-encryption=yes
set *FFFFFFFE bridge=OVPN-bridge dns-server=9.9.9.9,149.112.112.112 \
    local-address=192.168.34.1 remote-address=OVPN-pool



/ppp secret
add comment="LuisOS Secret" name=LuisOS [email protected] profile=LuisOs
add comment="AviOS Secret" name=AviOS [email protected] profile=AviOS


# El nateo y los puertos en este caso para dos mikrotik, si se agregan mas copiar la regla de puerto y masquerade, cambiar la ip dst-address 147.182.131.150 por la de tu CHR

/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether1
add action=dst-nat chain=dstnat comment="LuisOS PUERTO" dst-address=\
    147.182.131.150 dst-port=4444 protocol=tcp to-addresses=192.168.34.195 \
    to-ports=8291
add action=masquerade chain=srcnat comment="LuisOS Masquerade" dst-address=\
    192.168.34.195
add action=dst-nat chain=dstnat comment="AviOS PUERTO" dst-address=\
    147.182.131.150 dst-port=5555 protocol=tcp to-addresses=192.168.34.196 \
    to-ports=8291
add action=masquerade chain=srcnat comment="AviOS Masquerade" dst-address=\
    192.168.34.196



/system clock
set time-zone-name=America/Mexico_City
  • Listo deberia de estar funcionando tu servidor CHR, ahora solo falta configurar los clientes de los mikrotik LuisOS y AviOS, en este momento configuraremos solo uno LuisOS.

Agregamos el certificado Ovpn al mikrotik del cliente

  • Entramos a nuestro mikrotik cliente por winbox como accesamos normalmente con su mac o ip
  • Importamos las claves o certificados de la carpeta client al mikrotik
  • Lanzamos los siguientes comandos uno por uno para importar los certificados
certificate import file-name=ca.crt
certificate set name=ca numbers=ca.crt_0
certificate import file-name=client.crt
certificate import file-name=client.key
certificate set name=client numbers=client.crt_0

Interfaz Ovpn Forma automatica

Des pues del paso anterior (haber agregado el certificado del servidor), lanzamos el script con los datos para el cliente LuisOS

# Forma automatica
/interface ovpn-client
add certificate=client connect-to=147.182.131.150 name=ovpn-Avi [email protected] profile=default-encryption user=LuisOS
  • De aqui ya te puedes conectar de donde sea con winbox usando el puerto 5555 que se configuro para este cliente en el CHR 147.182.131.150:4444

Configuracion Mikrotik cliente forma manual

  • Despues de haber agregado el certificado del servidor
  • En interfaz creamos una nueva tipo OVPN client
  • Configurala de acuerdo a tus datos de IP servidor y usuario y clave, en este caso seguire con el ejemplo
connect to: 147.182.131.150
port: 1194
mode: ip
user:AviOS
password:[email protected]
profile:Default encriptation
certificate:client
auth: sha1
cipher:blowfish
use peer dns:yes
  • Dale en apply y deveria de decirte connected
  • Si te da connected ya puedes accesar desde el puerto configurado en el nat para ese mikrotik que deberia ser el 4444 por lo que puedes desconectar ese mikrotik y entrar por la IP:4444 en este ejemplo seria 147.182.131.150:4444
  • Recuerda asignarle un usuario y password a tu mikrotik CHR

Asignando mas usuarios o clientes al CHR

  • Solo copia uno de los perfiles en ppp y configuralo con nuevo nombre y nueva ip
  • Copia y cambiale datos a un nuevo secret y enlazala al perfil nuevo creado
  • Copia las 2 reglas NAT de uno de los perfiles asignandole la ip que le agregaste o cambiaste en el perfil
  • Agrega la configuracion al nuevo mikrotik cliente , importando los certificados anteriores y creando la interfaz ovp client con los datos del secret
5/5 - (1 voto)