Archiv der Kategorie: Linux

Segfaults in imapproxy durch falsche/fehlende Konfiguration

In den letzten Tagen hatte ich ein bisschen mit imapproxy zu tun. Im Original von den SquirrelMail-Entwicklern entwickelt, stellt imapproxy eine Art Proxy für das Handling von IMAP-Verbindungen zum jeweiligen IMAP-Backend bereit. So muss die Webanwendung, welche nicht in der Lage ist, Verbindungen lange geöffnet zu halten, nicht immer wieder Netzwerkumläufe anstellen, die je nach Situation viel Zeit kosten können. Eine Art persistente Verbindung für IMAP.

imapproxy ist genau so alte und zurückgelassene Software wie SquirrelMail selbst. Das Interface alt, die Codebase veraltet, letzte Aktualisierung der Gnade Ende 2021 um PHP 8-Kompatibilität herzustellen.

Derzeit erhält man imapproxy noch in den Debian- und Ubuntu-Repositories und der Code ist unter salsa.debian.org zu erhalten. Die offizielle imapproxy.org-Seite ist nicht mehr erreichbar.

Bei der Erstellung einer Minimalkonfiguration ist mir direkt aufgefallen, dass es für die Konfiguration praktisch kein Errorhandling gibt. Das heißt, dass bei fehlenden, nicht-optionalen Optionen imapproxy generell einfach mit SIGSEGV aussteigt. Debugging-Tool der Wahl ist hierbei dann strace.

Daraufhin erarbeitete ich mir eine passende Minimalkonfiguration, ein Teilnehmer der Dovecot-Mailingliste empfahl ebenfalls eine solche:

Segfaults in imapproxy durch falsche/fehlende Konfiguration weiterlesen

Funktionierende Lösung zur Installation von Ubuntu 22.04 über iPXE mit cloud-init, subiquity, auto-install, curtin

Ich entschuldige mich vorab für den folgenden polemischen Beitrag. Aber was Canonical da abgeliefert hat ist ehrlichgesagt eine einzige Katastrophe. Seit 22.04 gibt es den Legacy-Debian-Installer nicht mehr, welcher bei 20.04 noch verfügbar war. Möchte man sauber Hosts über PXE komissionieren, ist bei Ubuntu nun cloud-init, subiquity, auto-install oder wie auch immer sie den Unsinn nennen, angesagt. Hauptsache die Buzzword-Quote stimmt, Funktionalität ist nunmehr nebensächlich. „Cloud-init is the industry standard multi-distribution method for cross-platform cloud instance initialization“…

