Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

VM via Wireguard mit pfsense verbinden

Featured Replies

Moin

 

Ich habe derzeit eine getunnelte Verbindung via Wireguard zu einem Server im Netz wo pfsense drauf läuft um einige meiner Docker Container z.b nextcloud und eigene Webseite. 

 

Ich habe bisher einfach die Schnittstelle im Docker Einstellungen  von Brige auf die Wireguard verbindung geändert, funktioniert auch alles wie soll. Jetzt möchte ich das gleiche mit meiner VM wo homeassistant drauf läuft genau so machen aber leider kann ich da in der Verbindung Schnittstelle nicht den Wireguard tunnel auswählen. Gibt's da eine Möglichkeiten das so ähnlich hinzubekommen ?

Solved by Mainfrezzer

Mit VMs, schwierig(er). Denke mal dass das sehr möglich ist, aber da müsst ich mich durch die Konfiguration wühlen.

Das einfachste wären, wenn man Wireguard selbst auf der VM installiert, ansonsten könnte man auch das hier versuchen. https://github.com/bigmoby/addon-wireguard-client

hab aber selber keine Ahnung von dem ganzen Homeassistant kram.


Bei dem Addon ist aber eventuell das Problem dass das komplette routen von Traffic nicht "simpel" mit 0.0.0.0/0 zu funktionieren scheint.

Edited by Mainfrezzer

  • Author
10 minutes ago, Mainfrezzer said:

Das einfachste wäre, wenn man Wireguard selbst auf der VM installiert

Was wäre da der Ansatz das umzusetzen? 

  • Solution

Ich hab mich jetzt mal mit Homeassistant beschäftigt, was eine Folter.


Die Unraid-Variante ist einfacher xD

einmal die .xml irgendwo, am besten unter /tmp erstellen.
 

<network>
  <name>virtbr10</name>
  <bridge name="virbr10"/>
  <forward mode="nat" dev="wg0"/>
  <ip address="10.0.20.1" netmask="255.255.255.0">
    <dhcp>
      <range start="10.0.20.2" end="10.0.20.254"/>
    </dhcp>
  </ip>
</network>

(kann natürlich und eventuell muss abgeändert werden damit das Wireguard-Interface für Dockercontainer, bei mir wg0, stimmt)

virsh net-define PFAD/ZUR/XML
virsh net-start virtbr10
virsh net-autostart virtbr10

Dann hat man unter der VM die Auswahlmöglichkeit virbr10 zu nehmen, welches die VPN Verbindung ist.


EDIT:
Ganz vergessen.

In der Go-Datei oder sonstwo muss dann noch
 

ip route add default dev wg0 table 100
ip rule add prio 100 iif virbr10 table 100

Eingebracht werden, sonst hat das Interface keine Verbindung.

Edited by Mainfrezzer

  • Author
18 hours ago, Mainfrezzer said:

Ich hab mich jetzt mal mit Homeassistant beschäftigt, was eine Folter.


Die Unraid-Variante ist einfacher xD

einmal die .xml irgendwo, am besten unter /tmp erstellen.
 

<network>
  <name>virtbr10</name>
  <bridge name="virbr10"/>
  <forward mode="nat" dev="wg0"/>
  <ip address="10.0.20.1" netmask="255.255.255.0">
    <dhcp>
      <range start="10.0.20.2" end="10.0.20.254"/>
    </dhcp>
  </ip>
</network>

(kann natürlich und eventuell muss abgeändert werden damit das Wireguard-Interface für Dockercontainer, bei mir wg0, stimmt)

virsh net-define PFAD/ZUR/XML
virsh net-start virtbr10
virsh net-autostart virtbr10

Dann hat man unter der VM die Auswahlmöglichkeit virbr10 zu nehmen, welches die VPN Verbindung ist.


EDIT:
Ganz vergessen.

In der Go-Datei oder sonstwo muss dann noch
 

