MANUAL: Mikrotik, VPN tipo RoadWarrior usando WireGuard

Buenos días,

Después de varios días cacharreando estoy probando el router Mikrotik 962UiGS-5HacT2HnT, concretamente el tema de VPN desde test OKLA (https://www.speedtest.net/es). En todos los casos se esta usando una conexión origen MOVISTAR (600/600) contra la VPN mediante diferente protocolos del operador destino JAZZTEL (1000/1000) a tener en cuenta que por el Mikrotik 962UiGS-5HacT2HnT está limitado a 600/600 que es la velocidad que se obtiene localmente.

En todos los casos se usa el mismo ordenador con diferentes sistema operativo para el tema PPTP

0.NO VPN --> Ping 01 622/617 desde 600/600 desde MacBook Pro SO.-.Catalina 10.15.7
1.PPTP --> Ping 22 60/30 desde 600/600 contra 1000/1000 desde MacBook Pro S.O.-.Yosemite 10.10.5
2.L2TP --> Ping 47 12/8 desde 600/600 contra 1000/1000 desde MacBook Pro SO.-.Catalina 10.15.7
3.OVPN --> Ping 22 16/21 desde 600/600 contra 1000/1000 desde MacBook Pro S.O.-.Catalina 10.15.7
4.IKEv2 --> Me falta por acabar de probar
5.WIREGUARD --> Ping 24 66/51 desde 600/600 contra 1000/1000 desde MacBook Pro con 10.15.-.Catalina 10.15.7

En orden de más antigua a más moderna... para ver rendimientos/velocidades... el tema del rendimiento viene dado por la configuración aplicada...tipos de encriptación.... conexión origen conexión destino... etc....

En algún caso he visto en un video de NASeros, haciendo tests (
) yo no me acerco a esas velocidades ni de broma....

No se yo pero las velocidades... entre la 1.PPTP y la 5.WIREGUARD son muy similares en cuanto a bajada... no se si hay mucho más que cacharrear con configuraciones para obtener mejor rendimiento.

Cordialmente,

Juhn_Hoo
Sin ver tu config es difícil saber si el problema de velocidad viene por una propia limitación del equipo (que no soporta aceleración hardware ipsec, por. ejemplo; tienes un equipo bueno, pero antiguo), o simplemente por una mala configuración.

No obstante, comparar PPTP con Wireguard es como comparar peras con pasas. PPTP no sólo es considerado muy inseguro, sino que además está obsoleto. Si no te importa que alguien meta las narices en tu conexión, úsalo sin problema. Pero si quieres un túnel encriptado NO uses PPTP.

PS: las VPN se prueban desde fuera de la red, no desde dentro (por si acaso lo estás probando así).

Saludos!
 
Sin ver tu config es difícil saber si el problema de velocidad viene por una propia limitación del equipo (que no soporta aceleración hardware ipsec, por. ejemplo; tienes un equipo bueno, pero antiguo), o simplemente por una mala configuración.

No obstante, comparar PPTP con Wireguard es como comparar peras con pasas. PPTP no sólo es considerado muy inseguro, sino que además está obsoleto. Si no te importa que alguien meta las narices en tu conexión, úsalo sin problema. Pero si quieres un túnel encriptado NO uses PPTP.

PS: las VPN se prueban desde fuera de la red, no desde dentro (por si acaso lo estás probando así).

Saludos!
Buenas tardes,

Que puedo publicar para revisar si es el equipo o es la configuración? la configuración del wireguard tiene poca chicha... son pocas lineas.

El tema de las comparaciones que son odiosas... la idea era comparar la velocidad de todos los protocolos que he podido rapiñar... independientemente de si son seguros o no.... de más antiguos a mas modernos... seguro que si pones todo con una super encriptación todos los protocolos irían más lentos...

Era una comparativa de velocidad... para ver la realidad cuantificada.

Cordialmente,

Juhn_Hoo
 
Buenos días,

Después de varios días cacharreando estoy probando el router Mikrotik 962UiGS-5HacT2HnT, concretamente el tema de VPN desde test OKLA (https://www.speedtest.net/es). En todos los casos se esta usando una conexión origen MOVISTAR (600/600) contra la VPN mediante diferente protocolos del operador destino JAZZTEL (1000/1000) a tener en cuenta que por el Mikrotik 962UiGS-5HacT2HnT está limitado a 600/600 que es la velocidad que se obtiene localmente.

En todos los casos se usa el mismo ordenador con diferentes sistema operativo para el tema PPTP

0.NO VPN --> Ping 01 622/617 desde 600/600 desde MacBook Pro SO.-.Catalina 10.15.7
1.PPTP --> Ping 22 60/30 desde 600/600 contra 1000/1000 desde MacBook Pro S.O.-.Yosemite 10.10.5
2.L2TP --> Ping 47 12/8 desde 600/600 contra 1000/1000 desde MacBook Pro SO.-.Catalina 10.15.7
3.OVPN --> Ping 22 16/21 desde 600/600 contra 1000/1000 desde MacBook Pro S.O.-.Catalina 10.15.7
4.IKEv2 --> Me falta por acabar de probar
5.WIREGUARD --> Ping 24 66/51 desde 600/600 contra 1000/1000 desde MacBook Pro con 10.15.-.Catalina 10.15.7

En orden de más antigua a más moderna... para ver rendimientos/velocidades... el tema del rendimiento viene dado por la configuración aplicada...tipos de encriptación.... conexión origen conexión destino... etc....

En algún caso he visto en un video de NASeros, haciendo tests (
) yo no me acerco a esas velocidades ni de broma....

No se yo pero las velocidades... entre la 1.PPTP y la 5.WIREGUARD son muy similares en cuanto a bajada... no se si hay mucho más que cacharrear con configuraciones para obtener mejor rendimiento.

Cordialmente,

Juhn_Hoo
A mi wireguard me da mejores resultados que l2tp-ipsec en velocidad, son dos vpn muy potentes. Pero pptp ni lo quiero ver, unos días que en Windows fallaba el l2tp-ipsec por una actualización active pptp y en el log todo eran intentos de acceso al vpn no autorizado.
 
Un export.

Saludos!
Buenas tardes,

Se remite el export a ver si hay algo que merme la velocidad de las VPN

/interface pptp-server
add name=VPN-PPTP user=Sito-PPTP
/interface bridge
add arp=proxy-arp name=BRIDGE protocol-mode=none
/interface ethernet
set [ find default-name=sfp1 ] advertise=\
10M-half,10M-full,100M-half,100M-full,1000M-half,1000M-full name=\
"ETHER00.-.WAN(SFP)"
set [ find default-name=ether1 ] name=ETHER01.-.NAS
set [ find default-name=ether2 ] name=ETHER02.-.TV
set [ find default-name=ether3 ] name=ETHER03.-.ODROID
set [ find default-name=ether4 ] name=ETHER04.-.SOFA
set [ find default-name=ether5 ] advertise=1000M-half,1000M-full name=\
ETHER05.-.TABLE&SERVER
/interface ovpn-server
add name=VPN-OVPN user=Sito-OVPN
/interface l2tp-server
add name=VPN-L2TP user=Sito-L2TP
/interface wireguard
add listen-port=5175 mtu=1420 name=VPN-WIREGUARD
/interface vlan
add interface="ETHER00.-.WAN(SFP)" mtu=1498 name=\
VLAN.-.JAZZTEL_1074_DATA&VOIP vlan-id=1074
/interface ethernet switch
set 0 mirror-source=ETHER03.-.ODROID mirror-target=ETHER04.-.SOFA
/interface ethernet switch port
set 0 default-vlan-id=0
set 1 default-vlan-id=0
set 2 default-vlan-id=0
set 3 default-vlan-id=0
set 4 default-vlan-id=0
set 5 default-vlan-id=0
/interface list
add name=LAN
add name=WAN
/ip ipsec profile
set [ find default=yes ] dh-group=modp1024 enc-algorithm=3des
add dh-group=modp1024 dpd-maximum-failures=1 enc-algorithm=3des lifetime=30m \
name=Profile-IPSEC
add dh-group=modp2048 enc-algorithm=aes-256 hash-algorithm=sha256 name=\
Profile-IKEv2
/ip ipsec peer
add exchange-mode=ike2 name=Sito-IKEv2 passive=yes profile=Profile-IKEv2 \
send-initial-contact=no
/ip ipsec proposal
set [ find default=yes ] enc-algorithms=3des lifetime=50m
add enc-algorithms=3des lifetime=5m name=Proposal-L2TP
add auth-algorithms=sha256 enc-algorithms=aes-256-cbc lifetime=1h name=\
Proporsal-IKEv2 pfs-group=modp2048
/ip pool
add name=DHCP1 ranges=10.0.0.40-10.0.0.190
add name=DHCP3.-.VPN ranges=10.0.0.191-10.0.0.199
add name=DHCP2 ranges=10.0.1.40-10.0.1.254
add name=DHCP4.-.OPENVPN ranges=10.0.0.200-10.0.0.254
/ip dhcp-server
add address-pool=DHCP1 always-broadcast=yes authoritative=after-2sec-delay \
interface=BRIDGE lease-script="#:if (\$leaseBound = \"1\") do={\r\
\n# :log info \"\$leaseActMAC se acaba de conectar\"\r\
\n#} else={\r\
\n# :log info \"\$leaseActMAC se acaba de desconectar\"\r\
\n#}" lease-time=1d name=DHCP1
/ip ipsec mode-config
add address-pool=DHCP3.-.VPN name=Mode-IKEv2 split-include=10.0.0.0/24
/ppp profile
add bridge=BRIDGE change-tcp-mss=yes dns-server=10.0.0.1 local-address=DHCP1 \
name=Profile-L2TP only-one=yes remote-address=DHCP3.-.VPN \
use-compression=yes use-encryption=yes use-mpls=yes
add bridge=BRIDGE change-tcp-mss=yes dns-server=10.0.0.1 local-address=DHCP1 \
name=Profile-PPTP only-one=yes remote-address=DHCP3.-.VPN use-encryption=\
required use-ipv6=default
add bridge=BRIDGE change-tcp-mss=yes dns-server=10.0.0.1 local-address=DHCP1 \
name=Profile-OVPN remote-address=DHCP4.-.OPENVPN use-ipv6=default
/routing ospf instance
add name=default-v2
/routing ospf area
add disabled=yes instance=default-v2 name=backbone-v2
/snmp community
set [ find default=yes ] addresses=0.0.0.0/0
/system logging action
add email-to=juhn.hoo@gmail.com name=email target=email
/interface bridge port
add auto-isolate=yes bridge=BRIDGE ingress-filtering=no interface=\
ETHER02.-.TV
add auto-isolate=yes bridge=BRIDGE ingress-filtering=no interface=\
ETHER03.-.ODROID
add auto-isolate=yes bridge=BRIDGE ingress-filtering=no interface=\
ETHER04.-.SOFA
add auto-isolate=yes bridge=BRIDGE ingress-filtering=no interface=\
ETHER05.-.TABLE&SERVER
add auto-isolate=yes bridge=BRIDGE ingress-filtering=no interface=\
"ETHER00.-.WAN(SFP)"
add bridge=BRIDGE ingress-filtering=no interface=WLAN2.-.Sito-Temp_2.4Ghz
add bridge=BRIDGE ingress-filtering=no interface=ETHER01.-.NAS
add bridge=BRIDGE ingress-filtering=no interface=WLAN3.-.Sito-Wifi_5Ghz
add bridge=BRIDGE ingress-filtering=no interface=WLAN4.-.Sito-Temp_5Ghz
/ip neighbor discovery-settings
set discover-interface-list=!dynamic
/ip settings
set max-neighbor-entries=8192
/ipv6 settings
set disable-ipv6=yes max-neighbor-entries=8192
/interface l2tp-server server
set allow-fast-path=yes authentication=mschap2 default-profile=Profile-L2TP \
enabled=yes max-mru=1460 max-mtu=1460 use-ipsec=yes
/interface list member
add interface=VLAN.-.JAZZTEL_1074_DATA&VOIP list=WAN
add interface=BRIDGE list=LAN
add interface=VPN-L2TP list=LAN
add interface=VPN-OVPN list=LAN
add interface=VPN-PPTP list=LAN
add interface=VPN-WIREGUARD list=LAN
/interface ovpn-server server
set auth=sha1 certificate=Server cipher=aes128 default-profile=Profile-OVPN \
enabled=yes max-mtu=1460 require-client-certificate=yes
/interface pptp-server server
set authentication=mschap2 default-profile=Profile-PPTP enabled=yes max-mru=\
1460 max-mtu=1460
/interface wireguard peers
add allowed-address=10.10.0.2/32 comment=Sito-Phone interface=VPN-WIREGUARD \
public-key="CHORIZO1"
add allowed-address=10.10.0.3/32 comment=Sito-Mac interface=VPN-WIREGUARD \
public-key="CHORIZO2"
/ip address
add address=10.0.0.1/24 comment="Bridge Network" interface=BRIDGE network=\
10.0.0.0
add address=192.168.1.100/24 comment="GPON ZISA OP151S (predeterminada)" \
disabled=yes interface=BRIDGE network=192.168.1.0
add address=10.10.0.1/24 interface=VPN-WIREGUARD network=10.10.0.0
/ip arp
add address=10.0.0.10 interface=BRIDGE mac-address=90:E6:BA:3B:E2:AB
/ip cloud
set update-time=no
/ip dhcp-client
add interface=VLAN.-.JAZZTEL_1074_DATA&VOIP
/ip dhcp-server lease
/ip dhcp-server network
add address=10.0.0.0/24 comment="DHCP Network" dns-server=10.0.0.1 gateway=\
10.0.0.1 netmask=24
/ip dns
set allow-remote-requests=yes cache-max-ttl=1d max-udp-packet-size=512 \
servers=8.8.8.8,8.8.4.4
/ip firewall address-list
add address=80.24.217.4 list=WhiteClient
/ip firewall filter
add action=accept chain=input comment=\
"DEFCONF: ACCEPT ESTABLISHED, RELATED,UNTRACKED" connection-state=\
established,related,untracked
add action=drop chain=input comment="DEFCONF: DROP INVALID" connection-state=\
invalid
add action=accept chain=input comment="DEFCONF: ACCEPT ICMP" protocol=icmp
add action=accept chain=input comment="PERMITE TFTP (69) WHITECLIENT" \
disabled=yes dst-port=69 in-interface-list=WAN protocol=udp \
src-address-list=WhiteClient
add action=accept chain=input comment=\
"PERMITE BRUTE FORCE L2TP,IKEV2 (500,1701,4500) WHITECLIENT" \
connection-state=new disabled=yes dst-port=500,1701,4500 \
in-interface-list=WAN protocol=udp src-address-list=WhiteClient
add action=accept chain=input connection-state=new disabled=yes \
in-interface-list=WAN protocol=ipsec-esp src-address-list=WhiteClient
add action=accept chain=input connection-state=new disabled=yes \
in-interface-list=WAN protocol=ipsec-ah src-address-list=WhiteClient
add action=accept chain=input comment="PERMITE BRUTE FORCE PPTP WHITECLIENT" \
connection-state=new disabled=yes in-interface-list=WAN protocol=gre \
src-address-list=WhiteClient
add action=accept chain=input connection-state=new disabled=yes dst-port=1723 \
in-interface-list=WAN protocol=tcp src-address-list=WhiteClient
add action=accept chain=input comment=\
"PERMITE BRUTE FORCE OPENVPN WHITECLIENT" disabled=yes dst-port=1194 \
protocol=tcp src-address-list=WhiteClient
add action=accept chain=input comment=\
"PERMITE BRUTE FORCE WIREGUARD (5175) WHITECLIENT " disabled=yes \
dst-port=5175 in-interface-list=WAN protocol=udp src-address-list=\
WhiteClient
add action=accept chain=input comment=\
"PERMITE BRUTE FORCE WINBOX (8291) WHITECLIENT" dst-port=8291 \
in-interface-list=WAN protocol=tcp src-address-list=WhiteClient
add action=accept chain=input comment=\
"PERMITE BRUTE FORCE TIKTOOL (872:cool: WHITECLIENT" disabled=yes dst-port=\
8728 in-interface-list=WAN protocol=tcp src-address-list=WhiteClient
add action=drop chain=input comment="DEFCONF: DROP <> LAN" in-interface-list=\
!LAN
add action=accept chain=forward comment=\
"PERMITE BRUTE FORCE FTP (21) WHITECLIENT" disabled=yes dst-port=21 \
in-interface-list=WAN protocol=tcp src-address-list=WhiteClient
add action=accept chain=forward comment=\
"PERMITE BRUTE FORCE SSH (22) WHITECLIENT" dst-port=22 in-interface-list=\
WAN protocol=tcp src-address-list=WhiteClient
add action=accept chain=forward comment=\
"PERMITE BRUTE FORCE RDP (3389) WHITECLIENT" disabled=yes dst-port=\
3389,8081-8200 in-interface-list=WAN protocol=tcp src-address-list=\
WhiteClient
add action=accept chain=forward comment=\
"PERMITE BRUTE FORCE VNC (5900) WHITECLIENT" disabled=yes dst-port=5900 \
in-interface-list=WAN protocol=tcp src-address-list=WhiteClient
add action=drop chain=forward comment="FILTRA SITO-CAM" disabled=yes \
src-address=10.0.0.7
add action=drop chain=forward comment="FILTRA FAIL2BAN ASTERISK (5170)" \
dst-port=5170 in-interface-list=WAN protocol=udp src-address-list=\
F2B-Asterisk
add action=accept chain=forward comment="DEFCONF: ACCEPT IN IPSEC" disabled=\
yes ipsec-policy=in,ipsec
add action=accept chain=forward comment="DEFCONF: ACCEPT OUT IPSEC" disabled=\
yes ipsec-policy=out,ipsec
add action=fasttrack-connection chain=forward comment=\
"DEFCONF: ACCEPT ESTABLISHED, RELATED" connection-state=\
established,related hw-offload=yes
add action=accept chain=forward comment=\
"DEFCONF: ACCEPT ESTABLISHED, RELATED, UNTRACKED" connection-state=\
established,related,untracked
add action=drop chain=forward comment="DEFCONF: DROP INVALID" \
connection-state=invalid
add action=drop chain=forward comment="DEFCONF: DROP WAN <> NAT" \
connection-nat-state=!dstnat connection-state=new in-interface-list=WAN
/ip firewall nat
add action=masquerade chain=srcnat comment="DEFCONF: MASQUERADE" \
ipsec-policy=out,none out-interface-list=WAN to-addresses=0.0.0.0
add action=masquerade chain=srcnat comment="ONT's" disabled=yes \
out-interface-list=LAN
/ip firewall service-port
set ftp disabled=yes
set tftp disabled=yes
set irc disabled=yes
set h323 disabled=yes
set pptp disabled=yes
set udplite disabled=yes
set dccp disabled=yes
set sctp disabled=yes
/ip ipsec identity
add generate-policy=port-strict mode-config=Mode-IKEv2 peer=Sito-IKEv2
/ip ipsec policy
set 0 proposal=Proposal-L2TP
add comment="POLICY FOR SITO-L2TP" proposal=Proposal-L2TP template=yes
add comment="POLICY FOR SITO-IKEv2" proposal=Proporsal-IKEv2 template=yes
/ip proxy
set cache-path=web-proxy1
/ip service
set telnet disabled=yes
set ftp disabled=yes
set www disabled=yes
/ip smb shares
set [ find default=yes ] directory=/pub
/ip ssh
set allow-none-crypto=yes forwarding-enabled=remote
/ip tftp
add disabled=yes
/ip upnp
set show-dummy-rule=no
/ip upnp interfaces
add interface=VLAN.-.JAZZTEL_1074_DATA&VOIP type=external
/ppp secret
add name=Sito-L2TP profile=Profile-L2TP service=l2tp
add name=Sito-PPTP profile=Profile-PPTP service=pptp
add name=Sito-OVPN profile=Profile-OVPN service=ovpn
/routing igmp-proxy interface
add disabled=yes interface=BRIDGE
/system clock
set time-zone-autodetect=no time-zone-name=Europe/Madrid
/system identity
set name=Sito-MikroTik
/system logging
add action=email disabled=yes topics=error
add topics=tftp
/system ntp client
set enabled=yes
/system ntp client servers
add address=17.253.52.253
add address=150.214.94.5
/tool bandwidth-server
set authenticate=no enabled=no

Cordialmente,

Juhn_Hoo
 
Tienes tocada la config por defecto del IPSec. Probaría con la que trae por defecto, a ver qué velocidad te da.

Saludos!
 
Tienes tocada la config por defecto del IPSec. Probaría con la que trae por defecto, a ver qué velocidad te da.

Saludos!
Buenas tardes,

Cuando te refieres a la configuración por defecto del IPSEC podrías especificar... tengo varios Mikrotik 962UiGS-5HacT2HnT entiendo que depende de la versión de Routeros que tengas 6 o 7 la config por defecto es una u otra?

Es dificil saber exactamente que configuración es la por defecto "correcta/optimizada". Se entiende que lo que tengo que hacer es poner por defecto el Mikrotik 962UiGS-5HacT2HnT a la versión 7.1.3 y ver dichas configuraciones??

Cordialmente,

Juhn_Hoo
 
Buenas tardes,

Cuando te refieres a la configuración por defecto del IPSEC podrías especificar... tengo varios Mikrotik 962UiGS-5HacT2HnT entiendo que depende de la versión de Routeros que tengas 6 o 7 la config por defecto es una u otra?

Es dificil saber exactamente que configuración es la por defecto "correcta/optimizada". Se entiende que lo que tengo que hacer es poner por defecto el Mikrotik 962UiGS-5HacT2HnT a la versión 7.1.3 y ver dichas configuraciones??

Cordialmente,

Juhn_Hoo
Resetea uno sin marcar el “no default configuration” y lo sabrás.

Saludos!
 
Voy a hacer una pregunta, probablemente muy idiota.

Entiendo que todo el tráfico a través de WireGuard va cifrado ¿No? ¿Es más seguro este cifrado que las alternativas anteriores como OpenVPN, L2TP, IKE, etc...?

P.D.: Para generar una "pre-shared key" el comando wg genpsk no me funcionaba, pero vamos, creas un peer nuevo desde la GUI y ya te genera una clave pública nueva que puedes utilizar como pre-shared.

P.D.2.: Según he leido, el uso de una pre-shared key no afecta al rendimiento, ya que esta solamente se usa para mezclarla con las claves publicas cada X minutos. Además, en caso de que en un futuro el intercambio de claves públicas pudiese verse comprometido, haría falta la pre-shared para conseguir conectarse a la red.
 
Entiendo que todo el tráfico a través de WireGuard va cifrado ¿No? ¿Es más seguro este cifrado que las alternativas anteriores como OpenVPN, L2TP, IKE, etc...?
Sí, va cifrado. El nivel de cifrado es bueno, más que aceptable. No es más cifrado que IKEv2 con claves de 4096 bytes, pero sí un buen cifrado.

P.D.: Para generar una "pre-shared key" el comando wg genpsk no me funcionaba, pero vamos, creas un peer nuevo desde la GUI y ya te genera una clave pública nueva que puedes utilizar como pre-shared.
Una clave pública es una cosa, una pre-shared-key es otra. Ojo no mezcles cosas. La clave publica/privada encripta. La pre-shared-key es un paso "adicional" de seguridad para poder hacer uso de lo anterior.

P.D.2.: Según he leido, el uso de una pre-shared key no afecta al rendimiento, ya que esta solamente se usa para mezclarla con las claves publicas cada X minutos. Además, en caso de que en un futuro el intercambio de claves públicas pudiese verse comprometido, haría falta la pre-shared para conseguir conectarse a la red.
Correcto. Viene a funcionar igual que cuando tú generas un par de claves pública y privda en local y le metes un pre-shared-key. Cuando te las lleves de paseo y quieras instalarlas en otra máquina, te pedirá la pre-shared-key para poder hacer uso de ella. Aquí igual, pero entre pares: para que ambos pares puedan hacer uso de las claves que han intercambiado, necesitan conocer ambos extremos la PSK. Pero ya está, algo adicional, nada necesario para encriptar el túnel.

Saludos!
 
Arriba