[Sammelthread] Proxmox Stammtisch

Das mit der Worker vm ist mist, ich möchte ja die Last beim Backup nicht auf den produktiven Hosts haben, sondern auf dem Backupserver.

Mal schauen, ob sich da noch was ändert.
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Zur verbesserung der Performance möchte Veeam eine "Worker VM" auf dem PVE instalieren, diese bekommt die nächste freie pve ID, ist ein Rocky Linux und belegt 100GB Speicher.
Geht das nur als VM? In unserer VMWare Umgebung nutzen wir mehrere Bare Metal Windows Server als Veeam Backup Proxys, um den Backup Workload auf diese zu verteilen.
 
Moin zusammen,

mein erster Beitrag hier ;-).
Ich nutze seit ein paar Jahren ProxMox und stelle Euch mal mein Setup gehostet bei OVH (genauer: Kimsufi) vor (hoffe, dass es den einen oder anderen interessieren könnte). Zuhause betreibe ich auch noch ein paar ProxMox-Server.

Den Kimsufi-Server habe ich selbst gebootstrapped (also from Scratch selbst aufgesetzt):
- SW-RAID1 über 2 Platten
- über das MD-Device Luks gezogen (also fully discencrypted)
- Auf dem Crypt-Device dann gemäß ProxMox-Vorgaben LVM aufgelegt.
- das Luks-Device kann ich remote entsperren.

Um eine höhere Sicherheit zur gewährleisten:
- Geofirewalling: Zugriffe nur aus DE erlaubt und wenn ich im Urlaub bin, das jeweilige Land dazu
- Zugriffe auf die Proxmox-GUI ist nur via localhost möglich (per ssh-Tunneling)
- ssh auf den physischen Proxmox-Server ist nur aus definierten IP-Ranges möglich.
- Jede VM bekommt für gewöhnlich einen eigenen virtuellen Switch => Segmentierung
- Web-Anwendungen werden via NGinx auf die jeweiligen Server durch SNI via RevProxy durchgereicht. So komme ich mit einer öffentlichen IP aus. Das vereinfacht auch das Zertifikatshandling per Wildcard.
- andere Anwendungen werden via IPtables auf die jeweiligen Systeme durchgereicht. Auch hier reicht mir die eine öffentliche IP.
- Die Kommunikation der Systeme untereinander, soweit nötig, steuere ich via iptables
- zusätzlich noch ein paar nette DNS-Features (sshfp- und https-Resource-Records)

Backup geht auf einen anderen Proxmox-Server, auf dem PBS läuft, sowi bei kleineren VMs auch nach Hause.

Gruß,
Karsten
 
Geht das nur als VM? In unserer VMWare Umgebung nutzen wir mehrere Bare Metal Windows Server als Veeam Backup Proxys, um den Backup Workload auf diese zu verteilen.

Ich habe das bisher so verstanden, das Veeam die WorkerVM also lokale Instanz nutzt, um das Backup schneller durch zu führen, vermutlich um keinen Agent oder so auf dem PVE zu installieren. Von der Funktion dürfte das sowas sein wie das "Framework" das Veeam auch bei ESX installiert. Bin aber noch am testen.
 
Hallo @michsenhalt & willkommen im Forum!

Das ist ja ein ordentliches Featurepaket das Du da aufgebaut hast. Ich würde mich freuen, wenn Du folgende Punkte etwas beschreiben bzw. Tutorial links posten könntest:

- über das MD-Device Luks gezogen (also fully discencrypted)
- Auf dem Crypt-Device dann gemäß ProxMox-Vorgaben LVM aufgelegt.
- das Luks-Device kann ich remote entsperren.

- Jede VM bekommt für gewöhnlich einen eigenen virtuellen Switch => Segmentierung

Insgesamt hätte Dein Setup das Potential für einen Proxmox Setup Guide, da ist für jeden was dabei (y)

Viele Grüße,

Supa
 
Moin @Supaman ,

oh, vielen Dank für die Blumen.

