Configuracion Red Wireguard + Hairpin NAT + Pihole

Buenas,
Desde hace ya unas semanas que tengo configurado Wireguard RW configurado en el router y un peer en el android y otro en el mac.
Todo perfecto hasta entonces!!

El otro dia instalo Caddy por docker en la raspberry, para poder acceder a homeassistant desde el exterior, lo configure con duckdns y me funciono bien a ratos, se desconectaba y se quedaba colgado al querer acceder desde mi red al dominio.
Desde fuera funciona ok.
Me puse a reconfigurar el Hairpin NAT que tenia y tambien añadí dominios a los DNS Static.
Y me funciono al realizar DNS Static, no supe hacer funcionar la regla del Hairpin NAT (o al menos eso creo).
Porque ahora teniendo los dominios en DNS static desactivados, con la regla que tengo para el Hairpin NAT puedo acceder a los dominios desde dentro de mi red.

El caso que desde estuve trasteando con todo este tema, Wireguard me hace el tunel desde el mobil pero puedo navegar desde el.
Tambien tengo una raspberry con el pihole, la cual tengo la IP en DHCP Server (DNS Server).
Lo ideal seria poder navegar siempre con Wireguard activado ya sea dentro o fuera de casa y que siempre todo pasara a traves del PIHOLE, pero eso puede ser mas complicado de implementar.

Os expongo mi configuracion:

/interface bridge
add admin-mac=xxxxxxxxxx auto-mac=no comment=defconf name=bridge
/interface wireguard
add listen-port=13231 mtu=1420 name=MikroTik-Wireguard
/interface vlan
add interface=ether1 name=vlan20 vlan-id=20
/interface pppoe-client
add ac-name=ftth add-default-route=yes disabled=no interface=vlan20 max-mru=1492 max-mtu=1492 name=pppoe-out1 service-name=\
ftth user=xxxxxxxx@digi
/interface list
add comment=defconf name=WAN
add comment=defconf name=LAN
/interface wireless security-profiles
set [ find default=yes ] supplicant-identity=MikroTik
/ip dhcp-server option
add code=6 name=DNS_MK value="'192.168.1.1'"
/ip pool
add name=default-dhcp ranges=192.168.1.7-192.168.1.254
/ip dhcp-server
add address-pool=default-dhcp interface=bridge name=defconf
/port
set 0 name=serial0
/ppp profile
set *FFFFFFFE dns-server=192.168.1.1,1.1.1.1
/interface bridge port
add bridge=bridge comment=defconf interface=ether2
add bridge=bridge comment=defconf interface=ether3
add bridge=bridge comment=defconf interface=ether4
add bridge=bridge comment=defconf interface=ether5
add bridge=bridge comment=defconf interface=sfp1
/ip neighbor discovery-settings
set discover-interface-list=LAN
/interface detect-internet
set detect-interface-list=all
/interface l2tp-server server
set authentication=mschap2 enabled=yes use-ipsec=required
/interface list member
add comment=defconf interface=bridge list=LAN
add comment=defconf interface=ether1 list=WAN
add interface=pppoe-out1 list=WAN
add interface=MikroTik-Wireguard list=LAN
/interface wireguard peers
add allowed-address=192.168.32.3/32 comment="Pixel 6 Pro" interface=MikroTik-Wireguard public-key=\
"xxxxxxxxxx++UXvsm0="
add allowed-address=192.168.32.4/32 comment=Macbook interface=MikroTik-Wireguard public-key=\
"xxxxxxxxx+DTv3rBnKVt1wuab02V1Ucn4="
/ip address
add address=192.168.1.1/24 comment=defconf interface=bridge network=192.168.1.0
add address=192.168.32.1/24 interface=MikroTik-Wireguard network=192.168.32.0
/ip cloud
set ddns-enabled=yes
/ip cloud advanced
set use-local-address=yes
/ip dhcp-server lease
add address=192.168.1.16 client-id=1xxxxxxxe9:c7:7c mac-address=5xxxxxxxxx7:7C server=defconf
add address=192.168.1.13 client-id=1:xxxxxxxa:b6:a1 mac-address=16:xxxx:xxxxxB6:A1 server=defconf
add address=192.168.1.11 client-id=1:xxxxxxx0:42:74 mac-address=9xxxxxxxxx42:74 server=defconf
add address=192.168.1.17 client-id=1:xxxxxxx9f:20:a2 mac-address=Cxxxxxxxxx:20:A2 server=defconf
/ip dhcp-server network
add address=192.168.1.0/24 comment=defconf dns-server=192.168.1.40,1.1.1.1 gateway=192.168.1.1
/ip dns
set allow-remote-requests=yes servers=1.1.1.1
/ip dns static
add address=192.168.1.1 comment=defconf name=router.lan
add address=192.168.1.100 disabled=yes name=xxxxxx
add address=192.168.1.11 disabled=yes name=dxxxxxxxx.com
/ip firewall address-list
add address=xxxxxxxxxynetname.net disabled=yes list=public-ip
/ip firewall filter
add action=accept chain=input comment="defconf: accept established,related,untracked" connection-state=\
established,related,untracked
add action=accept chain=input comment="allow WireGuard" dst-port=13231 protocol=udp
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="defconf: accept to local loopback (for CAPsMAN)" dst-address=127.0.0.1
add action=accept chain=forward comment="defconf: accept in ipsec policy" ipsec-policy=in,ipsec
add action=accept chain=forward comment="defconf: accept out ipsec policy" ipsec-policy=out,ipsec
add action=accept chain=input comment="Acces winbox" disabled=yes dst-port=8291 protocol=tcp
add action=drop chain=input comment="defconf: drop all not coming from LAN" in-interface-list=LAN
add action=fasttrack-connection chain=forward comment="defconf: fasttrack" 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 all from WAN not DSTNATed" connection-nat-state=!dstnat \
connection-state=new in-interface-list=WAN
/ip firewall nat
add action=masquerade chain=srcnat comment="Hairpin NAT" dst-address=192.168.1.0/24 src-address=192.168.1.0/24
add action=masquerade chain=srcnat comment="LAN-WAN Masquerade" ipsec-policy=out,none out-interface-list=WAN src-address=\
192.168.1.0/24
add action=dst-nat chain=dstnat comment="Synology https" dst-port=xxxxx protocol=tcp to-addresses=192.168.1.xxxx to-ports=\
9643
add action=dst-nat chain=dstnat comment="Synology http" dst-port=xxxxx in-interface-list=WAN protocol=tcp src-port="" \
to-addresses=192.168.1.xxxx to-ports=xxxx
add action=dst-nat chain=dstnat comment=Plex dst-port=32400 in-interface-list=WAN protocol=tcp to-addresses=192.168.1.xxx \
to-ports=32400
add action=dst-nat chain=dstnat comment="Unraid SSL" disabled=yes dst-port=xxxx in-interface-list=WAN protocol=tcp \
src-port="" to-addresses=192.168.1.xxx to-ports=xxxx
add action=dst-nat chain=dstnat comment="Nginx 443" dst-port=xxxx in-interface-list=WAN protocol=tcp src-port="" \
to-addresses=192.168.1.xxxto-ports=xxxx
add action=dst-nat chain=dstnat comment="Nginx 80" dst-port=xxxx in-interface-list=WAN protocol=tcp src-port="" to-addresses=\
192.168.1.xxx to-ports=xxxx
add action=dst-nat chain=dstnat comment=Ghostreamy dst-port=xxxx in-interface-list=WAN protocol=tcp to-addresses=\
192.168.1.xxxx to-ports=xxxx
/ip firewall service-port
set ftp disabled=yes
set tftp disabled=yes
set sip disabled=yes
set udplite disabled=yes
set dccp disabled=yes
set sctp disabled=yes
/ip service
set telnet disabled=yes
set ftp disabled=yes
/ipv6 address
add address=::1 from-pool=pool6 interface=bridge
/ipv6 dhcp-client
add interface=pppoe-out1 pool-name=pool6 rapid-commit=no request=address,prefix use-peer-dns=no
/ipv6 firewall address-list
add address=::/128 comment="defconf: unspecified address" list=bad_ipv6
add address=::1/128 comment="defconf: lo" list=bad_ipv6
add address=fec0::/10 comment="defconf: site-local" list=bad_ipv6
add address=::ffff:0.0.0.0/96 comment="defconf: ipv4-mapped" list=bad_ipv6
add address=::/96 comment="defconf: ipv4 compat" list=bad_ipv6
add address=100::/64 comment="defconf: discard only " list=bad_ipv6
add address=2001:db8::/32 comment="defconf: documentation" list=bad_ipv6
add address=2001:10::/28 comment="defconf: ORCHID" list=bad_ipv6
add address=3ffe::/16 comment="defconf: 6bone" list=bad_ipv6
/ipv6 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 ICMPv6" protocol=icmpv6
add action=accept chain=input comment="defconf: accept UDP traceroute" port=33434-33534 protocol=udp
add action=accept chain=input comment="defconf: accept DHCPv6-Client prefix delegation." dst-port=546 protocol=udp \
src-address=fe80::/10
add action=accept chain=input comment="defconf: accept IKE" dst-port=500,4500 protocol=udp
add action=accept chain=input comment="defconf: accept ipsec AH" protocol=ipsec-ah
add action=accept chain=input comment="defconf: accept ipsec ESP" protocol=ipsec-esp
add action=accept chain=input comment="defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec
add action=drop chain=input comment="defconf: drop everything else not coming from LAN" in-interface-list=!LAN
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 packets with bad src ipv6" src-address-list=bad_ipv6
add action=drop chain=forward comment="defconf: drop packets with bad dst ipv6" dst-address-list=bad_ipv6
add action=drop chain=forward comment="defconf: rfc4890 drop hop-limit=1" hop-limit=equal:1 protocol=icmpv6
add action=accept chain=forward comment="defconf: accept ICMPv6" protocol=icmpv6
add action=accept chain=forward comment="defconf: accept HIP" protocol=139
add action=accept chain=forward comment="defconf: accept IKE" dst-port=500,4500 protocol=udp
add action=accept chain=forward comment="defconf: accept ipsec AH" protocol=ipsec-ah
add action=accept chain=forward comment="defconf: accept ipsec ESP" protocol=ipsec-esp
add action=accept chain=forward comment="defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec
add action=drop chain=forward comment="defconf: drop everything else not coming from LAN" in-interface-list=!LAN
/ipv6 nd
set [ find default=yes ] disabled=yes
add interface=bridge
/tool mac-server
set allowed-interface-list=LAN
/tool mac-server mac-winbox
set allowed-interface-list=LAN
[admin@MikroTik] >

