OpenVPN en PiHole. DNS problemen

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Berimbau
  • Registratie: Oktober 2002
  • Laatst online: 08-10 08:04
In Azure heb ik een netwerk segment gemaakt met twee Ubuntu machines, de ene draait PiHole en de andere OpenVPN. Lokale IP-adressen zijn:

PI: 192.168.0.4
VPN: 192.168.0.5

Uiteraard hebben beide servers ook een publiek IP-adres.
OpenVPN is zodanig geconfigureerd vanuit de install dat in de server.conf deze regel staat:

push "dhcp-option DNS 192.168.0.4"

Er is een clientprofile gegenereerd en deze is actief op mijn iphone.

Mijn wifi netwerk thuis geeft via DHCP ipadressen uit en DNS is het publieke IP-adres van mijn Pihole server. Deze werkt perfect!

Via 4G verbinding kan ik geen DNS server opgeven, dus moet ik gebruik maken van de openVPN. Echter deze werkt alleen als ik in de clientprofile DNS fallback aangeef via google DNS servers, deze optie wil ik echter uitschakelen zodat de door mij ingestelde DNS server (pihole) wordt gebruikt. Resultaat is dat DNS resolving niet werkt. Ook na proberen in de server.conf het publieke adres van mijn pihole op te geven, hetzelfde resultaat.

Ik kan vanaf de VPN server pihole pingen. Met NSlookup en verbinding makende met de pihole private adres kan ik zelfs websites op internet resolven.

Ik kom er niet meer uit. Wie kan mij helpen zodat ik VPN kan gebruiken op mijn 4G met piholeDNS, liefst het interne IP-adres van piHole.

Acties:
  • +1 Henk 'm!

  • stijnos1991
  • Registratie: Oktober 2005
  • Laatst online: 05-10 12:42
Dit is misschien niet het antwoord wat je wilt horen, maar kijk eens naar Wireguard. Véél eenvoudiger configureren. Jouw geschetste situatie heb ik op die manier draaien.

Acties:
  • 0 Henk 'm!

  • Berimbau
  • Registratie: Oktober 2002
  • Laatst online: 08-10 08:04
Met openvpn moet het ook gewoon lukken. Naar andere tools grijp ik pas als het niet anders lukt.

Acties:
  • 0 Henk 'm!

  • jurroen
  • Registratie: Mei 2012
  • Laatst online: 09:27

jurroen

Security en privacy geek

In welk subnet vallen de VPN clients? Gebruik je TUN of TAP? Heb je eventueel een andere firewall policy op de OVPN interface?

Ongevraagde verzoeken per DM beantwoord ik niet, sorry


Acties:
  • 0 Henk 'm!

  • Berimbau
  • Registratie: Oktober 2002
  • Laatst online: 08-10 08:04
Ik heb geen idee of ik TUN of TAP heb Jurroen, zegt mij ook niet veel om eerlijk te zijn. Ik heb op Ubuntu gewoon een standaard installatie gedaan van OpenVPN met een aangepaste openvpn.sh waarin ik de keuze opgeef mijn eigen DNS server op te geven. Wat IP-range betreft voor mijn lient krijg ik een 10.x.x.x adres uitgeleverd.
OpenVPN werkt prima met de Google DNS-fallback optie.

Acties:
  • +1 Henk 'm!

  • nielsl
  • Registratie: Januari 2006
  • Laatst online: 18-06 20:00
Klinkt als een routering probleem. Weet die pi hole VM dat deze verkeer naar 10.0.8.x/24 (standaard openvpn cliënt reeks) moet afleveren op 192.168.0.5

Voer op je pi hole het volgende commando even uit:

code:
1
ip route show


Ik vermoed dat je het volgende commando moet draaien om de route toe te voegen:

code:
1
sudo ip route add 10.0.8.0/24 via 192.168.0.5


Let wel, dit gaat er dus van uit dat je openvpn server adressen uitdeelt in de 10.0.8.0/24 reeks. Als dat een andere reeks is pas het tweede commando dan aan naar die betreffende reeks.

[ Voor 3% gewijzigd door nielsl op 12-01-2020 21:46 ]


Acties:
  • 0 Henk 'm!

  • Berimbau
  • Registratie: Oktober 2002
  • Laatst online: 08-10 08:04
Hoi Nielsl bedankt voor het meedenken.

Ik heb nu de route toegevoegd. De volgende regel staat in mijn routetabel met het juiste client segment op de pihole server :
10.8.0.0/24 via 192.168.0.5 dev eth0

Het resultaat is echter hetzelfde. Kan geen verbindingen met webpagina's maken vanwege resolving issues.
ik heb nu 8.8.8.8 als DNS server opgegeven in de openvpn server.conf file en de server een herstart gegeven, maar zelfs hier lukt het niet mee.

Als ik een VPN verbinding met met de iphone opbouw krijg ik adres 10.8.0.2. Dit adres kan ik ondanks het toevoegen van de route niet pingen.

Wat is hier anders aan dan in de client aangeven dat je fallback wil inschakelen naar google DNS servers?

