<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ivan Ivanov</title>
	<atom:link href="https://ivanivanov.de/feed/" rel="self" type="application/rss+xml" />
	<link>https://ivanivanov.de/landing-page/</link>
	<description>Have you tried turning it off and on again?</description>
	<lastBuildDate>Mon, 07 Sep 2026 17:29:42 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
<site xmlns="com-wordpress:feed-additions:1">121858272</site>	<item>
		<title>MikroTrick: Kritische RouterOS-Lücken werden aktiv ausgenutzt</title>
		<link>https://ivanivanov.de/blog/mikrotrick-routeros-sicherheitsluecke-ssh-update/</link>
		
		<dc:creator><![CDATA[Ivan]]></dc:creator>
		<pubDate>Mon, 07 Sep 2026 17:29:42 +0000</pubDate>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[CERT Polska MikroTik Warnung]]></category>
		<category><![CDATA[MikroTik Router gehackt]]></category>
		<category><![CDATA[MikroTik Sicherheitsupdate 2026]]></category>
		<category><![CDATA[MikroTrick RouterOS Lücke]]></category>
		<category><![CDATA[Network Security Exploits]]></category>
		<category><![CDATA[RouterOS Firmware Patch]]></category>
		<category><![CDATA[SSH Authentication Bypass RouterOS]]></category>
		<category><![CDATA[WebFig Sicherheitslücke]]></category>
		<category><![CDATA[WinBox Remote Code Execution]]></category>
		<guid isPermaLink="false">https://ivanivanov.de/?p=5651</guid>

					<description><![CDATA[<p>MikroTrick: Kritische Angriffskette bedroht MikroTik RouterOS – Sofort patchen! Für Administratoren von MikroTik-Netzwerkhardware herrscht höchste Alarmstufe. Wie das polnische CSIRT (CERT Polska) berichtet, nutzen Angreifer seit Anfang September 2026 eine Kette von neu entdeckten Sicherheitslücken aktiv aus, um MikroTik-Router im großen Stil zu kapern. Unter der Bezeichnung MikroTrick kombinieren Kriminelle mehrere Schwachstellen in der RouterOS-Firmware, [&#8230;]</p>
<p>Der Beitrag <a href="https://ivanivanov.de/blog/mikrotrick-routeros-sicherheitsluecke-ssh-update/">MikroTrick: Kritische RouterOS-Lücken werden aktiv ausgenutzt</a> erschien zuerst auf <a href="https://ivanivanov.de">Ivan Ivanov</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1 data-path-to-node="12">MikroTrick: Kritische Angriffskette bedroht MikroTik RouterOS – Sofort patchen!</h1>
<p data-path-to-node="13">Für Administratoren von MikroTik-Netzwerkhardware herrscht höchste Alarmstufe. Wie das polnische CSIRT (<i data-path-to-node="13" data-index-in-node="121">CERT Polska</i>) berichtet, nutzen Angreifer seit Anfang September 2026 eine Kette von neu entdeckten Sicherheitslücken aktiv aus, um MikroTik-Router im großen Stil zu kapern. Unter der Bezeichnung <b data-path-to-node="13" data-index-in-node="331">MikroTrick</b> kombinieren Kriminelle mehrere Schwachstellen in der RouterOS-Firmware, um unauthentifiziert die vollständige administrative Kontrolle über betroffene Systeme zu erlangen.</p>
<p data-path-to-node="14">Nach Einschätzung von IT-Sicherheitsdiensten sind weltweit über 100.000 über das Internet erreichbare Router potenziell von der Welle bedroht.</p>
<h2 data-path-to-node="16">Funktionsweise der „MikroTrick“-Attacke</h2>
<p data-path-to-node="17">Das Forscherteam von CERT Polska hat insgesamt sechs Schwachstellen in der Zertifikats- und Diensteverarbeitung von RouterOS identifiziert. Der gefährlichste Angriffsvektor kombiniert zwei spezifische Fehler im SSH-Server und -Client von RouterOS:</p>
<ol start="1" data-path-to-node="18">
<li>
<p data-path-to-node="18,0,0"><b data-path-to-node="18,0,0" data-index-in-node="0">Authentication Bypass:</b> Eine Lücke erlaubt es Angreifern, die reguläre Anmeldung am SSH-Dienst zu umgehen.</p>
</li>
<li>
<p data-path-to-node="18,1,0"><b data-path-to-node="18,1,0" data-index-in-node="0">Privilege Escalation:</b> Eine verknüpfte zweite Schwachstelle verschafft dem Angreifer umgehend uneingeschränkte Administratorrechte (CVSS-Score: <b data-path-to-node="18,1,0" data-index-in-node="143">9.2</b>).</p>
</li>
</ol>
<h3 data-path-to-node="19">Nicht nur SSH-Dienste sind anfällig</h3>
<p data-path-to-node="20">Obwohl die aktiven Angriffe primär über exponierte SSH-Ports ablaufen, beschränkt sich das Risiko keineswegs nur auf die Konsole. Das Lücken-Set betrifft auch weitere Systemkomponenten von RouterOS:</p>
<ul data-path-to-node="21">
<li>
<p data-path-to-node="21,0,0">Das Web-Management <b data-path-to-node="21,0,0" data-index-in-node="19">WebFig</b></p>
</li>
<li>
<p data-path-to-node="21,1,0">Den internen <b data-path-to-node="21,1,0" data-index-in-node="13">Bandbreitentest-Dienst</b></p>
</li>
<li>
<p data-path-to-node="21,2,0">Die Verarbeitung von <b data-path-to-node="21,2,0" data-index-in-node="21">X.509-TLS-Zertifikaten</b></p>
</li>
</ul>
<p data-path-to-node="22">Selbst wenn SSH extern geschlossen ist, sollten RouterOS-Instanzen daher dringend aktualisiert werden, da auch ausgehende TLS-Verbindungen oder interne Verwaltungsdienste ausnutzbar sind.</p>
<h2 data-path-to-node="24">Welche Versionen sichern das System ab?</h2>
<p data-path-to-node="25">MikroTik hat umgehend reagiert und geflickte Releases für die jeweiligen Update-Kanäle veröffentlicht. Betreiber sollten ihre Geräte unverzüglich auf folgende oder neuere Firmware-Stände heben:</p>
<ul data-path-to-node="26">
<li>
<p data-path-to-node="26,0,0"><b data-path-to-node="26,0,0" data-index-in-node="0">v7 Stable Branch:</b> Aktualisierung auf <b data-path-to-node="26,0,0" data-index-in-node="37">7.16</b> (oder höher)</p>
</li>
<li>
<p data-path-to-node="26,1,0"><b data-path-to-node="26,1,0" data-index-in-node="0">v7 Long-Term Branch:</b> Aktualisierung auf <b data-path-to-node="26,1,0" data-index-in-node="40">7.15.3</b> (beachte: falls Version 7.23.4 / 7.23.5 im Einsatz ist, ebenfalls aktualisieren)</p>
</li>
<li>
<p data-path-to-node="26,2,0"><b data-path-to-node="26,2,0" data-index-in-node="0">v6 Long-Term / Legacy:</b> Aktualisierung auf <b data-path-to-node="26,2,0" data-index-in-node="42">6.49.15</b></p>
</li>
<li>
<p data-path-to-node="26,3,0"><b data-path-to-node="26,3,0" data-index-in-node="0">Development / Testing:</b> Aktualisierung auf <b data-path-to-node="26,3,0" data-index-in-node="42">7.25beta3</b></p>
</li>
</ul>
<h2 data-path-to-node="28">Empfohlener Incident-Response-Plan für Admins</h2>
<h3 data-path-to-node="29">1. Sofortiges Firmware-Update</h3>
<p data-path-to-node="30">Spielt die gepatchte RouterOS-Version über den Mikrotik-Update-Mechanismus, WinBox oder WebFig ein.</p>
<h3 data-path-to-node="31">2. Verwaltungszugänge vom WAN trennen</h3>
<p data-path-to-node="32">Verwaltungsdienste wie SSH, WinBox und WebFig gehören grundsätzlich <b data-path-to-node="32" data-index-in-node="68">niemals ungeschützt an das öffentliche Internet</b>.</p>
<ul data-path-to-node="33">
<li>
<p data-path-to-node="33,0,0">Schränkt den Zugriff über IP-Firewall-Regeln strikt auf interne Management-VLANs ein.</p>
</li>
<li>
<p data-path-to-node="33,1,0">Nutzt für den Fernzugriff ausschließlich verschlüsselte VPN-Tunnel (z. B. WireGuard).</p>
</li>
</ul>
<h3 data-path-to-node="34">3. Prüfen auf Kompromittierung (IoCs)</h3>
<p data-path-to-node="35">Da Angreifer Hintertüren im System verankern können, reicht ein reines Update bei bereits infizierten Geräten oft nicht aus.</p>
<ul data-path-to-node="36">
<li>
<p data-path-to-node="36,0,0">Kontrolliert die Scheduler-Tasks, Scripts und angelegten Admin-Nutzer auf unautorisierte Einträge.</p>
</li>
<li>
<p data-path-to-node="36,1,0">Bei konkretem Verdacht: Trennt das Gerät vom Netz, sichert Logs und Konfigurationen, führt einen vollständigen <b data-path-to-node="36,1,0" data-index-in-node="111">Netinstall / Factory Reset</b> durch und spielt eine saubere Konfiguration neu ein.</p>
</li>
</ul>
<h2 data-path-to-node="38">Fazit</h2>
<p data-path-to-node="39">„MikroTrick“ zeigt erneut, wie verheerend die Kombination aus schwachen Schnittstellen-Konfigurationen und ungepatchter Edge-Hardware ist. Wer MikroTik-Geräte im Einsatz hat, muss jetzt handeln, um seine Netzwerkgrenzen wirksam abzusichern.</p>
<p data-path-to-node="40"><b data-path-to-node="40" data-index-in-node="0">Quelle &amp; Weiterführende Berichterstattung: </b><a href="https://cert.pl/en/posts/2026/09/vulnerabilities-in-mikrotik-routeros-actively-exploited/" target="_blank" rel="noopener">https://cert.pl/en/posts/2026/09/vulnerabilities-in-mikrotik-routeros-actively-exploited/</a></p>
<p>Der Beitrag <a href="https://ivanivanov.de/blog/mikrotrick-routeros-sicherheitsluecke-ssh-update/">MikroTrick: Kritische RouterOS-Lücken werden aktiv ausgenutzt</a> erschien zuerst auf <a href="https://ivanivanov.de">Ivan Ivanov</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5651</post-id>	</item>
		<item>
		<title>1 Jahr Gemini Plus gratis: Google Aktion für Studenten &#038; Azubis</title>
		<link>https://ivanivanov.de/blog/gemini-pro-kostenlos-1-jahr-studierende-azubis/</link>
		
		<dc:creator><![CDATA[Ivan]]></dc:creator>
		<pubDate>Fri, 21 Aug 2026 12:23:45 +0000</pubDate>
				<category><![CDATA[KI]]></category>
		<category><![CDATA[2 TB Cloud Speicher Student]]></category>
		<category><![CDATA[Gemini Advanced kostenlos Studierende]]></category>
		<category><![CDATA[Gemini Docs Gmail Integration]]></category>
		<category><![CDATA[Gemini Studentenrabatt SheerID]]></category>
		<category><![CDATA[Google Gemini Angebot 2026]]></category>
		<category><![CDATA[Google KI 1 Jahr kostenlos]]></category>
		<category><![CDATA[Google One AI Premium Student]]></category>
		<category><![CDATA[KI Abo gratis Ausbildung]]></category>
		<category><![CDATA[Künstliche Intelligenz Studium Tools]]></category>
		<category><![CDATA[Produktivität KI Schule Uni]]></category>
		<guid isPermaLink="false">https://ivanivanov.de/?p=5645</guid>

					<description><![CDATA[<p>1 Jahr Gemini Plus geschenkt: Google startet KI-Aktion für Studierende und Azubis Der Einsatz generativer KI gehört an Universitäten, Fachhochschulen und in der beruflichen Bildung längst zum Alltag. Ob beim Zusammenfassen umfangreicher Vorlesungsskripte, der Recherche für Seminararbeiten oder dem Erstellen von Programmcode: Leistungsfähige Sprachmodelle sparen wertvolle Zeit. Mit einer neuen Sonderaktion richtet sich Google gezielt [&#8230;]</p>
<p>Der Beitrag <a href="https://ivanivanov.de/blog/gemini-pro-kostenlos-1-jahr-studierende-azubis/">1 Jahr Gemini Plus gratis: Google Aktion für Studenten &#038; Azubis</a> erschien zuerst auf <a href="https://ivanivanov.de">Ivan Ivanov</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1 data-path-to-node="13">1 Jahr Gemini Plus geschenkt: Google startet KI-Aktion für Studierende und Azubis</h1>
<p data-path-to-node="14">Der Einsatz generativer KI gehört an Universitäten, Fachhochschulen und in der beruflichen Bildung längst zum Alltag. Ob beim Zusammenfassen umfangreicher Vorlesungsskripte, der Recherche für Seminararbeiten oder dem Erstellen von Programmcode: Leistungsfähige Sprachmodelle sparen wertvolle Zeit. Mit einer neuen Sonderaktion richtet sich Google gezielt an Lernende und verschenkt <b data-path-to-node="14" data-index-in-node="382">ein volles Jahr des Google One AI Pro-Abos</b>.</p>
<h2 data-path-to-node="15">Was bietet das Google One AI Plus-Paket?</h2>
<p data-path-to-node="16">Das Paket gehört regulär zu den umfangreichsten Angeboten auf dem Markt und kostet üblicherweise 4,99 Euro im Monat. Im Rahmen der Aktion entfallen diese Gebühren für 12 Monate vollständig. Bei den weiteren Pro Varianten vom Abo gibt es kräftige Rabate für 4 Jahre! Dort ist mehr Speicher enthalten 2+TB sowie höhere Limits.</p>
<h3 data-path-to-node="17">Die wichtigsten Features im Überblick:</h3>
<ul data-path-to-node="18">
<li>
<p data-path-to-node="18,0,0"><b data-path-to-node="18,0,0" data-index-in-node="0">Zugriff auf Gemini Advanced:</b> Nutzung der aktuellsten und leistungsfähigsten Modell-Iterationen von Google mit erweitertem Denkvermögen (<i data-path-to-node="18,0,0" data-index-in-node="136">Reasoning</i>) und riesigem Kontextfenster.</p>
</li>
<li>
<p data-path-to-node="18,1,0"><b data-path-to-node="18,1,0" data-index-in-node="0">Erweiterter Cloud-Speicher (400 GB):</b> Ausreichend Speicherplatz auf Google Drive, Google Fotos und Gmail für Projektarbeiten, Datensicherungen und Medien.</p>
</li>
<li>
<p data-path-to-node="18,2,0"><b data-path-to-node="18,2,0" data-index-in-node="0">Nahtlose Workspace-Integration:</b> Gemini lässt sich direkt in Google Docs, Präsentationen, Tabellen und Gmail nutzen, um Entwürfe zu generieren oder Daten zu strukturieren.</p>
</li>
<li>
<p data-path-to-node="18,3,0"><b data-path-to-node="18,3,0" data-index-in-node="0">Code- und Analyse-Tools:</b> Fortgeschrittene Funktionen zum Erstellen, Erklären und Debuggen von Quellcode in verschiedenen Programmiersprachen.</p>
</li>
</ul>
<h2 data-path-to-node="19">Wer ist teilnahmeberechtigt und wie läuft die Aktivierung?</h2>
<p data-path-to-node="20">Das Angebot richtet sich an alle eingeschriebenen Studierenden an staatlich anerkannten Hochschulen sowie an Auszubildende. Die Verifizierung erfolgt während des Anmeldeprozesses in der Regel über einen externen Verifizierungsdienstleister unter Verwendung der offiziellen Hochschul-E-Mail-Adresse oder entsprechender Nachweisdokumente.</p>
<blockquote data-path-to-node="21">
<p data-path-to-node="21,0"><b data-path-to-node="21,0" data-index-in-node="0">Tipp zur Kündigung:</b> Um zu verhindern, dass sich das kostenlose Probejahr nach Ablauf der 12 Monate automatisch in ein kostenpflichtiges Monatsabo umwandelt, kann die automatische Verlängerung direkt nach der Aktivierung in den Google One-Kontoeinstellungen deaktiviert werden. Das Gratismonat-Kontingent bleibt dabei bis zum Ende der Laufzeit vollständig erhalten.</p>
</blockquote>
<h2 data-path-to-node="22">Fazit</h2>
<p data-path-to-node="23">Für Auszubildende und Studierende ist die Aktion eine hervorragende Gelegenheit, ein KI-Kauf-Abo der Spitzenklasse ohne finanzielles Risiko auf Herz und Nieren im Alltag zu testen.</p>
<p data-path-to-node="24"><b data-path-to-node="24" data-index-in-node="0">Zur Aktionsseite:</b> <a class="ng-star-inserted" href="https://one.google.com/ai-student?g1_landing_page=75" target="_blank" rel="noopener" data-hveid="0" data-ved="0CAAQ_4QMahgKEwj5usfC2rGWAxUAAAAAHQAAAAAQugE">Google One AI Student Angebot</a></p>
<p>Der Beitrag <a href="https://ivanivanov.de/blog/gemini-pro-kostenlos-1-jahr-studierende-azubis/">1 Jahr Gemini Plus gratis: Google Aktion für Studenten &#038; Azubis</a> erschien zuerst auf <a href="https://ivanivanov.de">Ivan Ivanov</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5645</post-id>	</item>
		<item>
		<title>Paperless-ngx Docker Upgrade: von 2.20.15 auf 3.0.4</title>
		<link>https://ivanivanov.de/blog/paperless-ngx-docker-upgrade-von-2-20-15-auf-3-0-4/</link>
		
		<dc:creator><![CDATA[Ivan]]></dc:creator>
		<pubDate>Tue, 18 Aug 2026 22:41:56 +0000</pubDate>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Docker Compose]]></category>
		<category><![CDATA[Homelab]]></category>
		<category><![CDATA[Paperless-ngx]]></category>
		<category><![CDATA[Self-Hosting]]></category>
		<category><![CDATA[Tantivy]]></category>
		<guid isPermaLink="false">https://ivanivanov.de/?p=5625</guid>

					<description><![CDATA[<p>Paperless-ngx Docker Upgrade: von 2.20.15 auf 3.0.4 Paperless-ngx 3.0 bringt Breaking Changes. Diese Anleitung zeigt das Upgrade einer Docker-Installation, Schritt für Schritt. Voraussetzung: Ausgangsversion muss 2.20.15 sein. Nur von dort aus ist der Sprung auf 3.0 offiziell unterstützt. Ältere Versionen zuerst auf 2.20.15 bringen. Was sich in 3.0 ändert Suchindex wechselt von Whoosh zu Tantivy [&#8230;]</p>
<p>Der Beitrag <a href="https://ivanivanov.de/blog/paperless-ngx-docker-upgrade-von-2-20-15-auf-3-0-4/">Paperless-ngx Docker Upgrade: von 2.20.15 auf 3.0.4</a> erschien zuerst auf <a href="https://ivanivanov.de">Ivan Ivanov</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="h-full" data-testid="chat-stale-nav-body">
<div class="flex flex-1 w-full -mt-[var(--df-header-h,0px)] h-[calc(100%+var(--df-header-h,0px))] overflow-hidden print:!h-auto print:!overflow-visible print:!mt-0">
<div class="z-20 draggable-none print:hidden overflow-hidden outline-none flex-grow-0 flex-shrink-0 basis-0 h-full pt-[var(--df-header-h,0px)]" tabindex="-1" aria-hidden="false">
<div class="flex flex-col h-full">
<div class="flex-1 overflow-hidden h-full bg-surface-1">
<div class="flex h-full flex-col relative outline-none bg-surface-3" tabindex="-1">
<div class="flex-1 min-h-0 bg-surface-3 overflow-auto">
<div class="flex h-full flex-col" data-skill-file-viewer="true">
<div class="min-h-0 flex-1">
<div class="h-full">
<div class="relative h-full">
<div class="absolute inset-0 overflow-auto scroll-fade-y scroll-fade-size-6">
<div class="mx-auto w-full max-w-3xl leading-[1.65rem] py-4 pl-6 pr-6 md:py-6 md:pl-11 md:pr-11">
<div class="standard-markdown grid-cols-1 grid [&amp;_&gt;_*]:min-w-0 gap-3 [&amp;_&gt;_*:last-child]:mb-0 print:block print:[&amp;_&gt;_:where(:not(:first-child))]:mt-3 font-claude-response">
<p dir="auto"><strong>Paperless-ngx Docker Upgrade: von 2.20.15 auf 3.0.4</strong></p>
<p dir="auto">Paperless-ngx 3.0 bringt Breaking Changes. Diese Anleitung zeigt das Upgrade einer Docker-Installation, Schritt für Schritt.</p>
<p dir="auto"><strong>Voraussetzung:</strong> Ausgangsversion muss 2.20.15 sein. Nur von dort aus ist der Sprung auf 3.0 offiziell unterstützt. Ältere Versionen zuerst auf 2.20.15 bringen.</p>
<h3 dir="auto">Was sich in 3.0 ändert</h3>
<ul dir="auto">
<li>Suchindex wechselt von Whoosh zu Tantivy (Rust). Volltextindex muss neu aufgebaut werden, passiert im Docker-Image automatisch beim Start.</li>
<li>PAPERLESS_SECRET_KEY ist jetzt Pflicht.</li>
<li>PAPERLESS_DBENGINE ist bei PostgreSQL/MariaDB jetzt Pflicht (vorher aus PAPERLESS_DBHOST abgeleitet).</li>
<li>Diverse SSL-/Timeout-/Pooling-Variablen der DB entfallen zugunsten von PAPERLESS_DB_OPTIONS.</li>
<li>API-Version 1 fällt weg.</li>
<li>Dokument-Prüfsummen wechseln auf SHA-256.</li>
<li>Datenbankmigrationen sind nicht rückwärtskompatibel. Ohne Backup kein Rollback.</li>
</ul>
<p dir="auto">Vollständige Liste: github.com/paperless-ngx/paperless-ngx/releases</p>
<h3 dir="auto">Schritt 1: Backup</h3>
<div dir="auto">
<div data-testid="code-block">
<div>
<div>
<pre tabindex="0"><code>cd /opt/paperless

docker compose stop

# Datenbank (Beispiel PostgreSQL)
docker compose exec -T db pg_dump -U paperless paperless &gt; /opt/backup/paperless-db-$(date +%F).sql

# Volumes sichern
sudo tar -czf /opt/backup/paperless-data-$(date +%F).tar.gz ./data
sudo tar -czf /opt/backup/paperless-media-$(date +%F).tar.gz ./media

# Compose-Files sichern
cp docker-compose.yml /opt/backup/docker-compose.yml.bak
cp docker-compose.env /opt/backup/docker-compose.env.bak</code></pre>
</div>
</div>
</div>
</div>
<p dir="auto">Alternativ den eingebauten Paperless-Exporter nutzen:</p>
<div dir="auto">
<div data-testid="code-block">
<div>
<pre tabindex="0"><code>docker compose run --rm webserver document_exporter ../export</code></pre>
</div>
</div>
</div>
<h3 dir="auto">Schritt 2: Secret Key setzen</h3>
<p dir="auto">Falls bisher kein PAPERLESS_SECRET_KEY gesetzt war, lief 2.x mit einem eingebauten Default-Key. Für 3.0 wird ein expliziter Key Pflicht.</p>
<div dir="auto">
<div data-testid="code-block">
<div>
<pre tabindex="0"><code>openssl rand -base64 64</code></pre>
</div>
</div>
</div>
<p dir="auto">In docker-compose.env oder direkt in docker-compose.yml unter environment eintragen:</p>
<div dir="auto">
<div data-testid="code-block">
<div>
<div>YAML Datei</div>
<div>
<pre tabindex="0"><code>PAPERLESS_SECRET_KEY: "&lt;generierter-wert&gt;"</code></pre>
</div>
</div>
</div>
</div>
<p dir="auto"><strong>Wichtig:</strong> Wird ein neuer, zufälliger Key gesetzt statt des alten Default-Keys, werden bestehende Sessions und API-Tokens ungültig. Nutzer müssen sich neu anmelden.</p>
<h3 dir="auto">Schritt 3: Datenbank-Engine explizit setzen</h3>
<p dir="auto">Nur bei PostgreSQL oder MariaDB nötig, nicht bei SQLite.</p>
<div dir="auto">
<div data-testid="code-block">
<div>
<div>
<p>YAML Datei</p>
</div>
<div>
<pre tabindex="0"><code># v2 (PostgreSQL wurde aus PAPERLESS_DBHOST abgeleitet)
PAPERLESS_DBHOST: postgres

# v3 (Engine muss explizit gesetzt sein)
PAPERLESS_DBENGINE: postgresql
PAPERLESS_DBHOST: postgres</code></pre>
</div>
</div>
</div>
</div>
<p dir="auto">Zulässige Werte: postgresql oder mariadb. Bisherige einzelne SSL-/Timeout-/Pooling-Variablen durch PAPERLESS_DB_OPTIONS ersetzen, falls verwendet:</p>
<div dir="auto">
<div data-testid="code-block">
<div>
<div>YAML Datei</div>
<div>
<pre tabindex="0"><code>PAPERLESS_DB_OPTIONS: "sslmode=require,pool.max_size=20"</code></pre>
</div>
</div>
</div>
</div>
<p dir="auto">Alte Variablen funktionieren übergangsweise weiter, loggen aber eine Deprecation-Warnung beim Start.</p>
<h3 dir="auto">Schritt 4: Image-Tag auf 3.0.4 setzen</h3>
<p dir="auto">In docker-compose.yml:</p>
<div dir="auto">
<div data-testid="code-block">
<div>
<div>YAML Datei</div>
<div>
<pre tabindex="0"><code>services:
  webserver:
    image: ghcr.io/paperless-ngx/paperless-ngx:2.20.15</code></pre>
</div>
</div>
</div>
</div>
<p dir="auto">ändern zu:</p>
<div dir="auto">
<div data-testid="code-block">
<div>
<div>
<p>YAML Datei</p>
</div>
<div>
<pre tabindex="0"><code>services:
  webserver:
    image: ghcr.io/paperless-ngx/paperless-ngx:3.0.4</code></pre>
</div>
</div>
</div>
</div>
<p dir="auto">Wer bisher :latest nutzt: :latest zeigt seit Juli 2026 bereits auf 3.x. Für kontrollierte Major-Upgrades empfiehlt sich grundsätzlich ein fester Versions-Tag statt :latest.</p>
<h3 dir="auto">Schritt 5: Neues Image ziehen und Container neu erstellen</h3>
<div dir="auto">
<div data-testid="code-block">
<div>
<div>
<pre tabindex="0"><code>docker compose pull
docker compose up -d</code></pre>
</div>
</div>
</div>
</div>
<p dir="auto">Der Suchindex-Rebuild (Whoosh → Tantivy) läuft beim ersten Start automatisch im Container. Bei größeren Archiven dauert das spürbar.</p>
<h3 dir="auto">Schritt 6: Logs beobachten</h3>
<div dir="auto">
<div data-testid="code-block">
<div>
<pre tabindex="0"><code>docker compose logs -f webserver</code></pre>
</div>
</div>
</div>
<p dir="auto">Auf Migrationsfehler, fehlende Env-Variablen oder Reindex-Fortschritt achten.</p>
<h3 dir="auto">Schritt 7: Verifikation</h3>
<ul dir="auto">
<li>Version in der Weboberfläche prüfen (Systemstatus zeigt 3.0.4).</li>
<li>Volltextsuche testen, auch nach Umlauten und mehreren Suchbegriffen (Tantivy verknüpft Begriffe standardmäßig mit OR statt AND wie zuvor Whoosh).</li>
<li>Ein Testdokument einscannen/konsumieren lassen, OCR-Ergebnis prüfen.</li>
<li>Download und Vorschau eines bestehenden Dokuments prüfen.</li>
<li>Login/API-Token testen, falls der Secret Key neu gesetzt wurde.</li>
<li>Containerstatus prüfen: docker compose ps.</li>
</ul>
<h3 dir="auto">Rollback</h3>
<p dir="auto">Bei Problemen:</p>
<div dir="auto">
<div data-testid="code-block">
<div>
<pre tabindex="0"><code>docker compose down</code></pre>
</div>
</div>
</div>
<p dir="auto">Alten Image-Tag (2.20.15) in docker-compose.yml zurücksetzen, DB-Dump aus Schritt 1 einspielen, data/ und media/ aus dem Backup zurückkopieren, dann:</p>
<div dir="auto">
<div data-testid="code-block">
<div>
<pre tabindex="0"><code>docker compose up -d</code></pre>
</div>
</div>
</div>
<h3 dir="auto">Bekannte Stolperfallen</h3>
<ul dir="auto">
<li>Fehlender PAPERLESS_SECRET_KEY bricht den Start ab.</li>
<li>PAPERLESS_DBENGINE vergessen bei PostgreSQL/MariaDB führt zu Verbindungsfehlern.</li>
<li>Zusätzliche, verwaiste Container aus älteren Compose-Setups können mit dem neuen Consumer kollidieren.</li>
<li>Veraltete Syntax in globalen Dateinamensvorlagen kann nach dem Upgrade Fehler werfen.</li>
</ul>
<p dir="auto"><strong>Quelle:</strong> <a href="https://github.com/paperless-ngx/paperless-ngx/releases" target="_blank" rel="noopener">github.com/paperless-ngx/paperless-ngx/releases</a></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="absolute inset-x-0 bottom-0 -top-[var(--df-header-h,0px)] cursor-default" hidden="" data-testid="chat-stale-nav-shield" aria-hidden="true"></div>
<p>Der Beitrag <a href="https://ivanivanov.de/blog/paperless-ngx-docker-upgrade-von-2-20-15-auf-3-0-4/">Paperless-ngx Docker Upgrade: von 2.20.15 auf 3.0.4</a> erschien zuerst auf <a href="https://ivanivanov.de">Ivan Ivanov</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5625</post-id>	</item>
		<item>
		<title>Debian 12 auf 13 Upgrade im Proxmox LXC Container</title>
		<link>https://ivanivanov.de/blog/debian-12-auf-13-upgrade-proxmox-lxc/</link>
		
		<dc:creator><![CDATA[Ivan]]></dc:creator>
		<pubDate>Tue, 18 Aug 2026 22:41:29 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Debian 13]]></category>
		<category><![CDATA[Homelab]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[LXC]]></category>
		<category><![CDATA[proxmox]]></category>
		<category><![CDATA[Self-Hosting]]></category>
		<category><![CDATA[Trixie]]></category>
		<guid isPermaLink="false">https://ivanivanov.de/?p=5626</guid>

					<description><![CDATA[<p>Debian 12 auf 13 Upgrade im Proxmox LXC Container (Copy &#38; Paste) Debian 12 Bookworm auf 13 Trixie upgraden, direkt im LXC Container auf Proxmox. Fertiges Script zum Copy &#38; Paste, plus Backup und Verifikation. Vorher: Snapshot Vor jedem Major-Upgrade einen Snapshot des Containers erstellen. Einzige einfache Rückfallebene bei Problemen. pct snapshot &#60;CTID&#62; pre-debian13-upgrade Das [&#8230;]</p>
<p>Der Beitrag <a href="https://ivanivanov.de/blog/debian-12-auf-13-upgrade-proxmox-lxc/">Debian 12 auf 13 Upgrade im Proxmox LXC Container</a> erschien zuerst auf <a href="https://ivanivanov.de">Ivan Ivanov</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p dir="auto"><strong>Debian 12 auf 13 Upgrade im Proxmox LXC Container (Copy &amp; Paste)</strong></p>
<p dir="auto">Debian 12 Bookworm auf 13 Trixie upgraden, direkt im LXC Container auf Proxmox. Fertiges Script zum Copy &amp; Paste, plus Backup und Verifikation.</p>
<h3 dir="auto">Vorher: Snapshot</h3>
<p dir="auto">Vor jedem Major-Upgrade einen Snapshot des Containers erstellen. Einzige einfache Rückfallebene bei Problemen.</p>
<div dir="auto">
<div data-testid="code-block">
<div>
<pre tabindex="0"><code>pct snapshot &lt;CTID&gt; pre-debian13-upgrade</code></pre>
</div>
</div>
</div>
<h3 dir="auto">Das Upgrade-Script</h3>
<p dir="auto">Im Container als root ausführen:</p>
<div dir="auto">
<div data-testid="code-block">
<div>
<pre tabindex="0"><code>cat &lt;&lt;EOF &gt;/etc/apt/sources.list
deb http://ftp.debian.org/debian trixie main contrib non-free non-free-firmware
deb http://ftp.debian.org/debian trixie-updates main contrib non-free non-free-firmware
deb http://security.debian.org/debian-security trixie-security main contrib non-free non-free-firmware
deb http://ftp.debian.org/debian trixie-backports main contrib non-free non-free-firmware
EOF

apt-get update
DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::="--force-confold" dist-upgrade -y

# Disable services that break in LXC / containers (harmless if not present)
systemctl disable --now systemd-networkd-wait-online.service || true
systemctl disable --now systemd-networkd.service || true
systemctl disable --now ifupdown-wait-online || true

# Install ifupdown2 (better networking stack for LXC/VMs)
apt-get install -y ifupdown2

# Cleanup
apt-get autoremove --purge -y
apt-get clean

reboot</code></pre>
</div>
</div>
</div>
<h3 dir="auto">Was das Script macht</h3>
<ul dir="auto">
<li><strong>Sources.list:</strong> ersetzt Bookworm-Quellen durch Trixie-Quellen, inklusive Security und Backports.</li>
<li><strong>dist-upgrade:</strong> zieht alle Pakete auf Trixie, &#8211;force-confold behält bestehende Config-Dateien bei Konflikten.</li>
<li><strong>Service-Disables:</strong> systemd-networkd-wait-online, systemd-networkd und ifupdown-wait-online können im LXC-Kontext beim Boot hängen bleiben, da sie auf Netzwerk-Hardware warten, die im Container nicht existiert. Deaktivieren verhindert das. || true sorgt dafür, dass das Script nicht abbricht, falls ein Dienst gar nicht installiert ist.</li>
<li><strong>ifupdown2:</strong> modernerer Networking-Stack, funktioniert zuverlässiger in LXC/VM-Umgebungen als das klassische ifupdown.</li>
<li><strong>Cleanup:</strong> entfernt nicht mehr benötigte Pakete und den apt-Cache.</li>
<li><strong>Reboot:</strong> notwendig, damit Kernel-Userspace-Tools, systemd und Netzwerkstack sauber auf Trixie laufen.</li>
</ul>
<h3 dir="auto">Danach: Verifikation</h3>
<div dir="auto">
<div data-testid="code-block">
<div>
<pre tabindex="0"><code>cat /etc/debian_version
lsb_release -a
apt list --upgradable
ip a
systemctl --failed</code></pre>
</div>
</div>
</div>
<ul dir="auto">
<li>debian_version sollte 13.x zeigen.</li>
<li>apt list &#8211;upgradable sollte leer sein.</li>
<li>ip a prüft, ob die Netzwerkschnittstelle nach dem Reboot korrekt hochgekommen ist.</li>
<li>systemctl &#8211;failed zeigt fehlgeschlagene Dienste nach dem Upgrade.</li>
</ul>
<h3 dir="auto">Bekannte Stolperfallen</h3>
<ul dir="auto">
<li>Container-Config auf Proxmox-Host prüfen: sehr alte LXC-Templates können mit Trixie inkompatible Cgroup- oder AppArmor-Profile mitbringen.</li>
<li>Bei gepinnten Paket-Repos (Docker, PostgreSQL, etc.) müssen deren eigene sources.list-Einträge separat auf trixie umgestellt werden, das Script deckt nur die Debian-Basisquellen ab.</li>
<li>Nach dem Upgrade Dienste einzeln prüfen, die auf spezifische Paketversionen angewiesen sind (z. B. PHP, Python, Datenbanken).</li>
</ul>
<h3 dir="auto">Rollback</h3>
<p dir="auto">Bei Problemen: Container stoppen, Snapshot aus dem ersten Schritt zurückspielen.</p>
<div dir="auto">
<div data-testid="code-block">
<div>
<pre tabindex="0"><code>pct rollback &lt;CTID&gt; pre-debian13-upgrade</code></pre>
</div>
</div>
</div>
<p>Der Beitrag <a href="https://ivanivanov.de/blog/debian-12-auf-13-upgrade-proxmox-lxc/">Debian 12 auf 13 Upgrade im Proxmox LXC Container</a> erschien zuerst auf <a href="https://ivanivanov.de">Ivan Ivanov</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5626</post-id>	</item>
		<item>
		<title>Paperless-ngx Upgrade: von 2.20.15 auf 3.0.4 (Debian-VM auf Proxmox)</title>
		<link>https://ivanivanov.de/blog/paperless-ngx-upgrade-von-2-20-15-auf-3-0-4-debian-vm-auf-proxmox/</link>
		
		<dc:creator><![CDATA[Ivan]]></dc:creator>
		<pubDate>Tue, 18 Aug 2026 22:33:20 +0000</pubDate>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Homelab]]></category>
		<category><![CDATA[Paperless-ngx]]></category>
		<category><![CDATA[proxmox]]></category>
		<category><![CDATA[Self-Hosting]]></category>
		<category><![CDATA[Tantivy]]></category>
		<guid isPermaLink="false">https://ivanivanov.de/?p=5618</guid>

					<description><![CDATA[<p>Paperless-ngx Upgrade: von 2.20.15 auf 3.0.4 (Debian-VM auf Proxmox) Paperless-ngx 3.0 bringt Breaking Changes. Diese Anleitung zeigt das Bare-Metal-Upgrade auf einer Debian-VM unter Proxmox, Schritt für Schritt. Voraussetzung: Ausgangsversion muss 2.20.15 sein. Nur von dort aus ist der Sprung auf 3.0 offiziell unterstützt. Ältere Versionen zuerst auf 2.20.15 bringen. Was sich in 3.0 ändert Suchindex [&#8230;]</p>
<p>Der Beitrag <a href="https://ivanivanov.de/blog/paperless-ngx-upgrade-von-2-20-15-auf-3-0-4-debian-vm-auf-proxmox/">Paperless-ngx Upgrade: von 2.20.15 auf 3.0.4 (Debian-VM auf Proxmox)</a> erschien zuerst auf <a href="https://ivanivanov.de">Ivan Ivanov</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1 class="mt-3 -mb-1 text-[1.375rem] font-bold" dir="ltr">Paperless-ngx Upgrade: von 2.20.15 auf 3.0.4 (Debian-VM auf Proxmox)</h1>
<p class="font-claude-response-body break-words whitespace-normal" dir="ltr">Paperless-ngx 3.0 bringt Breaking Changes. Diese Anleitung zeigt das Bare-Metal-Upgrade auf einer Debian-VM unter Proxmox, Schritt für Schritt.</p>
<p class="font-claude-response-body break-words whitespace-normal" dir="ltr"><strong>Voraussetzung:</strong> Ausgangsversion muss 2.20.15 sein. Nur von dort aus ist der Sprung auf 3.0 offiziell unterstützt. Ältere Versionen zuerst auf 2.20.15 bringen.</p>
<h2 class="mt-3 -mb-1 text-[1.125rem] font-bold" dir="ltr">Was sich in 3.0 ändert</h2>
<ul class="[li_&amp;]:mb-0 [li_&amp;]:mt-1 [li_&amp;]:gap-1 [&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3 print:block print:space-y-1" dir="ltr">
<li class="font-claude-response-body whitespace-normal break-words pl-2">Suchindex wechselt von Whoosh zu Tantivy (Rust). Volltextindex muss neu aufgebaut werden.</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">PAPERLESS_SECRET_KEY</code> ist jetzt Pflicht.</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">PAPERLESS_DBENGINE</code> ist bei PostgreSQL/MariaDB jetzt Pflicht (vorher aus <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">PAPERLESS_DBHOST</code> abgeleitet).</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Diverse SSL-/Timeout-/Pooling-Variablen der DB entfallen zugunsten von <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">PAPERLESS_DB_OPTIONS</code>.</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">API-Version 1 fällt weg.</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Dokument-Prüfsummen wechseln auf SHA-256.</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Consumer-/OCR-Variablen teils umbenannt, <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">OCR_MODE=skip</code>-Verhalten ändert sich.</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Datenbankmigrationen sind nicht rückwärtskompatibel. Ohne Backup kein Rollback.</li>
</ul>
<h2 class="mt-3 -mb-1 text-[1.125rem] font-bold" dir="ltr">Schritt 1: Snapshot der Proxmox-VM</h2>
<p class="font-claude-response-body break-words whitespace-normal" dir="ltr">Vor allem anderen: VM-Snapshot in Proxmox erstellen. Das ist der schnellste Rollback-Weg, unabhängig vom Applikations-Backup. Backup wichtig! Es kann immer was schief laufen!</p>
<div class="relative group/copy bg-bg-000/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100" tabindex="0" role="group" aria-label="bash-Code">
<div class="overflow-x-auto">
<pre class="code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5"><code class="language-bash">qm snapshot &lt;VMID&gt; pre-paperless-3-0-4</code></pre>
</div>
</div>
<h2 class="mt-3 -mb-1 text-[1.125rem] font-bold" dir="ltr">Schritt 2: Anwendungs-Backup</h2>
<p class="font-claude-response-body break-words whitespace-normal" dir="ltr">Zusätzlich zum Snapshot ein Paperless-eigenes Backup, da die DB-Migration nicht reversibel ist.</p>
<div class="relative group/copy bg-bg-000/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100" tabindex="0" role="group" aria-label="bash-Code">
<div class="overflow-x-auto">
<pre class="code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5"><code class="language-bash">sudo systemctl stop paperless-webserver paperless-consumer paperless-scheduler paperless-task-queue

# Datenbank (Beispiel PostgreSQL)
sudo -u postgres pg_dump paperless &gt; /opt/backup/paperless-db-$(date +%F).sql

# Daten- und Medienverzeichnisse
sudo tar -czf /opt/backup/paperless-media-$(date +%F).tar.gz /opt/paperless/media
sudo tar -czf /opt/backup/paperless-data-$(date +%F).tar.gz /opt/paperless/data

# Konfiguration
sudo cp /opt/paperless/paperless.conf /opt/backup/paperless.conf.bak</code></pre>
</div>
</div>
<p class="font-claude-response-body break-words whitespace-normal" dir="ltr">Bei SQLite genügt eine Kopie der <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">.sqlite3</code>-Datei aus dem Datenverzeichnis.</p>
<h2 class="mt-3 -mb-1 text-[1.125rem] font-bold" dir="ltr">Schritt 3: Version prüfen</h2>
<div class="relative group/copy bg-bg-000/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100" tabindex="0" role="group" aria-label="bash-Code">
<div class="overflow-x-auto">
<pre class="code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5"><code class="language-bash">cd /opt/paperless
sudo -Hu paperless git describe --tags</code></pre>
</div>
</div>
<p class="font-claude-response-body break-words whitespace-normal" dir="ltr">Muss <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">v2.20.15</code> zeigen. Falls nicht: erst dorthin updaten, dann weiter.</p>
<h2 class="mt-3 -mb-1 text-[1.125rem] font-bold" dir="ltr">Schritt 4: Secret Key sichern/setzen</h2>
<p class="font-claude-response-body break-words whitespace-normal" dir="ltr">Falls bisher kein <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">PAPERLESS_SECRET_KEY</code> gesetzt war, lief 2.x mit einem eingebauten Default-Key. Für 3.0 wird ein expliziter Key Pflicht.</p>
<div class="relative group/copy bg-bg-000/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100" tabindex="0" role="group" aria-label="bash-Code">
<div class="overflow-x-auto">
<pre class="code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5"><code class="language-bash">python3 -c "import secrets; print(secrets.token_urlsafe(64))"</code></pre>
</div>
</div>
<p class="font-claude-response-body break-words whitespace-normal" dir="ltr">Wert in <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">paperless.conf</code> eintragen:</p>
<div class="relative group/copy bg-bg-000/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100" tabindex="0" role="group" aria-label="ini-Code">
<div class="sticky opacity-0 group-hover/copy:opacity-100 group-focus-within/copy:opacity-100 top-2 py-2 h-12 w-0 float-right">
<div class="absolute right-0 h-8 px-2 items-center inline-flex z-10"></div>
</div>
<div class="text-text-500 font-small p-3.5 pb-0">ini</div>
<div class="overflow-x-auto">
<pre class="code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5"><code class="language-ini">PAPERLESS_SECRET_KEY=&lt;generierter-wert&gt;</code></pre>
</div>
</div>
<p class="font-claude-response-body break-words whitespace-normal" dir="ltr">Wichtig: Wird ein neuer, zufälliger Key gesetzt statt des alten Default-Keys, werden bestehende Sessions und API-Tokens ungültig. Nutzer müssen sich neu anmelden.</p>
<h2 class="mt-3 -mb-1 text-[1.125rem] font-bold" dir="ltr">Schritt 5: Datenbank-Engine explizit setzen</h2>
<p class="font-claude-response-body break-words whitespace-normal" dir="ltr">Nur bei PostgreSQL oder MariaDB nötig, nicht bei SQLite.</p>
<div class="relative group/copy bg-bg-000/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100" tabindex="0" role="group" aria-label="ini-Code">
<div class="sticky opacity-0 group-hover/copy:opacity-100 group-focus-within/copy:opacity-100 top-2 py-2 h-12 w-0 float-right">
<div class="absolute right-0 h-8 px-2 items-center inline-flex z-10"></div>
</div>
<div class="text-text-500 font-small p-3.5 pb-0">ini</div>
<div class="overflow-x-auto">
<pre class="code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5"><code class="language-ini">PAPERLESS_DBENGINE=postgresql
PAPERLESS_DBHOST=postgres</code></pre>
</div>
</div>
<p class="font-claude-response-body break-words whitespace-normal" dir="ltr">Zulässige Werte: <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">postgresql</code> oder <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">mariadb</code>. Bisherige einzelne SSL-/Timeout-/Pooling-Variablen durch <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">PAPERLESS_DB_OPTIONS</code> ersetzen, falls verwendet, z. B.:</p>
<div class="relative group/copy bg-bg-000/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100" tabindex="0" role="group" aria-label="ini-Code">
<div class="sticky opacity-0 group-hover/copy:opacity-100 group-focus-within/copy:opacity-100 top-2 py-2 h-12 w-0 float-right">
<div class="absolute right-0 h-8 px-2 items-center inline-flex z-10"></div>
</div>
<div class="text-text-500 font-small p-3.5 pb-0">ini</div>
<div class="overflow-x-auto">
<pre class="code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5"><code class="language-ini">PAPERLESS_DB_OPTIONS=sslmode=require,pool.max_size=20</code></pre>
</div>
</div>
<p class="font-claude-response-body break-words whitespace-normal" dir="ltr">Alte Variablen funktionieren übergangsweise weiter, loggen aber eine Deprecation-Warnung beim Start.</p>
<h2 class="mt-3 -mb-1 text-[1.125rem] font-bold" dir="ltr">Schritt 6: Systemabhängigkeiten aktualisieren</h2>
<div class="relative group/copy bg-bg-000/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100" tabindex="0" role="group" aria-label="bash-Code">
<div class="sticky opacity-0 group-hover/copy:opacity-100 group-focus-within/copy:opacity-100 top-2 py-2 h-12 w-0 float-right">
<div class="absolute right-0 h-8 px-2 items-center inline-flex z-10"></div>
</div>
<div class="text-text-500 font-small p-3.5 pb-0">bash</div>
<div class="overflow-x-auto">
<pre class="code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5"><code class="language-bash">sudo apt update
sudo apt install --only-upgrade python3 python3-pip python3-dev imagemagick fonts-liberation \
  gnupg libpq-dev default-libmysqlclient-dev pkg-config libmagic-dev mime-support \
  libzbar0 poppler-utils unpaper ghostscript icc-profiles-free qpdf liblept5 \
  libxml2 pngquant zlib1g tesseract-ocr</code></pre>
</div>
</div>
<p class="font-claude-response-body break-words whitespace-normal" dir="ltr">Ergänzend benötigte OCR-Sprachpakete (<code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">tesseract-ocr-deu</code> etc.) prüfen, falls sich Sprachvorgaben geändert haben.</p>
<h2 class="mt-3 -mb-1 text-[1.125rem] font-bold" dir="ltr">Schritt 7: Dienste stoppen</h2>
<p class="font-claude-response-body break-words whitespace-normal" dir="ltr">Falls Schritt 2 nicht schon erledigt:</p>
<div class="relative group/copy bg-bg-000/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100" tabindex="0" role="group" aria-label="bash-Code">
<div class="overflow-x-auto">
<pre class="code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5"><code class="language-bash">sudo systemctl stop paperless-webserver paperless-consumer paperless-scheduler paperless-task-queue</code></pre>
</div>
</div>
<h2 class="mt-3 -mb-1 text-[1.125rem] font-bold" dir="ltr">Schritt 8: Quellcode auf 3.0.4 bringen</h2>
<div class="relative group/copy bg-bg-000/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100" tabindex="0" role="group" aria-label="bash-Code">
<div class="sticky opacity-0 group-hover/copy:opacity-100 group-focus-within/copy:opacity-100 top-2 py-2 h-12 w-0 float-right">
<div class="absolute right-0 h-8 px-2 items-center inline-flex z-10"></div>
</div>
<div class="overflow-x-auto">
<pre class="code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5"><code class="language-bash">cd /opt/paperless
sudo -Hu paperless git fetch --all --tags
sudo -Hu paperless git checkout tags/v3.0.4</code></pre>
</div>
</div>
<h2 class="mt-3 -mb-1 text-[1.125rem] font-bold" dir="ltr">Schritt 9: Python-Abhängigkeiten aktualisieren</h2>
<p class="font-claude-response-body break-words whitespace-normal" dir="ltr">Venv aktivieren und Requirements neu installieren:</p>
<div class="relative group/copy bg-bg-000/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100" tabindex="0" role="group" aria-label="bash-Code">
<div class="overflow-x-auto">
<pre class="code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5"><code class="language-bash">sudo -Hu paperless bash -c '
  source /opt/paperless/venv/bin/activate
  pip install --upgrade pip
  pip install -r requirements.txt
'</code></pre>
</div>
</div>
<p class="font-claude-response-body break-words whitespace-normal" dir="ltr">Danach die installierten Pakete gegen die neue <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">requirements.txt</code> abgleichen und nicht mehr benötigte Pakete entfernen, um Konflikte zu vermeiden.</p>
<h2 class="mt-3 -mb-1 text-[1.125rem] font-bold" dir="ltr">Schritt 10: Datenbankmigration</h2>
<div class="relative group/copy bg-bg-000/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100" tabindex="0" role="group" aria-label="bash-Code">
<div class="overflow-x-auto">
<pre class="code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5"><code class="language-bash">cd /opt/paperless/src
sudo -Hu paperless ../venv/bin/python3 manage.py migrate</code></pre>
</div>
</div>
<h2 class="mt-3 -mb-1 text-[1.125rem] font-bold" dir="ltr">Schritt 11: Statische Dateien und Suchindex</h2>
<div class="relative group/copy bg-bg-000/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100" tabindex="0" role="group" aria-label="bash-Code">
<div class="overflow-x-auto">
<pre class="code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5"><code class="language-bash">sudo -Hu paperless ../venv/bin/python3 manage.py collectstatic --clear --no-input
sudo -Hu paperless ../venv/bin/python3 manage.py document_index reindex --if-needed</code></pre>
</div>
</div>
<p class="font-claude-response-body break-words whitespace-normal" dir="ltr">Der <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">--if-needed</code>-Flag prüft Schema-Version und Sprach-Sentinels und baut den Tantivy-Index nur neu, wenn nötig. Bei größeren Archiven (mehrere zehntausend Dokumente) dauert das spürbar; Fortschritt im Log beobachten.</p>
<h2 class="mt-3 -mb-1 text-[1.125rem] font-bold" dir="ltr">Schritt 12: Dienste starten</h2>
<div class="relative group/copy bg-bg-000/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100" tabindex="0" role="group" aria-label="bash-Code">
<div class="overflow-x-auto">
<pre class="code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5"><code class="language-bash">sudo systemctl start paperless-webserver paperless-consumer paperless-scheduler paperless-task-queue
sudo systemctl status paperless-webserver</code></pre>
</div>
</div>
<h2 class="mt-3 -mb-1 text-[1.125rem] font-bold" dir="ltr">Schritt 13: Verifikation</h2>
<ul class="[li_&amp;]:mb-0 [li_&amp;]:mt-1 [li_&amp;]:gap-1 [&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3 print:block print:space-y-1" dir="ltr">
<li class="font-claude-response-body whitespace-normal break-words pl-2">Version in der Weboberfläche prüfen (Systemstatus zeigt 3.0.4).</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Volltextsuche testen, auch nach Umlauten und mehreren Suchbegriffen (Tantivy verknüpft Begriffe standardmäßig mit OR statt AND wie zuvor Whoosh).</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Ein Testdokument einscannen/konsumieren lassen, OCR-Ergebnis prüfen.</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Download und Vorschau eines bestehenden Dokuments prüfen.</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Login/API-Token testen, falls der Secret Key neu gesetzt wurde.</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Log auf Fehler prüfen: <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">journalctl -u paperless-webserver -n 200</code>.</li>
</ul>
<h2 class="mt-3 -mb-1 text-[1.125rem] font-bold" dir="ltr">Rollback</h2>
<p class="font-claude-response-body break-words whitespace-normal" dir="ltr">Bei Problemen: Dienste stoppen, VM-Snapshot aus Schritt 1 zurückspielen. Alternativ Git-Checkout auf <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">v2.20.15</code>, DB-Dump aus Schritt 2 einspielen, altes <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">paperless.conf</code> zurückkopieren, Venv-Requirements der 2.20.15 neu installieren.</p>
<h2 class="mt-3 -mb-1 text-[1.125rem] font-bold" dir="ltr">Bekannte Stolperfallen</h2>
<ul class="[li_&amp;]:mb-0 [li_&amp;]:mt-1 [li_&amp;]:gap-1 [&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3 print:block print:space-y-1" dir="ltr">
<li class="font-claude-response-body whitespace-normal break-words pl-2">Fehlender <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">PAPERLESS_SECRET_KEY</code> bricht den Start ab.</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2"><code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">PAPERLESS_DBENGINE</code> vergessen bei PostgreSQL/MariaDB führt zu Verbindungsfehlern.</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Veraltete Syntax in globalen Dateinamensvorlagen kann nach dem Upgrade Fehler werfen.</li>
<li class="font-claude-response-body whitespace-normal break-words pl-2">Zusätzliche, nicht mehr benötigte Container/Prozesse aus älteren Setups können mit dem neuen Consumer kollidieren.</li>
</ul>
<p>Der Beitrag <a href="https://ivanivanov.de/blog/paperless-ngx-upgrade-von-2-20-15-auf-3-0-4-debian-vm-auf-proxmox/">Paperless-ngx Upgrade: von 2.20.15 auf 3.0.4 (Debian-VM auf Proxmox)</a> erschien zuerst auf <a href="https://ivanivanov.de">Ivan Ivanov</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5618</post-id>	</item>
		<item>
		<title>PatchMon v2.1.1 &#8211; v2.1.3: Fixes für SSO, Webhooks &#038; Compliance</title>
		<link>https://ivanivanov.de/blog/patchmon-updates-v2-1-1-v2-1-2-v2-1-3-bugfixes/</link>
		
		<dc:creator><![CDATA[Ivan]]></dc:creator>
		<pubDate>Tue, 18 Aug 2026 22:19:27 +0000</pubDate>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Entra ID xms_edov PatchMon]]></category>
		<category><![CDATA[Generic Webhook Slack Text Key]]></category>
		<category><![CDATA[Mattermost Webhook PatchMon]]></category>
		<category><![CDATA[Open Source Patching Bugfix]]></category>
		<category><![CDATA[PatchMon ADFS Single Sign On]]></category>
		<category><![CDATA[PatchMon Proxmox LXC Compliance]]></category>
		<category><![CDATA[PatchMon Release Notes Github]]></category>
		<category><![CDATA[PatchMon Standby Laptop Stale]]></category>
		<category><![CDATA[PatchMon Supply Chain SBOM]]></category>
		<category><![CDATA[PatchMon v2.1.3 Update]]></category>
		<guid isPermaLink="false">https://ivanivanov.de/?p=5617</guid>

					<description><![CDATA[<p>PatchMon v2.1.1 bis v2.1.3: Maintenance-Releases bringen Bugfixes für SSO, Webhooks und Compliance Direkt im Anschluss an das große v2.1.0-Release hat das Entwicklerteam von PatchMon mit den Versionen v2.1.1, v2.1.2 und v2.1.3 drei schnelle Bugfix-Updates veröffentlicht. Während das Hauptrelease v2.1.0 massive Architektur- und Performance-Änderungen mit sich brachte, kümmern sich die Point-Releases um die Beseitigung von Unschärfen [&#8230;]</p>
<p>Der Beitrag <a href="https://ivanivanov.de/blog/patchmon-updates-v2-1-1-v2-1-2-v2-1-3-bugfixes/">PatchMon v2.1.1 &#8211; v2.1.3: Fixes für SSO, Webhooks &#038; Compliance</a> erschien zuerst auf <a href="https://ivanivanov.de">Ivan Ivanov</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p dir="auto"><strong>PatchMon v2.1.1 bis v2.1.3: Maintenance-Releases bringen Bugfixes für SSO, Webhooks und Compliance</strong></p>
<p dir="auto">Direkt im Anschluss an das große v2.1.0-Release hat das Entwicklerteam von PatchMon mit den Versionen v2.1.1, v2.1.2 und v2.1.3 drei schnelle Bugfix-Updates veröffentlicht. Während das Hauptrelease v2.1.0 massive Architektur- und Performance-Änderungen mit sich brachte, kümmern sich die Point-Releases um die Beseitigung von Unschärfen bei Single Sign-On (SSO), Benachrichtigungen und der Compliance-Infrastruktur.</p>
<p dir="auto">Die beste Nachricht für Betreiber: Bei allen drei Versionen handelt es sich um reine In-Place-Updates. Es sind keine Änderungen an der docker-compose.yml und keine manuellen Updates der Agents erforderlich.</p>
<h3 dir="auto">Die zentralen Verbesserungen in den Updates</h3>
<p dir="auto"><strong>1. SSO-Stabilisierung für ADFS und Microsoft Entra ID</strong></p>
<p dir="auto">Beim OIDC-basierten Single Sign-On kam es bei spezifischen Anbietern zu Login-Abbrüchen:</p>
<ul dir="auto">
<li><strong>Microsoft ADFS:</strong> ADFS übermittelt Einzelwerte in Claims (wie E-Mails) häufig als JSON-Array. PatchMon akzeptierte bisher nur Strings und brach den Login ab. Dies wurde korrigiert.</li>
<li><strong>Microsoft Entra ID (Azure AD):</strong> Da Entra ID standardmäßig keinen email_verified-Claim mitsendet, schlug die Auto-Erstellung von Accounts fehl. PatchMon wertet nun das Microsoft-Signal xms_edov (Email Domain Owner Verified) aus, was das Setup ohne Sicherheitskompromisse ermöglicht.</li>
</ul>
<p dir="auto"><strong>2. Webhooks für Mattermost &amp; Rocket.Chat</strong></p>
<p dir="auto">Webhooks an Plattformen wie Mattermost oder Rocket.Chat quittierte der Server bisher mit einem HTTP 400 Error. PatchMon erkennt diese Endpunkte ab v2.1.3 automatisch anhand des /hooks/-Pfads in der URL und passt das Payload-Format an. Generische Webhooks wurden zudem um ein Top-Level-text-Feld ergänzt, um out-of-the-box mit Slack-kompatiblen Ingest-Servern zu harmonieren.</p>
<p dir="auto"><strong>3. Compliance-Fixes für Proxmox LXC</strong></p>
<p dir="auto">Bei Instanzen außerhalb des offiziellen Docker-Containers (insbesondere bei der Nutzung des populären Proxmox LXC-Installationsskripts) meldete die Plattform fälschlicherweise leere Verzeichnisse für Compliance-Regelwerke und antwortete mit einem HTTP 503. Ab v2.1.3 werden die Versionsdaten direkt aus den Datastreams gelesen, sodass die Auswertung auf LXC-Containern wieder reibungslos funktioniert.</p>
<p dir="auto"><strong>4. Beseitigung des „Stale“-Status bei Laptops</strong></p>
<p dir="auto">Clients, die in den Energiesparmodus versetzt wurden (z. B. Notebooks im Feierabend), wurden vom Server nach dem Aufwachen tagelang als inaktiv/veraltet („stale“) geführt. Der Server prüft nun beim Reconnect des Agents, ob das Update-Intervall überschritten wurde, und fordert im Bedarfsfall sofort einen frischen Statusbericht an.</p>
<p dir="auto"><strong>5. Wiederherstellung der Supply-Chain-Attestierung</strong></p>
<p dir="auto">Aufgrund eines Fehlers im Build-Prozess wurden die Releases v2.1.0, v2.1.1 und v2.1.2 ohne SHA256-Prüfsummen, SBOMs (Software Bill of Materials) und Provenance-Attestierungen ausgeliefert. Mit Version v2.1.3 sind sämtliche Signatur- und Lieferketten-Sicherheitsdateien wieder regulär in den GitHub-Downloads enthalten.</p>
<h3 dir="auto">Fazit &amp; Update-Empfehlung</h3>
<p dir="auto">Die Point-Releases v2.1.1 bis v2.1.3 unterstreichen das hohe Tempo, mit dem das PatchMon-Projekt Kinderkrankheiten nach großen Versionssprüngen behebt. Allen Betreibern von v2.1.0 wird ein zügiges Update auf v2.1.3 empfohlen, um von den SSO- und Alerting-Fixes zu profitieren.</p>
<p dir="auto"><strong>Offizielle Release-Übersicht:</strong> <a class="ng-star-inserted" style="font-size: 16px;" href="https://github.com/PatchMon/PatchMon/releases" target="_blank" rel="noopener" data-hveid="241">GitHub PatchMon Releases</a></p>
<p>Der Beitrag <a href="https://ivanivanov.de/blog/patchmon-updates-v2-1-1-v2-1-2-v2-1-3-bugfixes/">PatchMon v2.1.1 &#8211; v2.1.3: Fixes für SSO, Webhooks &#038; Compliance</a> erschien zuerst auf <a href="https://ivanivanov.de">Ivan Ivanov</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5617</post-id>	</item>
		<item>
		<title>PatchMon v2.1.0: Neues Release bringt massives Performance-Tuning</title>
		<link>https://ivanivanov.de/blog/patchmon-version-2-1-0-release-update/</link>
		
		<dc:creator><![CDATA[Ivan]]></dc:creator>
		<pubDate>Thu, 13 Aug 2026 18:56:43 +0000</pubDate>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[Agent Traffic Reduktion 1KB]]></category>
		<category><![CDATA[Linux Server Patching Tool]]></category>
		<category><![CDATA[Open Source Patch Management]]></category>
		<category><![CDATA[Patch Run Stall Timeout]]></category>
		<category><![CDATA[PatchMon Agent Activity Timeline]]></category>
		<category><![CDATA[PatchMon Docker Compose Upgrade]]></category>
		<category><![CDATA[PatchMon v2.1.0 Release]]></category>
		<category><![CDATA[Self Hosted PatchMon Update]]></category>
		<category><![CDATA[Trusted Proxy Ranges PatchMon]]></category>
		<category><![CDATA[Windows Registry Null Byte PatchMon]]></category>
		<guid isPermaLink="false">https://ivanivanov.de/?p=5613</guid>

					<description><![CDATA[<p>PatchMon v2.1.0 veröffentlicht: Performance-Explosion, neue Agent-Timeline und gehärtete Security Das Entwicklerteam hinter dem Open-Source-Patch-Management-Tool PatchMon hat die Version v2.1.0 freigegeben. Das Release legt den Fokus primär auf Skalierbarkeit, Zuverlässigkeit bei großen Serverflotten (1.000+ Hosts) und eine grundlegende Überarbeitung der Agent-Kommunikation sowie der Sicherheitsarchitektur. &#x1f6e0;&#xfe0f; Achtung beim Upgrade: Manuelle Anpassung der docker-compose.yml Da PatchMon die eigene [&#8230;]</p>
<p>Der Beitrag <a href="https://ivanivanov.de/blog/patchmon-version-2-1-0-release-update/">PatchMon v2.1.0: Neues Release bringt massives Performance-Tuning</a> erschien zuerst auf <a href="https://ivanivanov.de">Ivan Ivanov</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1 data-path-to-node="12">PatchMon v2.1.0 veröffentlicht: Performance-Explosion, neue Agent-Timeline und gehärtete Security</h1>
<p data-path-to-node="13">Das Entwicklerteam hinter dem Open-Source-Patch-Management-Tool <b data-path-to-node="13" data-index-in-node="64">PatchMon</b> hat die Version <b data-path-to-node="13" data-index-in-node="89">v2.1.0</b> freigegeben. Das Release legt den Fokus primär auf Skalierbarkeit, Zuverlässigkeit bei großen Serverflotten (1.000+ Hosts) und eine grundlegende Überarbeitung der Agent-Kommunikation sowie der Sicherheitsarchitektur.</p>
<h2 data-path-to-node="15"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f6e0.png" alt="🛠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Achtung beim Upgrade: Manuelle Anpassung der docker-compose.yml</h2>
<p data-path-to-node="16">Da PatchMon die eigene <code data-path-to-node="16" data-index-in-node="23">docker-compose.yml</code> nicht automatisch überschreibt, müssen Betreiber vor dem Ausführen von <code data-path-to-node="16" data-index-in-node="113">docker compose pull &amp;&amp; docker compose up -d</code> <b data-path-to-node="16" data-index-in-node="157">drei Zeilen manuell anpassen</b>:</p>
<ol start="1" data-path-to-node="17">
<li>
<p data-path-to-node="17,0,0"><b data-path-to-node="17,0,0" data-index-in-node="0">Server-Port-Mapping:</b> <code data-path-to-node="17,0,0" data-index-in-node="21">- "${PORT:-3000}:${PORT:-3000}"</code> (bisher: <code data-path-to-node="17,0,0" data-index-in-node="62">"3000:3000"</code>)</p>
</li>
<li>
<p data-path-to-node="17,1,0"><b data-path-to-node="17,1,0" data-index-in-node="0">Server-Hostname:</b> <code data-path-to-node="17,1,0" data-index-in-node="17">hostname: patchmon-server</code> (neu hinzufügen)</p>
</li>
<li>
<p data-path-to-node="17,2,0"><b data-path-to-node="17,2,0" data-index-in-node="0">Guacd-Image-Tag:</b> <code data-path-to-node="17,2,0" data-index-in-node="17">image: guacamole/guacd:1.6.0</code> (bisher: <code data-path-to-node="17,2,0" data-index-in-node="55">:latest</code>)</p>
</li>
</ol>
<blockquote data-path-to-node="18">
<p data-path-to-node="18,0"><b data-path-to-node="18,0" data-index-in-node="0">Hinweis zur Datenbank-Migration:</b> Beim ersten Start nach dem Update führen große Host-Flotten Index-Rebuilds durch. Auf langsamen Datenträgern kann der Bootvorgang einige Minuten dauern, in denen PatchMon keine Anfragen entgegennimmt.</p>
</blockquote>
<h2 data-path-to-node="20">Die wichtigsten Neuerungen in PatchMon v2.1.0</h2>
<h3 data-path-to-node="21">1. Extrem reduzierte Network-Payloads (2 MB ➔ 1 KB)</h3>
<p data-path-to-node="22">Bisher übermittelten Agents bei jedem Check-in den kompletten Inventarbestand. Ab v2.1.0 senden aktualisierte Agents nur noch deltabasierte Änderungen. Der Datenverkehr pro Routine-Check-in sinkt dadurch von <b data-path-to-node="22" data-index-in-node="208">2 MB auf ca. 1 KB</b>. Zur Nachverfolgung ersetzt die neue <b data-path-to-node="22" data-index-in-node="263">Agent Activity Timeline</b> die alten Tabs für Paketberichte und Warteschlangen.</p>
<h3 data-path-to-node="23">2. Präzisere Host-Zustände und Live-Uptime</h3>
<p data-path-to-node="24">Das Dashboard trennt den Systemstatus nun in vier eindeutige Indikatoren:</p>
<ul data-path-to-node="25">
<li>
<p data-path-to-node="25,0,0"><b data-path-to-node="25,0,0" data-index-in-node="0">Connection:</b> Verbindung zum Server (reagiert nun innerhalb von Sekunden via WSS).</p>
</li>
<li>
<p data-path-to-node="25,1,0"><b data-path-to-node="25,1,0" data-index-in-node="0">Reporting:</b> Frische der übermittelten Daten.</p>
</li>
<li>
<p data-path-to-node="25,2,0"><b data-path-to-node="25,2,0" data-index-in-node="0">Reboot Pending:</b> Ausstehender Systemneustart.</p>
</li>
<li>
<p data-path-to-node="25,3,0"><b data-path-to-node="25,3,0" data-index-in-node="0">Updates:</b> Ausstehende Sicherheitspatches oder normale Updates.</p>
</li>
</ul>
<p data-path-to-node="26">Zudem wurde der Zustand <i data-path-to-node="26" data-index-in-node="24">Awaiting Data</i> eingeführt: Hosts ohne Paketdaten verfälschen nicht mehr die Kategorie „Up to date“.</p>
<h3 data-path-to-node="27">3. Zuverlässige Patch-Ausführung (Keine Hänger mehr)</h3>
<p data-path-to-node="28">Stalled Patch-Runs gehören der Vergangenheit an. Über den neuen Umgebungsparameter <code data-path-to-node="28" data-index-in-node="83">PATCH_RUN_STALL_TIMEOUT_MIN</code> (Standard: 30 Minuten) werden blockierte Updates automatisch beendet. Der Button <b data-path-to-node="28" data-index-in-node="192">Stop Run</b> bricht den Prozess nun auch dann garantiert ab, wenn der Agent offline ist oder blockierte Child-Prozesse im Hintergrund hängen.</p>
<h3 data-path-to-node="29">4. Umfassende Fixes für Windows &amp; Linux-Paketmanager</h3>
<ul data-path-to-node="30">
<li>
<p data-path-to-node="30,0,0"><b data-path-to-node="30,0,0" data-index-in-node="0">Windows Registry-Fix:</b> Ein einziges Null-Byte-Zeichen in der Registrierung (oft erzeugt durch Drittanbieter-Agents wie MeshCentral) führte bisher dazu, dass der gesamte Bericht verworfen wurde. Dies wurde gefixt.</p>
</li>
<li>
<p data-path-to-node="30,1,0"><b data-path-to-node="30,1,0" data-index-in-node="0">Linux/BSD-Anpassungen:</b></p>
<ul data-path-to-node="30,1,1">
<li>
<p data-path-to-node="30,1,1,0,0"><b data-path-to-node="30,1,1,0,0" data-index-in-node="0">RHEL/Fedora/Rocky:</b> Korrekte Handling von DNF-Bannern, Erfassung von RLSA-Sicherheitsmeldungen.</p>
</li>
<li>
<p data-path-to-node="30,1,1,1,0"><b data-path-to-node="30,1,1,1,0" data-index-in-node="0">Debian/Ubuntu:</b> Volle Unterstützung für <code data-path-to-node="30,1,1,1,0" data-index-in-node="39">deb822</code>-Sources und korrekte Handhabung von Kernel-Meta-Paketen.</p>
</li>
<li>
<p data-path-to-node="30,1,1,2,0"><b data-path-to-node="30,1,1,2,0" data-index-in-node="0">Arch/Manjaro:</b> Funktionsfähig ohne installiertes <code data-path-to-node="30,1,1,2,0" data-index-in-node="48">pacman-contrib</code>.</p>
</li>
<li>
<p data-path-to-node="30,1,1,3,0"><b data-path-to-node="30,1,1,3,0" data-index-in-node="0">LXC-Container:</b> Uptime zeigt nun die echte Container-Laufzeit anstelle der Laufzeit des Proxmox-Hosts.</p>
</li>
</ul>
</li>
</ul>
<h3 data-path-to-node="31">5. Sicherheits-Härtung (Security &amp; SSO)</h3>
<ul data-path-to-node="32">
<li>
<p data-path-to-node="32,0,0"><b data-path-to-node="32,0,0" data-index-in-node="0">IP-Spoofing-Schutz:</b> Über <code data-path-to-node="32,0,0" data-index-in-node="25">TRUSTED_PROXY_RANGES</code> lässt sich festlegen, welchen Upstream-Reverse-Proxies (z. B. Cloudflare hinter Nginx Proxy Manager) vertraut wird, um echte Client-IPs für Rate-Limiting und Lockouts auszuwerten.</p>
</li>
<li>
<p data-path-to-node="32,1,0"><b data-path-to-node="32,1,0" data-index-in-node="0">Session-Binding &amp; Revocation:</b> Ausgestellte Tokens sind strikt an Sitzungen gebunden. Das Abmelden, Ändern von Passwörtern oder Deaktivieren von Konten greift ab sofort unverzüglich.</p>
</li>
<li>
<p data-path-to-node="32,2,0"><b data-path-to-node="32,2,0" data-index-in-node="0">E-Mail / SMTP:</b> Explizite Auswahlmöglichkeiten für TLS (STARTTLS, SSL/TLS, None, Auto) verhindern das ungesicherte Versenden von Benachrichtigungen über fehlerhafte Relays.</p>
</li>
</ul>
<h2 data-path-to-node="34">Neue Umgebungsvariablen (<code data-path-to-node="34" data-index-in-node="25">.env</code>)</h2>
<table data-path-to-node="35">
<thead>
<tr>
<td><strong>Variable</strong></td>
<td><strong>Standardwert</strong></td>
<td><strong>Zweck</strong></td>
</tr>
</thead>
<tbody>
<tr>
<td><span data-path-to-node="35,1,0,0"><code data-path-to-node="35,1,0,0" data-index-in-node="0">TRUSTED_PROXY_RANGES</code></span></td>
<td><span data-path-to-node="35,1,1,0"><i data-path-to-node="35,1,1,0" data-index-in-node="0">(leer)</i></span></td>
<td><span data-path-to-node="35,1,2,0">CIDRs für verkettete Reverse Proxies zur echten IP-Ermittlung</span></td>
</tr>
<tr>
<td><span data-path-to-node="35,2,0,0"><code data-path-to-node="35,2,0,0" data-index-in-node="0">PATCH_RUN_STALL_TIMEOUT_MIN</code></span></td>
<td><span data-path-to-node="35,2,1,0"><code data-path-to-node="35,2,1,0" data-index-in-node="0">30</code></span></td>
<td><span data-path-to-node="35,2,2,0">Minuten bis ein hängender Patch-Run als abgebrochen markiert wird</span></td>
</tr>
<tr>
<td><span data-path-to-node="35,3,0,0"><code data-path-to-node="35,3,0,0" data-index-in-node="0">AGENT_REPORTS_RETENTION_DAYS</code></span></td>
<td><span data-path-to-node="35,3,1,0"><code data-path-to-node="35,3,1,0" data-index-in-node="0">30</code></span></td>
<td><span data-path-to-node="35,3,2,0">Aufbewahrungsdauer der Agent-Activity-Historie (7–365 Tage)</span></td>
</tr>
<tr>
<td><span data-path-to-node="35,4,0,0"><code data-path-to-node="35,4,0,0" data-index-in-node="0">SESSION_INACTIVITY_TIMEOUT_MINUTES</code></span></td>
<td><span data-path-to-node="35,4,1,0"><i data-path-to-node="35,4,1,0" data-index-in-node="0">(inaktiv)</i></span></td>
<td><span data-path-to-node="35,4,2,0">Automatischer Logout bei Inaktivität (0 = deaktiviert)</span></td>
</tr>
</tbody>
</table>
<h2 data-path-to-node="37">Fazit</h2>
<p data-path-to-node="38">Mit dem Update auf v2.1.0 beweist das PatchMon-Team rund um Lead-Entwickler Iby, dass die Software reif für den anspruchsvollen Enterprise-Einsatz ist. Wer eine performante On-Premise-Alternative zu kommerziellen Patch-Management-Lösungen sucht, sollte das Update zeitnah einspielen.</p>
<p data-path-to-node="39"><b data-path-to-node="39" data-index-in-node="0">Offizielle Release-Notes &amp; Discussion:</b> <a class="ng-star-inserted" href="https://github.com/PatchMon/PatchMon/releases/tag/v2.1.0" target="_blank" rel="noopener" data-hveid="0" data-ved="0CAAQ_4QMahgKEwi61KXMop6WAxUAAAAAHQAAAAAQ6QE">GitHub PatchMon Tag v2.1.0</a></p>
<p>Der Beitrag <a href="https://ivanivanov.de/blog/patchmon-version-2-1-0-release-update/">PatchMon v2.1.0: Neues Release bringt massives Performance-Tuning</a> erschien zuerst auf <a href="https://ivanivanov.de">Ivan Ivanov</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5613</post-id>	</item>
		<item>
		<title>CVE-2026-8933: Root-Lücke in Ubuntu durch snap-confine</title>
		<link>https://ivanivanov.de/blog/cve-2026-8933-ubuntu-snap-confine-privilege-escalation/</link>
		
		<dc:creator><![CDATA[Ivan]]></dc:creator>
		<pubDate>Fri, 24 Jul 2026 08:26:48 +0000</pubDate>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[CVE-2026-8933 snap-confine Root]]></category>
		<category><![CDATA[Linux Kernel Mount Namespace]]></category>
		<category><![CDATA[Qualys Threat Research Linux]]></category>
		<category><![CDATA[Server IT Security Update]]></category>
		<category><![CDATA[Snap Sandbox Schwachstelle]]></category>
		<category><![CDATA[snapd Sicherheitslücke Patch]]></category>
		<category><![CDATA[SUID Rechteausweitung Ubuntu]]></category>
		<category><![CDATA[Ubuntu Local Privilege Escalation]]></category>
		<category><![CDATA[Ubuntu Root Exploit 2026]]></category>
		<category><![CDATA[Vulnerability Management Linux]]></category>
		<guid isPermaLink="false">https://ivanivanov.de/?p=5605</guid>

					<description><![CDATA[<p>Local Privilege Escalation in Ubuntu: CVE-2026-8933 bedroht snap-confine Das Sicherheitsteam von Qualys hat eine weitere gravierende Schwachstelle in einer zentralen Komponente gängiger Linux-Distributionen analysiert. Unter der Kennung CVE-2026-8933 führt ein Logikfehler in snap-confine dem Unterbau des Paketmanagers Snap zu einer lokalen Rechteausweitung (Local Privilege Escalation, LPE). Da Snap auf modernen Ubuntu-Systemen standardmäßig installiert ist, ist das [&#8230;]</p>
<p>Der Beitrag <a href="https://ivanivanov.de/blog/cve-2026-8933-ubuntu-snap-confine-privilege-escalation/">CVE-2026-8933: Root-Lücke in Ubuntu durch snap-confine</a> erschien zuerst auf <a href="https://ivanivanov.de">Ivan Ivanov</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1 data-path-to-node="12">Local Privilege Escalation in Ubuntu: CVE-2026-8933 bedroht <code data-path-to-node="12" data-index-in-node="60">snap-confine</code></h1>
<p data-path-to-node="13">Das Sicherheitsteam von Qualys hat eine weitere gravierende Schwachstelle in einer zentralen Komponente gängiger Linux-Distributionen analysiert. Unter der Kennung <b data-path-to-node="13" data-index-in-node="164">CVE-2026-8933</b> führt ein Logikfehler in <code data-path-to-node="13" data-index-in-node="203">snap-confine</code> dem Unterbau des Paketmanagers Snap zu einer lokalen Rechteausweitung (Local Privilege Escalation, LPE). Da Snap auf modernen Ubuntu-Systemen standardmäßig installiert ist, ist das Schadpotenzial für Multi-User-Systeme und Cloud-Instanzen hoch.</p>
<h2 data-path-to-node="14">Wie die Schwachstelle in <code data-path-to-node="14" data-index-in-node="25">snap-confine</code> funktioniert</h2>
<p data-path-to-node="15"><code data-path-to-node="15" data-index-in-node="0">snap-confine</code> ist eine hochprivilegierte SUID-Binärdatei (<code data-path-to-node="15" data-index-in-node="57">root</code>), die beim Start eines Snap-Pakets aufgerufen wird. Seine Aufgabe ist es, eine isolierte Sicherheits-Sandbox (unter Nutzung von AppArmor, Cgroups und Mount-Namespaces) aufzubauen.</p>
<p data-path-to-node="16">Die Forschenden von Qualys entdeckten eine Schwachstelle bei der Abfolge, in der <code data-path-to-node="16" data-index-in-node="81">snap-confine</code> Dateisystem-Pfade prüft und Mounts innerhalb des temporären Namespaces durchführt. Durch gezieltes Timing und das Platzieren präparierter symbolischer Links (Symlinks) im Benutzerverzeichnis kann ein lokaler Angreifer die Sicherheitsprüfungen umgehen. Dies ermöglicht das Einschleusen und Ausführen von eigenem Code im Kontext des Root-Benutzers.</p>
<h3 data-path-to-node="17">Wer ist von CVE-2026-8933 betroffen?</h3>
<ul data-path-to-node="18">
<li>
<p data-path-to-node="18,0,0"><b data-path-to-node="18,0,0" data-index-in-node="0">Ubuntu Desktop &amp; Server:</b> Alle unterstützten Releases, bei denen das Paket <code data-path-to-node="18,0,0" data-index-in-node="74">snapd</code> nicht auf dem neuesten Stand ist.</p>
</li>
<li>
<p data-path-to-node="18,1,0"><b data-path-to-node="18,1,0" data-index-in-node="0">Derivate:</b> Linux-Distributionen, die <code data-path-to-node="18,1,0" data-index-in-node="36">snapd</code> aus den offiziellen Repositories verwenden und SUID-Rechte für <code data-path-to-node="18,1,0" data-index-in-node="105">snap-confine</code> vergeben.</p>
</li>
</ul>
<h2 data-path-to-node="19">Empfohlene Maßnahmen für Administratoren</h2>
<h3 data-path-to-node="20">1. Schnelles Update über den Paketmanager</h3>
<p data-path-to-node="21">Canonical hat das Problem analysiert und korrigierte Pakete für alle unterstützen Ubuntu-Versionen veröffentlicht. Das Update kann direkt über <code data-path-to-node="21" data-index-in-node="143">apt</code> eingespielt werden:</p>
<div class="code-block ng-tns-c1924320462-47 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" data-hveid="0" data-ved="0CAAQhtANahgKEwjD1N-oy-mVAxUAAAAAHQAAAAAQuwI">
<div class="formatted-code-block-internal-container ng-tns-c1924320462-47">
<div class="animated-opacity ng-tns-c1924320462-47">
<div class="code-block-decoration header-formatted gds-emphasized-body-m ng-tns-c1924320462-47 ng-star-inserted"><span class="ng-tns-c1924320462-47">Bash</span></p>
<div class="buttons ng-tns-c1924320462-47 ng-star-inserted"></div>
</div>
<pre class="ng-tns-c1924320462-47"><code class="code-container formatted ng-tns-c1924320462-47" role="text" data-test-id="code-content">sudo apt update
sudo apt install --only-upgrade snapd
</code></pre>
</div>
</div>
</div>
<p data-path-to-node="23">Anschließend lässt sich die installierte Version überprüfen, um sicherzustellen, dass die geflickte Variante von <code data-path-to-node="23" data-index-in-node="113">snapd</code> aktiv ist.</p>
<h3 data-path-to-node="24">2. Überwachung lokaler Benutzeraktivitäten</h3>
<p data-path-to-node="25">Da es sich um eine LPE-Lücke handelt, ist ein bereits vorhandener lokaler Systemzugriff Voraussetzung. Administratoren sollten Logfiles (wie <code data-path-to-node="25" data-index-in-node="141">/var/log/auth.log</code> oder Auditd-Protokolle) auf ungewöhnliche Aufrufe von <code data-path-to-node="25" data-index-in-node="213">snap-confine</code> oder verdächtige Manipulationen im Verzeichnis <code data-path-to-node="25" data-index-in-node="273">/tmp</code> prüfen.</p>
<h2 data-path-to-node="26">Bedeutung für die Praxis</h2>
<p data-path-to-node="27">Schwachstellen in SUID-Helferprogrammen wie <code data-path-to-node="27" data-index-in-node="44">snap-confine</code> zeigen erneut, wie komplex das Zusammenspiel von Sandbox-Infrastrukturen und Linux-Berechtigungen ist. Für IT-Abteilungen unterstreicht der Vorfall die Notwendigkeit von automatisierten Patch-Management-Prozessen auf allen Ebenen der Server-Infrastruktur.</p>
<p data-path-to-node="28"><b data-path-to-node="28" data-index-in-node="0">Quelle:</b> <a class="ng-star-inserted" href="https://blog.qualys.com/vulnerabilities-threat-research/2026/07/21/cve-2026-8933-snap-confine-local-privilege-escalation" target="_blank" rel="noopener" data-hveid="0" data-ved="0CAAQ_4QMahgKEwjD1N-oy-mVAxUAAAAAHQAAAAAQvAI">Qualys Threat Research Blog – CVE-2026-8933</a></p>
<p>Der Beitrag <a href="https://ivanivanov.de/blog/cve-2026-8933-ubuntu-snap-confine-privilege-escalation/">CVE-2026-8933: Root-Lücke in Ubuntu durch snap-confine</a> erschien zuerst auf <a href="https://ivanivanov.de">Ivan Ivanov</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5605</post-id>	</item>
		<item>
		<title>Cyberangriff auf Nextcloud: Technische Details &#038; PR-Kritik</title>
		<link>https://ivanivanov.de/blog/cyberangriff-auf-nextcloud-technische-details-pr-kritik/</link>
		
		<dc:creator><![CDATA[Ivan]]></dc:creator>
		<pubDate>Fri, 24 Jul 2026 07:04:30 +0000</pubDate>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Cloud Infrastruktur Sicherheit]]></category>
		<category><![CDATA[Cyber Security Deutschland]]></category>
		<category><![CDATA[Heise Online Security News]]></category>
		<category><![CDATA[Incident Response Transparenz]]></category>
		<category><![CDATA[IT Krisenkommunikation]]></category>
		<category><![CDATA[Nextcloud Cyberangriff Kommunikation]]></category>
		<category><![CDATA[Nextcloud Entwickler Repository Hack]]></category>
		<category><![CDATA[Nextcloud Quellcode Integrität]]></category>
		<category><![CDATA[Nextcloud Sicherheitsvorfall]]></category>
		<category><![CDATA[Open Source Supply Chain Attacke]]></category>
		<guid isPermaLink="false">https://ivanivanov.de/?p=5601</guid>

					<description><![CDATA[<p>Cyberangriff auf Nextcloud: Wie ungeschickte Kommunikation das Vertrauen gefährdet Der Open-Source-Cloud-Spezialist Nextcloud steht nach einem Sicherheitsvorfall in der Kritik. Obwohl der eigentliche Cyberangriff auf die Infrastruktur des Unternehmens glimpflich ausging und nach aktuellem Kenntnisstand weder Kundendaten noch der Kern-Quellcode der Software manipuliert wurden, sorgt das Krisenmanagement des Anbieters für erhebliche Unruhe in der IT-Community. Zugriff [&#8230;]</p>
<p>Der Beitrag <a href="https://ivanivanov.de/blog/cyberangriff-auf-nextcloud-technische-details-pr-kritik/">Cyberangriff auf Nextcloud: Technische Details &#038; PR-Kritik</a> erschien zuerst auf <a href="https://ivanivanov.de">Ivan Ivanov</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1 data-path-to-node="12">Cyberangriff auf Nextcloud: Wie ungeschickte Kommunikation das Vertrauen gefährdet</h1>
<p data-path-to-node="13">Der Open-Source-Cloud-Spezialist <b data-path-to-node="13" data-index-in-node="33">Nextcloud</b> steht nach einem Sicherheitsvorfall in der Kritik. Obwohl der eigentliche Cyberangriff auf die Infrastruktur des Unternehmens glimpflich ausging und nach aktuellem Kenntnisstand weder Kundendaten noch der Kern-Quellcode der Software manipuliert wurden, sorgt das Krisenmanagement des Anbieters für erhebliche Unruhe in der IT-Community.</p>
<h2 data-path-to-node="14">Zugriff auf private Entwickler-Infrastruktur</h2>
<p data-path-to-node="15">Der Angreifer nutzte kompromittierte Zugangsdaten, um Zugriff auf ein privates, internes Entwicklungs-Repository von Nextcloud zu erlangen. Das Unternehmen leitete nach dem Bemerken des unbefugten Zugriffs umgehend technische Gegenmaßnahmen ein: Die betroffenen Zugänge wurden gesperrt, Passwörter zurückgesetzt und die Server-Infrastruktur eingehend forensisch untersucht.</p>
<p data-path-to-node="16">Die wichtigste technische Entwarnung für Administratoren und Betreiber von Nextcloud-Instanzen:</p>
<ul data-path-to-node="17">
<li>
<p data-path-to-node="17,0,0">Der <b data-path-to-node="17,0,0" data-index-in-node="4">öffentliche Quellcode</b> von Nextcloud blieb unberührt.</p>
</li>
<li>
<p data-path-to-node="17,1,0">Es wurden <b data-path-to-node="17,1,0" data-index-in-node="10">keine Backdoors</b> oder schädliche Modifikationen in bestehende Releases eingeschleust.</p>
</li>
<li>
<p data-path-to-node="17,2,0">Ein Zugriff auf Daten von Endnutzern oder Cloud-Kunden fand nicht statt.</p>
</li>
</ul>
<h2 data-path-to-node="18">Das PR-Desaster nach dem Angriff</h2>
<p data-path-to-node="19">Während das technische Sicherheitsteam adäquat reagierte, leistete sich die PR-Abteilung von Nextcloud schwere Schnitzer. Auf erste Anfragen von IT-Sicherheitsforschern und Fachmedien wie <i data-path-to-node="19" data-index-in-node="188">heise online</i> reagierte das Unternehmen ausweichend und spielte das Ausmaß des Zugriffs herunter. In ersten Stellungnahmen war die Rede von bloßen „Auffälligkeiten“ oder internen Tests.</p>
<p data-path-to-node="20">Erst als unwiderlegbare Belege über den erfolgten Datenabfluss aus dem privaten Repository vorlagen, korrigierte Nextcloud seine Berichterstattung schrittweise und räumte den Vorfall transparent ein.</p>
<h2 data-path-to-node="21">Fazit: Transparenz als Pflicht in der Open-Source-Welt</h2>
<p data-path-to-node="22">Der Vorfall unterstreicht eine zentrale Lektion des modernen IT-Sicherheitsmanagements: Ein funktionierender <i data-path-to-node="22" data-index-in-node="109">Incident-Response-Plan</i> muss zwingend eine ehrliche und direkte Krisenkommunikation beinhalten. Insbesondere im Open-Source-Sektor, wo das Vertrauen der Anwender und Administratoren das Fundament des gesamten Ökosystems bildet, führt Taktieren bei Sicherheitsvorfällen zu unnötigem Reputationsschaden.</p>
<p data-path-to-node="23"><b data-path-to-node="23" data-index-in-node="0">Quelle: </b><a href="https://help.nextcloud.com/t/nextcloud-com-offline/247123/18" target="_blank" rel="noopener">https://help.nextcloud.com/t/nextcloud-com-offline/247123/18</a></p>
<p>Der Beitrag <a href="https://ivanivanov.de/blog/cyberangriff-auf-nextcloud-technische-details-pr-kritik/">Cyberangriff auf Nextcloud: Technische Details &#038; PR-Kritik</a> erschien zuerst auf <a href="https://ivanivanov.de">Ivan Ivanov</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5601</post-id>	</item>
		<item>
		<title>Tails 7.10: Anonymes Linux mit neuem Shutdown und Videoplayer</title>
		<link>https://ivanivanov.de/blog/tails-7-10-release-anonymisierendes-linux-shutdown/</link>
		
		<dc:creator><![CDATA[Ivan]]></dc:creator>
		<pubDate>Thu, 23 Jul 2026 20:17:02 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Anonymisierendes Linux]]></category>
		<category><![CDATA[Cold Boot Attacken Schutz]]></category>
		<category><![CDATA[Isolierter Videoplayer Linux]]></category>
		<category><![CDATA[IT-Sicherheit Betriebssystem]]></category>
		<category><![CDATA[Live OS Anonymität]]></category>
		<category><![CDATA[Privacy Distribution 2026]]></category>
		<category><![CDATA[Tails 7.10 Release]]></category>
		<category><![CDATA[Tails Shutdown Security]]></category>
		<category><![CDATA[Tor Browser Update]]></category>
		<guid isPermaLink="false">https://ivanivanov.de/?p=5596</guid>

					<description><![CDATA[<p>Tails 7.10 Release: Anonymisierendes Linux erhält neuen Shutdown und Videoplayer Für Nutzer mit extremen Anforderungen an die Privatsphäre und IT-Sicherheit ist Tails (The Amnesic Incognito Live System) seit Jahren der Goldstandard. Das System hinterlässt keine Spuren auf dem Host-Computer und leitet jeglichen Datenverkehr zwingend über das Tor-Netzwerk. Das aktuelle Release Tails 7.10 bringt zwei tiefgreifende [&#8230;]</p>
<p>Der Beitrag <a href="https://ivanivanov.de/blog/tails-7-10-release-anonymisierendes-linux-shutdown/">Tails 7.10: Anonymes Linux mit neuem Shutdown und Videoplayer</a> erschien zuerst auf <a href="https://ivanivanov.de">Ivan Ivanov</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1 data-path-to-node="12">Tails 7.10 Release: Anonymisierendes Linux erhält neuen Shutdown und Videoplayer</h1>
<p data-path-to-node="13">Für Nutzer mit extremen Anforderungen an die Privatsphäre und IT-Sicherheit ist <b data-path-to-node="13" data-index-in-node="80">Tails</b> (The Amnesic Incognito Live System) seit Jahren der Goldstandard. Das System hinterlässt keine Spuren auf dem Host-Computer und leitet jeglichen Datenverkehr zwingend über das Tor-Netzwerk. Das aktuelle Release <b data-path-to-node="13" data-index-in-node="332">Tails 7.10</b> bringt zwei tiefgreifende funktionale Änderungen mit sich, die den Schutz vor physischen und digitalen Angriffen noch einmal drastisch erhöhen.</p>
<h2 data-path-to-node="14">Der neue Shutdown-Prozess: Amnesia in Perfektion</h2>
<p data-path-to-node="15">Die wichtigste Eigenschaft von Tails ist seine &#8222;Amnesie&#8220;. Sobald das System heruntergefahren wird – oder der USB-Stick im Notfall einfach aus dem Rechner gezogen wird –, löscht Tails den gesamten Arbeitsspeicher (RAM). Dadurch wird sichergestellt, dass Angreifer keine kryptografischen Schlüssel oder Fragmente von Dokumenten durch sogenannte <i data-path-to-node="15" data-index-in-node="343">Cold Boot Attacks</i> rekonstruieren können.</p>
<p data-path-to-node="16">Mit Version 7.10 wurde dieser <b data-path-to-node="16" data-index-in-node="30">Shutdown-Prozess grundlegend neu geschrieben</b>. Das System geht nun wesentlich aggressiver und schneller beim Überschreiben des Arbeitsspeichers vor. Zudem wurden Kompatibilitätsprobleme mit modernen UEFI-Systemen und spezifischen RAM-Architekturen behoben, bei denen der Löschvorgang in der Vergangenheit ins Stocken geraten konnte. Ein schnellerer Shutdown bedeutet in kritischen Situationen schlichtweg mehr physische Sicherheit für den Anwender.</p>
<h2 data-path-to-node="17">Neuer Videoplayer schützt vor Media-Exploits</h2>
<p data-path-to-node="18">Eine oft unterschätzte Gefahr für die Anonymität stellen präparierte Mediendateien (wie MP4- oder MKV-Videos) dar. Angreifer verstecken regelmäßig Schadcode in Videos, der Pufferüberläufe in schlecht isolierten Playern provoziert.</p>
<p data-path-to-node="19">Tails 7.10 reagiert auf diese Bedrohungslage mit der <b data-path-to-node="19" data-index-in-node="53">Integration eines neuen Videoplayers</b>. Der Fokus liegt hierbei auf einer strengen Isolierung (Sandboxing) und der Reduzierung der Angriffsfläche. Der neue Player kann zwar problemlos offline Videos abspielen, wird aber durch strikte Systemrichtlinien daran gehindert, Netzwerkverbindungen aufzubauen. Selbst wenn ein Video einen Zero-Day-Exploit enthalten sollte, ist es dem Angreifer dadurch nahezu unmöglich, die echte IP-Adresse des Nutzers nach außen zu funken (IP Leak).</p>
<h2 data-path-to-node="20">Aktualisierte Kernkomponenten</h2>
<p data-path-to-node="21">Neben diesen funktionalen Meilensteinen enthält Tails 7.10 routinemäßige, aber essenzielle Security-Updates. Der integrierte <b data-path-to-node="21" data-index-in-node="125">Tor Browser</b> wurde auf die neueste Basis gehoben und auch der E-Mail-Client <b data-path-to-node="21" data-index-in-node="200">Thunderbird</b> profitierte von wichtigen Sicherheitspatches.</p>
<h2 data-path-to-node="22">Fazit: Pflicht-Update für sensible Einsätze</h2>
<p data-path-to-node="23">Das Tails 7.10 Update zeigt, dass die Entwickler nicht nur Software aktualisieren, sondern die konzeptionelle Sicherheit des Live-Systems konsequent weiterdenken. Wer auf Anonymität angewiesen ist, sollte seinen USB-Stick schnellstmöglich über die integrierte Update-Funktion auf den neuesten Stand bringen.</p>
<p data-path-to-node="23"><strong>Download</strong>: <a href="https://tails.net/install/download/index.en.html" target="_blank" rel="noopener">https://tails.net/install/download/index.en.html</a></p>
<p>Der Beitrag <a href="https://ivanivanov.de/blog/tails-7-10-release-anonymisierendes-linux-shutdown/">Tails 7.10: Anonymes Linux mit neuem Shutdown und Videoplayer</a> erschien zuerst auf <a href="https://ivanivanov.de">Ivan Ivanov</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5596</post-id>	</item>
	</channel>
</rss>
