<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Cobra's bits (Posts about posts)</title><link>https://cobra.pdes-net.org</link><description></description><atom:link href="https://cobra.pdes-net.org/categories/cat_posts.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2025 &lt;a href="mailto:najahannah@gmail.com"&gt;Cobra&lt;/a&gt; 
&lt;a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/4.0/"&gt;
&lt;img alt="Creative Commons License BY-NC-SA"
style="border-width:0; margin-bottom:12px;"
src="../images/by-nc-sa.svg"&gt;&lt;/a&gt;</copyright><lastBuildDate>Sun, 10 Aug 2025 14:06:47 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Debian 13</title><link>https://cobra.pdes-net.org/posts/debian-13.html</link><dc:creator>Cobra</dc:creator><description>&lt;p&gt;&lt;a class="reference external" href="https://www.debian.org/News/2025/20250809"&gt;Trixie is stable,&lt;/a&gt; &lt;a class="reference external" href="https://wiki.debian.org/DebianForky"&gt;Forky&lt;/a&gt; is the new testing.&lt;/p&gt;
&lt;p&gt;Take the time to update your sources from the old sources.list to the new deb822 format!&lt;/p&gt;
&lt;pre class="literal-block"&gt;apt modernize-sources
sed -i 's/trixie/forky/g' /etc/apt/sources.list.d/debian.source&lt;/pre&gt;</description><category>debian</category><guid>https://cobra.pdes-net.org/posts/debian-13.html</guid><pubDate>Sun, 10 Aug 2025 13:14:47 GMT</pubDate></item><item><title>The higher power</title><link>https://cobra.pdes-net.org/posts/the-higher-power.html</link><dc:creator>Cobra</dc:creator><description>&lt;p&gt;A snapshot taken from my living room when a thunderstorm approached.&lt;/p&gt;
&lt;a class="reference external image-reference" href="https://cobra.pdes-net.org/images/the_higher_power_90.webp"&gt;
&lt;img alt="../images/the_higher_power_90_scaled.webp" class="align-center" src="https://cobra.pdes-net.org/images/the_higher_power_90_scaled.webp" style="width: 600px;"&gt;
&lt;/a&gt;</description><category>thoughts</category><guid>https://cobra.pdes-net.org/posts/the-higher-power.html</guid><pubDate>Sat, 31 May 2025 13:41:12 GMT</pubDate></item><item><title>I demand banana fly!</title><link>https://cobra.pdes-net.org/posts/i-demand-banana-fly.html</link><dc:creator>Cobra</dc:creator><description>&lt;p&gt;&lt;a class="reference external" href="https://cobra.pdes-net.org/posts/highlander.html"&gt;Luca&lt;/a&gt; expects me to throw his beloved banana for the quadrillionst time. 😅&lt;/p&gt;
&lt;a class="reference external image-reference" href="https://cobra.pdes-net.org/images/i_demand_banana_fly_90.webp"&gt;
&lt;img alt="../images/i_demand_banana_fly_90_scaled.webp" class="align-center" src="https://cobra.pdes-net.org/images/i_demand_banana_fly_90_scaled.webp" style="width: 300px;"&gt;
&lt;/a&gt;</description><category>catz</category><guid>https://cobra.pdes-net.org/posts/i-demand-banana-fly.html</guid><pubDate>Fri, 03 Jan 2025 15:25:45 GMT</pubDate></item><item><title>Let's not encrypt?</title><link>https://cobra.pdes-net.org/posts/lets-not-encrypt.html</link><dc:creator>Cobra</dc:creator><description>&lt;p&gt;This blog is powered by &lt;a class="reference external" href="https://cobra.pdes-net.org/posts/new-server.html"&gt;Hiawatha&lt;/a&gt;, a &lt;a class="reference external" href="https://hiawatha.leisink.net/about/"&gt;light-weight webserver designed for security and ease of use&lt;/a&gt;. Consequently, Hiawatha comes with a script that allows one to easily request certificates from the Let's Encrypt initiative and (in conjunction with a daily cron job) to automagically renew them when the time has come.&lt;/p&gt;
&lt;p&gt;This setup has worked almost flawlessly &lt;a class="reference external" href="https://cobra.pdes-net.org/posts/lets-encrypt.html"&gt;for several years&lt;/a&gt;. In 2021, I've received an information from Let's Encrypt that they would modify (as planned) their chain of trust, requiring corresponding changes in the LE_ISSUERS option in the configuration file of the script designated for requesting or renewing certificates.&lt;/p&gt;
&lt;p&gt;I should have known that this change will happen every three years, but since I didn't receive any mail this time, it never occurred to me that the failure of renewal had this simple reason. Instead, I've searched everywhere for nonexisting error messages until I had run out of ideas. Without any options left, I've asked &lt;a class="reference external" href="https://haui.pdes-net.org/"&gt;Haui&lt;/a&gt; for help, convinced that he would see light where I could see only dark. And it indeed didn't take him long to identify an outdated LE_ISSUERS value in the configuration file as the culprit.&lt;/p&gt;
&lt;p&gt;We can easily look up the common name of the current certificate's issuer:&lt;/p&gt;
&lt;pre class="literal-block"&gt;openssl x509 -in /etc/hiawatha/tls/pdes-net.org.pem -noout -text | grep CN&lt;/pre&gt;
&lt;p&gt;But that won't help if the current certificate is not renewed because of an outdated issuer. The present situation was different in that I've requested new certificates in September as a temporary (HOHOHO) workaround. These new certificates were issued with the new CN of R10, as compared to the old R3 in the configuration file, making it clear that the latter is outdated. It would have been so easy if I hadn't been such a fool and categorically ruled out this possibility. 🫥&lt;/p&gt;
&lt;p&gt;Well, I may get old and useless, but I hope to recall once and for all that the authoritative instance for looking up the current issuer for Let's Encrypt can be found here: &lt;a class="reference external" href="https://letsencrypt.org/certificates/"&gt;https://letsencrypt.org/certificates/&lt;/a&gt;. And if I don't, I'm sure to remember that I can find this information in my own blog. 🫩&lt;/p&gt;</description><category>debian</category><category>encryption</category><category>linux</category><guid>https://cobra.pdes-net.org/posts/lets-not-encrypt.html</guid><pubDate>Mon, 30 Dec 2024 14:24:34 GMT</pubDate></item><item><title>Digital signatures</title><link>https://cobra.pdes-net.org/posts/digital-signatures.html</link><dc:creator>Cobra</dc:creator><description>&lt;p&gt;Our administration now requests all documents to be digitally signed, with a certificate that each employee receives from the DFN. Windows and Mac users employ Acrobat Reader for this purpose, but what software can be used under Linux?&lt;/p&gt;
&lt;p&gt;My first choice was &lt;a class="reference external" href="https://help.libreoffice.org/6.1/he/text/shared/guide/digitalsign_send.html?DbPAR=SHARED"&gt;LibreOffice&lt;/a&gt;, which has offered this functionality already for several years. Signing a pristine pdf works well indeed, apart from the fact that LibeOffice does not create a placeholder for the signature. However, signing a document that has already been signed by Window users turned out to be simply not possible (&lt;a class="reference external" href="https://bugs.documentfoundation.org/show_bug.cgi?id=58442"&gt;here's the 12 years old bug report&lt;/a&gt; – &lt;a class="reference external" href="https://bugs.documentfoundation.org/show_bug.cgi?id=58476"&gt;and here's the inverse one that is just as old&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;The next candidate was &lt;a class="reference external" href="https://faq.tickets.tu-dresden.de/otrs/public.pl?Action=PublicFAQZoom;ItemID=620"&gt;Okular&lt;/a&gt;, the PDF viewer of KDE, which has been &lt;a class="reference external" href="https://datashare.tu-dresden.de/index.php/s/j5BKKyJYZFBzGsB?dir=undefined&amp;amp;openfile=7555731"&gt;sponsored by the University of Dresden to implement this functionality&lt;/a&gt;. But only half-way, it seems to me. I could sign most (but not all) documents, but I couldn't configure the placeholder at all. As the font size in the signature box does not scale with the size of the box, the name of the person signing is often cut off. How difficult can it be to implement such a very basic and obvious requirement?&lt;/p&gt;
&lt;p&gt;Finally, I turned to &lt;a class="reference external" href="https://code-industry.net/masterpdfeditor-help/digital_signatures/"&gt;Master PDF Editor&lt;/a&gt;, which I've occasionally used in the past for annotations when Evince did not yet offer this possibility. I was actually not surprised that this feature-rich PDF editor also offers digital signatures, but I was pleased that the software comes with its own certificate storage and that the signature placeholder is highly configurable. For example, one can configure the placeholder to include one's own analogue signature as a background.&lt;/p&gt;
&lt;p&gt;Alas, using the Master PDF editor without any restrictions requires purchasing a license. The free version is unlimited, but leaves a watermark in documents that have been digitally signed or otherwise altered with the software. The licence is very fairly priced, but as the software is developed in Russia, even asking for one is frowned upon and politically inopportune. Fortunately, nobody has yet complained about the watermark in documents I have  digitally signed. 😈&lt;/p&gt;</description><category>encryption</category><category>linux</category><guid>https://cobra.pdes-net.org/posts/digital-signatures.html</guid><pubDate>Wed, 01 May 2024 12:12:11 GMT</pubDate></item><item><title>Backdoor in xz</title><link>https://cobra.pdes-net.org/posts/backdoor-in-xz.html</link><dc:creator>Cobra</dc:creator><description>&lt;blockquote&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.openwall.com/lists/oss-security/2024/03/29/4"&gt;The upstream xz repository and the xz tarballs have been backdoored.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://gist.github.com/thesamesam/223949d5a074ebc3dce9ee78baad9e27"&gt;This backdoor is very indirect and only shows up when a few known specific criteria are met. Others may be yet discovered! However, this backdoor is at least triggerable by remote unprivileged systems connecting to public SSH ports.&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This supply-chain attack targets .deb- and .rpm-based distributions, but the backdoored versions of xz or xz-utils (5.6.0 and 5.6.1) have made it only into rolling-release distributions such as Fedora Rawhide, Debian Testing/Sid, OpenSuse Tumbleweed, and Archlinux (&lt;a class="reference external" href="https://archlinux.org/news/the-xz-package-has-been-backdoored/"&gt;where it is inactive&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;The server of this blog is running Debian Testing and had the compromised version of xz-utils installed since March 17. The backdoor was &lt;a class="reference external" href="https://www.openwall.com/lists/oss-security/2024/03/29/4"&gt;reported&lt;/a&gt; last Friday, March 29. I've installed the patch provided by Debian on Saturday, March 30, and examined the system logs, which do not show any evidence that the system has been compromised in any way. In fact, according to my current understanding, the system did not meet all the &lt;a class="reference external" href="https://vulcan.io/blog/alert-cve-2024-3094/"&gt;requirements&lt;/a&gt; for the backdoor to be executed. However, I will remain vigilant and let the users of the server know if further action needs to be taken.&lt;/p&gt;
&lt;p&gt;More links (in German): &lt;a class="reference external" href="https://www.heise.de/news/Hintertuer-in-xz-Bibliothek-gefaehrdet-SSH-Verbindungen-9671317.html"&gt;Heise 30.03.2024 09:35&lt;/a&gt;, &lt;a class="reference external" href="https://www.heise.de/news/xz-Attacke-Hintertuer-entraetselt-weitere-Details-zu-betroffenen-Distros-9671588.html"&gt;Heise 30.03.2024 22:28&lt;/a&gt;, &lt;a class="reference external" href="https://www.heise.de/hintergrund/Die-xz-Hintertuer-das-verborgene-Oster-Drama-der-IT-9673038.html"&gt;Heise 02.04.2024 17:10&lt;/a&gt;&lt;/p&gt;</description><category>archlinux</category><category>debian</category><category>info</category><category>linux</category><category>suse</category><guid>https://cobra.pdes-net.org/posts/backdoor-in-xz.html</guid><pubDate>Mon, 01 Apr 2024 11:50:12 GMT</pubDate></item><item><title>Kernel 6.6.9</title><link>https://cobra.pdes-net.org/posts/kernel-669.html</link><dc:creator>Cobra</dc:creator><description>&lt;p&gt;Yesterday, I've updated my systems to kernel 6.6.9 – two Intel-based desktops and one AMD-based notebook. When rebooting the latter, I immediately noticed that something was wrong. Logging in, for example, seemed to take twice as long, and the desktop needed much longer than the usual two or three seconds to come up. My Intel desktops, in contrast, behaved exactly as before.&lt;/p&gt;
&lt;p&gt;To substantiate my feeling that my notebook's performance had degraded significantly since the update, I used sysbench, or, more precisely, the command &lt;code class="docutils literal"&gt;sysbench cpu run&lt;/code&gt;. I would normally see a performance of about 4800 events per second on one core. But with kernel 6.6.9, all I've got were 440 events per second, more than a factor of 10 lower than the Ryzen 5800H in my notebook is supposed to deliver, and even three times lower than my 10-years old Intel desktops. No surprise the notebook felt so sluggish!&lt;/p&gt;
&lt;p&gt;I didn't bother to investigate this issue further, and I don't know the underlying cause, like whether it's related to the AMD processor or the maker of the notebook. I just rolled back to kernel 6.6.8 (&lt;code class="docutils literal"&gt;sudo pacman &lt;span class="pre"&gt;-U&lt;/span&gt; &lt;span class="pre"&gt;/var/cache/pacman/pkg/linux-6.6.8.arch1-1-x86_64.pkg.tar.zst&lt;/span&gt;&lt;/code&gt;) and the problem was gone.&lt;/p&gt;
&lt;p&gt;I expected problems with kernel 6.6.6, but the devil is in the details.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; The performance is back to normal with kernel 6.6.10.&lt;/p&gt;</description><category>archlinux</category><category>linux</category><guid>https://cobra.pdes-net.org/posts/kernel-669.html</guid><pubDate>Fri, 05 Jan 2024 16:24:37 GMT</pubDate></item><item><title>Virtual Arch for the VPN</title><link>https://cobra.pdes-net.org/posts/virtual-arch-for-the-vpn.html</link><dc:creator>Cobra</dc:creator><description>&lt;p&gt;Connecting to a VPN is usually like picking up your device and tossing it into another network, figuratively speaking. All of your network activities – such as browsing, fetching private mails, chatting with a friend on IRC – will take place within this virtual network, or not at all: in its most secure configuration, access to resources on the local area network will not be possible. I thus prefer to separate my real private network activities from those in the virtual private network by using a virtual guest dedicated to nothing but connecting to the latter and doing whatever I need to do within the guest system.&lt;/p&gt;
&lt;p&gt;In the present case, I'm fortunate that my employer now uses a gateway whose VPN client (Palo Altos's GlobalProtect) runs even on an up-to-date Arch installation. So my choice for the guest system is an out-of-the-box &lt;a class="reference external" href="https://cobra.pdes-net.org/archbang.org"&gt;ArchBang&lt;/a&gt; that comes with i3 as (tiling) Window manager. It installs in 10 min, comes with everything I need, and fits in 5 GB of space. I spent another 5 min modifying the wallpaper and the conky instance – my idea was to have a visual indication in form of my IP whether or not I'm connected to the VPN.&lt;/p&gt;
&lt;a class="reference external image-reference" href="https://cobra.pdes-net.org/images/virtualarch_95.webp"&gt;
&lt;img alt="../images/virtualarch_95.webp" class="align-center" src="https://cobra.pdes-net.org/images/virtualarch_95.webp" style="width: 800px;"&gt;
&lt;/a&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;After configuring everything to my liking, it turned out that I shouldn't have bothered – our IT guys configured the VPN with &lt;a class="reference external" href="https://en.wikipedia.org/wiki/Split_tunneling"&gt;split tunneling&lt;/a&gt; enabled. This basically means that only traffic destined to the remote location passes through the encrypted tunnel, while everything else uses the standard gateway. Supposedly less secure, but certainly much more convenient. Excellent choice! I'm sure I'll find another use for my virtual Arch – be it for testing or online banking.&lt;/p&gt;</description><category>archlinux</category><category>virtual-machines</category><guid>https://cobra.pdes-net.org/posts/virtual-arch-for-the-vpn.html</guid><pubDate>Sun, 05 Nov 2023 14:02:40 GMT</pubDate></item><item><title>Don't worry, be happy</title><link>https://cobra.pdes-net.org/posts/dont-worry-be-happy.html</link><dc:creator>Cobra</dc:creator><description>&lt;p&gt;It's Friday evening, 18:30. My fourth video meeting in a row has just concluded. Now I could finally work on the revision of a manuscript I wanted to get resubmitted during the weekend. This last revision was purely technical: the production editor requested that we move the present addresses of the authors to the back of the manuscript, instead of leaving them  beneath the list of authors on the title page as destined by the LaTeX class from the publisher. Now, any such request that forces me to work around or against the journal style provided by the publisher means that the reputation of the journal (&lt;a class="reference external" href="https://pubs.acs.org/journal/aanmf6"&gt;ACS Appl. Nano Mater.&lt;/a&gt;, in case you are curious) takes a steep dive. But anyway, I had to do it, and I was looking into the &lt;code class="docutils literal"&gt;footmisc&lt;/code&gt; package to get all &lt;code class="docutils literal"&gt;footnotemarks&lt;/code&gt; I needed when I realized that I hadn't done my ritual update in the morning for the lack of time. Starting it, I only peripherally noticed that the update involved TeXLive and brought a new kernel. In any case, this information didn't stop me from compiling the manuscript I was working on during the update. Repeatedly. Incessantly.&lt;/p&gt;
&lt;p&gt;At a certain point, the build command of Sublime Text didn't produce any reaction. No error message, nothing. I began to have a bad feeling. Indeed, while I could still move the mouse around, the entire Window system was unresponsive, and the update process – which was just about to build the fmt files – was hanging. I started to suspect that I had just committed the greatest blunder of this year, and indeed, when I rebooted, the system greeted me with the message that the kernel could not be found:&lt;/p&gt;
&lt;pre class="literal-block"&gt;Loading Linux linux...
error file /boot/vmlinuz-linux not found
loading initial ramdisk
error: you need to load the kernel first&lt;/pre&gt;
&lt;p&gt;Well, I knew that this SNAFU looked worse than it actually is. But since I was suddenly very tired, I decided to call it a day and do the repair on Saturday morning.&lt;/p&gt;
&lt;p&gt;On Saturday, I first needed a live Arch installation on a USB stick. The &lt;a class="reference external" href="https://archlinux.org/download/"&gt;ISO&lt;/a&gt; ist just 813 MB (as of release 2023.07.01) and downloaded in 30 s. There are &lt;a class="reference external" href="https://wiki.archlinux.org/title/USB_flash_installation_medium"&gt;several options to write the ISO to the stick&lt;/a&gt;, but I prefer &lt;code class="docutils literal"&gt;dd&lt;/code&gt;:&lt;/p&gt;
&lt;pre class="literal-block"&gt;dd bs=4M if=archlinux-archlinux-2023.07.01-x86_64.iso of=/dev/sdd conv=fsync oflag=direct status=progress&lt;/pre&gt;
&lt;p&gt;Note that the stick must not be mounted, and one writes to the stick (sdd), not a partition (sdd1).&lt;/p&gt;
&lt;p&gt;After booting from the thus created live media, I was just &lt;a class="reference external" href="https://wiki.archlinux.org/title/pacman#Pacman_crashes_during_an_upgrade"&gt;a few commands away&lt;/a&gt; from a restored system. I first wanted to have my WiFi working:&lt;/p&gt;
&lt;pre class="literal-block"&gt;iwctl --passphrase PASSPHRASE station DEVICE connect SSID&lt;/pre&gt;
&lt;p&gt;After that, I just needed to mount my drives (have a look with &lt;code class="docutils literal"&gt;lsblk&lt;/code&gt; before), delete the stale lock file from the previous failed update, and do an update in the mounted root directory:&lt;/p&gt;
&lt;pre class="literal-block"&gt;mount /dev/nvme01p2 /mnt
mount /dev/nvme01p1 /mnt/boot
mount -t proc /proc /mnt/proc
mount --rbind /sys /mnt/sys
mount --rbind /dev /mnt/dev