[ Voor 11% gewijzigd door Berimbau op 13-01-2020 10:41 ]


Acties:
  • 0 Henk 'm!

  • Kasper1985
  • Registratie: Oktober 2014
  • Laatst online: 14:13
Ik sluit me volledig aan bij de eerste reactie. Kijk eens naar Wireguard als alternatief voor OpenVPN. Tenzij je specifieke redenen hebt om perse OpenVPN te willen gebruiken. Wireguard is stukken simpeler (keys ipv certificaten) en vele malen sneller. Er is wellicht maar 1 nadeel en dat is dat het nog sterk in ontwikkeling is. Het is dus niet aan te raden voor gevoelige productie systemen of om zomaar bij een klant bijvoorbeeld op te zetten.

Verder kan ik alleen maar zeggen dat ik met beide nu ervaring heb en Wireguard er aan alle kanten uit springt in positieve zin.

https://github.com/notasausage/pi-hole-unbound-wireguard

Dit gaat om een raspberry pi voor een thuis situatie maar er is genoeg info te vinden voor het opzetten hiervan op een VPS en is echt een fluitje van een cent.

Acties:
  • 0 Henk 'm!

  • nielsl
  • Registratie: Januari 2006
  • Laatst online: 18-06 20:00
Berimbau schreef op maandag 13 januari 2020 @ 09:41:
Hoi Nielsl bedankt voor het meedenken.

Ik heb nu de route toegevoegd. De volgende regel staat in mijn routetabel met het juiste client segment op de pihole server :
10.8.0.0/24 via 192.168.0.5 dev eth0

Het resultaat is echter hetzelfde. Kan geen verbindingen met webpagina's maken vanwege resolving issues.
ik heb nu 8.8.8.8 als DNS server opgegeven in de openvpn server.conf file en de server een herstart gegeven, maar zelfs hier lukt het niet mee.

Als ik een VPN verbinding met met de iphone opbouw krijg ik adres 10.8.0.2. Dit adres kan ik ondanks het toevoegen van de route niet pingen.

Wat is hier anders aan dan in de client aangeven dat je fallback wil inschakelen naar google DNS servers?
OK, das stap 1, nu weet de PiHole server waar hij verkeer voor 10.0.8.0/24 naartoe moet sturen. Je moet ook nog aan de client vertellen dat deze verkeer voor je PI machine (192.168.0.4) moet sturen naar de VPN server. Voeg aan je server.conf de volgende optie toe:

code:
1
push "route 192.168.0.4 255.255.255.255"


Een tweede gedachte: Heb je verder ipv4 forwarding aangezet op je VPN server? Controleer even de uitkomst van het volgende commando

code:
1
cat /proc/sys/net/ipv4/ip_forward


Als de output "0" is, volg dan even deze tutorial om IPv4 forwarding aan te zetten. Je VPN server gaat immers als router fungeren in deze setup.

https://tecadmin.net/enable-ip-forwarding-linux/

@Kasper1985 TS heeft geen probleem met het opzetten van de VPN verbinding, die werkt, dus daar maakt Wireguard niet echt een verschil. Ik vermoed dat TS een routing issue heeft, de client kan de PiHole server intern niet benaderen. Omdat standaard OpenVPN niet aan NAT doet, zul je

1) een route voor de OpenVPN client range toevoegen aan de Pihole (of de router in Azure)
2) een route voor de PiHole server pushen naar clients (middels de server.conf van openvpn)
3) IPv4 forwarding enablen op de OpenVPN server, anders stuurt die nog steeds geen pakketten door

Volgens mij helpt wireguard nog steeds niet met deze drie zaken, maar ik laat me graag vertellen dat dat wel zo is! :)

Acties:
  • 0 Henk 'm!

  • Kasper1985
  • Registratie: Oktober 2014
  • Laatst online: 14:13
@nielsl


https://github.com/notasausage/pi-hole-unbound-wireguard

Lees (of scan) dit even door. Nergens hoef je bij Wireguard routes toe te voegen. Er is 1 regel in de config: AllowedIP's die routes automatisch toevoegt als de tunnel up gaat en weer weg haalt als de tunnel down gaat.

OpenVPN is een stuk ingewikkelder om op te zetten (reden voor dit topic) zodra je meer wil dan alleen een standaard tunnel.

Omdat je IPtable regels kan verwerken in de config op de server hoeft dat dus ook niet apart. Het IP forwarden kan ook opgenomen worden in de config op de server. Zorgt er dus ook voor dat het stopt als de tunnel down gaat.

Wireguard is letterlijk 2 config bestandjes en 4 keys genereren. Kind kan de was doen. Zo heb ik 100 bruiloft gasten van VPN voorzien op Bali.
Enige nadeel daarbij was dat de QR code niet wilde scannen in de zon bij het zwembad. We moesten daarvoor even naar binnen.

P.S. Nee heb geen aandelen.

[ Voor 15% gewijzigd door Kasper1985 op 14-01-2020 11:18 ]


