Hetzner Config Mode
Im Config Mode ist als Installations-Image other -> Proxmox (Buster) auszuwählen.
In der Config-Datei den Hostnamen auf HS?? ändern
Partitionierung
Die Partitionierung richten wir entsprechend der Proxmox Standard-Partitionierung ein.
Hardware-Raid oder 1 Festplatte
Standardkonfig mit # auskommentieren (alle Zeilen mit PART und LV).
Folgende Zeilen einfügen:
PART /boot ext4 512M
PART lvm pve all
LV pve swap swap swap 8G
LV pve root / ext4 100G
Software-Raid mit 2 Festplatten
Folgende Konfiguration verwenden:
PART /boot ext3 4G
PART lvm vg0 116G
PART lvm vg1 all
LV vg0 root / ext3 100G
LV vg0 swap swap swap 16G
LV vg1 vz /var/lib/vz ext3 all
Mit dem Befehl cat /proc/mdstat
kann der Status der Initialisierung ausgegeben werden.
Mit dem Befehl mdadm -D /dev/mdX
können weitere Details über ein Array ausgegeben werden
Grundkonfiguration
root Passwort
root Password mit passwd ändern (bspw. 20 Zeichen). Dies wird für den Login auf der Proxmox Konfigurationsoberfläche benötigt.
Storage anlegen (bei Hardware-RAID)
Daten-Speicher für virtuelle Maschinen anlegen. Die Größe kann/sollte entsprechend der Gegebenheiten angepasst werden.
lvcreate -L 1024G -n data pve
lvconvert --type thin-pool pve/data
In der Proxmox-Oberfläche muss er unter Rechenzentrum -> Storage -> hinzufügen -> LVM-Thin mit folgenden Einstellungen hinzugefügt werden:
- ID = local-lvm
- Volume-Gruppe = lvm
- Thin Pool = data
SSH
SSH-Config /etc/ssh/sshd-config
anpassen:
- Port auf 65333 ändern
Wenn nicht bereits bei der Hetzner-Einrichtung erfolgt, können die SSH-Key’s weiterer Admins hinterlegt werden.
Netzwerk
Es wird ein zusätzliches /56 IPv6 Subnetz (in diesem Beispiel 2a01:affe:affe:ff00::/56) von Hetzner (einmalig 49€) benötigt. Dies kann man einfach per Ticket zu jedem Server buchen.
Der Einfachheit halber wird der Name der Netzwerkkarte auf eth0 geändert:
sed -i "s/GRUB_CMDLINE_LINUX=\"\"/GRUB_CMDLINE_LINUX=\"net.ifnames=0 biosdevname=0\"/g" /etc/default/grub
grub-mkconfig -o /boot/grub/grub.cfg
Wichtig, es muss anschließend in der /etc/network/interfaces
der Adaptername mit eth0
ersetzt werden.
Es muss eine Netzwerk-Bridge angelegt werden, an der die VM’s angebunden werden. Die Bridge erzeugt quasi ein „internes“ Netzwerk, an der alle VM’s angebunden sind. Dem Netzwerk geben wir den IP-Bereich 192.168.0.0/16 und aktivieren NAT, damit die VM’s auch das Internet erreichen. Nachfolgend eine Beispiel /etc/network/interfaces
:
source /etc/network/interfaces.d/*
auto lo
iface lo inet loopback
iface lo inet6 loopback
auto eth0
iface eth0 inet static
address x.x.x.x
netmask x
gateway x.x.x.x
up route add -net x.x.x.x netmask 255.255.255.224 gw x.x.x.x dev eth0
post-up iptables -t mangle -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN -o eth0 -j TCPMSS --set-mss 1360
iface eth0 inet6 static
address x:x:x:x::2
netmask 128
gateway fe80::1
#zusätzliche IPv6 (am besten die erste Adresse des Subnet) aus zusätzlichem Subnet auf eth0 binden,
up ip addr add 2a01:affe:affe:ff00::2/128 dev eth0
up sysctl -p
auto vmbr0
iface vmbr0 inet static
address 192.168.0.1
netmask 16
bridge-ports none
bridge-stp off
bridge-fd 0
# Ausgehende IPv4 Pakete maskieren
post-up iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE
# Port-Forwarding (fastd-Tunnel) zu VM (siehe unten)
post-up iptables -t nat -A PREROUTING -i eth0 -p udp --dport 10101 -j DNAT --to 192.168.1.1:10101
post-down iptables -t nat -D PREROUTING -i eth0 -p udp --dport 10101 -j DNAT --to 192.168.1.1:10101
iface vmbr0 inet6 static
# zusätzliches v6 Subnetz an Bridge binden
address 2a01:affe:affe:ff00::2
netmask 56
# IPv6 Route eines /64 Netzes zu einer VM, welche dieses Netz per SLAAC verteilen kann...
up ip route add 2a01:affe:affe:ff11::/64 via 2a01:affe:affe:6f11::2
Wenn die VM-Bridge von mehreren Host-Servern über das Hetzner VLAN miteinander verbunden werden sollen muss die /etc/network/interfaces
noch um folgenden Eintrag erweitert werden:
auto eth0.4000
iface eth0.4000 inet manual
vlan-raw-device eth0
mtu 1400
Und die Bridge vmbr0 muss an die Schnittstelle gebunden werden. Dafür muss der Eintrag bridge-ports none
in bridge-ports eth0.4000
Abschließend muss noch das IP-Forwarding aktivieren, damit die Pakete auch weitergeleitet werden.
Dafür ist in der Datei /etc/sysctl.d/99-hetzner.conf
und/oder /etc/sysctl.conf
folgendes einzustellen:
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
Das erfolgreiche setzen der Werte kann mit sysctl -p
überprüft werden.
Firewall
Es sollten alle Port’s außer der SSH-Port (65333), ICMP und die fastd-Port gesperrt werden. Die zugelassenen Port’s legt man in der Proxmox-Oberfläche unter Rechenzentrum->Firewall an.
Anschließend aktiviert man die Firewall unter Rechenzentrum->Firewall-Optionen.
Am besten das ganze mal bei einem bereits bestehenden Proxmox anschauen…
Vorbereitung für VM’s
ISO-Download
Um auf Basis von Debian eine VM zu erstellen muss noch die entsprechende ISO (Link evtl. anpassen) runtergeladen werden. Dies geht einfach mit:
cd /var/lib/vz/template/iso
wget https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-10.3.0-amd64-netinst.iso
Port-Forwarding
Damit ein bestimmter Port zur VM weitergeleitet wird, muss für jede VM jeweils folgendes in die /etc/network/interfaces
in dem unter Netzwerk eingefügten Teil unter der NAT-Regel eingefügt werden:
post-up iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 10101 -j DNAT --to 192.168.1.1:10101
post-down iptables -t nat -D PREROUTING -i eth0 -p tcp --dport 10101 -j DNAT --to 192.168.1.1:10101
Wobei eth0
die phys. Netzwerkkarte, 10101
der Zielport und 192.168.1.1
die IP der VM ist. Dies sollte entsprechend der Gegebenheiten angepasst werden.
Abschluss
Nachdem alle obigen Aufgaben erledigt sind, muss der Server neugestartet werden. Anschließend können über die Proxmox-Oberfläche VM’s angelegt werden.