Einigen sehr aufmerksamen Bloglesern ist es ja inzwischen aufgefallen. Ja ich habe meine Schlüssel getauscht.
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.
Einigen sehr aufmerksamen Bloglesern ist es ja inzwischen aufgefallen. Ja ich habe meine Schlüssel getauscht.
Fragen? Einfach melden.
Mir ist an ein paar Systemen ein Problem im Zusammenhang mit DNSSEC, IPv6 und UDP-Paketgrößen aufgefallen — genauer gesagt hat mich DNSviz darauf gestoßen:
domain.tld/A: No response was received until the UDP payload size was decreased, indicating that the server might be attempting to send a payload that exceeds the path maximum transmission unit (PMTU) size. (2001:db8::1, UDP_0_EDNS0_32768_4096)
Der DNS-Server (hier BIND 9.11) versucht, auf eine Anfrage mit einem UDP-Paket von 4096 Byte zu antworten. Irgendwo auf dem Weg — Firewall, Netzwerkfilter, MTU-Einschränkung — wird das Paket verworfen. Da UDP kein Feedback gibt, merkt BIND davon nichts und glaubt, die Antwort sei zugestellt.
Beim Client fällt das kaum auf: dig und andere Resolver verringern automatisch die EDNS-Puffergröße und wiederholen die Anfrage — es dauert nur etwas länger. DNSviz testet aber systematisch und meldet das Problem.
Mit dem Reply Size Test von DNS-OARC lässt sich herausfinden, welche Paketgröße vom eigenen System aus durchkommt:
$ dig +short rs.dns-oarc.net txt rst.x490.rs.dns-oarc.net. rst.x499.x490.rs.dns-oarc.net. rst.x457.x499.x490.rs.dns-oarc.net. "2001:db8::1 sent EDNS buffer size 512" "2001:db8::1 DNS reply size limit is at least 499"
In diesem Fall enden die Antworten bei 512 Byte — alles darüber wird unterwegs gefressen.
BIND anweisen, die UDP-Paketgröße zu begrenzen:
options {
edns-udp-size 1232;
max-udp-size 1232;
};
edns-udp-size begrenzt die empfangene Paketgröße, max-udp-size die gesendete. Clients bekommen damit auf ihre erste Anfrage direkt eine Antwort, ohne schrittweise herunterhandeln zu müssen.
512 Byte ist das klassische DNS-Limit ohne EDNS — funktioniert überall, ist aber unnötig klein. Seit dem DNS Flag Day 2020 empfehlen die großen DNS-Betreiber 1232 Byte als EDNS-Puffergröße. Der Wert ergibt sich aus der minimalen IPv6-MTU (1280 Byte) minus IPv6-Header (40 Byte) minus UDP-Header (8 Byte) = 1232 Byte. Das passt durch jedes korrekt konfigurierte Netzwerk.
Wenn selbst 1232 nicht durchkommt, liegt das Problem im Netzwerk — Firewalls die UDP-Pakete über einer bestimmten Größe filtern oder ICMP Packet Too Big unterdrücken. In dem Fall den dns-oarc-Test wiederholen und den Wert entsprechend anpassen.
Mehr zu DNSSEC und BIND gibt es im DNSSEC-HowTo. Fragen? Einfach melden.
Funkregulierung ist länderspezifisch. Jede Region definiert, welche 2,4 GHz und 5 GHz-Kanäle, Sendeleistung und Radar-/DFS-Regeln gelten. In FreeBSD steuert eine Kombination aus Regulatory Domain (z. B. ETSI für Europa, FCC für USA, APAC für Asien/Pazifik) und Country (z. B. „DE“ bzw. „Germany“, „AT“ bzw. „Austria“, „GB“ bzw. „United Kingdom“) den erlaubten Betrieb. Ohne Anpassung bleibt oft der US-Default aktiv, der in Europa eingeschränkter ist.
FreeBSD nutzt keine ISO-Kurzcodes allein (also nicht nur „DE“, „UK“). Der Country-Name muss exakt aus den Einträgen in /etc/regdomain.xml kommen (z. B. „United Kingdom“ statt „UK“). Diese Erkenntnis hat bei mir zum Beginn etwas gebraucht
1 Hardware/Interface prüfen
sysctl net.wlan.devices # listet WiFi-Chips ifconfig wlan0 # zeigt aktuelles Regdomain/Country ifconfig wlan0 list regdomain ifconfig wlan0 list countries
2 Interface runterfahren
ifconfig wlan0 down
3 Regdomain & Country setzen
ifconfig wlan0 regdomain etsi2 country DE # etsi2 bezieht sich auf die regionale Definition (Europa), # DE ist der länderspezifische Eintrag aus /etc/regdomain.xml
4 Interface wieder hochfahren
ifconfig wlan0 up
5 Persistenz in /etc/rc.conf (denn das was wir bis jetzt gemacht haben ist nach dem nächsten Reboot weg).
sysrc create_args_wlan0="country DE regdomain etsi2" sysrc wlans_iwn0="wlan0" sysrc ifconfig_wlan0="WPA DHCP"
Ersetze iwn0 durch dein Device und etsi2 durch den passenden Regdomain-Block, wenn du nicht DE bist, sonst ist copy&paste gut.
FreeBSD 14.x/15.x haben bessere Treiber und WLAN-Stack-Support (siehe auch FreeBSD auf dem Desktop), was dazu führt, dass viele Geräte stabiler laufen. Die Regulatory Domain-Mechanik selbst hat sich nicht grundlegend verändert; sie ist weiterhin über ifconfig steuerbar. Firmware-Unterstützung für Chips kann aber Einfluss auf die tatsächliche Kanalnutzung haben, unabhängig von RegDomain-Einstellungen. Auf Probleme bin ich damit noch nicht gestoßen, was aber nur bedeutet, dass meine Hardware kein Problem macht.
Fragen? Einfach melden.
Upgrade von Piwigo 2.8 auf 2.9 geklickt, schien sauber durchgelaufen zu sein. Danach zeigte die Galerie nur noch eine Fehlermeldung.
Warning: [mysql error 1054] Unknown column 'last_visit' in 'field list'
UPDATE piwigo_user_infos
SET last_visit = NOW(),
lastmodified = lastmodified
WHERE user_id = 1
Die Spalte last_visit existierte nicht. Ein Blick ins Nginx-Error-Log zeigte, dass der Fehler schon während des Upgrades auftrat:
ALTER TABLE `piwigo_user_infos`
ADD COLUMN `last_visit` datetime default NULL,
ADD COLUMN `last_visit_from_history` enum('true','false') NOT NULL default 'false'
;
Das ALTER TABLE war beim Upgrade aus irgendeinem Grund fehlgeschlagen. Die Datenbank-Migration ist abgesoffen.
Die fehlenden Statements aus dem Upgrade-Script herausgesucht und von Hand auf die Datenbank losgelassen:
ALTER TABLE `piwigo_comments` CHANGE `date` `date` datetime NOT NULL default '1970-01-01 00:00:00';
ALTER TABLE `piwigo_history` CHANGE `date` `date` date NOT NULL default '1970-01-01';
ALTER TABLE `piwigo_images` CHANGE `date_available` `date_available` datetime NOT NULL default '1970-01-01 00:00:00';
ALTER TABLE `piwigo_old_permalinks` CHANGE `date_deleted` `date_deleted` datetime NOT NULL default '1970-01-01 00:00:00';
ALTER TABLE `piwigo_rate` CHANGE `date` `date` date NOT NULL default '1970-01-01';
ALTER TABLE `piwigo_sessions` CHANGE `expiration` `expiration` datetime NOT NULL default '1970-01-01 00:00:00';
ALTER TABLE `piwigo_upgrade` CHANGE `applied` `applied` datetime NOT NULL default '1970-01-01 00:00:00';
ALTER TABLE `piwigo_user_infos` CHANGE `registration_date` `registration_date` datetime NOT NULL default '1970-01-01 00:00:00';
ALTER TABLE `piwigo_user_infos`
ADD COLUMN `last_visit` datetime default NULL,
ADD COLUMN `last_visit_from_history` enum('true','false') NOT NULL default 'false'
;
Danach lief alles wieder. Lektion: Nach einem Piwigo-Upgrade immer prüfen, ob die Datenbank-Migration vollständig durchgelaufen ist. Im Zweifel ins Error-Log schauen.
Siehe auch: Umzug auf FreeBSD/Nginx
Fragen? Einfach melden.
Ich teste im Moment matrix als Basis für die Kommunikation. Client ist dabei Riot auf Android und iOS und als Server probiere ich im moment Synapse aus. Alles unter der Domain: https://matrix.kernel-error.com
Beim Identiy Server bin ich einfach mal bei https://matrix.org geblieben! Alles ist noch sehr beta. Dafür tut es aber schon ganz ordentlich. Schreiben und Dateien verschicken funktioniert problemlos. Videocalls gehen so mäßig. Das Bild hängt halt immer mal wieder. Einfache Voicecalls klappten dafür richtig gut, sowohl zu zweit als auch in der Konferenz.
Etwas hakelig war das Einfügen von E-Mail Adresse und Rufnummer über den Andoid Client… Das war etwas verwirred. Hier ist der Workflow und die UI auf dem iOS besser. Insg. tut es aber….
Zuletzt habe ich nun den nginx als proxy for den matrix-synapse Server gesetzt. Dem vertraue ich an der Stelle einfach etwas mehr. Oh es läuft in einer FreeBSD 11 jail und dort auch recht Problemlos.
Sobald es mehr zu berichten gibt schreibe ich mehr! Wer es ebenfalls nutzt und mich anschreiben möchte: @kernel:matrix.kernel-error.com
So long…
Siehe auch: Eigenen Jabber-Server betreiben
Fragen? Einfach melden.
Sobald man einen standard Dienst im Netz stehen hat wird dieser auch von verschiedenen Bots abgegrabbelt. Diese testen nach ungepatchten Versionen mit nutzbaren Sicherheitslöchern oder gehen Rainbow Tables durch. Gegen Sicherheitslöcher hilft ein Patchmanagement gegen Rainbow Tables helfen gute Kennwörter und ein Schutz gegen Brute-Force…. Einfach ist hier zum Beispiel der fail2ban Ansatz. Einfach mit zählen wie viele Fehlerhafte Logins in einem gewissen Zeitraum von einer IP-Adresse kommen und dann direkt die IP-Adresse für einen gewissen Zeitraum sperren.
Jetzt sind die Entwickler der Bots nicht dumm… Zuerst haben diese Bots genau so angefangen. Erstmal alle möglichen Kennwörter durchprobieren. Als ersten Schutz natürlich fail2ban, dann haben die Bots angefangen nicht mehr als genau drei Anfragen von einer IP Adresse zu stellen, etwas warten und dann wieder drei Anfragen. Man musste also im fail2ban „nachstellen“. Nun sind wir schon beim Punkt das diese Anfragen nicht mehr gebündelt als Dreierblock kommen sondern immer nur eine Anfrage von einer Adresse und 2 – 3 Stunden später erst wieder von dieser Adresse. Der einzelne Bot würde also Jahrzehnte brauchen um einige Versuche durch zugehen! Wenn er sich mit vielen anderen Abspricht, werden in kurzer Zeit noch immer sehr viele Kombinationen durchprobiert. Also wieder nachrüsten… Zwei Faktor, „Lebenderkennung“, Zertifikatslogin usw… Damit hat man sicher erst mal etwas Ruhe. OK, hier gibt es ebenfalls Möglichkeiten nur gibt es sicher genug schlechter gesicherte Ziele die zuerst angegangen werden können!
Siehe auch: SSH-Server absichern mit MFA
Fragen? Einfach melden.
Ihr erinnert euch daran das man bei GlobalSign keine Sonderzeichen im Kennwort für die Zertifikatsverwaltung nutzen kann? Nun ratet doch mal was man beim Kennwort für p12 auch nicht nutzen kann! ….Richtig… Sonderzeichen im Kennwort.
Siehe auch: GlobalSign S/MIME, S/MIME-Zertifikat per DNS veröffentlichen – SMIMEA
Fragen? Einfach melden.
Neues S/MIME Zertifikat, neuer SMIMEA-Record. Weil E-Mail-Verschlüsselung nicht nur für Paranoide ist. Oder doch? Egal, ich mache es trotzdem.
Wie angekündigt habe ich ein neues S/MIME Zertifikat. Wer mir verschlüsselt schreiben will, braucht den neuen öffentlichen Schlüssel. Den gibt es wie immer über die üblichen Wege oder halt per erster unverschlüsselter Mail an mich.
Das Spannende daran: ich habe direkt einen SMIMEA-Record dazu im DNS hinterlegt. SMIMEA ist quasi DANE für S/MIME. Statt nur TLS-Zertifikate von Servern im DNS zu veröffentlichen, kann man damit auch S/MIME-Zertifikate von E-Mail-Adressen per DNS verifizierbar machen. Der RFC dazu war 2017 noch im Draft-Status (RFC 8162), inzwischen ist er finalisiert.
Die Idee ist simpel: Du hast DNSSEC für deine Domain (habe ich), du hast ein S/MIME-Zertifikat (habe ich jetzt neu) und du packst den Fingerprint oder das ganze Zertifikat als SMIMEA-Record in deine DNS-Zone. Jeder der mir eine verschlüsselte Mail schicken will, kann mein Zertifikat dann per DNS-Abfrage verifizieren. Kein Rumsuchen auf Keyservern, keine manuelle Prüfung ob das Zertifikat echt ist.
In der Praxis nutzt das aktuell fast niemand. Mailclient-Support ist mager, die meisten Leute wissen nicht mal was S/MIME ist, geschweige denn SMIMEA. Aber genau deshalb mache ich es. Jemand muss ja anfangen.
Wer sich für DANE, SMIMEA oder E-Mail-Sicherheit interessiert, kann mich gerne fragen.
Nach dem „tot“ von StartSSL brauche ich ja auch mal ein neues S/MIME Zertifikat. Class 2 bei GlobalSign sollte für mich privat reichen (auch wenn ich schon auf Class 3 geschielt habe, mal sehen ob ich das noch nachziehe). Als erstes habe ich da trocken angerufen und gefragt ob ich auf sie bauen kann oder mich am Ende so ärgere wie über StartSSL / Symantec usw… Klar es ist eine große CA die zu viel Geld für Mist bekommen und der Anruf war total nutzlos. Er hat dennoch für Spaß bei mir und da bin ich mir sicher, ebenfalls bei GlobalSign geführt.
Nun klicke ich mich also gerade durch die Anmeldung und muss alle möglichen Daten eingeben sowie Vereinbarungen zustimmen usw. an einer Stelle soll ich dann schon mal mein Kennwort für die Zertifikatsverwaltung festlegen. Ich überzeuge also wie immer pwgen mir eines zu würfeln werfe es rein. Die Info unter dem Kennwortformular lese ich natürlich nicht und bekomme direkt die Quittung. Ich habe unerlaubte Sonderzeichen in meinem Passwort für die Zertifikatsverwaltung angegeben. Unerlaubte Sonderzeichen?!?!? Stimmt… Die Kennwörter dürfen nur aus Zahlen und Buchstaben (groß/klein) bestehen..
Das Kennwort für die Zertifikatsverwaltung darf also keine Sonderzeichen enthalten. Den Satz habe ich jetzt schon ein paar mal gesagt aber öhm ich begreife ihn irgendwie noch nicht. *kopfschüttel* Kann mir das bitte mal jemand verständlich machen? Am besten ich ruf da noch mal an, oder?
Siehe auch: S/MIME per DNS mit SMIMEA, Kleiner Nachtrag zum GlobalSign S/MIME Zertifikat…, Neues StartSSL S/MIME Zertifikat
Fragen? Einfach melden.
Das IPv6 eines meiner Lieblingsthemen ist muss ich ja keinem von euch erzählen. Auf das Thema bringt mich gerade sixxs. Die Jungs stellen nämlich ihren Service ein…. War ja fast zu erwarten! Sixxs kann sicher für sich behaupten eines der Projekte zu sein/gewesen zu sein welches extrem stark an der Verbreitung von IPv6 mitgewirkt hat!
Passend dazu saß ich vor kurzem in einem Bewerbungsgespräch irgendwann sind wir ebenfalls kurz auf das Thema IPv6 gekommen und da hat der Bewerber etwas gesagt was mir bis jetzt nicht mehr aus dem Kopf gegangen ist. Er sagt: „IPv6, ja… das war vor 5/6 Jahren mal so ein Hype, weil ja alle Adressen aufgebraucht sind, das ist aber inzwischen vorbei.“ Der Mann hat recht! OK, Adressen sind wirklich leer aber merkt man es denn wirklich? Also normaler User nicht. Von jedem gängigen ISP bekommt man IPv6 einfach in den Router geworfen und ob man jetzt noch eine „echte“ IPv4 Adresse hat oder man wie im Mobilfunk hinter einem carrier grade nat versteckt wird merken die normalen Nutzer eh nicht. Wenn man nicht gerade ein /24 haben will ist ebenfalls jeder DataCenterbetreiber oder Business ISP ohne großes hin und her gewillt einem das Netz zu geben. Selbst Unitymedia bekommt das hin!
Dabei kommt mit Unitymedia immer als der unprofessionellste Verein aller Zeiten vor. *kopfschüttel* Gut gut… Sie haben noch nicht SO viel Zeit als ISP verbracht wie der rosa Haufen. Habt ihr da mal versucht einen PTR Record zu setzen? Ach was schreib ich… Nicht setzten, setzten zu lassen?!?! Das geht per Fax. Echt jetzt PER FAX!!! Man bekommt so ein tolles PDF Formular OHNE Felder! Also so als PDF Bild zum Ausdrucken und dann muss man mit der Hand in so Kästchen seinen Wunsch PTR, die IP seine Kundennummer usw. eintragen und es dann zu ihnen zurück FAXEN. Nicht mal einscannen und E-Mail… Echt FAXEN! Jetzt ratet doch mal was passiert ist nachdem ich mein Fax mit 4 PTR Wünschen geschrieben habe? Richtig… Ich habe eine E-Mail vom Support bekommen, das sie leider nicht alles lesen konnten und ich das Fax doch bitte noch mal schicken solle *aaaarrrrggggghhhhh*
Siehe auch: IPv6 Grundlagen
Fragen? Einfach melden.
© 2026 -=Kernel-Error=- — RSS
Theme von Anders Norén — Hoch ↑