Acties:
  • 0 Henk 'm!

  • nielsl
  • Registratie: Januari 2006
  • Laatst online: 18-06 20:00
Kasper1985 schreef op dinsdag 14 januari 2020 @ 11:15:
@nielsl


https://github.com/notasausage/pi-hole-unbound-wireguard

Lees (of scan) dit even door. Nergens hoef je bij Wireguard routes toe te voegen. Er is 1 regel in de config: AllowedIP's die routes automatisch toevoegt als de tunnel up gaat en weer weg haalt als de tunnel down gaat.

OpenVPN is een stuk ingewikkelder om op te zetten (reden voor dit topic) zodra je meer wil dan alleen een standaard tunnel.

Omdat je IPtable regels kan verwerken in de config op de server hoeft dat dus ook niet apart. Het IP forwarden kan ook opgenomen worden in de config op de server. Zorgt er dus ook voor dat het stopt als de tunnel down gaat.

Wireguard is letterlijk 2 config bestandjes en 4 keys genereren. Kind kan de was doen. Zo heb ik 100 bruiloft gasten van VPN voorzien op Bali.
Enige nadeel daarbij was dat de QR code niet wilde scannen in de zon bij het zwembad. We moesten daarvoor even naar binnen.

P.S. Nee heb geen aandelen.
Leuke installatie, en laat ik beginnen met te zeggen dat ik wireguard een fantastisch stukje software vind! Het verschil tussen de situatie van TS en de usecase beschreven op de repository die je deelde is dat in de tweede usecase alle software op één host staat. In het geval van TS staat de software verspreid over 2 machines. Of dat nodig is, VPN en DNS voor een beperkt aantal hosts kan prima op één VM draaien naar mijn mening, ik denk het niet. Om verkeer over een VPN te laten lopen naar hosts in het netwerk van de VPN server, en weer terug vereist dat

- Of er gebruik wordt gemaakt van NAT
- Of dat de VPN client next hop, waarschijnljik de VPN server zelf, bekend wordt gemaakt op de andere servers. En dat kan dan weer met een extra route op de andere servers, prima als het om een klein aantal gaat, of het toevoegen van een route aan de routetabel van de router. Iets dat je op Azure ook prima kunt doen.

In het geval van Wireguard wordt een wgX adapter toegevoegd, die je met normale kernel routing opties kunt gebruiken in je routes (zie https://www.wireguard.com/netns/).

TL;DR -> wireguard, top oplossing voor VPN, TS kiest voor OpenVPN en heeft dat stuk al aan de praat. Volgens mij heeft TS een routing issue, tussen een andere server en zijn VPN client, iets dat je met routes oplost. Iets dat wireguard ook vereist op het moment dat je méér dan één server gebruikt om diensten vanaf te serveren

Acties:
  • 0 Henk 'm!

  • Berimbau
  • Registratie: Oktober 2002
  • Laatst online: 08-10 08:04
Ik heb om van de ellende af te zijn de aparte openvpn server verwijderd uit Azure en de installatie op de pihole-server gedaan. Hier heb ik geen last meer van vage routing problemen. Dit werkt goed. Het was nog even uitzoeken of ik 127.0.0.1 moest opgeven als DNS of het lokale IP-adres van de pihole server. Het bleek de laatste te zijn.

Alle verkeer van mijn iphone (via VPN) gaat nu op 4G over de pihole/vpn server. Nu ga ik nog even uitzoeken hoe ik ervoor kan zorg dragen dat enkel de DNS zaken over de VPN lopen en de rest over de 4G.

Veel dank iedereen zover!

Acties:
  • 0 Henk 'm!

  • nielsl
  • Registratie: Januari 2006
  • Laatst online: 18-06 20:00
Berimbau schreef op woensdag 15 januari 2020 @ 09:41:
Ik heb om van de ellende af te zijn de aparte openvpn server verwijderd uit Azure en de installatie op de pihole-server gedaan. Hier heb ik geen last meer van vage routing problemen. Dit werkt goed. Het was nog even uitzoeken of ik 127.0.0.1 moest opgeven als DNS of het lokale IP-adres van de pihole server. Het bleek de laatste te zijn.

Alle verkeer van mijn iphone (via VPN) gaat nu op 4G over de pihole/vpn server. Nu ga ik nog even uitzoeken hoe ik ervoor kan zorg dragen dat enkel de DNS zaken over de VPN lopen en de rest over de 4G.

Veel dank iedereen zover!
Goed te lezen! Succes met je set-up!

Acties:
  • 0 Henk 'm!

  • Berimbau
  • Registratie: Oktober 2002
  • Laatst online: 08-10 08:04
DNS only routing via VPN inmiddels ook voor elkaar.
In de client config file van openvpn de volgende zaken toegevoegd:

route-nopull
route 192.168.0.0 255.255.255.240 vpn_gateway
dhcp-option DNS 192.168.0.4

Al het andere verkeer loopt via de dan actieve verbinding Wifi of 4G.
Scheelt een boel bandbreedte gebruik op de Azure openvpn VM.
Pagina: 1