Wie richte ich pfSense/OPNSense auf einem virtuellen Host ein?

Wie richte ich pfSense/OPNSense auf einem virtuellen Host ein?

Ich bin ein wenig verwirrt, wie ich eine *Sense-Box als VM hosten und sie das Routing für den Host bereitstellen lassen kann.

Internet -> Modem/Router (bridge mode) -> en1 on Dell r710 -> OPNSense in a VM

Then also:
OPNSense in a VM -> en2 -> 12-port switch

Beispielsweise: Wie stelle ich die Netzwerkschnittstellen auf der VM ein und wie definiere ich OPNSense so, dass es 10.0.2.1 als IP hat und als Hauptrouter (DHCP usw.) dient, damit OPNSense Routing für alle Geräte bereitstellen kann, die ich anschließe (über einen vorhandenen Switch), und auch für den Host, auf dem die VM ausgeführt wird?

Meine VMs laufen auf KVM mit Wok/Kimchi auf Ubuntu 16.04.5.

Antwort1

Leider ist die Frage etwas zu unpräzise und ich habe nicht den Ruf, weitere Fragen zu stellen. Ich habe vor ein paar Tagen OPNSense in einer virtuellen Umgebung eingerichtet, daher hoffe ich, dass ich hier ein paar Hinweise hinterlassen kann. Ich behaupte nicht, dass dies eine gute Lösung ist, aber für mich funktioniert es. In diesem Szenario habe ich einen dedizierten Server und ein /29 öffentliches IP-Subnetz. Der gesamte Datenverkehr von anderen VMs wird über die OPNSense-VM geleitet. Der Datenverkehr der Host-Maschine kann nicht über die virtuelle Maschine gesendet werden.

Zur Administration der Netzwerke und virtuellen Maschinen verwende ichWebvirtCloud es ist aber auch möglich, alles manuell zu machen.

  1. Erstellen Sie virtuelle Netzwerkschnittstellen für jede Ihrer öffentlichen IPs.

    /etc/network/interfaces
    
    auto eth0
    iface eth0 inet static
            address 103.x.x.104      #Dedicated server IP address
            netmask 255.255.255.255
            gateway 103.x.x.65
            pointopoint 103.x.x.65   #IP of the switch in the data center
    
    auto eth0:0
    iface eth0:0 inet static
    address 103.xx.77.136             #First IP from the public subnet
    netmask 255.255.255.255
    
    auto eth0:1
    iface eth0:1 inet static
    address 103.xx.77.137
    netmask 255.255.255.255
    

    [...]

  2. Verwenden Sie libvirt, um die Netzwerke wie beschrieben zu erstellenHier: (oder verwenden Sie WebvirtCloud) Sie benötigen mindestens zwei Brücken, eine für LAN und eine für WAN.

An diesem Punkt sollten Sie ein Netzwerk namens LAN (Gerät: virbr1) (Netzwerk: 192.168.100.0/24) und ein weiteres namens WAN (Gerät: virbr0) (Netzwerk: 192.168.77.0/24) haben.

  1. Erstellen Sie Ihre OPNSense-Maschinenkonfiguration. Dies ist der wichtige Teil:
<interface type='network'>
      <mac address='00:52:66:d7:7e:65'/>
      <source network='WAN' bridge='virbr0'/>
      <target dev='vnet0'/>
      <model type='virtio'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
    <interface type='network'>
      <mac address='00:c0:41:50:f9:0b'/>
      <source network='lan' bridge='virbr1'/>
      <target dev='vnet1'/>
      <model type='virtio'/>
      <alias name='net1'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x05' function='0x0'/>
    </interface>
    <interface type='network'>
      <mac address='00:98:c3:b1:b6:b8'/>
      <source network='lan' bridge='virbr1'/>
      <target dev='vnet2'/>
      <model type='virtio'/>
      <alias name='net2'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x06' function='0x0'/>
    </interface>
  1. Starten Sie OPNSense, weisen Sie Schnittstellen entsprechend Ihrer Maschinenkonfiguration zu und legen Sie die Schnittstellen-IP-Adressen über das Terminal fest. Ich habe 192.168.77.2 als meine OPNSense-WAN-IP-Adresse ausgewählt. Das WAN-Upstream-Gateway ist auf 192.168.77.1 eingestellt.