Saludos!!!
 
Sinceramente, no he entendido nada.

Wireguard + Hairpin NAT + Pihole​

¿qué no te funciona? Porque son tres cosas, cada independiente.

Saludos!
 
Sinceramente, no he entendido nada.

Wireguard + Hairpin NAT + Pihole​

¿qué no te funciona? Porque son tres cosas, cada independiente.

Saludos!
Hola,
Pues no puedo navegar con los peers cuando tengo wireguard activo.
A su vez me gustaría que pihole actuará sobre los clientes de wireguard.
Verificar que la regla del Hairpin Nat és correcta.
Saludos!!
 
Pues no puedo navegar con los peers cuando tengo wireguard activo.
No veo la configuración de dichos Peers. ¿has puesto los DNS? Me refiero a la app en el cliente móvil que sea. De todas formas, creo que la has cagado modificando la regla de NAT que hace masquerade, al especificar el src-address

A su vez me gustaría que pihole actuará sobre los clientes de wireguard.
Si el pi-hole está dentro de la red, (colgando del router y en una IP alcanzable desde este) funciona tal cual se lo des al cliente móvil.


Verificar que la regla del Hairpin Nat és correcta.
El hairpin se puede hacer de muchas formas. Pero, de la manera que lo tienes, no creo que te vaya a funcionar. Porque, cuando accedes desde dentro de tu red, no cumples el in-interface-list=WAN. Cámbialo mejor por el ejemplo que tengo documentado en el manual de tips&tricks, usando como filtro dst-address-list=public-ip en lugar del anterior

Saludos!
 
No veo la configuración de dichos Peers. ¿has puesto los DNS? Me refiero a la app en el cliente móvil que sea. De todas formas, creo que la has cagado modificando la regla de NAT que hace masquerade, al especificar el src-address
Hola esta es mi configuracion en el movil.
1667508102232.png


Si el pi-hole está dentro de la red, (colgando del router y en una IP alcanzable desde este) funciona tal cual se lo des al cliente móvil.



El hairpin se puede hacer de muchas formas. Pero, de la manera que lo tienes, no creo que te vaya a funcionar. Porque, cuando accedes desde dentro de tu red, no cumples el in-interface-list=WAN. Cámbialo mejor por el ejemplo que tengo documentado en el manual de tips&tricks, usando como filtro dst-address-list=public-ip en lugar del anterior

 
Arriba