ip route add default dev wg0 table 100
ip rule add prio 100 iif virbr10 table 100

Eingebracht werden, sonst hat das Interface keine Verbindung.

 

Ich danke dir erstmal vom Herzen 💞 das du dich da so zur Späten Stunde noch gekümmert hattest.

 

 

Hab jetzt den Oberen Teil fertig bis zu deine Edit. Muss ich dann Unraid neustarten? Bisher war da keine neue Schnitstelle zu finden.

 

Jetzt zu deim Edit da bin ich jetzt nicht schual draus geworden was du da genau mit meinst wo das hin soll.

Screenshot 2024-11-22 190829.png

37 minutes ago, Irokiller said:

 

Hab jetzt den Oberen Teil fertig bis zu deine Edit. Muss ich dann Unraid neustarten? Bisher war da keine neue Schnitstelle zu finden.

 


Das sollte eigentlich sofort auftauchen. Sollte auch reichen indem wenn man den VM Dienst neustartet

 

ip route add default dev wg0 table 100
ip rule add prio 100 iif virbr10 table 100

das muss im Terminal ausgeführt werden und halt jedes mal wenn der Server neu startet. Man kanns auch in die Wireguard config schreiben. Einzige Problem dabei ist, dass Wireguard vor dem Array startet und da könnt der dann meckern dass das Interface halt nicht existiert.

Edit:
Das folgende sollte in der Go-file ausreichen, falls nicht, die Zeit von Sleep höher setzen.

(sleep 30; ip route add default dev wg0 table 100; ip rule add prio 100 iif virbr10 table 100 ) &

 

Edited by Mainfrezzer

  • Author

 

1 hour ago, Mainfrezzer said:

 

ip route add default dev wg0 table 100
ip rule add prio 100 iif virbr10 table 100

das muss im Terminal ausgeführt werden und halt jedes mal wenn der Server neu startet. Man kanns auch in die Wireguard config schreiben. Einzige Problem dabei ist, dass Wireguard vor dem Array startet und da könnt der dann meckern dass das Interface halt nicht existiert.

 

Das könnte man ja theoretisch über ein Cronjob regeln. Jetzt hab ich da mal kurz geschaut und bin auf das Plugin https://forums.unraid.net/topic/48286-plugin-ca-user-scripts/  User Scripts gestoßen wo man das Ja theoretisch mit der auswahl (Beim erstem Array-Start) oder (Beim Start des Arrays) das anwenden könnte. Wohin meintest ja es reicht nach dem neustart vom Server muss das einmalig jewals ausgeführt werden, da würde ja das Beim erstem Array-Start ausreichen, ansonst würde er bei Beim Start des Arrays immer wieder ausführen da weiß ich nicht wie kontraproduktiv das ist.

 

 

20 hours ago, Mainfrezzer said:


 

<network>
  <name>virtbr10</name>
  <bridge name="virbr10"/>
  <forward mode="nat" dev="wg0"/>
  <ip address="10.0.20.1" netmask="255.255.255.0">
    <dhcp>
      <range start="10.0.20.2" end="10.0.20.254"/>
    </dhcp>
  </ip>
</network>

(kann natürlich und eventuell muss abgeändert werden damit das Wireguard-Interface für Dockercontainer, bei mir wg0, stimmt)
 

 

Ich hatte da jetzt nur die wg0 Schnitstelle angepasst. Muss ich die IP Adresse an den Tunnel anpassen z.b bei mir läuft der Tunnel unter

Tunnel Netzwerk: 10.100.2.0

Eingehende Tunnel 10.100.2.1

Ausgehend Tunnel 10.100.2.2

 

und weißt du zufällig wie ich dan herrausfinde welsche IP dan die VM hat mit Homeassistant läuft ?

"Lokal" also alles was auf der virbr10 läuft, hat die IPs von der DHCP-Range von der Konfigurationsdatei. Irgendwas im 10.0.20.2-254 Bereich, alles andere, hat was auch immer die Wireguard IP von dem Wireguard-Interface für Dockercontainer ist.

  • Author