rm /var/lib/pacman/db.lck

pacman --sysroot /mnt -Syu&lt;/pre&gt;
&lt;p&gt;Took all in all half an hour, but I would still have preferred to avoid this situation altogether. The lesson is: avoid working on the system when you're all stressed out. Particularly &lt;a class="reference external" href="https://www.opsview.com/resources/system-administrator/blog/3-reasons-not-make-major-it-changes-fridays"&gt;on Friday night&lt;/a&gt;.&lt;/p&gt;</description><category>archlinux</category><category>linux</category><category>thoughts</category><guid>https://cobra.pdes-net.org/posts/dont-worry-be-happy.html</guid><pubDate>Sat, 29 Jul 2023 13:12:40 GMT</pubDate></item><item><title>Debian 12</title><link>https://cobra.pdes-net.org/posts/debian-12.html</link><dc:creator>Cobra</dc:creator><description>&lt;p&gt;A little late, but better late than never:&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.debian.org/News/2023/20230610"&gt;Bookworm is stable,&lt;/a&gt; &lt;a class="reference external" href="https://wiki.debian.org/DebianTrixie"&gt;Trixie&lt;/a&gt; is the new testing.&lt;/p&gt;
&lt;pre class="literal-block"&gt;sed -i 's/bookworm/trixie/g' /etc/apt/sources.list&lt;/pre&gt;</description><category>debian</category><guid>https://cobra.pdes-net.org/posts/debian-12.html</guid><pubDate>Sun, 02 Jul 2023 13:04:04 GMT</pubDate></item></channel></rss>