Clusterstack

Endlich hatte ich die Zeit und Musse, einige wenig genutzte Intel NUCs freizuräumen und zu einem kleinen Kubernetes-Cluster zusammenzuschliessen. Das mir diese meinen Internetanschluss nachhaltig durch die Verknüpfung verschiedener Fehler lahmlegen sollten, konnte ich noch nicht ahnen.

Ziele des kleinen IT-Projekts waren:

Der erste Punkt war mit Ventoy recht schnell und bequem erledigt. Leider war es nicht möglich, die Kickstart-Datei über das GUI zu konfigurieren. Nach dem Erscheinen des GRUB-Menüs musste ich den Eintrag mit e editieren und die Kickstart-Datei manuell angeben:

PLAINTEXT
1
2
3
setParams 'Install Fedora 41'
    linux /images/pxeboot/vmlinuz inst.ks=http://ocean/ks.cfg
    initrd /images/pxeboot/ initrd.img
Klicken Sie zum Erweitern und mehr anzeigen

Etliche Reboots später hatte ich eine passende Kickstart-Datei für Fedora Server ausgetüftelt, die für eine rebungslose Installation im Textmodus sorgt:

PLAINTEXT
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# FEDORA SERVER KICKSTART

# Keyboard layouts
keyboard --vckeymap=sg --xlayouts='ch','us'
# System language
lang en_US.UTF-8

# Network information
network --bootproto=dhcp --hostname=worker-x.kube

# Use network installation
url --url="http://192.168.11.138:16000/eiso/pmd5/3fc5e7304649e8746c16e99e95c39d01"

%packages
@^server-product-environment

%end

# Run the Setup Agent on first boot
firstboot --disable

zerombr
clearpart --all --initlabel
autopart

# System timezone
timezone Europe/Zurich --utc

#Root password
rootpw --lock
user --uid=1100 --gid=1100 --groups=wheel --name=ansible --password=$6$/bW................Zi0$1 --iscrypted --gecos="Ansible User"
sshkey --username=ansible "ssh-ed25519 AAAAC3........5 ansible-master-key"

text

%post
cat <<EOF > /etc/sudoers.d/wheel-nopasswd
%wheel ALL=(ALL) NOPASSWD: ALL
EOF
chmod 0400 /etc/sudoers.d/wheel-nopasswd

# Fixes Ansible issue
dnf install -y python3-libdnf5

efibootmgr
%end
Klicken Sie zum Erweitern und mehr anzeigen

Anmerkungen

PLAINTEXT
1
 openssl passwd -6 <MeinKennwort>
Klicken Sie zum Erweitern und mehr anzeigen

Fehlschläge

Die Installation von Kubernetes setzt ein password-loses sudo voraus. Während der Einrichtung hatte ich jedoch ein schwaches Kennwort gewählt, da es schnell einzugeben war.

Nach einem Neustart des Rechners erhielt das System per DHCP eine IP-Adresse, die für eingehenden Internet-Traffic per NAT weitergeleitet wurde. Das lag daran, dass die Hardware zuvor als Internet-Gateway diente – eine Aufgabe, die mittlerweile von einer OPNsense-Firewall übernommen wird. Es kam, wie es kommen musste: Nach wenigen Stunden wurde der Internetanschluss spürbar langsamer, weil der ausgehende Traffic verdächtig anstieg.

Leider war die Einwahl-IP bereits auf mehreren Blacklist, von denen einige sich auch nach mehreren Tagen nicht bereinigen liessen. So blieb letzlich nur die Bitte an den Provider, eine neue IP zuzuteilen, was über den Support problemlos möglich war.

Nach der Entdeckung des Problems trennte ich das NUC sofort vom Netzwerk und untersuchte das System in einem isolierten Netz. Die Logs zeigten, dass die Sicherheitslücke ausgenutzt wurde. Um den Schaden zu beheben, habe ich das System neu installiert – diesmal mit schwer zu erratenden Passwörtern und einer Konfiguration des SSH-Servers, die den Login nur noch per Public Key erlaubt. Dafür musste folgende Einstellung in der Datei /etc/ssh/sshd_config angepasst werden:

BASH
1
2
# /etc/ssh/sshd_config
#PasswordAuthentication yes
Klicken Sie zum Erweitern und mehr anzeigen

Erkenntnisse

  1. Sicherheit in Entwicklungsumgebungen: Auch in Entwicklungsumgebungen sollte ein Mindestmaß an Sicherheit gewährleistet werden, insbesondere wenn unklar ist, ob das System später unverändert in die Produktion übernommen wird (was bei containerisierten Anwendungen häufig der Fall ist).
  2. Statische IPs für wichtige Infrastruktur: Wichtige Infrastruktur-IPs sollten nicht per DHCP vergeben werden, sondern statisch konfiguriert sein, um unerwünschte Zugriffe oder Fehlkonfigurationen zu vermeiden.

Kommentare

Suche starten

Geben Sie Schlüsselwörter ein, um Artikel zu suchen

↑↓
ESC
⌘K Tastenkürzel