ich habe jetzt versucht um eine Verbindung zur VM aufzubauen leider ohne erfolg. Ich habe die IPs versucht über die Pfsense anzupingen um herrauszufinden unter welscher IP ich Homeassistant erreichen kann. Meine Docker Container hab ich durch anpingen erreicht ohne probleme. Ich habe die Peer-Zugriffs-Typ von nur Dockercontainer auf das ganze Systeam geändert und den DHCP Rage verringert auf 10.0.20.10. Beim Starten der VM zeigt Homeassistant immer ein Faild wenn die 1:31 vorbei sind beim Network Manager Script DispatcherScreenshot2024-11-23141142.png.d5c47e00857f218403eb4eaeb4b8967e.png

 

Edit:

Das mit dem Network Manager Script Dispatcher konnte ich lösen in Homeassistant stand die IP zuweisung auf Statisch hatte jetzt auf Automatisch geändert und zack stand dann auch im Startscreen die IP IPv4 mit der 10.0.20.6/24. Jetzt komme ich trozdem nicht weiter weil die Pfsense die 10.0.2.6 nicht finden tut

Edited by Irokiller

  • Author

Hat zufällig jemand tip wie ich das hinbekomme das Subnetz von Unraid mit der 10.0.20.0/24 durch den Wireguard Tunnel zu der Pfsense zu bekommen?

 

Bisher weiß ich das unter den Erlaubte Peer-IPs in den Wireguard Config theoretisch die 10.0.20.0 eintragen müsste damit der tunnel weiß welsche IPs er durchlassen soll und auf der pfsense das theoretisch das gleiche damit pfsense weiß das sie auch daten über das Netz zurückschicken kann. Aber irgendwie komm ich da nicht weiter. 

Andere schrieben man könnte z.b in meinen Fall mit der Fritzbox ein subnetz erstellen das dan irgendwie auf unraid zeigt um den trafic darüber zu leiten aber damit bin ich überhaupt nicht weiter gekommen.

Der eingehende Traffik wird automatisch geblockt beim Nat-Betrieb. Wenns tatsächlich um 1 Gerät geht, dann wäre das Plugin wohl vom Anfang doch sinnvoll, eventuell auch einfach den HA Container, was definitiv stressfreier wäre^^.

@SimonFdo you happen to know which iptables rules block the incoming traffic to VMs over a nat-bridged interface? Currently its setup to use a custom virtbridge, thats routed though a wireguard interface for docker container. Outgoing works, well as it should, the issue is the returnpath to the virtual machine. Since its a homeassistant vm, which apparently is an excellent recreation of hell, youre out of luck getting anything properly installed within the vm

Edited by Mainfrezzer

35 minutes ago, Mainfrezzer said:

Der eingehende Traffik wird automatisch geblockt beim Nat-Betrieb. Wenns tatsächlich um 1 Gerät geht, dann wäre das Plugin wohl vom Anfang doch sinnvoll, eventuell auch einfach den HA Container, was definitiv stressfreier wäre^^.

@SimonFdo you happen to know which iptables rules block the incoming traffic to VMs over a nat-bridged interface? Currently its setup to use a custom virtbridge, thats routed though a wireguard interface for docker container. Outgoing works, well as it should, the issue is the returnpath to the virtual machine. Since its a homeassistant vm, which apparently is an excellent recreation of hell, youre out of luck getting anything properly installed within the vm

tate RELATED,ESTABLISHED
    0     0 REJECT     all  --  *      virbr0  0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable

Chain LIBVIRT_FWO (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  virbr0 *       192.168.122.0/24     0.0.0.0/0           
    0     0 REJECT     all  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable

Chain LIBVIRT_FWX (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  virbr0 virbr0  0.0.0.0/0            0.0.0.0/0           

Chain LIBVIRT_INP (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     udp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            udp dpt:53
    0     0 ACCEPT     tcp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            tcp dpt:53
    0     0 ACCEPT     udp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            udp dpt:67
    0     0 ACCEPT     tcp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0            tcp dpt:67

Chain LIBVIRT_OUT (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     udp  --  *      virbr0  0.0.0.0/0            0.0.0.0/0            udp dpt:53
    0     0 ACCEPT     tcp  --  *      virbr0  0.0.0.0/0            0.0.0.0/0            tcp dpt:53
    0     0 ACCEPT     udp  --  *      virbr0  0.0.0.0/0            0.0.0.0/0            udp dpt:68
    0     0 ACCEPT     tcp  --  *      virbr0  0.0.0.0/0            0.0.0.0/0            tcp dpt:68

These are the IP tables but they are created by libvirt.

  • Author
7 hours ago, Mainfrezzer said:

Der eingehende Traffik wird automatisch geblockt beim Nat-Betrieb. Wenns tatsächlich um 1 Gerät geht, dann wäre das Plugin wohl vom Anfang doch sinnvoll, eventuell auch einfach den HA Container, was definitiv stressfreier wäre^^.

 

Das Problem an der Homeassistant Version die man über Docker Container bekommen hat nur eine begrenzte Funktionalität, das volle Potenzial hat Homeassistant nur in der Supervisor Version die für Docker nicht gibt. Ich weiß nicht ob tatsächlich nur bei 1 Gerät in Zukunft bleiben wird, hab mir zumindest gedachte ich bekomme das erstmal so hin das ein Geräte funktioniert bevor ich mit noch weiteren anfangen. Ich weiß ja nicht ob das helfen würde für die VM auch ein extra tunnel zu machen damit vielleicht weniger Konflikte gibt?

2 minutes ago, Irokiller said:

hat nur eine begrenzte Funktionalität, das volle Potenzial hat Homeassistant nur in der Supervisor Version die für Docker nicht gibt.

und welche davon benötigst du ? rein interessehalber ...

 

und die supervised version ist ja auch nur eine VM wo HA als docker drin läuft und zusätzliche docker von dem supervisor docker verwaltet werden ... usw usw ... was man auch im Bedarfsfall selbst abbilden kann ...

 

Beispiel hier, HA Docker, zigbee2mqtt, mqtt, nodered, ps52mqtt... als separate Docker, HA inkl. HACS für die Standard addons und co ... Editor ... da gibt es genug und dafür brauche ich sicherlich keinen HA Editor ... daher wirklich nur rein interessehalber, was brauchst du aus der HA Supervisor Edition

  • Author
1 hour ago, alturismo said:

und welche davon benötigst du ? rein interessehalber ...

 

und die supervised version ist ja auch nur eine VM wo HA als docker drin läuft und zusätzliche docker von dem supervisor docker verwaltet werden ... usw usw ... was man auch im Bedarfsfall selbst abbilden kann ...

 

Beispiel hier, HA Docker, zigbee2mqtt, mqtt, nodered, ps52mqtt... als separate Docker, HA inkl. HACS für die Standard addons und co ... Editor ... da gibt es genug und dafür brauche ich sicherlich keinen HA Editor ... daher wirklich nur rein interessehalber, was brauchst du aus der HA Supervisor Edition

Entweder hatte ich damals irgendwo ein Denkfehler, aber vor ca 2 Jahren wo ich mit HA angefangen hatte hieß es damit man HACS installieren kann braucht man die HA Supervisor Edition. Und zigbee2mqtt und mqtt laufen derzeit so auf separaten docker auf Unraid

4 minutes ago, Irokiller said:

Entweder hatte ich damals irgendwo ein Denkfehler, aber vor ca 2 Jahren wo ich mit HA angefangen hatte hieß es damit man HACS installieren kann braucht man die HA Supervisor Edition. Und zigbee2mqtt und mqtt laufen derzeit so auf separaten docker auf Unraid

HACS ist nicht das Thema um die normalen Dinge zu implementieren ...

 

gibt es bei der lsio Version mit einem Eintrag auch bereits schon länger ...

 

addons (was separate Docker in einer HA VM supervised ... sind) ... sind da anders aufzusetzen, beispielsweise mqtt, zigbee2mqtt ... halt als separate Docker und dann nur die Connectors in HA ergänzen, was du bereits machst ;) das geht natürlich alles auch mit der Docker Edition ...

 

nodered, ps52mqtt wären jetzt hier Beispiele ... wenn man die in HA integrieren will, braucht es auch etwas "Lesen" und schauen wie ... aber es geht vieles auch so, egal, hatte mich nur interessiert was es denn gibt was tatsächlich nur so in der "großen" Edition geht.

  • Author
21 minutes ago, alturismo said:

HACS ist nicht das Thema um die normalen Dinge zu implementieren ...

 

gibt es bei der lsio Version mit einem Eintrag auch bereits schon länger ...

 

addons (was separate Docker in einer HA VM supervised ... sind) ... sind da anders aufzusetzen, beispielsweise mqtt, zigbee2mqtt ... halt als separate Docker und dann nur die Connectors in HA ergänzen, was du bereits machst ;) das geht natürlich alles auch mit der Docker Edition ...

 

nodered, ps52mqtt wären jetzt hier Beispiele ... wenn man die in HA integrieren will, braucht es auch etwas "Lesen" und schauen wie ... aber es geht vieles auch so, egal, hatte mich nur interessiert was es denn gibt was tatsächlich nur so in der "großen" Edition geht.

 

Hab halt die Befürchtung wenn ich in Zukunft noch mehr machen möchte und mit HA das ich dann an die Grenzen des machbaren komme mit der Docker Version um dann wieder auf die Version von der VM umsteigen muss und dann wieder vor dem gleichen Problem stehe.

Ich habs jetzt mal versucht mit libvirt zu realisieren, aber da steig ich noch nicht durch. Funktionieren wird es wenn man 
 

iptables -D LIBVIRT_FWI -o virbr10 -j REJECT --reject-with icmp-port-unreachable

in Unraid ausführt.

Das müsste man aber dann halt an Events knüpfen. Ich weiß jetzt nicht wann libvirt die Regeln neusetzt.

Edited by Mainfrezzer
Ich verwirrte mich selbst mit dem Namendreher, ahhhh

  • Author

Ich hatte es tatsächlich hinbekommen das ich von der pfsense das Netzwerk 10.0.20.1 anzupingen aber die VM selber nicht direkt. Von der VM selber konnte ich das Netzwerk der Pfsense und auch das Internet mit der 1.1.1.1 

 

Nachdem ich jetzt den Befehl den du geschrieben hast ausgeführt habe hat sich das Problem mit dem ping von der Pfsense zur HA auch erledigt. Also theoretisch kommunizieren sie jetzt miteinander nur komme ich nicht weiter auf die Oberfläche. Das müsste aber theoretisch an der Pfsense liegen. 

 

 

4 hours ago, Mainfrezzer said:

Ich habs jetzt mal versucht mit libvirt zu realisieren, aber da steig ich noch nicht durch. Funktionieren wird es wenn man 
 

iptables -D LIBVIRT_FWI -o virbr10 -j REJECT --reject-with icmp-port-unreachable

in Unraid ausführt.

Das müsste man aber dann halt an Events knüpfen. Ich weiß jetzt nicht wann libvirt die Regeln neusetzt.

 Wie meinst du das mit an Events knüpfen ?

 

 

Edit:

Ich glaube das liegt vielleicht daran das die Pfsense die Pings von der VM nicht über das Subnetzt 10.0.20.0 bekommt sondern von dem Wireguard Tunnel IP eingeht

Edited by Irokiller

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.