Ich habe auch für jede meiner öffentlichen IPs in OPNSense separate LANs erstellt.

LAN136 IP-Address: 192.168.100.136/24 
LAN137 IP-Address: 192.168.100.137/32
No upstream Gateways.

[...]

  1. NAT POST- und PREROUTING-Regeln auf dem Hostrechner
iptables -t nat -A POSTROUTING -s 192.168.77.2 -j SNAT --to-source 103.x.x.104
iptables -t nat -A POSTROUTING -s 192.168.77.136 -j SNAT --to-source 103.xx.77.136
iptables -t nat -A POSTROUTING -s 192.168.77.137 -j SNAT --to-source 103.xx.77.137

iptables -t nat -A PREROUTING -p tcp --dport 10:65530 -d 103.xx.77.136 -j DNAT --to 192.168.77.136
iptables -t nat -A PREROUTING -p udp --dport 10:65530 -d 103.xx.77.136 -j DNAT --to 192.168.77.136

iptables -t nat -A PREROUTING -p tcp --dport 10:65530 -d 103.xx.77.137 -j DNAT --to 192.168.77.137
iptables -t nat -A PREROUTING -p udp --dport 10:65530 -d 103.xx.77.137 -j DNAT --to 192.168.77.137

Nach diesem Schritt sollten Sie OPNSense über Ihren Webbrowser öffnen können. Dazu benötigen Sie eine virtuelle Maschine, die bereits Teil des LAN ist. Ich empfehle die Verwendung einer Live-CD wie grml oder Ubuntu. In diesem Fall erreichen Sie OPNSense überhttp://192.168.100.136

  1. OPNSense (Webbrowser) - Erstellen Sie virtuelle IPs auf der WAN-Schnittstelle
Virtual IP-address    Interface           TYPE
192.168.77.136/32         WAN          IP Alias
192.168.77.137/32         WAN          IP Alias

[...]

  1. NAT-Regeln in OPNSense (Webbrowser) Erstellen Sie Ihre Portweiterleitungs- und Ausgangsregeln

Beispiel Portweiterleitung:

Interface Proto   S-address S-port    D-address       D-port       NAT-Ip         Nat-Port
WAN           TCP     *           *       192.168.77.137  80 (HTTP)   192.168.100.101 80 (HTTP)

Beispiel für ausgehende Regeln:

Der Modus muss auf manuell eingestellt sein

Interface     Source                S-port    Dest.    D-port       NAT-IP        Port   static?
WAN               192.168.100.100/32      *        *        *         192.168.77.136  *       no

Stellen Sie sicher, dass alle Ihre öffentlichen IPs über ausgehende Regeln und eine eindeutige NAT-IP verfügen.

Antwort2

Heilige Scheiße... Das ist komplex! Ich wollte mein dediziertes OPNsense-Setup mit Mini-PC durch eine VM auf meinem TrueNAS-Server (jetzt Scale, aber ich verwende seit vielen Jahren Core) ersetzen und habe mich einfach gefragt... gibt es einen einfacheren Weg, das alles zum Laufen zu bringen? Ich möchte lediglich, dass es buchstäblich mein Netzwerk betreibt und die VM über WAN und LAN kommunizieren kann (natürlich innerhalb und außerhalb der VM...). Ich bin mir durchaus bewusst, dass meine Internetverbindung abbricht, wenn ich meinen TrueNAS-Server neu starte (es ist in erster Linie mein Plex Media Server). Ich bin mir auch durchaus bewusst, dass dies in den meisten Situationen nicht ideal ist, aber ich möchte es ausprobieren. Mir geht es nur um einen kleineren Platzbedarf, und wenn ich einen Computer loswerden kann, der in meinem Netzwerk und in meinem Zimmer läuft, wäre das großartig.

Und was konnte ich bisher tun? Ich konnte meine OPNsense-VM nur dazu bringen, eine WAN-Verbindung zu erkennen, und ich konnte auch auf die Web-Benutzeroberfläche zugreifen ... manchmal ...

Ich wäre für jede Hilfe dankbar, wenn das 2023 jemand sieht ... lol. Es besteht keine Eile, aber ich möchte es irgendwie machen, weil es interessant ist.

Danke, Shiggitay

verwandte Informationen