Das mir meine Kinder ein Bild malen ist nichst ungewöhnliches. Heute hat mir aber ein Arbeitskollege ein Bild überreicht, welches er mir zum Geburtstag gemalt hat.
Ich find es klasse und freue mich wie „Bolle“.
Danköööööö
Fragen? Einfach melden.
IT security, FreeBSD, Linux, mail server hardening, post-quantum crypto, DNS, retro computing & hands-on hardware hacks. Privater Tech-Blog seit 2003.
Das mir meine Kinder ein Bild malen ist nichst ungewöhnliches. Heute hat mir aber ein Arbeitskollege ein Bild überreicht, welches er mir zum Geburtstag gemalt hat.
Ich find es klasse und freue mich wie „Bolle“.
Danköööööö
Fragen? Einfach melden.
Wie immer wenn mich eine Frage oft erreicht, gibt es hier dazu eine kurze Erklärung. Dieser Beitrag wird wirklich extrem kurz, denn um die Kernel Quellen für sein FreeBSD zu installieren nutze ich selbst immer folgenden Einzeiler:
# sudo svn checkout https://svn.freebsd.org/base/releng/`uname -r | cut -d'-' -f1,1` /usr/src
Tja, ich sag doch… Einfach und kurz. Viel Spaß
root@errortest:/etc/X11 # cd /usr/ports/graphics/drm-current-kmod/ && make install clean ===> drm-current-kmod-4.16.g20190430 requires kernel source files in /usr/src. *** Error code 1 Stop. make: stopped in /usr/ports/graphics/drm-current-kmod
Fragen? Einfach melden.
FreeBSD-Jails lassen sich mit freebsd-update genauso upgraden wie das Host-System. Der Parameter -b gibt den Pfad zur Jail an:
# Normales Jail-Upgrade freebsd-update -r 14.2-RELEASE upgrade -b /zroot/jails/myjail freebsd-update install -b /zroot/jails/myjail service jail restart myjail freebsd-update install -b /zroot/jails/myjail # Pakete aktualisieren jexec myjail pkg upgrade freebsd-update install -b /zroot/jails/myjail
Manchmal ist freebsd-update davon überzeugt, dass die Jail bereits auf der Zielversion läuft, obwohl sie es nicht ist. Prüft man manuell, steht da noch die alte Version:
jexec myjail freebsd-version 13.2-RELEASE-p9
Das passiert typischerweise wenn die Jail schon Patches bekommen hat oder wenn der Host auf einer anderen Version läuft als die Jail. freebsd-update liest die Version aus Dateien im Jail-Dateisystem und kommt durcheinander.
Mit --currently-running gibt man freebsd-update die aktuelle Version explizit vor:
freebsd-update -b /zroot/jails/myjail --currently-running 13.2-RELEASE-p9 -r 14.2-RELEASE upgrade
Danach läuft das Upgrade normal durch. Die Version, die man bei --currently-running angibt, muss exakt der Ausgabe von freebsd-version in der Jail entsprechen, inklusive Patchlevel.
Tipp: Vor dem Upgrade einen ZFS-Snapshot der Jail anlegen. Falls etwas schiefgeht, ist ein Rollback in Sekunden erledigt.
Fragen? Einfach melden.
Die netten Leute von Thomas Krenn haben uns ihr OpenPOWER-Testsystem zur Verfügung gestellt. Wir wollten dieses System schon länger in die Finger bekommen. Jetzt hat es endlich geklappt.
Der Server zieht mit seinen zwei 1200-Watt-Netzteilen in der Spitze etwa 370 Watt (im Normalbetrieb um die 230 Watt) und soll laut Thomas Krenn 1.325 BTU/h produzieren. Verbaut sind 128 GB RAM und eine POWER8-CPU:
root@ubuntu:~# lscpu Architecture: ppc64le Byte Order: Little Endian CPU(s): 64 Thread(s) per core: 8 Core(s) per socket: 8 Socket(s): 1 Model name: POWER8 (raw), altivec supported CPU max MHz: 3857.0000 L1d cache: 64K L1i cache: 32K L2 cache: 512K L3 cache: 8192K
64 Threads auf 8 Cores, SMT8. Das Betriebssystem war ein Ubuntu 16.04 LTS (ppc64le).
Die mitgelieferten Festplatten (3,5″ Nearline SAS mit 7,2k) waren für unseren Datenbanktest zu langsam. Also haben wir ein paar ältere 15k-SAS-Platten aus dem Lager verbaut und in ein RAID 10 geworfen. Damit war das lokale Storage laut pg_test_fsync vergleichbar mit unseren anderen Testsystemen. Wir wollten ja CPU-Leistung vergleichen, nicht Festplatten.
Als Erstes ein paar alltägliche Operationen im Vergleich mit Intel-Systemen:
| CPU | SHA256 500 MB | bzip2 500 MB | AES 500 MB |
| 2× Xeon E5-2665 @ 2.40 GHz | 3,859 s | 5,445 s | 1,337 s |
| 1× POWER8 @ 3.86 GHz | 3,803 s | 7,868 s | 0,866 s |
| 1× Core i7-6700 @ 3.40 GHz | 2,370 s | 4,207 s | 0,831 s |
| 2× Xeon E5-2650 v4 @ 2.20 GHz | 2,652 s | 5,413 s | 1,585 s |
| 2× Xeon E5-2650 v3 @ 2.30 GHz | 2,484 s | 5,217 s | 1,500 s |
AES-Verschlüsselung: POWER8 vorn. SHA256: gleichauf. bzip2: Intel deutlich schneller. Ein gemischtes Bild.
Das OpenPOWER-System gegen ein Dell-System mit zwei Intel Xeon E5-2665 (nur CPU/RAM relevant):
| Benchmark | 2× Xeon E5-2665 | 1× POWER8 |
| Dhrystone 2 | 34.551.077 lps | 27.167.564 lps |
| Double-Precision Whetstone | 4.082 MWIPS | 4.092 MWIPS |
| Execl Throughput | 2.124 lps | 2.776 lps |
| Pipe Throughput | 2.067.851 lps | 465.884 lps |
| Process Creation | 4.278 lps | 7.391 lps |
| Shell Scripts (1 concurrent) | 5.543 lpm | 7.085 lpm |
| Shell Scripts (8 concurrent) | 6.090 lpm | 4.357 lpm |
| System Call Overhead | 4.186.840 lps | 344.157 lps |
| Index Score | 1.629,6 | 851,8 |
Process Creation und Shell Scripts (single): POWER8 vorn. System Calls und Pipe Throughput: Intel massiv besser. Der Index-Score geht klar an Intel, wobei der Vergleich nicht ganz fair ist (Dual-CPU gegen Single-CPU).
Die hohe Thread-Anzahl und die breite Speicheranbindung machen die POWER8 theoretisch zum guten Datenbankprozessor. Wir arbeiten viel mit PostgreSQL, also haben wir unsere Testdatenbank restored:
| CPU | Restore-Zeit |
| 2× Xeon E5-2650 v3 @ 2.30 GHz | 129 min 34 s |
| 1× POWER8 @ 3.86 GHz | 120 min 43 s |
Knapp 9 Minuten schneller als das Dual-Xeon-System. Bei Datenbank-Workloads macht sich die Speicheranbindung bemerkbar.
Die POWER8 ist ohne Zweifel leistungsstark. Die Speicheranbindung und die 64 Threads merkt man bei Datenbank-Workloads. Im Single-CPU-Vergleich macht das System bei Datenbanken den Stich. Aber: Das OpenPOWER-System von Thomas Krenn gibt es nur mit einem CPU-Socket, preislich liegt es aber auf dem Niveau eines Dual-Xeon-Systems. In diesem Vergleich hat Intel die Nase vorn.
IBM hat die POWER8 2013 vorgestellt, unser Test war 2018. Die Vergleichssysteme waren ebenfalls nicht brandneu. Unterm Strich: Tolle CPU, aber im Preis-Leistungs-Verhältnis für einen Datenbankserver gegenüber Intel der Verlierer. Im HPC-Bereich oder bei der Anbindung von Nvidia-Beschleunigern sieht das sicher anders aus. Dual-CPU-Systeme oder direkt POWER9 (mit AES und GZIP im Chip) wären spannend gewesen. Da IBM von diesen CPUs im Vergleich zu Intel nur geringe Stückzahlen verkauft, bleibt der Preis hoch.
Wer FreeBSD auf anderer Hardware ausprobieren will: FreeBSD auf dem Desktop beschreibt die Grundinstallation mit MATE. Und mit bhyve und vm-bhyve lassen sich Windows-VMs auf FreeBSD betreiben.
Fragen? Einfach melden.
FreeBSD bringt seit Version 10.0 einen eigenen Typ-2-Hypervisor mit: bhyve. Für den täglichen Umgang empfiehlt sich vm-bhyve als Verwaltungstool — damit lässt sich eine Windows-VM in wenigen Minuten einrichten, ohne sich mit den bhyve-Basistools herumschlagen zu müssen.
# Installation pkg install vm-bhyve grub2-bhyve uefi-edk2-bhyve # ZFS-Dataset für VMs anlegen zfs create pool/vm # Autostart aktivieren sysrc vm_enable="YES" sysrc vm_dir="zfs:pool/vm" # Initialisieren und Templates kopieren vm init cp /usr/local/share/examples/vm-bhyve/* /pool/vm/.templates/ # Netzwerk-Switch erstellen und physisches Interface anhängen vm switch create public vm switch add public em0
ISO-Dateien importieren — die Windows-ISO und die virtio-Treiber für die Netzwerkkarte:
# Windows-ISO importieren vm iso /home/kernel/Download/win10.iso # virtio-net Treiber (für die Netzwerkkarte in der VM) fetch https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso vm iso /home/kernel/Download/virtio-win.iso
VM aus dem mitgelieferten Windows-Template erstellen:
vm create -t windows -s 200G win10
Das Windows-Template kommt mit 2 CPUs und 2 GB RAM. Für eine brauchbare Windows-VM besser anpassen:
vm configure win10
uefi="yes" cpu=4 memory=8G graphics="yes" graphics_port="5999" graphics_listen="127.0.0.1" graphics_res="1280x1024" graphics_wait="auto" xhci_mouse="yes" network0_type="virtio-net" network0_switch="public" disk0_type="ahci-hd" disk0_name="disk0.img"
Die wichtigsten Optionen: graphics="yes" aktiviert einen VNC-Server für die Grafikausgabe, xhci_mouse="yes" sorgt für eine brauchbare Maus in der VM, network0_type="virtio-net" nutzt den schnelleren paravirtualisierten Netzwerktreiber statt einer emulierten Karte.
# VM starten und ISO einlegen vm install win10 win10.iso
Dann mit einem VNC-Viewer auf 127.0.0.1:5999 verbinden und Windows installieren. Nach der Installation die virtio-Treiber-ISO einlegen (vm install win10 virtio-win.iso) und Windows die Netzwerktreiber dort suchen lassen.
Für den täglichen Zugriff RDP in der VM aktivieren — dann braucht man den VNC-Viewer nur noch für die Ersteinrichtung.
# Laufende VMs anzeigen vm list NAME DATASTORE LOADER CPU MEMORY VNC AUTOSTART STATE win10 default uefi 4 8G - No Running (10638) # VM stoppen / starten vm stop win10 vm start win10 # Snapshot erstellen (ZFS-Snapshot der VM-Disk) vm snapshot win10
Details und weitere Optionen im vm-bhyve Wiki. Fragen? Einfach melden.
Heute mal komplett weg von der IT. Ich lasse mich gerne von gutem Werkzeug beeindrucken, und mein neuer Kreisschneider hat das geschafft. Es war selbst 2018 nicht einfach, ihn zu bekommen. Das Teil ist regelmäßig schneller ausverkauft als der Hersteller nachliefern kann. Gekauft habe ich ihn bei feinewerkzeuge.de. Bei Amazon gibt es sehr ähnliche Modelle, mit denen viele ebenfalls zufrieden sind.
Für kleine Löcher nimmt man einen Bohrer, für größere einen Forstnerbohrer. Wird es noch größer, greift man zum Topfkreisbohrer. Ein ordentlicher kostet schnell 40 bis 100 Euro. Trotzdem hat man ähnliche Probleme wie mit billigen: Das Holz verbrennt, es reißt aus, und das ausgeschnittene Stück klemmt im heißen Bohrkopf. Wer verschiedene Lochgrößen abdecken will, hat ein kleines Vermögen in der Werkstatt liegen und braucht es vielleicht dreimal im Jahr. Natürlich hat man dann doch keine passende Größe. Ein Millimeter zu klein oder zu groß. Also kleiner bohren und dann schleifen. So wird man die Brandstellen gleich mit los. Oder auch nicht.
Ein Bekannter hat mir irgendwann zu diesem Kreisschneider geraten. Er lässt sich komplett stufenlos einstellen, man hat also immer die passende Größe. Die Messer und die Zentrierspitze lassen sich einzeln und günstig tauschen, das Werkzeug selbst ist gut bezahlbar. Statt eines großen Bohrkopfs arbeiten nur zwei kleine Messer in massiven Metallhaltern. Weniger Kontaktfläche bedeutet weniger Reibung und weniger Hitze. Die Metallhalter führen die Restwärme zusätzlich ab. Die Japaner wissen, wie man gutes Holzwerkzeug baut.
Hier ein paar Bilder vom Einsatz an einer 18 mm Leimholzplatte aus Buche:
Fragen? Einfach melden.
TLS 1.0 stammt von 1999, TLS 1.1 von 2006. Beide Versionen haben bekannte Schwächen (BEAST, POODLE, fehlende AEAD-Cipher) und werden seit 2020 von keinem Browser mehr unterstützt. Qualys SSL Labs vergibt seit 2020 maximal ein B-Rating wenn TLS 1.0 oder 1.1 aktiv ist. Es gibt keinen Grund mehr, diese Protokolle anzubieten.
In der main.cf die Mindestversion auf TLS 1.2 setzen. Die Einstellungen gelten getrennt für eingehende (smtpd) und ausgehende (smtp) Verbindungen:
# Eingehend (smtpd) smtpd_tls_mandatory_protocols = >=TLSv1.2 smtpd_tls_protocols = >=TLSv1.2 # Ausgehend (smtp) smtp_tls_mandatory_protocols = >=TLSv1.2 smtp_tls_protocols = >=TLSv1.2
Die Syntax >=TLSv1.2 gibt es seit Postfix 3.6. Bei älteren Versionen muss man die alten Protokolle einzeln ausschließen: !SSLv2, !SSLv3, !TLSv1, !TLSv1.1. Wenn OpenSSL 1.1.1+ oder neuer installiert ist, wird TLS 1.3 automatisch unterstützt und bevorzugt.
In conf.d/10-ssl.conf:
ssl_min_protocol = TLSv1.2 ssl_cipher_list = ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256 ssl_prefer_server_ciphers = yes
ssl_min_protocol gibt es seit Dovecot 2.3.15. In älteren Versionen heißt es ssl_protocols = !SSLv3 !TLSv1 !TLSv1.1. Die Cipher-Liste enthält nur AEAD-Cipher mit Forward Secrecy.
ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256; ssl_prefer_server_ciphers on;
Die TLS-1.3-Cipher (TLS_AES_*) werden von OpenSSL automatisch bevorzugt und lassen sich nicht über ssl_ciphers deaktivieren. Die Reihenfolge in der Cipher-Liste gilt nur für TLS 1.2.
Wer stunnel als TLS-Wrapper nutzt (z.B. für DNS over TLS):
options = NO_SSLv3 options = NO_TLSv1 options = NO_TLSv1.1
Nach der Umstellung prüfen ob die alten Protokolle wirklich deaktiviert sind:
# TLS 1.0 testen (sollte fehlschlagen) openssl s_client -connect smtp.example.de:25 -starttls smtp -tls1 2>&1 | grep "Protocol" # TLS 1.2 testen (sollte funktionieren) openssl s_client -connect smtp.example.de:25 -starttls smtp -tls1_2 2>&1 | grep "Protocol"
Für Webserver hilft Qualys SSL Labs. Wer noch einen Schritt weitergehen will: Mit ECDSA-Zertifikaten wird der Handshake schneller und mit Post-Quantum Key Exchange ist der Schlüsselaustausch auch gegen Quantencomputer abgesichert. Fragen? Einfach melden.
Das Internet funktioniert nicht, wie euer normales Netzwerk zuhause. Es basiert in den weitesten Teilen auf BGP, dem Border Gateway Protocol. Natürlich kann es auch dabei zu Problemen kommen, mal macht ein Mensch einen Fehler, mal Hardware oder Software oder eine Regierung möchte etwas „blockieren“… Naja, oder die bösen Hacker halt.
Unter folgendem Link, werden BGP Probleme visualisiert und mit einer Historie versehen:
https://web.archive.org/web/20240420082316/http://bgpstream.com/
Klickt unbedingt auch mal auf „More detail“ bei einem Event und schaut euch das Replay an, das ist nicht nur interessant, sondern auch lehrreich. Viel besser zu verstehen, als wenn man nur die BGP Events im Log fliegen sieht!
So long..
Siehe auch: IPv4-Adressen sind aufgebraucht
Fragen? Einfach melden.
Ich habe gerade eben meinen Openfire abgeschaltet und werde ihn nicht mehr einschalten. Jabber / XMPP war eine wirklich schöne Möglichkeit der Kommunikation. Der Aufwand SPAM zu filtern und das Teil selbst zu betreiben steht aber inzwischen einfach in keinem Verhältnis mehr. Zudem hat sich Jabber nur minimal weiterentwickelt. Inzwischen ist es von vielen schönen Lösungen überholt worden.
Meine Kommunikation läuft inzwischen mehr über Matrix/Riot oder Slack Chat als über Jabber.
Siehe auch: Eigenen Jabber-Server betreiben
Fragen? Einfach melden.
Racktables ist zur Dokumentation seiner Assets im Rack nicht das schlechteste Tool. Es hat ganz klar seine Grenzen aber oft erfüllt es die Anforderungen.
Wie füge ich in Racktables einen Load Balancer hinzu? Vor dieser Frage stand ich vor einiger Zeit. Mein erster Anlaufpunkt war natürlich das Racktables Wiki. Leider wurde ich daraus nicht wirklich schlauer. Die google Suche: „How to add LoadBalancers to racktables“ hat mir ebenfalls nicht geholfen. Irgendwann bin ich auf den Hinweis zur User Interfaceconfiguration „IPV4LB_LISTSRC“ gestoßen. Ab da öffneten sich meine Augen.
Die Option ist im default mit einem false deaktiviert. Aktiviert man sie mit einem einfachen true, tauchen einfach alle Hardwareserver als Load Balancer unter IP SLB ==> Load balancers auf. Das ist fast gut. Fast… ja fast weil dort eigentlich nur die Load-Balancer auftauchen sollten. Da kam mir die Funktion der Tags in den Sinn. Nach diesen lässt sich bei Racktables nicht nur filtern, sondern man kann darauf aufbauend auch Dinge im Interface umorganisieren. Einfachstes Beispiel ist sicher der Tag „Poweroff“, welcher ausgeschaltete Systeme in der Rackübersicht andersfarbig darstellt, wenn man dem Tag eine andere Farbe zugewiesen hat.
Genau so bekommt man nun ebenfalls die Load balancers ins IP SLB von Racktables. Als erstes legt man also einen Tag an, der jedem Load balancer zugewiesen wird: Configuration ==> Tag tree ==> Edit tree
Nun weißt man dieses Tag dem jeweiligen Load Balancer Object zu.

Nun geht es weiter unter Configuration ==> User Interface ==> Change

Dort muss die Option IPV4LB_LISTSRC so geändert werden, dass unser neues Tag in geschweiften Klammern steht. In meinem Beispiel ist es das Tag LoadBalancer und dieses findet sich wie folgt in der Konfiguration:

Das war es auch schon. Ab jetzt wird jedes Object unter Racktables ==> IP SLB ==> Load balancers auftauchen, welches das Tag LoadBalancer bekommen hat.

Wenn man es einmal verstanden hat, ganz einfach oder? Viel Spaß.
Fragen? Einfach melden.
© 2026 -=Kernel-Error=- — RSS
Theme von Anders Norén — Hoch ↑