OPNsense + Proxmox + NIC Passthrough

Started by Arvyr, August 08, 2019, 05:28:55 PM

Previous topic - Next topic
Hallo,

ich habe derzeit in einem kleinen Lab auf einem IBM x3650 M2 eine OPNsense (19.7.2) laufen
und wollte ihr via PCI Passthrough die zusätzliche Intel NIC Pro 1000-irgendwas zuweisen.

Ich habe mich dabei an die Anleitungen von Proxmox gehalten.
Dennoch tauchen die Schnittstellen bei der OPNsense einfach nicht auf.

Dass das Passthrough jedoch funktioniert, habe ich mit einer Debian-VM testen können.
Hier wurden die durchgereichten Schnittstellen problemlos erkannt.

Gibt es hier noch irgendwelche zusätzlichen Dinge die ich beachten muss oder geht das schlicht und ergreifend in der Gesamtkonstellation nicht?
Ich habe es auch mit einer Intel X540-T2 versucht, doch auch diese wurde nicht erkannt.

Ich habe es sowohl mit einer bereits konfigurierten OPNsense, als auch mit einer Neuinstallation probiert.
Auch testweise eine pfSense erkannte die Netzwerkkarte so nicht.

Ich hoffe hier hat jemand schon mal diesen Aufbau erfolgreich konfiguriert und kann mir sagen wo es hakt.

PS: noch eine zusätzliche Frage bezüglich der Shell:
Wie ich auf der diesjährigen Cyber-Übung"Locked Shields 2019" lernen durfte, kann man so eine VM natürlich prima vom Red Team zerlegen lassen.
Da frage ich mich bezüglich der Härtung einiger Parameter, wo denn speziell bei der OPNsense in den einzelnen Directories die Konfigurationsdateien für etwa sshd, ntp, bgp, etc... sind?

Vielleicht kann ich auch hier jemand erhellen.
Vielen Dank schon mal!

Mfg

Quote from: Arvyr on August 08, 2019, 05:28:55 PM
Da frage ich mich bezüglich der Härtung einiger Parameter, wo denn speziell bei der OPNsense in den einzelnen Directories die Konfigurationsdateien für etwa sshd, ntp, bgp, etc... sind?

OPNSense (bzw. FreeBSD) legt Konfigurationsdateien, die nicht zum Base-System gehören unter "/usr/local/" ab.
Sprich SSH findest du unter "/usr/local/etc/ssh/".
Alles andere dürftest du in den Ordner des jeweiligen Daemons finden.

Habe eine OPNSense ebenfalls unter Proxmox am laufen. WAN wie auch LAN sind per Passtrough direkt in die VM durchgereicht.

Wichtig ist dabei, das deine NIC unter FreeBSD unterstützt wird. Falls es das nicht ist, wie es gerade aussieht, lass die NIC beim Host (Proxmox) registriert und erstelle zwei neue virtuelle NIC´s mit jeweils einer Bridge zur physikalischen NIC. Das machst Du mit beiden Netzwerkkarten (LAN & WAN) und weist der VM für OPNSense beide virtuellen zu. So sollte es auf jeden Fall klappen.

Wegen der Härtung, ich weis ja nicht was Du da alles gelernt hast. Aber OPNSense ist an sich schon recht gut gehärtet. Wenn dann sind es eher die zusätzlichen Services oder schlechte Firewallregeln die eine Schwachstelle öffnen.

Quote from: Philipp on August 08, 2019, 09:05:41 PM

OPNSense (bzw. FreeBSD) legt Konfigurationsdateien, die nicht zum Base-System gehören unter "/usr/local/" ab.
Sprich SSH findest du unter "/usr/local/etc/ssh/".
Alles andere dürftest du in den Ordner des jeweiligen Daemons finden.

Danke erstmal für die Info. Ich schaue mal, ob ich finde was ich da suche.


Quote from: BeNe on August 08, 2019, 09:16:52 PM

Wichtig ist dabei, das deine NIC unter FreeBSD unterstützt wird. Falls es das nicht ist, wie es gerade aussieht, lass die NIC beim Host (Proxmox) registriert und erstelle zwei neue virtuelle NIC´s mit jeweils einer Bridge zur physikalischen NIC. Das machst Du mit beiden Netzwerkkarten (LAN & WAN) und weist der VM für OPNSense beide virtuellen zu. So sollte es auf jeden Fall klappen.

Würde mich wundern wenn diese Standard-Intel NICs nicht supported werden.
Das mit den Bridges ist, was ich bisher mache, das klappt auch.
Geht mehr auch eher um 1. Machbarkeit und 2. die möglicherweise bessere Performance.

Quote from: BeNe on August 08, 2019, 09:16:52 PM

Wegen der Härtung, ich weis ja nicht was Du da alles gelernt hast. Aber OPNSense ist an sich schon recht gut gehärtet. Wenn dann sind es eher die zusätzlichen Services oder schlechte Firewallregeln die eine Schwachstelle öffnen.

Ich kann nach der Erfahrung definitiv sagen, dass so eine schöne Weboberfläche mit tollen Regeln alleine nicht ausreicht.
So ein System lässt sich auf verschiedenste Weise kompromittieren. Besonders wenn das jeweilige Red Team
vorher ein bissel was daran machen darf, wie in der genannten Übung üblich.
Ich kann bspw. dem BGP-Prozess kein Passwort für die Nachbarschaften mitgeben.
Sowas geht dann nur via Shell.
Selbiges gilt für NTP und die möglichen Protokolle/Keys/Ciphers etc. bezüglich SSH.

Mfg

Hallo,

ich kann dir zumindest sagen dass es grundsätzlich geht. Ich habe auch Proxmox, opnsense und eine IntelPro1000 dual. Es war etwas gefummel, du musst unter Proxmox für jeden NIC eine Bridge einrichten und bei den durchgereichten KEINE IP vergeben.

bye,
Patrick

Aber eine Bridge ist doch genau das, was ich nicht möchte.
Die NICs als vmbr1 und 2 und diesem Fall an die OPNsense zu geben ist ja kein Problem.
Diese aber gänzlich im Proxmox unangetastet der VM so mitzugeben, dass nur diese sie dort erkennt ist ja das Ziel.

dann musst du diese auch einfach nur mittels vt-d oder iommu durchreichen. wenn die Hardware von opnsense grundsätzlich unterstützt wird, sollte das alles funktionieren.

durchreichen der Hardware wird sehr gut hier beschrieben - ist aber (leider) etwas fummeliger als unter esxi:
https://pve.proxmox.com/wiki/Pci_passthrough

Mir ist aktuell noch nicht klar ob nun ein Problem bei OPNSense besteht, oder unter Proxmox.

Wie oben beschrieben habe ich diese Anleitung bereits umgesetzt.
Und dass es funktioniert, ließ sich anhand von anderen Betriebssystemen prüfen.
Nur BSD-Systeme wollen scheinbar nicht.


Auf diesen Beitrag bin ich auch schon gestoßen.

Bei dem Punkt "After this command, you detach eth0 from proxmox and lose network connection..."

echo "8086 15b7" > /sys/bus/pci/drivers/pci-stub/new_id && echo 0000:00:1f.6 > /sys/bus/pci/devices/0000:00:1f.6/driver/unbind && echo 0000:00:1f.6 > /sys/bus/pci/drivers/pci-stub/bind

bin ich mir aber unsicher, da kein pci-stub-Ordner existiert und mir nicht klar ist, ob ich diesen nun anlegen soll.
Alles andere dort war nichts neues.