Die neue YAML-Syntax sollte Verbesserungen bringen, aber das Chaos ist dadurch nur noch größer. root-User lassen sich im „identity“ Dictionary nicht anlegen, automatische Updates im Installationsprozess lassen sich nur mit einem Hack abstellen, die Referenzierung auf user-data und user-meta Files ist völlig undurchdacht, die YAML-Files erfordern nicht-YAML-konforme Syntax um zu funktionieren (wer hat sich die bescheuerte Erfordernis von „#cloud-config“ in der ersten Zeile der user-data YAML ausgedacht?), der Installationsprozess wird ewig in die Länge gezogen, ISO-Images sind zusätzlich zum Kernel und der Initramdisk nun auch bei Installation nötig und als wäre das nicht genug, werden diese in der Standardkonfiguration auch noch doppelt geladen (2×1,3GB) sodass eine Installation mindestens 3GB RAM erfordert, mit Hack dann 2GB. Schöne neue Welt.

Funktionierende Lösung zur Installation von Ubuntu 22.04 über iPXE mit cloud-init, subiquity, auto-install, curtin weiterlesen

WordPress-Seiten im Nginx + PHP-FPM Stack mit wenig Aufwand effizient cachen

Die Zeiten sind doppelplusungut, um kein Blatt vor den Mund zu nehmen, möchte ich sagen, sie sind beschissen. Die aktuellen Energiekosten sind eine Katastrophe und dazu zählt letztlich auch der Strompreis. Ein Grund mehr im Webserver- und IT-Bereich auf Sparsamkeit zu achten, denn letztlich kommt ihr zwar nicht unmittelbar für VPS-, Dedicated- oder Webhosting auf, aber euer ISP schon – und der wird bei entsprechenden Ausgaben dann auch die Einnahmen steigern müssen (früher oder später).

Zudem erlaubt effizientes Caching trotz bequemer Webinterfaces bei Webanwendungen wie WordPress eine gute Seitenperformance, wenn man nicht einen von 1000 mittelprächtig entwickelten und gewarteten statischen Seitengeneratoren nutzen möchte.

Schauen zu uns zunächst mal an, was unser Ziel ist:

WordPress-Seiten im Nginx + PHP-FPM Stack mit wenig Aufwand effizient cachen weiterlesen

Zeit unter Linux via GSM synchronisieren

Der RaspberryPi und viele ähnliche Einplatinencomputer haben ab Werk keine RTC aka „Real Time Clock“ und können ohne funktionierende Internetverbindung ihre Zeit nicht korrekt beibehalten. Daher nutzen die meisten RaspberryPi Linux-Distributionen NTP um die Zeit immer direkt nach dem Systemstart wieder ins Lot zu bringen. Wenn es nicht möglich ist, eine Internetverbindung aufzubauen und daher kein NTP zu nutzen, aber ein GSM-Modem oder altes Mobiltelefon sowie eine valide SIM-Karte vorhanden ist, könnte diese Anleitung eine Lösung zur Zeitsynchronisation darstellen.

Zeit unter Linux via GSM synchronisieren weiterlesen

Details zu Wifi-Netzwerken auf der Konsole: iwlist/iwconfig

Kürzlich hatte ich die Chance einen AC-WLAN Stick von ASUS zu testen. Sehr futuristisches Teil, nur mit den Linux-Treibern gibts noch einige Probleme. Ein manuelles kompilieren (bzw. Setup für DKMS) war notwendig.

Nachdem der Stick installiert war wollte ich natürlich sehen, wie der Empfang zu den umliegenden Netzen war. Von der Konsole aus, versteht sich. Naheliegend war daher der iwlist-Befehl. Auch der iwconfig-Befehl ist recht praktisch (sofern es um ein spezifisches, verbundenes Netz geht).

host:~/git/rtl8812AU_8821AU_linux$ iwlist wlan6 scan
wlan6 Scan completed :
 Cell 01 - Address: 00:1F:F3:xx:xx:xx
 ESSID:"TESTWLAN"
 Protocol:IEEE 802.11bgn
 Mode:Master
 Frequency:2.437 GHz (Channel 6)
 Encryption key:on
 Bit Rates:130 Mb/s
 Extra:rsn_ie=30140100000fac040100000fac040100000fac020000
 IE: IEEE 802.11i/WPA2 Version 1
 Group Cipher : CCMP
 Pairwise Ciphers (1) : CCMP
 Authentication Suites (1) : PSK
 Quality=100/100 Signal level=46/100 
 Cell 02 - Address: 06:75:0E:xx:xx:xx
 ESSID:""
 Protocol:IEEE 802.11bgn
 Mode:Master
 Frequency:2.462 GHz (Channel 11)
 Encryption key:on
 Bit Rates:144 Mb/s
 Extra:rsn_ie=30140100000fac040100000fac040100000fac010100
 IE: IEEE 802.11i/WPA2 Version 1
 Group Cipher : CCMP
 Pairwise Ciphers (1) : CCMP
 Authentication Suites (1) : 802.1x
 Preauthentication Supported
 Quality=0/100 Signal level=44/100 
 Cell 03 - Address: B4:75:0E:xx:xx:xx
 ESSID:"OTHERNET"
 Protocol:IEEE 802.11AC
 Mode:Master
 Frequency:5.18 GHz (Channel 36)
 Encryption key:on
 Bit Rates:867 Mb/s
 Extra:rsn_ie=30140100000fac040100000fac040100000fac020100
 IE: IEEE 802.11i/WPA2 Version 1
 Group Cipher : CCMP
 Pairwise Ciphers (1) : CCMP
 Authentication Suites (1) : PSK
 Preauthentication Supported
 Quality=0/100 Signal level=60/100 


host:~/git/rtl8812AU_8821AU_linux$ watch -n1 | iwconfig
vboxnet0 no wireless extensions.

wlan6 IEEE 802.11bgn ESSID:"TESTWLAN" Nickname:"<WIFI@REALTEK>"
 Mode:Managed Frequency:2.437 GHz Access Point: 00:1F:F3:xx:xx:xx 
 Bit Rate:130 Mb/s Sensitivity:0/0 
 Retry:off RTS thr:off Fragment thr:off
 Power Management:off
 Link Quality=100/100 Signal level=47/100 Noise level=0/100
 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
 Tx excessive retries:0 Invalid misc:0 Missed beacon:0

 

 

Brother DCP-T500W Netzwerk-Scanner unter Fedora 27

Um mithilfe des oben genannten Gerätes und Fedora, in meinem Fall in Version 27, über das Netzwerk zu scannen, bedarf es des „brscan“-Tools von Brother, mit dem der Netzwerk-Scanner zum System hinzugefügt wird.

Mit den folgenden drei Schritten lässt sich so der Scanner einfach konfigurieren und wird dann von Scanning-Applikationen wie xsane als „scanner:net1;dev0“ (oder ähnlich) erkannt.

Download:

wget http://download.brother.com/welcome/dlf006648/brscan4-0.4.4-4.x86_64.rpm

Installation:

sudo dnf install brscan4-0.4.4-4.x86_64.rpm

Scanner hinzufügen:

brsaneconfig4 -a name=scanner model="DCP-T500W" ip=192.168.000.192

Optional – am System existierende Drucker anzeigen:

scanimage -L

Seither habe ich bereits einige Dutzend Seiten gescannt. Soweit ist dies ein Musterbeispiel für Linux-Unterstützung von Peripherie. Wenn nun noch der Quelltext des brscan-Tools verfügbar wäre …