Auf die Schnelle habe ich da jetzt nichts parat. Aber ein paar Links/Erklärungen kann ich mal unvorbereitet bieten:
  • ich habe vor einigen Jahren mal einen längeren Guide geschrieben, der das Aufsetzen und remote Entsperren eines FullDiscEncrypted-Server beschreibt (ist aber jetzt etwas veraltet, aber vieles noch gültig). Liegt bei der LUG HH (https://www.lug-hamburg.de/_media/balista/blog/kwi_cloudserver_01_fde_0.3.pdf ). Ich habe den Artikel bereits um den Punkt MD und LVM ergänzt. Ist aber noch nicht bei der LUG hochgeladen. Ich attache mal die aktuelle Version hier. Hat aber noch keiner Korrektur elesen ;-), also: übernehme keine Verantwortung ;-).
  • Bezüglich der ProxMox-Vorgaben: ich habe mich hieran gehalten:
  • Was die Segmentierung angeht: Anforderung zunächst: die Systeme sollen sicherheitsseitig voneinander getrennt sein und nur kontrolliert miteinander reden können. Das erhöht die Sicherheit dahingehend, dass ein erfolgreicher Angreifer einer VM sich nicht unbegrenzt weiter vorarbeiten kann (Einschränkung des "lateral movements"). Umsetzung: ich habe auf dem Proxmox-Server mehrere virtuelle Switche angelegt, die am Hypervisor "anliegen". Routing läuft dann über den Hypervisor, der via iptables die Kommunikationsbeziehungen kontrolliert/reglementiert.
Hoffe, das hilft erst einmal. Sonst gerne melden.

Gruß,
Karsten
 

Anhänge

  • kwi_cloudserver_01_fde_0.5.pdf
    441,7 KB · Aufrufe: 21
ZFS Verschlüssellung wäre eine Alternative.
Bietet neben unterschiedlichen Keys per Dateisystem eine raw replizierung (Verschlüsseltes zfs send) sowie prompt, file und teils https basierte Keys dazu optional keysplit oder HA mit mehreren Webservern

Einziger Nachteil bei einem VM Dateisystem:
Da sollte man sync aktivieren und ZFS sync + encryption ist nicht sonderlich schnell wegen der dann anfallenden kleinen Datenblöcken.
 
Hallo @michsenhalt ,

vielen Dank schonmal für den Input, HDD encryption ist doch deutlich komplexer als vermutet.

  • Was die Segmentierung angeht: Anforderung zunächst: die Systeme sollen sicherheitsseitig voneinander getrennt sein und nur kontrolliert miteinander reden können. Das erhöht die Sicherheit dahingehend, dass ein erfolgreicher Angreifer einer VM sich nicht unbegrenzt weiter vorarbeiten kann (Einschränkung des "lateral movements"). Umsetzung: ich habe auf dem Proxmox-Server mehrere virtuelle Switche angelegt, die am Hypervisor "anliegen". Routing läuft dann über den Hypervisor, der via iptables die Kommunikationsbeziehungen kontrolliert/reglementiert.

Die Sinnhaltigkeit von Segmentierung und man das in ungefär umsetzen müsste ist mir bekannt, mich würde an der Stelle interessieren, wie Du das umgesetzt hast. Wenn man für jede VM eigene Firewall Regeln aufsetzt, wird das sehr schnell sehr unübersichtlich.
 
Moin zusammen,

  • zfs-Encryption habe ich bei mir nicht am Laufen. Wäre je nach Anwendungsfall aber natürlich auch eine Alternative, ist aber für meinen Anwendungsfall und meine Hardware nicht optimal
  • FullDiscEncryption wirkt natürlich erst einmal komplex, aber ein wenig Üben mit einem vielleicht gerade nicht genutzten Rechner hilft schon einmal. Und mein Guide beschreibt das ja ausführlich.

  • Segmentierung:
    • im Grunde sollte man sich erst einmal Gedanken machen, was für Sicherheitszonen man benötigt. Wenn das entschieden ist, ordnet man die verschiedenen VMs der jeweiligen Zone zu, die dann als eigenes Netzwerksegment realisiert wird. Die Segmente sind technisch bei mir als jeweils eigene Bridges mit einem kleinen /29 angelegt, in der der physische Proxmox-Server als default Gateway fungiert.
    • Meine VMs haben bis auf eine (die fail2ban einsetzt) keine iptables-Regeln. Das Regelwerk ist auf dem physischen Proxmox-Server umgesetzt, da dieser das Default-Gateway für alle Segmente darstellt und daher den Traffic reglementieren kann. Je nach Anwendungsfall kann ein entsprechendes Regelwerk recht einfach (wenn die VMs nicht viel untereinander reden) oder auch komplexer werden. So etwas ist für gewöhnlich aber recht statisch, d.h. man implementiert es einmal und danach gibt es meist eher selten Anpassungen.
  • Weitere Sicherheits-Optionen:
    • ich verwende zusätzlich noch regelmäßig aktualisierte IP-Malware-Listen, die ich via IPSet einbinde und deren IPs sofort geblockt werden. Beispiele dafür zB dshield und SpamHaus edrop.
    • einige meiner Systeme sichere ich auch noch im Rahmen eines HIDS per aide ab.
    • Wenn auch noch outbound-Traffic mehr gesichert werden soll, bieten sich sonst noch RPZs (Response Policy Zones) an, die sich beispielsweise beim Resolver unbound einpflegen lassen.
Gruß,
Karsten
 
Zuletzt bearbeitet:
Ich komme gerade dazu das ich tatsächlich eine windows-Test-VM brauche. Ich habe Windows privat komplett verbannt und bin da etwas raus. Wie installiere und konfiguriere ich so einen Mist?
Meine Idee: Windows 11 IoT Enterprise LTSC ISO runterladen und in eine VM kippen gemäß https://pve.proxmox.com/wiki/Windows_2022_guest_best_practices - bis dahin okay?
Und dann? Krieg ich die ohne Registrierung oder ähnliches sauber zum laufen, und auch geupdated? Wo gibts am günstigsten einen Key? Brauche ich den überhaupt? Werd das Ding alle paar Wochen für 2, 3 Tests hochfahren, updaten, Tests durchführen und wieder schlafenlegen. Am liebsten wäre es mir wenn es gar nicht ins Internet dürfte, sperre das schon in ein eigenes Netz...
 
Windows hat 30 Tage bis aktivert werden muss. Proxmox virtio driver ISO auf den PVE laden, VM Paramater nach gusto zusammenklicken, 2tes CD-Rom angeben mit den VIrtioDrivern, WIndows Setup durchklicken. Wenn der Windwos Desktop da ist, die Windows virtio Driver komplett installieren, und auch den guest-agent. Dann Windows PW setzen, RDP einschalten, Energieoptioen auf Höchstleistung. Windows Updates laufen lassen, fertig.
 
Also die Windows VM läuft jetzt - Extradank an @Supaman der meine doofen Fragen alle mehr als ausreichend beantwortet hat.
Jetzt gleich zum nächsten Problem: Ich wollte meine gute alte 40g Mellanox Karte der VM durchreichen. Also Host runtergefahren, KArte eingebaut, der VM zugewiesen und..... kein boot, statt dessen das hier:
Cannot bind 61:00:0 to vfio
Öhm.... ich find lauter Probleme zum Thema GPU passthrough und nouveau blacklisten - aber das ist ja ne NIC... W00t?
 
Windows hat 30 Tage bis aktivert werden muss. Proxmox virtio driver ISO auf den PVE laden, VM Paramater nach gusto zusammenklicken, 2tes CD-Rom angeben mit den VIrtioDrivern, WIndows Setup durchklicken. Wenn der Windwos Desktop da ist, die Windows virtio Driver komplett installieren, und auch den guest-agent. Dann Windows PW setzen, RDP einschalten, Energieoptioen auf Höchstleistung. Windows Updates laufen lassen, fertig.
Vlt. 'ne blöde Frage, aber warum das?
 
Also die Windows VM läuft jetzt - Extradank an @Supaman der meine doofen Fragen alle mehr als ausreichend beantwortet hat.
Jetzt gleich zum nächsten Problem: Ich wollte meine gute alte 40g Mellanox Karte der VM durchreichen. Also Host runtergefahren, KArte eingebaut, der VM zugewiesen und..... kein boot, statt dessen das hier:
Cannot bind 61:00:0 to vfio
Öhm.... ich find lauter Probleme zum Thema GPU passthrough und nouveau blacklisten - aber das ist ja ne NIC... W00t?
Irgendwer noch ne Idee dazu? Ich will nicht schonwieder neu installieren müssen weil ich nicht weiterkomme...
Ich habe noch ein bisschen geforscht:
Karte wird sauber erkannt:
Code:
lspci
...
60:08.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Internal PCIe GPP Bridge 0 to Bus B
61:00.0 Ethernet controller: Mellanox Technologies MT27500 Family [ConnectX-3]
61:00.1 Ethernet controller: Mellanox Technologies MT27500/MT27520 Family [ConnectX-3/ConnectX-3 Pro Virtual Function]
61:00.2 Ethernet controller: Mellanox Technologies MT27500/MT27520 Family [ConnectX-3/ConnectX-3 Pro Virtual Function]
62:00.0 USB controller: Fresco Logic FL1100 USB 3.0 Host Controller (rev 10)
...

Und auch von mst gelistet:
Code:
mst status
MST modules:
------------
    MST PCI module loaded
    MST PCI configuration module loaded

MST devices:
------------
/dev/mst/mt4099_pciconf0         - PCI configuration cycles access.
                                   domain:bus:dev.fn=0000:61:00.0 addr.reg=88 data.reg=92 cr_bar.gw_offset=-1
                                   Chip revision is: 01
/dev/mst/mt4099_pci_cr0          - PCI direct access.
                                   domain:bus:dev.fn=0000:61:00.0 bar=0xe8200000 size=0x100000
                                   Chip revision is: 01

Aber der Traiber wird offenbar nicht geladen:
Code:
mlxconfig -d /dev/mst/mt4099_pciconf0 query
-E- Failed to open device: /dev/mst/mt4099_pciconf0. Cannot perform operation, Driver might be down.

Aber eigentlich spuckt das hier keinen Fehler aus:
Code:
mst start
Starting MST (Mellanox Software Tools) driver set
[warn] mst_pci is already loaded, skipping
[warn] mst_pciconf is already loaded, skipping
Create devices
Watt?
 
Ich bekomme ASPM L1/L0s einfach nicht für die Trendnet Nic aktiviert, bzw mir fehlen die Kentnisse dies per Shell zu tun.
Ausgabe von lspci -vvv
Code:
01:00.0 Ethernet controller: Aquantia Corp. AQC100 10G Ethernet MAC controller [AQtion] (rev 02)
        Subsystem: TRENDnet AQtion AQC100 NBase-T/IEEE 802.3an Ethernet Controller [Atlantic 10G]
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 64 bytes
        Interrupt: pin A routed to IRQ 41
        IOMMU group: 13
        Region 0: Memory at fac40000 (64-bit, non-prefetchable) [size=64K]
        Region 2: Memory at fac50000 (64-bit, non-prefetchable) [size=4K]
        Region 4: Memory at fa800000 (64-bit, non-prefetchable) [size=4M]
        Expansion ROM at fac00000 [disabled] [size=256K]
        Capabilities: [40] Express (v2) Endpoint, MSI 00
                DevCap: MaxPayload 512 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
                        ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset+ SlotPowerLimit 75W
                DevCtl: CorrErr+ NonFatalErr+ FatalErr+ UnsupReq+
                        RlxdOrd+ ExtTag+ PhantFunc- AuxPwr+ NoSnoop+ FLReset-
                        MaxPayload 512 bytes, MaxReadReq 512 bytes
                DevSta: CorrErr+ NonFatalErr- FatalErr- UnsupReq+ AuxPwr+ TransPend-
                LnkCap: Port #0, Speed 8GT/s, Width x4, ASPM L0s L1, Exit Latency L0s unlimited, L1 unlimited
                        ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+
                LnkCtl: ASPM Disabled; RCB 64 bytes, Disabled- CommClk+
                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                LnkSta: Speed 8GT/s, Width x4
                        TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
                DevCap2: Completion Timeout: Not Supported, TimeoutDis+ NROPrPrP- LTR-
                         10BitTagComp- 10BitTagReq- OBFF Not Supported, ExtFmt- EETLPPrefix-
                         EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
                         FRS- TPHComp- ExtTPHComp-
                         AtomicOpsCap: 32bit- 64bit- 128bitCAS-
                DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LTR- 10BitTagReq- OBFF Disabled,
                         AtomicOpsCtl: ReqEn-
                LnkCap2: Supported Link Speeds: 2.5-8GT/s, Crosslink+ Retimer- 2Retimers- DRS-
                LnkCtl2: Target Link Speed: 8GT/s, EnterCompliance- SpeedDis-
                         Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
                         Compliance Preset/De-emphasis: -6dB de-emphasis, 0dB preshoot
                LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete+ EqualizationPhase1+
                         EqualizationPhase2+ EqualizationPhase3+ LinkEqualizationRequest-
                         Retimer- 2Retimers- CrosslinkRes: unsupported
        Capabilities: [80] Power Management version 3
                Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
                Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [90] MSI-X: Enable+ Count=32 Masked-
                Vector table: BAR=2 offset=00000000
                PBA: BAR=2 offset=00000200
        Capabilities: [a0] MSI: Enable- Count=1/32 Maskable- 64bit+
                Address: 0000000000000000  Data: 0000
        Capabilities: [c0] Vital Product Data
                Product Name: Atlantic
                Read-only fields:
                        [PN] Part number: 3290495095
                        [EC] Engineering changes: 0
                        [FG] Unknown: 61 62 63
                        [LC] Unknown: 64 65 66
                        [MN] Manufacture ID: AFDSWEWEBSFD
                        [PG] Unknown: 49 49 49
                        [SN] Serial number: CPL5938TLKMY
                        [V0] Vendor specific: wfewfe
                        [V1] Vendor specific: fwewfe
                        [V2] Vendor specific: SDFWI
                        [RV] Reserved: checksum good, 0 byte(s) reserved
                Read/write fields:
                        [YA] Asset tag: 9495829
                        [V0] Vendor specific: f34ge4rsg
                        [V1] Vendor specific: ger35g5rthghgsa3
                        [Y0] System specific: bsdfvbxcz
                        [Y1] System specific: fwefewwfe
                        [RW] Read-write area: 11 byte(s) free
                End
        Capabilities: [100 v2] Advanced Error Reporting
                UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
                CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr-
                CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+
                AERCap: First Error Pointer: 00, ECRCGenCap+ ECRCGenEn- ECRCChkCap+ ECRCChkEn-
                        MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap-
                HeaderLog: 00000000 00000000 00000000 00000000
        Capabilities: [150 v1] Vendor Specific Information: ID=0001 Rev=1 Len=024 <?>
        Capabilities: [180 v1] Secondary PCI Express
                LnkCtl3: LnkEquIntrruptEn- PerformEqu-
                LaneErrStat: 0
        Kernel driver in use: atlantic
        Kernel modules: atlantic

Ich habe versucht dieses Script auszuführen, bekommen aber einen Fehler in Zeile 61 bei den Klammern.
Geändert habe ich entsprechend nur
ROOT_COMPLEX="00:00.0"
ENDPOINT="01:00.0"

Meine KernelCommandline ist um die ASPM Policy für powersave bereits geändert, ein forced hat ebenfalls nichts gebracht.
root=ZFS=rpool/ROOT/pve-1 boot=zfs initcall_blacklist=acpi_cpufreq_init amd_pstate=active pcie_aspm.policy=powersave iommu=pt

Im Verzeichnis sieht es so aus:
1726582839415.png
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh