Debian vs. Ubuntu â Server Setup: RAID1, LVM, iptables
Kontext und Philosophie
Beide Distributionen teilen dieselbe Basis (dpkg, apt, systemd), unterscheiden sich aber in Standardkonfigurationen, Release-Zyklen und Tooling erheblich â besonders relevant im Rechenzentrum.
| Aspekt | Debian (Netinstall) | Ubuntu 24 LTS |
|---|---|---|
| Release-Zyklus | ~2 Jahre (sehr stabil) | 2 Jahre LTS, 6 Monate regular |
| Support | ~5 Jahre (LTS bis 10 mit ESM) | 5 Jahre gratis, +5 Jahre Pro (kostenpflichtig!) |
| Kernel | Stabiler, Àlterer Kernel | Neuerer HWE-Kernel optional |
| Default-Footprint | Minimal (Netinstall: ~200 MB) | GröĂer, viele Pakete vorinstalliert |
| Snap | Kein Snap | Snap vorinstalliert, teils erzwungen |
| Netzwerk-Config | /etc/network/interfaces |
Netplan (/etc/netplan/*.yaml) |
| Firewall-Default | Keine (iptables leer) | ufw vorinstalliert (inaktiv) |
| AppArmor | Optional | Aktiv, aggressivere Profile |
| Installer | Debian Installer (d-i) | Subiquity (cloud-init basiert) |
| IPMI/Serial | Gut unterstĂŒtzt | Bekannte Probleme mit Installationsmedium |
Installer-Unterschiede
Debian Netinstall (d-i)
Vorteile:
+ Minimaler Footprint von Anfang an
+ RAID1 + LVM direkt im Installer konfigurierbar
+ Keine versteckten Dienste nach Installation
+ Volle Kontrolle ĂŒber Paketauswahl
+ Funktioniert stabil ĂŒber IPMI/Serial-Konsole
Nachteile:
- Text-Interface (gewöhnungsbedĂŒrftig)
- Mehr manuelle Schritte
- Netzwerkkonfiguration muss vorab bekannt sein
Ubuntu 24 LTS Subiquity
Vorteile:
+ Modernes UI
+ Automatische LVM-Einrichtung möglich
+ cloud-init Integration
Nachteile:
- IPMI: Installationsmedium kann bei Session-Ăbergabe verloren gehen
â Bootreihenfolge kritisch: Install-Medium muss ERSTE Boot-Option bleiben
â Nach Konfigurationsschritten prĂŒfen ob Medium noch aktiv
- Snap wird fĂŒr core-Pakete (z.B. lxd) aufgezwungen
- Nach Install: snap-Pakete manuell entfernen fĂŒr kleinen Footprint
- Netplan statt /etc/network/interfaces
â ïž IPMI-Erkenntnis: Beim Ubuntu Subiquity Installer ĂŒber IPMI kann das Installationsmedium nach Netzwerk-/Konfigurationsschritten als Boot-Device verloren gehen. Vor jedem Reboot im Installer die Bootreihenfolge im BIOS/IPMI prĂŒfen!
RAID1 Setup â Debian vs. Ubuntu
Gemeinsamkeiten
Beide nutzen mdadm â die Befehle sind identisch. Der Unterschied liegt im Installer-Workflow und der Post-Install-Konfiguration.
# Identisch auf beiden Systemen
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda /dev/sdb
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
update-initramfs -u
Doppeltes /boot/EFI â RAID1 auf UEFI-Systemen
Auf UEFI-Systemen kann die EFI-Partition nicht direkt Teil eines mdadm-RAID1 sein (FAT32-EinschrÀnkung). Die Lösung: zwei separate EFI-Partitionen, die synchron gehalten werden.
Disk Layout (beide Disks identisch):
/dev/sda1 â EFI (512 MB, FAT32) â EFI Partition 1
/dev/sda2 â /boot/efi Mirror A
/dev/sda3 â PV fĂŒr RAID1 â md0
/dev/sdb1 â EFI (512 MB, FAT32) â EFI Partition 2 (Backup)
/dev/sdb2 â /boot/efi Mirror B
/dev/sdb3 â PV fĂŒr RAID1 â md0
EFI-Sync zwischen beiden Disks einrichten
# /boot/efi ist auf /dev/sda1 gemountet (primÀr)
# /dev/sdb1 ist die Backup-EFI
# Backup-EFI einmalig synchronisieren
dd if=/dev/sda1 of=/dev/sdb1
# Oder mit rsync nach Updates
mkdir -p /boot/efi2
mount /dev/sdb1 /boot/efi2
rsync -av /boot/efi/ /boot/efi2/
umount /boot/efi2
# Automatischer Sync nach Kernel-Update (Debian/Ubuntu)
# /etc/apt/apt.conf.d/99-efi-sync
DPkg::Post-Invoke {"rsync -av /boot/efi/ /boot/efi2/ 2>/dev/null || true";};
GRUB auf beide EFI-Partitionen installieren
# PrimÀre EFI (sda)
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=debian /dev/sda
# Backup EFI (sdb) â gleiche Konfiguration
grub-install --target=x86_64-efi --efi-directory=/boot/efi2 --bootloader-id=debian /dev/sdb
# GRUB-Konfiguration neu generieren
update-grub
Unterschied: mdadm.conf Pfad
# Debian UND Ubuntu: identisch!
/etc/mdadm/mdadm.conf
# Nach Ănderungen immer:
update-initramfs -u
â Hier sind Debian und Ubuntu identisch â beide nutzen
/etc/mdadm/mdadm.conf
LVM Setup â Debian vs. Ubuntu
LVM im Installer
| Schritt | Debian (d-i) | Ubuntu (Subiquity) |
|---|---|---|
| RAID1 zuerst | Ja, im Partitionierungsschritt | Ja, unter "Custom storage layout" |
| LVM auf RAID | Manuell: PV auf md0, dann VG | Ăber UI möglich |
| Granulare LVs | Volle Kontrolle | EingeschrÀnkt im GUI |
| Empfehlung | Alles im Installer konfigurieren | Grundstruktur im Installer, Rest per CLI |
Typisches RZ-Layout: einzelne LVs pro Verzeichnis
# VG auf RAID1-Device erstellen
pvcreate /dev/md0
vgcreate vg0 /dev/md0
# Einzelne LVs fĂŒr kritische Verzeichnisse
lvcreate -L 10G -n lv_root vg0 # /
lvcreate -L 2G -n lv_tmp vg0 # /tmp
lvcreate -L 10G -n lv_var vg0 # /var
lvcreate -L 5G -n lv_var_log vg0 # /var/log
lvcreate -L 2G -n lv_var_tmp vg0 # /var/tmp
lvcreate -L 5G -n lv_home vg0 # /home
lvcreate -L 4G -n lv_swap vg0 # swap
lvcreate -l 100%FREE -n lv_data vg0 # /data (Rest)
Warum einzelne LVs pro Verzeichnis?
- /tmp und /var/tmp voll â kein Root-Fullness
- /var/log voll â keine Systemauswirkung
- Snapshots gezielt pro Volume möglich
- Sicherheitsoptionen pro Mount (noexec, nosuid)
/etc/fstab mit Sicherheitsoptionen
# /etc/fstab â RZ-HĂ€rtung
/dev/vg0/lv_root / ext4 defaults,errors=remount-ro 0 1
/dev/vg0/lv_tmp /tmp ext4 defaults,noexec,nosuid,nodev 0 2
/dev/vg0/lv_var /var ext4 defaults 0 2
/dev/vg0/lv_var_log /var/log ext4 defaults,noexec,nosuid,nodev 0 2
/dev/vg0/lv_var_tmp /var/tmp ext4 defaults,noexec,nosuid,nodev 0 2
/dev/vg0/lv_home /home ext4 defaults,noexec,nosuid,nodev 0 2
/dev/vg0/lv_swap none swap sw 0 0
Unterschied: Ubuntu 24 LTS Default-LVM
# Ubuntu legt bei automatischer LVM-Installation an:
ubuntu-vg/ubuntu-lv â / (oft nur 50% des verfĂŒgbaren Platzes!)
# HĂ€ufiges Problem: Nur 50% genutzt
lvdisplay ubuntu-vg/ubuntu-lv
# â "Current LE: 12800" obwohl doppelt verfĂŒgbar
# Lösung: Rest zuweisen
lvextend -r -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
â ïž Ubuntu's Installer lĂ€sst standardmĂ€Ăig ~50% des LVM-Platzes ungenutzt!
Debian's d-i nutzt in der Regel den gesamten verfĂŒgbaren Platz.
Netzwerkkonfiguration
Debian â /etc/network/interfaces
# /etc/network/interfaces
auto lo
iface lo inet loopback
# PrimÀres Interface
auto enp1s0
iface enp1s0 inet static
address 10.0.1.10
netmask 255.255.255.0
gateway 10.0.1.1
# IPMI/Management Interface (separates /19 Netz)
auto enp2s0
iface enp2s0 inet static
address 10.0.0.10
netmask 255.255.224.0
gateway 10.0.0.1
# DNS
dns-nameservers 10.0.0.53 10.0.0.54
dns-search example.com
# Netzwerk neu starten
systemctl restart networking
# Interface neu starten
ifdown enp1s0 && ifup enp1s0
Ubuntu â Netplan (/etc/netplan/)
# /etc/netplan/00-installer-config.yaml
network:
version: 2
renderer: networkd
ethernets:
enp1s0:
addresses:
- 10.0.1.10/24
routes:
- to: default
via: 10.0.1.1
nameservers:
addresses: [10.0.0.53, 10.0.0.54]
search: [example.com]
enp2s0:
addresses:
- 10.0.0.10/19
nameservers:
addresses: [10.0.0.53]
# Netplan anwenden (trocken testen!)
netplan try # 120s Timeout â bei Fehler automatisch zurĂŒck
netplan apply # Permanent anwenden
# Netplan debuggen
netplan --debug apply
â ïž
netplan tryist dein bester Freund im RZ â gibt 120 Sekunden zum BestĂ€tigen,
sonst automatischer Rollback. Immernetplan tryvornetplan apply!
Debian zu Ubuntu Netplan migrieren (oder umgekehrt)
# Ubuntu: auf /etc/network/interfaces wechseln (optional)
apt install ifupdown
# Netplan deaktivieren:
echo "network: {config: disabled}" > /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
# Dann /etc/network/interfaces manuell erstellen
iptables â Debian vs. Ubuntu
Default-Zustand nach Installation
| Debian | Ubuntu 24 LTS | |
|---|---|---|
| iptables | Leer (ACCEPT all) | Leer (ACCEPT all) |
| ufw | Nicht installiert | Installiert, inaktiv |
| nftables | Installiert, leer | Installiert, leer |
| ip6tables | Leer | Leer |
â Beide starten mit offenem Regelwerk â Unterschied ist nur ufw auf Ubuntu
iptables vs. nftables â Empfehlung
iptables: Legacy, aber ĂŒberall bekannt, stabil, gut dokumentiert
nftables: Moderner Nachfolger, seit Debian 10 / Ubuntu 20 Standard-Backend
ip6tables: Separates Tool fĂŒr IPv6 (bei iptables)
nft: Unified (IPv4 + IPv6 in einer Syntax)
Empfehlung RZ:
â iptables-nft (nftables Backend, iptables Syntax) â beste KompatibilitĂ€t
â KEIN ufw parallel zu iptables â fĂŒhrt zu Konflikten!
# PrĂŒfen welches Backend aktiv ist
iptables --version
# iptables v1.8.x (nf_tables) â nftables Backend
# iptables v1.8.x (legacy) â legacy iptables
# Auf nftables-Backend wechseln (Debian)
update-alternatives --set iptables /usr/sbin/iptables-nft
update-alternatives --set ip6tables /usr/sbin/ip6tables-nft
Basis-Regelwerk fĂŒr RZ-Server
#!/bin/bash
# /etc/iptables/rules.sh â RZ Basis-HĂ€rtung
IPT="iptables"
# Alle Chains leeren
$IPT -F
$IPT -X
$IPT -t nat -F
$IPT -t nat -X
$IPT -t mangle -F
$IPT -t mangle -X
# Default-Policy: alles verwerfen
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT ACCEPT
# Loopback erlauben
$IPT -A INPUT -i lo -j ACCEPT
# Established/Related Verbindungen erlauben
$IPT -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# ICMP (ping) erlauben
$IPT -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
# SSH â nur aus Management-Netz
$IPT -A INPUT -p tcp --dport 22 -s 10.0.0.0/19 -j ACCEPT
# IPMI-Interface: Management-Netz komplett erlauben
$IPT -A INPUT -i enp2s0 -s 10.0.0.0/19 -j ACCEPT
# Monitoring (z.B. NRPE/Icinga)
$IPT -A INPUT -p tcp --dport 5666 -s 10.0.0.0/19 -j ACCEPT
# Alles andere loggen und verwerfen
$IPT -A INPUT -j LOG --log-prefix "iptables-DROP: " --log-level 4
$IPT -A INPUT -j DROP
echo "Firewall-Regeln geladen."
Regeln persistent machen
# Debian UND Ubuntu â identisch:
apt install iptables-persistent
# Regeln speichern
netfilter-persistent save
# oder
iptables-save > /etc/iptables/rules.v4
ip6tables-save > /etc/iptables/rules.v6
# Automatisch beim Boot laden
systemctl enable netfilter-persistent
ufw auf Ubuntu deaktivieren (empfohlen bei manuellem iptables)
# ufw komplett deaktivieren
ufw disable
systemctl disable ufw
systemctl mask ufw
# PrĂŒfen ob ufw noch Regeln hat
ufw status verbose
iptables -L | grep ufw # Sollte leer sein
â ïž ufw und manuelles iptables gleichzeitig fĂŒhrt zu unerwartetem Regelwerk!
Entscheidung treffen: eines von beiden, nicht beides.
Snap entfernen (Ubuntu RZ-HĂ€rtung)
# Installierte Snaps anzeigen
snap list
# Snaps entfernen (Reihenfolge beachten!)
snap remove --purge lxd
snap remove --purge core22
snap remove --purge snapd
# snapd deinstallieren
apt purge snapd
apt-mark hold snapd # Verhindert Neuinstallation durch apt
# Snap-Verzeichnisse bereinigen
rm -rf /snap /var/snap /var/lib/snapd /var/cache/snapd ~/snap
# Snap-Mount-Points aus /etc/fstab entfernen (falls vorhanden)
# Zeilen mit "squashfs" und "/snap" prĂŒfen
cat /etc/fstab | grep snap
â Debian hat dieses Problem nicht â kein Snap im Netinstall
AppArmor â Debian vs. Ubuntu
| Aspekt | Debian | Ubuntu |
|---|---|---|
| Status | Installiert, wenige Profile aktiv | Aktiv, aggressive Profile |
| CVE-Reaktion | Langsamere Patches (stable) | Schnellere Updates |
| Pro (kostenpflichtig) | Nicht relevant | Nötig fĂŒr Updates nach 5 Jahren! |
| Empfehlung RZ | Explizit aktivieren + Profile pflegen | Profile prĂŒfen, ggf. deaktivieren |
# AppArmor Status prĂŒfen
aa-status
apparmor_status
# Profil in Beschwerdemodus setzen (nicht blockieren, nur loggen)
aa-complain /etc/apparmor.d/usr.sbin.sshd
# Profil deaktivieren
aa-disable /etc/apparmor.d/usr.sbin.nginx
# Ubuntu: AppArmor komplett deaktivieren (nur wenn bewusste Entscheidung!)
systemctl disable apparmor
# GRUB: apparmor=0 in GRUB_CMDLINE_LINUX
Post-Install Checkliste: Debian vs. Ubuntu
Debian Netinstall â Post-Install
# 1. System aktualisieren
apt update && apt full-upgrade
# 2. Basis-Tools installieren
apt install vim tmux htop net-tools curl wget git \
sudo openssh-server fail2ban \
mdadm lvm2 iptables-persistent \
rsync tree ncdu
# 3. sudo fĂŒr Admin-User konfigurieren
usermod -aG sudo adminuser
# 4. SSH hÀrten (siehe SSH-Knowlegde Base)
vim /etc/ssh/sshd_config
# 5. iptables Regelwerk laden
bash /etc/iptables/rules.sh
netfilter-persistent save
# 6. mdadm monitoring aktivieren
systemctl enable mdmonitor
# 7. RAID-Status prĂŒfen
cat /proc/mdstat
mdadm --detail /dev/md0
Ubuntu 24 LTS â Post-Install (Zusatzschritte)
# ZusÀtzlich zu Debian-Schritten:
# 1. Snap entfernen
snap remove --purge lxd core22 snapd
apt purge snapd
apt-mark hold snapd
# 2. ufw deaktivieren (wenn eigenes iptables)
ufw disable
systemctl mask ufw
# 3. cloud-init deaktivieren (wenn kein Cloud-Einsatz)
systemctl disable cloud-init cloud-init-local cloud-config cloud-final
touch /etc/cloud/cloud-init.disabled
# 4. Netplan prĂŒfen und anpassen
netplan try # IMMER try vor apply!
netplan apply
# 5. Ubuntu Pro / ESM prĂŒfen
pro status
# Falls nicht benötigt: ubuntu-advantage-tools kann bleiben, kostet nichts
# 6. LVM-Platz prĂŒfen (Ubuntu lĂ€sst oft 50% frei!)
vgs
lvdisplay ubuntu-vg/ubuntu-lv
# Falls nicht voll: lvextend -r -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
# 7. motd-news deaktivieren (vermindert Login-Delay)
systemctl disable motd-news.timer
chmod -x /etc/update-motd.d/10-help-text
chmod -x /etc/update-motd.d/50-motd-news
Warum Debian fĂŒr das RZ?
Ubuntu 22.04 LTS: Support bis April 2027 (gratis)
Ubuntu 24.04 LTS: Support bis April 2029 (gratis)
+ 5 Jahre mit Ubuntu Pro (kostenpflichtig!)
â FĂŒr langjĂ€hrige RZ-Server problematisch
Debian 12 (Bookworm): Support bis ~2028 (LTS)
Kein kostenpflichtiges Extended Support Modell
Klare, freie Lifecycle-Politik
AppArmor CVE Beispiel:
â Ubuntu patcht schnell (gut) aber erzwingt Pro fĂŒr Langzeit-Support (schlecht fĂŒr RZ)
â Debian patcht im stable Backports-Modell, voller Support ohne Kosten
Fazit fĂŒr RZ:
â
Debian: Vorhersehbarer Lifecycle, kein Vendor Lock-in, minimaler Footprint
â ïž Ubuntu: Schnellere Updates, aber kommerzielle Support-AbhĂ€ngigkeit bei langen Laufzeiten
Wichtige Dateien und Pfade â Vergleich
| Datei/Pfad | Debian | Ubuntu |
|---|---|---|
| Netzwerk-Config | /etc/network/interfaces |
/etc/netplan/*.yaml |
| iptables Rules | /etc/iptables/rules.v4 |
/etc/iptables/rules.v4 |
| mdadm Config | /etc/mdadm/mdadm.conf |
/etc/mdadm/mdadm.conf |
| LVM Config | /etc/lvm/lvm.conf |
/etc/lvm/lvm.conf |
| AppArmor | /etc/apparmor.d/ |
/etc/apparmor.d/ |
| GRUB Config | /etc/default/grub |
/etc/default/grub |
| GRUB Update | update-grub |
update-grub |
| initramfs | update-initramfs -u |
update-initramfs -u |
| Paketmanager | apt |
apt |
| Snap | nicht vorhanden | /snap, snapd |
| cloud-init | Nicht aktiv | Aktiv (deaktivierbar) |
| Netplan | Nicht vorhanden | /etc/netplan/ |
Quellen / WeiterfĂŒhrend
- Debian Installer Handbuch: https://www.debian.org/releases/stable/amd64/
- Ubuntu Server Guide: https://ubuntu.com/server/docs
man interfaces(Debian Netzwerk)man netplan(Ubuntu Netzwerk)man iptables,man nft- Debian Wiki: Software RAID
- Debian Wiki: LVM