Grazer Linuxtage 2026
Michael Prokop
11. April 2026
Grml.org Erfinder + Projektleiter
Grml-Forensic (forensische IT-Analysen)
Geschäftsführer von SynPro Solutions GmbH
Strategische IT-Beratung / IT-Consulting
Vermittlung von Best Practices / Workshops
Troubleshooting / IT-Audits / Emergency Response
❤️ tricky 💻-Probleme, 🥁🎶 + gute (spez. humorvolle) 📚
Quelle: XKCD + xkcd2501-generator
Ein Clown ist ein Artist, dessen primäre Kunst es ist,
Menschen zum Lachen zu bringen. Der Begriff „Clown“ kommt
von einem englischen Begriff mit der Bedeutung „Bauerntölpel“,
im Englischen seit etwa 1600 für „Narr, Spaßmacher“ verwendet.
Quelle: de.wikipedia.org/wiki/Clown
Mit unseren gemeinsam entwickelten Clown-Lösungen erreichen Sie Ihre Clown-Ziele schneller als je zuvor!
Optimieren Sie Ihren IT-Betrieb mit intelligenten Clown-Agenten, die Probleme in Ihrer gesamten Clown-Umgebung lösen!
We provide a Clown-first, Clown-driven platform!
Disclaimer: alle Fälle sind real,
aber sie wurden
anonymisiert.
Es geht nicht um Victim-Blaming,
sondern ums Lernen aus Fehlern.
Monitoring schreit:
CRIT fw.example.org CPU utilization Total CPU: 100% (warn/crit at 80.0%/90.0%)
Problembeschreibung:
eine Sophos UTM-9
Firewall
hat seit 12.03.2024 immer wieder
hohe Load +
Netzwerkprobleme
<M> fw:/tmp # tcpdump -nn -i any -G 15 -W 1 -w debugging.pcap "port not ssh"
tcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
Maximum file limit reached: 1
<M> fw:/tmp # ls -lah debugging.pcap
-rw-r--r-- 1 root root 321M Mar 13 17:13 debugging.pcap
Viele Retransmits.
“Da hat’s was”.
Seit 12.03.2024 ist was “anders”:
<M> fw:/var/log # zgrep -c 'Connection terminated' openvpn/2024/03/*
[…]
openvpn/2024/03/openvpn-2024-03-11.log.gz:214
openvpn/2024/03/openvpn-2024-03-12.log.gz:2022
openvpn/2024/03/openvpn-2024-03-13.log.gz:3135
openvpn/2024/03/openvpn-2024-03-14.log.gz:1467
openvpn/2024/03/openvpn-2024-03-15.log.gz:259
openvpn/2024/03/openvpn-2024-03-16.log.gz:42
openvpn/2024/03/openvpn-2024-03-17.log.gz:15
openvpn/2024/03/openvpn-2024-03-18.log.gz:4688
Quizfrage: was war am 16. und 17. los?
<M> fw:/var/log # zgrep -c johndoe openvpn/2024/03/*.log.gz
[…]
openvpn/2024/03/openvpn-2024-03-10.log.gz:0
openvpn/2024/03/openvpn-2024-03-11.log.gz:120
openvpn/2024/03/openvpn-2024-03-12.log.gz:0
openvpn/2024/03/openvpn-2024-03-13.log.gz:0
openvpn/2024/03/openvpn-2024-03-14.log.gz:0
openvpn/2024/03/openvpn-2024-03-15.log.gz:0
openvpn/2024/03/openvpn-2024-03-16.log.gz:0
openvpn/2024/03/openvpn-2024-03-17.log.gz:0
openvpn/2024/03/openvpn-2024-03-18.log.gz:64638
Weitere Accounts identifiziert + deaktiviert. Gemeinsamer
Nenner?
Apple-Rechner mit Tunnelblick
<M> fw:/var/log # zgrep -c 'Connection terminated' openvpn/2024/03/*
[…]
openvpn/2024/03/openvpn-2024-03-11.log.gz:214
openvpn/2024/03/openvpn-2024-03-12.log.gz:2022
openvpn/2024/03/openvpn-2024-03-13.log.gz:3135
openvpn/2024/03/openvpn-2024-03-14.log.gz:1467
openvpn/2024/03/openvpn-2024-03-15.log.gz:259
openvpn/2024/03/openvpn-2024-03-16.log.gz:42
openvpn/2024/03/openvpn-2024-03-17.log.gz:15
openvpn/2024/03/openvpn-2024-03-18.log.gz:4688
Exponential backoff:
-connect-retry args
Wait n seconds between connection attempts (default 1).
Repeated reconnection attempts are slowed down after 5 retries
per remote by doubling the wait time after each unsuccessful attempt.
Vieeeeele solcher Einträge für betroffene Accounts in Logs:
<M> fw:/var/log # tail -f confd.log
[…]
a1efc4a36a3696f0510a5ff2d3c46814e" facility="system" client="confd-qrunner.pl" pid="3750" attr_ras_online="1" oldattr_ras_online="1"
2024:03:18-17:42:46 fw-1 confd[3664]: I main::top-level:682() => id="310a" severity="info" sys="System" sub="confd" name="object changed" class="network" type="aaa" ref="REF_NetAaaFoobarUserNetwo" objname="johndoe (User Network)" user="system" […] client="confd-qrunner.pl" pid="3750" attr_addresses="['10.23.42.2']" […]"
<M> fw:/var/log # grep -c johndoe confd.log # Problemaccount:
9317
<M> fw:/var/log # grep -c synpromika confd.log # zum Vergleich:
28
HA kommt nicht hinterher 🥹
data-ciphers-Konfiguration
ausgerollt
# grep 'Connection reset, restarting' /var/log/openvpn.log | awk '{print $4}' | \
sed 's|/.*||; s|:.*||' | sort | uniq -c | sort -nr
“Das Besenprofil soll allzu
neugierige Fahrgäste
sanft dazu bringen,
ihren aus dem Fenster
gestreckten Kopf rechtzeitig
wieder einzuziehen.”
- name: Download client binary
get_url:
url: "https://github.com/restic/restic/releases/[…]"
dest: "/tmp/restic_{{ restic_version }}.bz2"
delegate_to: localhost
- name: Decompress the binary
shell: "bzip2 -dc /tmp/restic_{{ restic_version }}.bz2 > /tmp/restic_{{ restic_version }}"
args:
creates: "/tmp/restic_{{ restic_version }}"
delegate_to: localhost
- name: Propagate restic binary
copy:
src: "/tmp/restic_{{ restic_version }}"
dest: "{{ restic_install_path }}/restic"
mode: '0750'
owner: root
BASE_URL=https://github.com/restic/restic/releases/download/
wget "$BASE_URL/v0.18.1/restic_0.18.1_linux_amd64.bz2"
bzip2 -dc restic_0.18.1_linux_amd64.bz2 > /tmp/restic_0.18.1
cp /tmp/restic_0.18.1 /usr/local/bin/restic
chmod 0750 /usr/local/bin/restic
chown root: /usr/local/bin/restic
- name: Decompress the binary
shell: "bzip2 -dc /tmp/restic_{{ restic_version }}.bz2 > /tmp/restic_{{ restic_version }}"
args:
creates: "/tmp/restic_{{ restic_version }}"
delegate_to: localhost
- name: Propagate restic binary
copy:
src: "/tmp/restic_{{ restic_version }}"
dest: "{{ restic_install_path }}/restic"
mode: '0750'
owner: root
% restic backup /srv/samba
% touch restic
% chmod 750 ./restic
% ls -la ./restic
-rwxr-x--- 1 mika mika 0 Apr 11 11:42 ./restic
% ./restic
% echo $?
0
% strace -e execve bash -c './restic'
execve("/usr/bin/bash", ["bash", "-c", "./restic"], 0x7ffd0e589d20 /* 64 vars */) = 0
execve("./restic", ["./restic"], 0x55da5f295e40 /* 64 vars */) =
-1 ENOEXEC (Exec format error)
+++ exited with 0 +++
[…]
2025-03-31 01:00:04+0200 LOG: Check if repository is ok
2025-03-31 01:00:05+0200 LOG: Create new backup
2025-03-31 01:00:05+0200 LOG: SUCCESS: Backup completed at 2025-03-31_01:00:05 [running 0 seconds]
Vortrag von mir auf den GLT24:
Betreff: Brauchen Cybersecurity-Unterstützung
2023 haben Sie uns bei einem Cybersecurity-Problem geholfen. Ich befürchte, wir stehen an einem entscheidendem Punkt mit einer weiteren ernsten Situation. Wir bekämpfen seit […] 2025 böse Akteure, und dachten, wir hätten alles im Griff, aber jetzt ist es wieder da.
Disclaimer: originaler Text übersetzt + verfremdet
My password is just every Unicode codepoint
concatenated into a
single UTF-8 string.
/etc/passwd eines infizierten Systems:
% grep systemd: /etc/passwd
systemd:x:000:65534:systemd:/:/usr/sbin/nоlоgin
% grep systemd: /etc/passwd | cat -vte
systemd:x:000:65534:systemd:/:/usr/sbin/nM-PM->lM-PM->gin$
% ./busybox ls -la /sbin/nologin /usr/sbin/nоlоgin | ./busybox cat -vte
-rwxr-xr-x 1 root root 964536 Nov 24 2024 /sbin/nologin$
-rwxr-xr-x 1 root root 964536 Jan 17 2025 /usr/sbin/n?l?gin$
% ./busybox md5sum /sbin/nologin /usr/sbin/nоlоgin
cfd65bed18a1fae631091c3a4c4dd533 /sbin/nologin
cfd65bed18a1fae631091c3a4c4dd533 /usr/sbin/nologin
| Infrastruktur-Thema / Problem | Stand 2023 | Stand 2026 |
|---|---|---|
| Backups | - | - |
| Monitoring | - | - |
| Konfigurationsmanagement | - | ~ |
| Zentrales Logging | - | - |
| Passwortmanagement | - | - |
| SSH Accounts | - | - |
| EOL-Systeme | - | - |
Rasender Stillstand! (© Paul Virilio)
“Wenn wir wollen, daß alles so bleibt, wie es ist, muss alles sich ändern.”
“Der Leopard”, Giuseppe Tomasi di Lampedusa
“The two hardest problems in computer science are:
(i) people, (ii), convincing computer scientists that
the hardest problem in computer science is people, and,
(iii) off by one errors.”
– Jeffrey P. Bigham
Danke für eure Aufmerksamkeit!
% sq network keyserver search 96A87872B7EA3737