Jekyll2024-03-17T12:03:09+01:00https://marvindickhaus.de//some random thoughtsGedanken über Technik, Datenschutz und Privatsphäre. Blog von Marvin Dickhaus. Blogger seit 2013.
Marvin DickhausExchange Server - Mehr Sicherheit mit Extended Protection2022-10-09T00:00:00+02:002022-10-09T00:00:00+02:00https://marvindickhaus.de/2022/10/Exchange-Extended-Protection<h1 id="veröffentlichungshinweis">Veröffentlichungshinweis</h1>
<p>Dieser Beitrag entstand im Rahmen meiner Tätigkeit bei der SVA System Vertrieb Alexander GmbH. Er erschien zuerst im Blog <a href="https://focus.sva.de"><em>FOCUS ON IT - Der Expertenblog der SVA</em></a> am <a href="https://focus.sva.de/exchange-server-mehr-sicherheit-mit-extended-protection/">27. September 2022</a>.</p>
<h1 id="geschlossene-sicherheitslücken-in-exchange-server">Geschlossene Sicherheitslücken in Exchange Server</h1>
<p>Mit dem <em>Patch-Tuesday</em> im August 2022 hat Microsoft auch einen neuen
Sicherheitspatch (SU) für Exchange Server 2013, 2016 und 2019
herausgebracht.</p>
<p>Mit dem Installieren ist es aber - wie schon im Mai – nicht getan.
Offiziell schließt der Patch sechs verschiedene Sicherheitslücken, wovon
drei als <em>kritisch</em> eingestuft werden. Nach der Installation des
Sicherheitsupdates wird allerdings nur eine Lücke mit der Einstufung
<em>Wichtig</em> direkt geschlossen. Die restlichen Lücken benötigen darüber
hinaus die Aktivierung der Extended Protection (EP).</p>
<!--more-->
<hr />
<p>Das Update steht für folgende Versionen von Exchange Server bereit:</p>
<ul>
<li>Exchange Server 2013 <a href="https://www.microsoft.com/en-us/download/details.aspx?familyID=479a8745-ec96-4634-9935-80aa6131737b">CU23</a></li>
<li>Exchange Server 2016 <a href="https://www.microsoft.com/en-us/download/details.aspx?familyID=4d630555-9c16-46fe-b72b-aec651b71efb">CU22</a> und <a href="https://www.microsoft.com/en-us/download/details.aspx?familyID=2961d7a6-c089-4fe6-8c4c-c100878950b8">CU23</a></li>
<li>Exchange Server 2019 <a href="https://www.microsoft.com/en-us/download/details.aspx?familyID=edb31b02-83ab-4133-b327-29f3799e4861">CU11</a> und <a href="https://www.microsoft.com/en-us/download/details.aspx?id=104478">CU12</a></li>
</ul>
<p>Aufgrund von geringeren Einschränkungen bei der Konfiguration von EP
sollten Sie bei Exchange Server 2016 und 2019 erst auf das neueste
Cumulative Update (CU) - 2022 H1 aktualisieren.</p>
<h1 id="was-ist-extended-protection">Was ist Extended Protection?</h1>
<blockquote>
<p>Der erweiterte Schutz für die Authentifizierung schützt gegen sog.
Man-In-The-Middle (MITM)-Angriffe, bei denen die Anmeldeinformationen
eines Clients von einem Angreifer abgefangen und an einen Server
weitergeleitet werden.</p>
</blockquote>
<p class="caption">Quelle:
<a href="https://docs.microsoft.com/de-de/dotnet/framework/wcf/feature-details/extended-protection-for-authentication-overview">docs.microsoft.com</a> (Abgerufen am 08.09.2022)</p>
<p>Die Ursprünge von EP versetzen uns fast in eine andere Zeit. Angekündigt
wurde das Feature mit dem <a href="https://docs.microsoft.com/en-us/security-updates/securityadvisories/2009/973811">Patch Tuesday vom August
2009</a>.
Im selben Monat standen die entsprechenden Patches für Betriebssysteme
ab Windows XP und Windows Server 2003 bereit. Zwischen der Einführung
von Extended Protection in Microsoft Internet Information Services (IIS)
und der Unterstützung in Exchange Server liegen somit 13 Jahre.</p>
<p>Der Hintergrund von EP liegt in der Vermeidung von Angriffen im Zuge der
Authentifizierung. Es soll verhindert werden, dass sich Angreifende
zwischen Client (bspw. Smartphone) und Server (bspw. Exchange) stellen
können und die Authentifizierung im Namen des Clients durchführen. So
hätte der Angreifende im Anschluss die gleichen Rechte wie der Client
und könnte entsprechend auf Daten zugreifen.</p>
<p>Im Windows-Ökosystem unterstützen Clients zumeist automatisch EP. In
Serveranwendungen muss die Unterstützung allerdings erst programmatisch
eingefügt werden. Dies hat die Exchange-Produktgruppe mit dem SU nun
nachgeholt. Was bleibt ist die Aktivierung, der wir uns mit diesen
Zeilen widmen.</p>
<h1 id="voraussetzungen-der-ep-aktivierung">Voraussetzungen der EP-Aktivierung</h1>
<p>Bevor EP für Exchange Server aktiviert werden kann, sind einige
Voraussetzungen zu beachten. Diese werden nachfolgend kurz aufgeführt
und basierend auf den <a href="https://aka.ms/ExchangeEPDoc">offiziell bereitgestellten
Informationen</a> der Exchange-Produktgruppe
erläutert.</p>
<h2 id="exchange-server-version">Exchange Server Version</h2>
<p>Für Exchange Server 2013 muss das aktuelle CU23 vorliegen. Bei Exchange
Server 2016 und 2019 wird hingegen neben dem aktuellen CU auch das
vorherige CU unterstützt. Bei Exchange Server 2013 ist zudem zu
beachten, dass hier keine öffentlichen Ordner-Postfächer gehostet werden
dürfen.</p>
<p>Im Falle von Exchange Server 2016 und Exchange Server 2019 müssen
öffentliche Ordner-Postfächer, die die Hierarchie halten, in jedem Fall
das neuste CU besitzen.</p>
<table>
<thead>
<tr>
<th>Exchange Version</th>
<th>CU Version</th>
<th>SU Version</th>
<th>Öffentliche Ordner-Postfächer</th>
<th>EP unterstützt?</th>
</tr>
</thead>
<tbody>
<tr>
<td>Exchange 2013</td>
<td>CU23</td>
<td>Aug. 2022 oder neuer</td>
<td>Nein</td>
<td>Ja</td>
</tr>
<tr>
<td>Exchange 2016</td>
<td>CU22</td>
<td>Aug. 2022 oder neuer</td>
<td>Keine Postfächer mit Hierarchie</td>
<td>Ja</td>
</tr>
<tr>
<td>Exchange 2016</td>
<td>CU23 oder neuer</td>
<td>Aug. 2022 oder neuer</td>
<td>Alle</td>
<td>Ja</td>
</tr>
<tr>
<td>Exchange 2019</td>
<td>CU11</td>
<td>Aug. 2022 oder neuer</td>
<td>Keine Postfächer mit Hierarchie</td>
<td>Ja</td>
</tr>
<tr>
<td>Exchange 2019</td>
<td>CU12 oder neuer</td>
<td>Aug. 2022 oder neuer</td>
<td>Alle</td>
<td>Ja</td>
</tr>
<tr>
<td>Alle anderen Versionen</td>
<td>Jedes andere CU</td>
<td>Jedes andere SU</td>
<td>Alle</td>
<td>Nein</td>
</tr>
</tbody>
</table>
<p class="caption">Tabelle 1: Für Extended Protection unterstützte Systemkonfigurationen -
Angelehnt an <a href="https://microsoft.github.io/CSS-Exchange/Security/Extended-Protection/">https://microsoft.github.io/CSS-Exchange/Security/Extended-Protection/</a></p>
<hr />
<p class="warning">Der erweiterte Support von Exchange Server 2013 endet bereits <a href="https://docs.microsoft.com/en-us/lifecycle/products/exchange-server-2013">im April
nächsten
Jahres</a>.
Im Anschluss daran werden keine weiteren Sicherheitspatches mehr
bereitgestellt. Es bleiben also nur noch 6 Monate, um ein Update auf
eine aktuellere Version durchzuführen.</p>
<h2 id="exchange-hybrid">Exchange Hybrid</h2>
<p>Falls Exchange im Hybrid-Modus mit Exchange Online gekoppelt ist, gibt
es ebenfalls eine Einschränkung zu beachten, sofern man auf eine der
<em>Modern Hybrid</em>-Varianten setzt. In diesem Fall läuft ein Agent auf
mindestens einem der Exchange Server, der die Notwendigkeit von
eingehenden Verbindungen via geöffnetem Port ersetzt. Server mit dem
Agenten müssen dann gesondert behandelt werden.</p>
<p>In diesem Fall ist es empfehlenswert, auf die <em>Classic Hybrid</em>-Varianten
zu wechseln. Alternativ nennt Microsoft drei Schritte, um Server
abzusichern, auf denen der Agent läuft:</p>
<ol>
<li>Eingehende Verbindungen zu Exchange Servern sollten via Firewall auf
Server begrenzt werden, auf denen der Hybrid-Agent läuft.</li>
<li>Es sollten keine Postfächer auf Server gehostet werden, welche einen
Hybrid-Agenten haben. Bestehende Postfächer sollten zu anderen
Servern umgezogen werden.</li>
<li>EP kann für alle virtuellen Verzeichnisse aktiviert werden, bis auf
das EWS-Verzeichnis im Frontend.</li>
</ol>
<h2 id="kryptografie">Kryptografie</h2>
<h3 id="tls-versionen">TLS-Versionen</h3>
<p>Die TLS-Versionen 1.0 und 1.1 <a href="https://datatracker.ietf.org/doc/rfc8996/">gelten als veraltet und
unsicher</a>. Diese sollten
daher in jedem Fall abgeschaltet werden. Die EP-Unterstützung ist
allerdings trotzdem für die Versionen TLS1.0, TLS1.1 und darüber hinaus
für TLS1.2 vorhanden. Für TLS1.3 gilt dies aktuell nicht, da Exchange
Server dies bisher in keiner Version unterstützt. Für die Aktivierung
von EP muss die TLS-Konfiguration auf allen Servern gleich sein. Die
aktivierten Versionen dürfen sich pro Server also nicht unterscheiden.</p>
<h3 id="net-schusestrongcrypto-und-systemdefaulttlsversions">.NET SchUseStrongCrypto und SystemDefaultTlsVersions</h3>
<p>Abhängig von der .NET Version, die von den Exchange Binaries verwendet
wird, wird ohne explizit gesetzte Registrierschlüssel ein
unterschiedliches Verhalten hinsichtlich des verwendeten TLS-Protokolls
angewendet. Entsprechend sollten die Registrierschlüssel explizit für
<a href="https://docs.microsoft.com/de-de/Exchange/exchange-tls-configuration?view=exchserver-2019#enable-tls-12-for-net-4x">.NET
4.x</a>
und <a href="https://docs.microsoft.com/de-de/Exchange/exchange-tls-configuration?view=exchserver-2019#enable-tls-12-for-net-35">.NET
3.5</a>
gesetzt werden, mindestens jedoch für .NET 4.x.</p>
<h3 id="ssl-bridging-und-offloading">SSL Bridging und Offloading</h3>
<p><strong>SSL Offloading</strong>, also das Terminieren der TLS-Verschlüsselung an
einer vorgeschalteten Station (bspw. dem Loadbalancer) wird <strong>nicht
unterstützt.</strong></p>
<p><strong>SSL Bridging</strong>, das Terminieren der TLS-Verschlüsselung bei
anschließender Neuverschlüsselung, wird nur unterstützt, <strong>wenn von
allen Stellen dasselbe Zertifikat verwendet wird</strong>. Es besteht also
keine Möglichkeit, am Loadbalancer zu intern ausgestellten Zertifikaten
zu wechseln.</p>
<h2 id="nt-lan-manager-ntlmv1">NT LAN Manager (NTLMv1)</h2>
<p>NLTMv1 gilt ebenfalls als schwach bzw. angreifbar. Entsprechend sollte
NTLMv1 grundsätzlich in der kompletten IT-Infrastruktur abgeschaltet
werden. Hierzu besteht auch die Möglichkeit, zentral die Anmeldung via
NTLMv1 zu überwachen und entsprechende Alt-Anwendungen zu patchen.</p>
<p>Sobald EP aktiviert wird, funktionieren Anmeldungen an Exchange Server
mit NTLMv1 nicht mehr. Eine Konfigurationsänderung ist nicht nötig,
obwohl sie zu empfehlen ist. Die Konfiguration kann über
Gruppenrichtlinien oder die lokale Sicherheitsrichtlinie erfolgen: Die
Einstellung “Netzwerksicherheit: LAN Manager-Authentifizierungsebene”
sollte auf “Nur NTLMv2-Antworten senden. LM & NTLM verweigern” gesetzt
werden (<a href="https://docs.microsoft.com/de-de/windows/security/threat-protection/security-policy-settings/network-security-lan-manager-authentication-level">Weiterführende Informationen zu LAN
Manager</a>).</p>
<p><img src="/assets/2022/secpol1.png" alt="Dialog der lokalen Sicherheitsrichtlinie" /></p>
<p class="caption">Abbildung 1: Einstellungspunkt für die Deaktivierung von NTLMv1</p>
<p> </p>
<p><img src="/assets/2022/secpol2.png" alt="Dialog der LM-Authentifizierungsebene" /></p>
<p class="caption">Abbildung 2: Empfohlene Einstellung bei der Konfiguration der
LM-Authentifizierungsebene</p>
<h2 id="dritthersteller-applikationen">Dritthersteller Applikationen</h2>
<p>Der Markt für Anwendungen, die mit Exchange Server interagieren, ist
riesig. Entsprechend divers werden die Produkte auch in Exchange Server
eingebunden. Sofern Anwendungen also mit Exchange über die
Web-Schnittstellen wie bspw. EWS oder OAB kommunizieren, muss damit
gerechnet werden, dass die Produkte ggf. nicht mehr funktionieren.
Sofern der Hersteller keine Informationen bereitstellt, lässt sich dies
nur durch entsprechendes Testen in einer Testumgebung oder nach der
Umstellung im Produktivsystem erproben. Betroffen sind z.B.
Sicherheitslösungen auf Endgeräten, die clientseitiges TLS-Bridging
betreiben. In den meisten Fällen lässt sich die URL der Exchange Server
hier auf eine Ausnahmeliste setzen.</p>
<h1 id="bekannte-probleme">Bekannte Probleme</h1>
<h2 id="passwortabfragen-bei-outlook">Passwortabfragen bei Outlook</h2>
<p>Sollte es vermehrt zu Passwortabfragen kommen, kann dies an der
Einstellung für NTLM liegen. In diesem Fall sollte auf allen Exchange
Servern “Netzwerksicherheit: LAN Manager-Authentifizierungsebene”
mindestens auf “Nur NTLMv2-Antworten senden.” angehoben werden.</p>
<h2 id="archivierungsrichtlinie">Archivierungsrichtlinie</h2>
<p>Aufbewahrungstags mit der Anweisung “In Archiv verschieben” sind aktuell
nur mit einem Workaround funktionsfähig. Hierbei wird das EWS-Backend
auf die IP-Adressen der anderen Exchange Server zugangsbeschränkt. Mit
einem künftigen Sicherheitsupdate soll dieser Workaround aufgelöst
werden. Bei zukünftigen Updates sollten also die Patchnotes beachtet
werden. In diesen wird auch darauf hingewiesen, dass der Workaround
zurückgebaut werden kann.</p>
<h2 id="test-outlookconnectivity">Test-OutlookConnectivity</h2>
<p>In allen Exchange-Server-Versionen kann das Cmdlet
Test-OutlookConnectivity für folgende Testmodule fäschlicherweise
“<em>fehlgeschlagen”</em> zurückmelden, obwohl bis auf das Testmodul alles
funktional ist:</p>
<ol>
<li>OutlookMapiHttpCtpProbe</li>
<li>OutlookRpcCtpProbe</li>
<li>OutlookRpcDeepTestProbe</li>
<li>OutlookRpcSelfTestProbe</li>
<li>ComplianceOutlookLogonToArchiveMapiHttpCtpProbe</li>
<li>ComplianceOutlookLogonToArchiveRpcCtpProbe</li>
</ol>
<p>An einem Fix wird seitens Microsoft gearbeitet.</p>
<h1 id="fragebogen--checkliste">Fragebogen / Checkliste</h1>
<p>Abschließend soll folgende Checkliste nochmal der Überprüfung aller
nötigen Voraussetzungen dienen. Sofern eine Frage mit <em>Ja</em> beantwortet
wurde, sollten Sie sich mit dem entsprechenden Punkt genauer
beschäftigen bzw. die Voraussetzungen schaffen, damit EP aktiviert
werden kann.</p>
<table>
<thead>
<tr>
<th>Frage</th>
<th>Ja</th>
<th>Nein</th>
</tr>
</thead>
<tbody>
<tr>
<td>Ist in Ihrer Umgebung ein Exchange Server 2013 vorhanden, welcher öffentliche Ordner-Postfächer hostet oder diese in Koexistenz mit 2016 oder 2019 betreibt?</td>
<td>☐</td>
<td>☐</td>
</tr>
<tr>
<td>Ist in Ihrer Umgebung ein Exchange Server 2016 Server mit CU 22 vorhanden, welcher öffentliche Ordner-Hierarchien hostet?</td>
<td>☐</td>
<td>☐</td>
</tr>
<tr>
<td>Ist in Ihrer Umgebung ein Exchange Server 2019 Server mit CU 11 vorhanden, welcher öffentliche Ordner-Hierarchien hostet?</td>
<td>☐</td>
<td>☐</td>
</tr>
<tr>
<td>Ist bei Ihnen Exchange Hybrid im Modus Modern (<em>Modern Minimal</em> oder <em>Modern Full</em>) eingerichtet?</td>
<td>☐</td>
<td>☐</td>
</tr>
<tr>
<td>Haben Sie vor Ihrer Exchange-Umgebung einen Loadbalancer oder eine Web Application Firewall (WAF) implementiert, welche „SSL-Offloading” nutzt?</td>
<td>☐</td>
<td>☐</td>
</tr>
<tr>
<td>Haben Sie vor Ihrer Exchange-Umgebung einen Loadbalancer oder eine WAF, welche „SSL Bridging” mit unterschiedlichen Zertifikaten auf LB/WAF und Exchange einsetzt?</td>
<td>☐</td>
<td>☐</td>
</tr>
<tr>
<td>Gibt es Inkonsistenzen in den Einstellungen für TLS auf den Exchange-Servern oder existieren Exchange Server, welche noch nicht explizit TLS 1.2 verwenden?</td>
<td>☐</td>
<td>☐</td>
</tr>
<tr>
<td>Haben Sie Drittanbieter-Software auf den Exchange-Servern installiert oder an diese angebunden, welche inkompatibel zu den verstärkten Sicherheitskonfigurationen sein könnte (bspw. Signatursoftware, Archivsysteme, u.s.w)?</td>
<td>☐</td>
<td>☐</td>
</tr>
</tbody>
</table>
<p class="caption">Tabelle 2: Fragebogen zur sicheren Aktivierung von Extened Protection bei Exchange</p>
<h1 id="skriptbasierte-konfiguration-der-extended-protection">Skriptbasierte Konfiguration der Extended Protection</h1>
<h2 id="prüfung-des-aktuellen-zustands">Prüfung des aktuellen Zustands</h2>
<p>Gerade bei größeren Umgebungen sind die manuelle Konfiguration und
Überprüfung eine mühselige Aufgabe. Microsoft stellt deshalb mit dem
Skript
<a href="https://github.com/microsoft/CSS-Exchange/releases/latest/download/ExchangeExtendedProtectionManagement.ps1">ExchangeExtendedProtectionManagement.ps1</a>
eine Möglichkeit bereit, die entsprechenden Aufgaben so weit wie möglich
automatisch durchzuführen. Um den aktuellen Zustand von EP in der
Exchange Server Farm zu überprüfen, lässt sich das Skript von der
Exchange Management Shell als Administrator wie folgt aufrufen:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>.\\ExchangeExtendedProtectionManagement.ps1 -ShowExtendedProtection
</code></pre></div></div>
<p>Im Anschluss wird für jedes virtuelle Verzeichnis der aktuelle Zustand
ausgegeben. Zusätzlich bietet auch das <a href="https://microsoft.github.io/CSS-Exchange/Diagnostics/HealthChecker/">HealhChecker
Skript</a>
entsprechende Prüfungen an. In diesem Falle muss das Skript aber auf
jedem Server separat ausgeführt werden, um ein vollständiges Bild zu
erhalten.</p>
<h2 id="aktivieren-von-extended-protection">Aktivieren von Extended Protection</h2>
<p>Analog zur Überprüfung lässt sich das Skript auch zur Konfiguration der
EP verwenden. Hierbei kann das Skript im Regelfall ohne weitere
Parameter aufgerufen werden. Im Anschluss muss die Durchführung der
Konfiguration allerdings noch einmal bestätigt werden.</p>
<p><img src="/assets/2022/epscript1.png" alt="PowerShell Fenster mit Extended Protection Aktivierungsscript" /></p>
<p class="caption">Abbildung 3: Sicherheitsabfrage bei der skriptbasierten Konfiguration
von Extended Protection</p>
<p>Danach sollte auch das HealthChecker-Skript bestätigen, dass die Server
nicht mehr von den entsprechenden Sicherheitslücken betroffen sind.</p>
<p><img src="/assets/2022/epscript2.png" alt="PowerShell Fenster mit Ergebnisdialog des Extended Protection Aktivierungsscript" /></p>
<p class="caption">Abbildung 4: Ausgabe des HealthChecker-Skripts, wenn alle bekannten
Sicherheitslücken gepatched sind.</p>
<h3 id="sonderfall-mit-archivierungsrichtlinie">Sonderfall mit Archivierungsrichtlinie</h3>
<p>Wenn wie zuvor beschrieben eine Archivierungsrichtlinie vorhanden ist,
müssen in einer Datei zuerst alle IP-Adressen der Exchange-Server
eingetragen werden. Hier sind IPv4, IPv6 sowie die Eintragung von
Subnetzen (in CDIR Notation, bspw. 10.100.5.1/24) erlaubt.</p>
<p><img src="/assets/2022/ipsTxt.png" alt="Textdatei mit IPs von Exchange Servern" /></p>
<p class="caption">Abbildung 5: Datei mit den IP-Adressen aller Exchange-Server der
Umgebung</p>
<p>Im Aufruf des <em>ExchangeExtendedProtectionManagement</em>-Skripts muss diese
dann hinterlegt werden, um die Funktionalität von
Archivierungsrichtlinien aufrechtzuerhalten.</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>.\\ExchangeExtendedProtectionManagement.ps1 -RestrictType \'EWSBackend\' -IPRangeFilePath \'C:\\tmp\\ExchangeServerIPs.txt\'
</code></pre></div></div>
<h3 id="sonderfall-modern-hybrid">Sonderfall Modern Hybrid</h3>
<p>Im Falle von Modern Hybrid müssen Server mit Agenten von der
Konfiguration von EP ausgenommen werden.</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>.\\ExchangeExtendedProtectionManagement.ps1 -SkipExchangeServerNames HybridServer1, HybridServer2
</code></pre></div></div>
<h2 id="rollback">Rollback</h2>
<p>Falls nach der Aktivierung doch noch unvorhergesehene Probleme
auftreten, unterstützt auch hier das Skript, indem die IIS-Konfiguration
von vor der Änderung zurückgespielt werden kann.</p>
<p><strong>Achtung</strong>: Sollten zwischen Aktivierung und Rollback der EP manuelle
Änderungen an der applicationHost.config vorgenommen worden sein, so
müssen diese im Anschluss erneut angewendet werden. Sobald die
entsprechenden Probleme beseitigt wurden, lässt sich EP mit dem Skript
erneut aktivieren.</p>
<h1 id="fazit">Fazit</h1>
<p>Mit der Unterstützung von Extended Protection in Exchange sichert
Microsoft die Server besser gegen Man-In-The-Middle-Angriffe ab.
Aktuelle Einschränkungen machen allerdings die Verwendung von
Workarounds nötig. Diese müssen bei zukünftigen Updates berücksichtigt
und ggf. wieder zurückgebaut werden.</p>Marvin DickhausVeröffentlichungshinweis Dieser Beitrag entstand im Rahmen meiner Tätigkeit bei der SVA System Vertrieb Alexander GmbH. Er erschien zuerst im Blog FOCUS ON IT - Der Expertenblog der SVA am 27. September 2022. Geschlossene Sicherheitslücken in Exchange Server Mit dem Patch-Tuesday im August 2022 hat Microsoft auch einen neuen Sicherheitspatch (SU) für Exchange Server 2013, 2016 und 2019 herausgebracht. Mit dem Installieren ist es aber - wie schon im Mai – nicht getan. Offiziell schließt der Patch sechs verschiedene Sicherheitslücken, wovon drei als kritisch eingestuft werden. Nach der Installation des Sicherheitsupdates wird allerdings nur eine Lücke mit der Einstufung Wichtig direkt geschlossen. Die restlichen Lücken benötigen darüber hinaus die Aktivierung der Extended Protection (EP).Kinderwünsche2020-04-21T00:00:00+02:002020-04-21T00:00:00+02:00https://marvindickhaus.de/2020/04/kinderwuensche<p>Wenn man nur wüsste, was in Kinderköpfen alles merkwürdiges vor sich geht.</p>
<blockquote>
<p>Mama, ich würde so gerne die tote Katze anschauen. Wir müssen die in Papas Garten ausgraben.</p>
</blockquote>
<p class="author">Tochter, 4½ Jahre</p>
<p>R.I.P. Paulchen. Wir lassen dich im Garten ruhen, wie auch die letzten 15 Jahre.</p>Marvin DickhausWenn man nur wüsste, was in Kinderköpfen alles merkwürdiges vor sich geht. Mama, ich würde so gerne die tote Katze anschauen. Wir müssen die in Papas Garten ausgraben. Tochter, 4½ Jahre R.I.P. Paulchen. Wir lassen dich im Garten ruhen, wie auch die letzten 15 Jahre.Alles neu macht der Mai2017-05-23T00:00:00+02:002017-05-23T00:00:00+02:00https://marvindickhaus.de/2017/05/marvindickhaus.de-jetzt-mit-jekyll<p>marvindickhaus.de läuft seit der initialen Erstellung auf <a href="https://Wordpress.com">Wordpress</a>. Wordpress hat einige Vorteile, aber auch einige Nachteile. Seit heute nutze ich ein neues Blogsystem zum erstellen und verwalten meiner Beiträge.<!--more--></p>
<h2 id="ein-neues-blogsystem-für-marvindickhausde">Ein neues Blogsystem für marvindickhaus.de</h2>
<p>Mit dem heutigen Tag läuft marvindickhaus.de nicht mehr unter Wordpress, sondern nutzt <a href="https://jekyllrb.com">Jekyll</a> und das <a href="https://yous.github.io/whiteglass/">Whiteglass Theme</a>.</p>
<p>Alle bisher erstellten Beiträge habe ich importiert. Die URLs sollten sich hier nicht verändert haben.</p>
<p>Um zu Verstehen, warum ein Wechsel für mich sinvoll ist, sollten wir einmal die Vor- und Nachteile der Lösungen gegenüberstellen.</p>
<h3 id="vorteile-von-wordpress">Vorteile von Wordpress</h3>
<ul>
<li>Webinterface zum erstellen neuer Beiträge</li>
<li><a href="https://de.wikipedia.org/wiki/WYSIWYG">WYSIWYG</a>-Editor</li>
<li>Android App zum mobilen erstellen neuer Beiträge</li>
</ul>
<h3 id="vorteile-von-jekyll">Vorteile von Jekyll</h3>
<ul>
<li>Statische seiten, die keinen interpreter benötigen, sondern direkt ausgeliefert werden können</li>
<li>Versionsmanagement mit <a href="https://git-scm.com">git</a></li>
<li>Erstellen von Posts durch leseriches <a href="https://daringfireball.net/projects/markdown/">Markdown</a></li>
<li>Keine Sicherheitslücken, da nur statischer Inhalt ausgeliefert wird. Kein abgreifen von Logindaten möglich.</li>
</ul>
<h3 id="nachteile-von-wordpress">Nachteile von Wordpress</h3>
<ul>
<li>Baut auf PHP auf und hat <a href="http://www.cvedetails.com/product/128/PHP-PHP.html?vendor_id=74">einen Haufen Sicherheitslücken</a></li>
<li>Dynamische Erzeugung der Seiten verlangsamt Aufbau der Seiten im Browser, da erst der php interpreter gestartet werden muss, um im Nutzerkontext die Seite zu generieren und auszuliefern.</li>
<li>Sicherheitslücken in Wordpress möglich.</li>
</ul>
<h3 id="nachteile-von-jekyll">Nachteile von Jekyll</h3>
<ul>
<li>Mobiles erstellen von Posts fast unmöglich</li>
<li>Längere Einarbeitung nötig</li>
<li>System muss vor dem schreiben von Beiträgen eingerichtet werden.</li>
</ul>
<p>Dem Charme von statischen Seiten bin ich erlegen. Insbesondere der kurzen Ladezeit wegen. Außerdem ist es natürlich schön, nur wenige Web Requests abzusetzen. Das hat sich deutlich Reduziert, auch da das Theme relativ simpel gehalten ist. Trozdem gab es noch einige Herausvorderungen bei der Migration zu beachten</p>
<ol>
<li>Auswahl eines Themes<br />
Die Suche gestaltet sich immer schwierig, wenn man viel Auswahl hat. Letztendlich habe ich mich für das recht minimalistisches <a href="https://yous.be/whiteglass/about/">Whiteglass Theme</a> entschieden.</li>
<li>Migration der Inhalte und Posts<br />
Für mich war klar, dass ich die alten Inhalte nicht auf das Abstellgleich schieben möchte, sondern diese weiterhin eingebunden bleiben sollen. Hierzu habe ich den <a href="https://wordpress.org/plugins/jekyll-exporter/">jekyll-exporter</a> genutzt, der deutlich besser funktionierte als der vom Jekyll-Projekt bereitgestellte <a href="http://import.jekyllrb.com/docs/wordpress/">jekyll-import Behfehl</a>. Anschließend war bei einigen Artikeln noch Korrekturen im Markdown nötig, genau wie das migrieren anderer Dateien, wie Bilder.</li>
<li>Einbinden von Kommentaren<br />
Da schon auf marvindickhaus.de mancher Kommentar zum Inhalt beigetragen hat, wollte ich dies für meine neue Seite beibehalten. Dafür gibt es bei Jekyll nichts Out-of-the-box, da Kommentare eben dynamisch hinzugefügt werden können. Darum lösen das viele mit <a href="https://disqus.com">Disqus</a>, was für mich jedoch nicht in Frage kam, da der Datenschutz hier wenig geachtet wird. Stattdessen hoste ich einen Kommentarserver einfach selbst. Dazu nutze ich das großartige <a href="https://posativ.org/isso">isso</a>. Ein Import der alten Wordpress Kommentare war ebenfalls möglich, so dass diese weiterhin unter den Artikeln bereitstehen.</li>
</ol>Marvin Dickhausmarvindickhaus.de läuft seit der initialen Erstellung auf Wordpress. Wordpress hat einige Vorteile, aber auch einige Nachteile. Seit heute nutze ich ein neues Blogsystem zum erstellen und verwalten meiner Beiträge.N26 verändert Kontoauszüge nachträglich2016-11-09T01:30:40+01:002016-11-09T01:30:40+01:00https://marvindickhaus.de/2016/11/n26-veraendert-kontoauszuege-nachtraeglich<h2 id="digital-banal">Digital, Banal?</h2>
<blockquote>
<p>Mit Vereinbarung dieser Sonderbedingungen stellt die Bank dem Kunden digitale Kontoauszüge zur Verfügung.</p>
</blockquote>
<p>Das <a href="http://n26.com">Fintech Startup N26</a> verspricht die bessere Bank zu sein, und soll vor allem junge Leute ansprechen. Das merkt man schon daran, dass man bei jedem Kundenkontakt konsequent geduzt wird. Für mich bei einer Bank eher befremdlich, aber sei es drum. Nicht nur für junge Leute sondern vor allem für Fremdwährungseinsätze im Ausland bietet sich ein Konto bei N26 an. Die Abrechnung erfolgt bei Fremdwährungen laut N26 zum aktuellen Kurs von MasterCard und es wird keine zusätzliche Fremdwährungsgebühr seitens der Bank erhoben.</p>
<p>Jetzt musste ich leider feststellen, dass es bei der Abrechnung nicht immer mit rechten Dingen zugeht.<!--more--></p>
<h2 id="exkurs-die-sache-mit-den-wechselkursen">Exkurs: Die Sache mit den Wechselkursen</h2>
<p>Wenn man im Ausland auf Einkaufsbummel geht passieren beim Kauf mit Plastikgeld einige Dinge im Hintergrund: Die Abwicklung einer Transaktion besteht (vereinfacht) aus mehreren Schritten. Zuerst wird die Zahlung durchgeführt. Die Freigabe erfolgt bspw. durch Eingabe der PIN oder Unterschrift. Der Zahlungsdienstleister bestätigt die Zahlung anschließend gegenüber dem Händler. Ab diesem Zeitpunkt taucht die Zahlung auch in den Umsätzen auf. Bis der Zahlungsdienstleister die Transaktion abgeschlossen hat (settlement date) können ein paar Arbeitstage vergehen. Hat man in einer Fremdwährung gezahlt, so ist der am Ende ausschlaggebende Wechselkurs jener, welcher am settlement Termin vom Zahlungsdienstleister vorgegeben wird. Hierdurch kann es zu Schwankungen in der Echtzeit Umsatzanzeige kommen, da sich Wechselkurse täglich ändern. Die Android App macht darauf auch aufmerksam. Auf der Webseite fehlt ein entsprechender Hinweis. Wie es in iOS aussieht weiß ich nicht.</p>
<p><img src="/assets/2016/transaktion-android.png" alt="Transaktion in Android" /></p>
<p class="caption">Beispielhafte, nicht abgeschlossene Transaktion in der Android App. Ein Hinweis wird deutlich angezeigt.</p>
<p><img src="/assets/2016/transaktion-web.png" alt="Transaktion aug dem Desktop" /></p>
<p class="caption">Die selbe Transaktion zum selben Zeitpunkt im Web. Ein Hinweis auf die nicht-abgeschlossenheit fehlt.</p>
<h2 id="buchhaltung">Buchhaltung</h2>
<p>Nach einer ausgiebigen Einkaufstour sollte man seine Ausgaben überprüfen. Hierzu stellt N26, neben der Echtzeit Umsatzanzeige, monatlich Kontoauszüge bereit. Für den laufenden Monat kann man in einen <em>vorläufigen</em> Kontoauszug einblicken. Für vergangene Monate steht ein verbindlicher, finaler Kontoauszug bereit. Soweit die Theorie.</p>
<p><img src="/assets/2016/kontoauszuege-n26.png" alt="Kontoauszüge anfordern" /></p>
<h2 id="verbindliche-und-unveränderliche-kontoauszüge">Verbindliche und Unveränderliche Kontoauszüge?</h2>
<p>Der Kontoauszug gilt als statisches Dokument. Zum Abschluss eines Monats erhält man von der Bank einen verbindlichen Kontoauszug, der den Saldo ausweist. Im Fall von N26 geschieht dies Online. Soweit unterscheidet sich das jedoch nicht von anderen Online- und Direktbanken. Auch N26 sieht den Kontoauszug als statisches Dokument an. Auf einer extra Seite am Ende eines jeden Kontoauszugs ist zu lesen (Hervorhebung durch mich):</p>
<blockquote>
<p>Es kann zu Abweichungen zwischen deinem Kontoauszug und der Anzeige in deiner App oder dem Onlinebanking kommen, da Transaktionen in Echtzeit dargestellt werden, die tatsächliche Durchführung hingegen 1-2 Tage in Anspruch nehmen kann. <strong>Auf dem Kontoauszug werden nur vollständig durchgeführte Transaktionen abgebildet.</strong></p>
</blockquote>
<p>N26 bildet also nach eigener Aussage nur vollständig abgeschlossene Transaktionen ab. Die Abgeschlossenheit beinhaltet logischerweise auch das settlement, wodurch der endgültige Wechselkurs bei Fremdwährungseinsätzen fest steht. Weiterhin steht bei den <em><a href="https://docs.n26.com/legal/bank-account/de/n26-015-bedingungen-kontoauszugsfunktion-de.pdf">Bedingungen für die Nutzung der Kontoauszugsfunktion</a></em> die <em>N26 bei <a href="https://n26.com/legal-documents/n26-konto/?lang=de">den AGB</a> verlinkt unter Punkt 4:</em></p>
<blockquote>
<p>4. Unveränderbarkeit der Daten</p>
<p>Die Bank garantiert die Unveränderbarkeit der Daten in der Kontoauszugsfunktion. Diese Garantie gilt nicht, soweit die Daten außerhalb der Kontoauszugsfunktion gespeichert oder aufbewahrt werden. Zu beachten ist, dass aufgrund der individuellen Hard oder Softwareeinstellungen ein Ausdruck nicht immer mit der Darstellung am Bildschirm übereinstimmt. Soweit die Dokumente verändert oder in veränderter Form in Umlauf gebracht werden, übernimmt die Bank hierfür keine Haftung.</p>
</blockquote>
<p>Leider trifft beides nicht zu! Da ich eine eigene Buchführung betreibe, trage ich dort die Angaben aus dem Kontoauszug ein. Bei einem Soll/Ist Abgleich des Oktober-Kontoauszuges zwischen dem ausgewiesenen Schlusssaldo des Kontoauszuges und den Geld Ein- und Ausgängen fiel mir ein Fehlbetrag auf. Hierbei kam mir ein erster Verdacht, dass der Kontoauszug aufgrund von Buchungen, die bisher nicht gesettled wurden falsch ist.</p>
<p>Gestern habe ich erneut den Kontoauszug vom Oktober heruntergeladen, und die Vermutung war zutreffend. Inzwischen haben sich Beträge einzelner Positionen verändert. Der Fehlbetrag ist trotzdem gleich geblieben.</p>
<p><img src="/assets/2016/auszug0411-1.png" alt="Ursprünglicher Kontoauszug" /></p>
<p class="caption">Scan des ursprüngliche Kontoauszugs vom 4. November.</p>
<p><img src="/assets/2016/auszug0811.png" alt="Kontoauszug vier Tage später" /></p>
<p class="caption">Vier Tage später, neuer Kontoauszug. Einige Beträge und die Sortierreihenfolge haben sich geändert.</p>
<h2 id="eigene-zusagen-nicht-eingehalten">Eigene Zusagen nicht eingehalten</h2>
<p>Zusammenfassend lässt sich sagen, dass N26 hier klar Zusagen, die an die Kunden gemacht werden bricht. Eine rechtliche Einschätzung des Themas wäre sicher interessant. Da ich kein Jurist bin spare ich mir das aber lieber. Ich habe N26 um Stellungnahme bzgl. der veränderlichen Kontoauszüge gebeten, und werde diese hier Veröffentlichen, sobald ich eine Antwort vorliegen habe.</p>Marvin DickhausDigital, Banal? Mit Vereinbarung dieser Sonderbedingungen stellt die Bank dem Kunden digitale Kontoauszüge zur Verfügung. Das Fintech Startup N26 verspricht die bessere Bank zu sein, und soll vor allem junge Leute ansprechen. Das merkt man schon daran, dass man bei jedem Kundenkontakt konsequent geduzt wird. Für mich bei einer Bank eher befremdlich, aber sei es drum. Nicht nur für junge Leute sondern vor allem für Fremdwährungseinsätze im Ausland bietet sich ein Konto bei N26 an. Die Abrechnung erfolgt bei Fremdwährungen laut N26 zum aktuellen Kurs von MasterCard und es wird keine zusätzliche Fremdwährungsgebühr seitens der Bank erhoben. Jetzt musste ich leider feststellen, dass es bei der Abrechnung nicht immer mit rechten Dingen zugeht.Klimaveränderungen2016-09-13T15:25:16+02:002016-09-13T15:25:16+02:00https://marvindickhaus.de/2016/09/klimaveraenderungen<p>Randall Munroe <a href="http://xkcd.com/1732/">erklärt die Auswirkungen der jüngsten Menschheitsgeschichte auf das Weltklima</a> und setzt es ins Verhältnis zur Vergangenheit. Und das in einem einfachen Comic. Super Visualisierung, die jeden Klimawandelleugner enttarnt.</p>Marvin DickhausRandall Munroe erklärt die Auswirkungen der jüngsten Menschheitsgeschichte auf das Weltklima und setzt es ins Verhältnis zur Vergangenheit. Und das in einem einfachen Comic. Super Visualisierung, die jeden Klimawandelleugner enttarnt.Zeichen der Müdigkeit2015-09-10T12:48:04+02:002015-09-10T12:48:04+02:00https://marvindickhaus.de/2015/09/zeichen-der-muedigkeit<p>Marcus Rohwetter hat in der Drogerie eine <a href="http://www.zeit.de/2015/35/creme-muedigkeit-augenringe-wirkungslos">super Creme gefunden</a>. Nur wirken will diese nicht so richtig.</p>
<blockquote>
<p>Neulich entdeckte ich in der Drogerie eine Creme von Garnier, die folgende Wirkung versprach: „Zeichen der Müdigkeit verschwinden – schon nach einer Nacht“. Über diesen Satz habe ich lange nachgedacht und wollte ihn nun wissenschaftlich überprüfen.</p>
</blockquote>Marvin DickhausMarcus Rohwetter hat in der Drogerie eine super Creme gefunden. Nur wirken will diese nicht so richtig. Neulich entdeckte ich in der Drogerie eine Creme von Garnier, die folgende Wirkung versprach: „Zeichen der Müdigkeit verschwinden – schon nach einer Nacht“. Über diesen Satz habe ich lange nachgedacht und wollte ihn nun wissenschaftlich überprüfen.Netzneutralität und Mobilität2015-09-07T15:14:19+02:002015-09-07T15:14:19+02:00https://marvindickhaus.de/2015/09/netzneutralitaet-und-mobilitaet<p>Aus allen Ecken der Politik wird ständig gepredigt, dass Spezialdienste die die Netzneutralität verletzen notwendig für die Autos der Zukunft sind.</p>
<p>Auf <a href="http://www.golem.de/news/netzneutralitaet-bund-will-spezialdienste-fuer-autonome-autos-egal-wozu-1509-116061.html">Nachfrage von Golem</a> konnte jedoch weder die Bundesregierung, noch die EU-Kommision erklären, was für welche Dienste ein Bruch der Netzneutralität notwendig wäre.</p>
<p>Nun bringt es Golem <a href="http://www.golem.de/news/autonomes-fahren-wozu-das-auto-im-internet-verkehrt-1509-115755.html">ein weiteres mal auf den Punkt</a>.</p>
<blockquote>
<p>Eines scheint zumindest sicher: Um auf den Straßen überholen zu können, brauchen Autos keine Überholspuren im Netz.</p>
</blockquote>Marvin DickhausAus allen Ecken der Politik wird ständig gepredigt, dass Spezialdienste die die Netzneutralität verletzen notwendig für die Autos der Zukunft sind. Auf Nachfrage von Golem konnte jedoch weder die Bundesregierung, noch die EU-Kommision erklären, was für welche Dienste ein Bruch der Netzneutralität notwendig wäre. Nun bringt es Golem ein weiteres mal auf den Punkt. Eines scheint zumindest sicher: Um auf den Straßen überholen zu können, brauchen Autos keine Überholspuren im Netz.Unnötige Dinge2015-07-30T13:46:57+02:002015-07-30T13:46:57+02:00https://marvindickhaus.de/2015/07/unnoetige-dinge<p>Heute: <a href="http://www.supermarktblog.com/2015/07/27/3-gadgets-die-sie-unbedingt-haben-muessen-wenn-sie-ein-discounter-sind/">Peer Schader über Gadgets von Discountern</a> im <a href="http://www.supermarktblog.com/">Supermarktblog</a>.</p>Marvin DickhausHeute: Peer Schader über Gadgets von Discountern im Supermarktblog.Und wieder ist man sich selbst am nächsten.2015-07-06T10:10:26+02:002015-07-06T10:10:26+02:00https://marvindickhaus.de/2015/07/und-wieder-ist-man-sich-selbst-am-naechsten<p>Über vier Wochen dauerte der Streik der Mitarbeiter der Post. Kernpunkt:</p>
<blockquote>
<p>Gleicher Lohn für gleiche Arbeit.</p>
</blockquote>
<p>Postler, die in Regionalgesellschaften arbeiten sollen den gleichen Tarifvertrag erhalten wie die Postler im Mutterkonzern.</p>
<p>Anstatt diesen Punkt zu erfüllen, gibt sich ver.di mit einer Lohnerhöhung und der Garantie, dass alte Postler nicht in die Regionalgesellschaften versetzt werden zufrieden. Ungeheuerlich.</p>Marvin DickhausÜber vier Wochen dauerte der Streik der Mitarbeiter der Post. Kernpunkt: Gleicher Lohn für gleiche Arbeit. Postler, die in Regionalgesellschaften arbeiten sollen den gleichen Tarifvertrag erhalten wie die Postler im Mutterkonzern. Anstatt diesen Punkt zu erfüllen, gibt sich ver.di mit einer Lohnerhöhung und der Garantie, dass alte Postler nicht in die Regionalgesellschaften versetzt werden zufrieden. Ungeheuerlich.Dümmer als die Polizei erlaubt2015-06-28T15:24:23+02:002015-06-28T15:24:23+02:00https://marvindickhaus.de/2015/06/duemmer-als-die-polizei-erlaubt<p>Es ist immer wieder herrlich, was für Perlen sich in Pressemitteilungen der Polizei befinden. Ein aktuelles Beispiel der Wiesbadener Polizei: <a href="http://www.presseportal.de/blaulicht/pm/43562/3053139">Einbrecher steckte in der Lüftung</a></p>
<blockquote>
<p>Als die Polizisten jedoch auf eine Leiter vor einem Lüftungsrohr aufmerksam wurden, unter der auch noch eine Kappe und herausgerissene Dämmwolle lag, war klar: Der Täter steckt in der Lüftung. […] Während der Suche drangen plötzlich Geräusche und Taschenlampenschein durch die Ritzen der Lüftungsanlage. Der Täter war lokalisiert – kam aber von selbst nicht aus dem Rohr hinaus. […]</p>
</blockquote>Marvin DickhausEs ist immer wieder herrlich, was für Perlen sich in Pressemitteilungen der Polizei befinden. Ein aktuelles Beispiel der Wiesbadener Polizei: Einbrecher steckte in der Lüftung Als die Polizisten jedoch auf eine Leiter vor einem Lüftungsrohr aufmerksam wurden, unter der auch noch eine Kappe und herausgerissene Dämmwolle lag, war klar: Der Täter steckt in der Lüftung. […] Während der Suche drangen plötzlich Geräusche und Taschenlampenschein durch die Ritzen der Lüftungsanlage. Der Täter war lokalisiert – kam aber von selbst nicht aus dem Rohr hinaus. […]Aus gegebenem Anlass2015-04-01T14:52:46+02:002015-04-01T14:52:46+02:00https://marvindickhaus.de/2015/04/aus-gegebenem-anlass<p>Wei es schon letztes Jahr so lustig war: <a href="http://www.heise.de/-2157959.html">Kabelverstopfung: Telekom ändert Strategie gegen Skin-Effekt</a></p>Marvin DickhausWei es schon letztes Jahr so lustig war: Kabelverstopfung: Telekom ändert Strategie gegen Skin-EffektJob des Tages2015-03-31T19:42:33+02:002015-03-31T19:42:33+02:00https://marvindickhaus.de/2015/03/job-des-tages<p>Der Job des Tages heute: Polizeipfarrer</p>
<blockquote>
<p>Die junge Frau war am Wochenende im Beisein einer Polizeipfarrerin von Beamten befragt worden.</p>
</blockquote>
<p><a href="http://spiegel.de/article.do?id=1026520">Hintergrund</a>.</p>Marvin DickhausDer Job des Tages heute: Polizeipfarrer Die junge Frau war am Wochenende im Beisein einer Polizeipfarrerin von Beamten befragt worden. Hintergrund.Geschützt: Unsere Hochzeit2014-12-18T01:14:48+01:002014-12-18T01:14:48+01:00https://marvindickhaus.de/2014/12/unsere-hochzeit<!--more-->
<p>Am 25. Juli 2014 war es so weit. Ich habe geheiratet. Nach über sieben Jahren in einer festen Beziehung mit Nica war es Zeit für den nächsten Schritt. Wer hätte das schon gedacht, als ich Sie mit gerade einmal siebzehn Jahren kennen lernte?</p>
<h1 id="wie-alles-begann">Wie alles begann…</h1>
<p>Die ersten Eindrücke waren sicherlich nicht die wichtigsten, sonst hätte sich Nica bestimmt nie auf mich eingelassen. 😉</p>
<p><img src="/assets/2014/hochzeit/IMG_0109.jpg" alt="Nica beim Filmdreh" /></p>
<p class="caption">Nica beim Filmdreh. Einer der ersten Tage, die wir uns kannten.</p>
<p><img src="/assets/2014/hochzeit/IMG_0620.jpg" alt="Nica" /></p>
<p><img src="/assets/2014/hochzeit/DSCF0027.jpg" alt="Marvin an 18. Geburtstag" /></p>
<p class="caption">An meinem 18. Geburtstag</p>
<p><img src="/assets/2014/hochzeit/DSCF0006_bearbeitet-1.jpg" alt="Marvin & Nica" /></p>
<p><img src="/assets/2014/hochzeit/IMG_0098.jpg" alt="Marvin & Nica" /></p>
<p class="caption">Unschuldslämmer</p>
<p>Wir waren jung und ineinander verliebt und fuhren schon bald das erste mal gemeinsam in den Urlaub. Zum Beispiel nach Oslo.</p>
<p><img src="/assets/2014/hochzeit/DSCF0011.jpg" alt="Nica in Oslo" /></p>
<p><img src="/assets/2014/hochzeit/DSCF0013.jpg" alt="Jugendherberge in Oslo" /></p>
<p class="caption">Unser Doppelbett. 😉</p>
<p><img src="/assets/2014/hochzeit/DSCF0021.jpg" alt="Aussicht von der Skisprungschanze" /></p>
<p><img src="/assets/2014/hochzeit/DSCF0028.jpg" alt="Platz in Oslo" /></p>
<p><img src="/assets/2014/hochzeit/DSCF0043.jpg" alt="Marvin gut gelaunt" /></p>
<p><img src="/assets/2014/hochzeit/DSCF0052.jpg" alt="Marvin und Nica in Oslo" /></p>
<p>Oder nach Ibiza:</p>
<p><img src="/assets/2014/hochzeit/CIMG1218.jpg" alt="Nica und Marvin in Ibiza" /></p>
<p><img src="/assets/2014/hochzeit/CIMG1274.jpg" alt="Bucht auf Ibiza" /></p>
<p><img src="/assets/2014/hochzeit/CIMG1311.jpg" alt="Auf dem Roller unterwegs" /></p>
<p>Und schließlich führte auch ein Urlaub nach Tunesien. <a href="http://youtu.be/IZ12UEGeJAU">Dort hatten wir auch ein schönes <em>Hotelzimmer</em></a>. 😉</p>
<p><img src="/assets/2014/hochzeit/IMG_5965.jpg" alt="Marvin auf dem Schiff" /></p>
<p><img src="/assets/2014/hochzeit/IMG_5964.jpg" alt="Nica auf dem Schiff" /></p>
<p><img src="/assets/2014/hochzeit/IMG_6012.jpg" alt="Marvin beim Bogenschießen" /></p>
<p><img src="/assets/2014/hochzeit/IMG_6016.jpg" alt="Nica beim Bogenschießen" /></p>
<p><img src="/assets/2014/hochzeit/IMG_5992.jpg" alt="Frisch gemachtes Bett" /></p>
<p><img src="/assets/2014/hochzeit/IMG_6058.jpg" alt="Nica" /></p>
<p><img src="/assets/2014/hochzeit/IMG_6091.jpg" alt="Marvin" /></p>
<p><img src="/assets/2014/hochzeit/IMG_6075.jpg" alt="Nica" /></p>
<p>Und schließlich war es in Tunesien auch soweit. Ich traute mich, die entscheidende Frage zu stellen.</p>
<blockquote>
<p>Nica, willst du meine Frau werden?</p>
</blockquote>
<p>Wie ihr euch sicherlich denken könnt, fiel die Antwort positiv aus. Und wie es der Zufall so will, lernten wir im Urlaub einen Fotografen kennen, der uns noch schnell ein paar wunderschöne Verlobungsfotos schoss.</p>
<p><img src="/assets/2014/hochzeit/IMG_6152.jpg" alt="Frisch verlobt" /></p>
<p><img src="/assets/2014/hochzeit/IMG_6217.jpg" alt="Frisch verlobt" /></p>
<p><img src="/assets/2014/hochzeit/IMG_6239.jpg" alt="Frisch verlobt" /></p>
<p><img src="/assets/2014/hochzeit/IMG_6257.jpg" alt="Frisch verlobt" /></p>
<p>Ein Jahr später, und schwupps war es soweit… Aber halt, davor kam ja noch der Junggesellenabschied. Hier zwei peinliche Bilder, wie ich in Darmstadt rumlaufen durfte. Es war trotzdem ein riesen Spaß und ein hervorragend organisierter Tag, mit Schnitzeljagd, Lasertag, verschiedenen Aufgaben die ich erfüllen musste und einem angenehm ausklingenden Abend.</p>
<p><img src="/assets/2014/hochzeit/Junggesellenabschied.jpg" alt="Marvin beim Junggesellenabschied" /></p>
<p class="caption">Peinlich</p>
<p><img src="/assets/2014/hochzeit/Junggesellenabschied2.jpg" alt="Ein Knicks im Tutu" /></p>
<p class="caption">Ein Knicks darf im Tutu nicht fehlen.</p>
<h2 id="der-hochzeitstag">Der Hochzeitstag</h2>
<p>Die Nacht vor der Hochzeit verbrachten wir getrennt bei unseren Eltern. Ich habe den Tag ganz ruhig angehen lassen. Wie es bei Nica zuging kann ich mir nur vorstellen. In meiner Phantasie läuft sie wild schreiend zum Friseur.</p>
<p><img src="/assets/2014/hochzeit/L1006290.jpg" alt="Marvin noch ganz entspannt" /></p>
<p><img src="/assets/2014/hochzeit/L1006292.jpg" alt="Marvin am Telefon" /></p>
<p><img src="/assets/2014/hochzeit/L1006299.jpg" alt="Gedeck fürs Revert" /></p>
<p>Nachdem ich mich fertig gemacht hatte, machte ich mich auf den Weg, um Nica bei ihren Eltern abzuholen. Unsere Familien begaben sich derweil schonmal zum Standesamt. Ein erster Anruf, als ich gerade das Ortsschild von Wiesbaden passierte, ließ nichts gutes verheißen…</p>
<blockquote>
<p>Oh Gott, fahr bloß langsamer. Ich bin ja noch beim Friseur</p>
</blockquote>
<p>Wie durch ein Wunder war Nica nicht mehr beim Friseur, als ich bei ihr vor der Tür stand. Nur Gwendo, unsere Trauzeugin hatte es beim Friseur noch nicht gepackt. Wir fuhren aber lieber schonmal in Richtung Rathaus. Nach einer kleinen Begrüßung hatte es auch die letzte Nachzüglerin (Gwendo) bis zum Rathaus geschafft, und los ging es ins Standesamt.</p>
<p><img src="/assets/2014/hochzeit/L1006300.jpg" alt="Marvin und Nica im Cabrio" /></p>
<p><img src="/assets/2014/hochzeit/L1006308.jpg" alt="Vor dem Standesamt" /></p>
<p><img src="/assets/2014/hochzeit/L1006311.jpg" alt="Nica im Kleid" /></p>
<p><img src="/assets/2014/hochzeit/L1006313.jpg" alt="Marvin und Nica" /></p>
<p><img src="/assets/2014/hochzeit/L1006320.jpg" alt="Begrüßung vor dem Standesamt" /></p>
<p><img src="/assets/2014/hochzeit/L1006324.jpg" alt="Die Aufregung steigt" /></p>
<p><img src="/assets/2014/hochzeit/L1006334.jpg" alt="Bleib geschmeidig" /></p>
<p><img src="/assets/2014/hochzeit/L1006339.jpg" alt="Die Gesellschaft auf dem Weg ins Standesamt" /></p>
<p><img src="/assets/2014/hochzeit/L1006343.jpg" alt="Marvin und Nica vor dem Standesamt" /></p>
<p><img src="/assets/2014/hochzeit/L1006347.jpg" alt="Im Standesamt vor dem Trauzimmer" /></p>
<p><img src="/assets/2014/hochzeit/L1006353.jpg" alt="Warten vor dem Trauzimmer" /></p>
<p><img src="/assets/2014/hochzeit/L1006355.jpg" alt="Warten vor dem Trauzimmer" /></p>
<p><img src="/assets/2014/hochzeit/L1006356.jpg" alt="Warten vor dem Trauzimmer" /></p>
<p><img src="/assets/2014/hochzeit/L1006360.jpg" alt="Am Traualtar" /></p>
<p>Flankiert von unseren unersetzbaren Trauzeugen nahmen wir am Tisch platz. Unsere Standesbeamtin war noch sehr jung, und hatte bisher weniger als 30 Trauungen vollzogen, was der Sache einen ganz eigenen Charme verlieh. Nach einer kleinen Rede, was die Ehe für uns bedeutet, ging es hinüber zum wichtigsten Moment des Tages: Das Ja-Wort und die rechtlich bindende Unterschrift.</p>
<p><img src="/assets/2014/hochzeit/L1006363.jpg" alt="Bei der Zeremonie" /></p>
<p><img src="/assets/2014/hochzeit/L1006372.jpg" alt="Die Standesbeamtin" /></p>
<p><img src="/assets/2014/hochzeit/L1006375.jpg" alt="Marvin und Nica bei der Zeremonie" /></p>
<p><img src="/assets/2014/hochzeit/L1006379.jpg" alt="Kurz vor dem Ja-Wort" /></p>
<p><img src="/assets/2014/hochzeit/L1006384.jpg" alt="Marvin bei der Unterschrift" /></p>
<p><img src="/assets/2014/hochzeit/L1006385.jpg" alt="Nica bei der Unterschrift" /></p>
<p><img src="/assets/2014/hochzeit/L1006388.jpg" alt="Unser Trauzeuge Sebastian" /></p>
<p><img src="/assets/2014/hochzeit/L1006390.jpg" alt="Maike und Tom" /></p>
<p>Nach meiner beherzten Unterschrift, die für die nächsten 20 Jahre in das Holz des Trautisches geritzt wurde, ging Nica die Sache etwas vorsichtiger an. Nun also gilt es. Unser beides Ja-Wort wurde von der Familie beruhigt aufgenommen, und eine erste kleine Feier stand an, bevor wir uns auf den Weg in die Kirche machten.</p>
<p><img src="/assets/2014/hochzeit/L1006398.jpg" alt="Begutachten der Trauurkunde" /></p>
<p><img src="/assets/2014/hochzeit/L1006408.jpg" alt="Das Brautpaar tritt vor Hochzeitsgesellschaft" /></p>
<p><img src="/assets/2014/hochzeit/L1006410.jpg" alt="Das Brautpaar und die Gesellschaft" /></p>
<p><img src="/assets/2014/hochzeit/L1006427.jpg" alt="Anstoßen auf die Ehebekundung" /></p>
<p><img src="/assets/2014/hochzeit/L1006432.jpg" alt="Anstoßen auf die Ehebekundung" /></p>
<p><img src="/assets/2014/hochzeit/L1006463.jpg" alt="Anstoßen auf die Ehebekundung" /></p>
<p>Während ich also mit meiner Familie schon mal die Kirche schmückte, und später dann unsere Gäste in Empfang nahm, ging es bei Nica <em>hektisch</em> zu, damit das Hochzeitskleid bei der kirchlichen Trauung auch sitzt. Kurz vor 13:30 machte sich dann auch Nica auf den Weg zur Kirche.</p>
<p><img src="/assets/2014/hochzeit/L1006473.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006476.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006486.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006493.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006501.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006505.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006521.jpg" alt="" /></p>
<p>Während es bei Nica in Wirklichkeit also ganz gemächlich zuging, machte ich mir leichte Sorgen, ob Sie denn auch pünktlich ankommen würde.</p>
<p><img src="/assets/2014/hochzeit/L1006528.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/Bild-560.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006529.jpg" alt="" /></p>
<p>Alle Sorgen waren unbegründet, und die Trauung fing pünktlich um 13:30 mit dem Einzug der Braut an. Nica betrat mit einem umwerfenden Brautkleid die Kirche und war die schönste Braut der Welt. Neben <a href="/assets/2014/hochzeit/liedtexte.pdf">drei Gemeindeliedern zum mitsingen</a> gab unser Pfarrer eine schöne Rede, in die er Anekdoten einbaute, die er in unserem Vorgespräch bereits erfahren hatte. Weil er schon in Urlaubsstimmung war (am nächsten Morgen ging es für ihn los) kam er mit seinen Zetteln und Notizen etwas durcheinander, was ihn Schlussendlich aber nicht aus dem Konzept bringen konnte. Das ganze lockerte die Trauung auf und zauberte jedem ein Lächeln auf die Lippen.</p>
<p><img src="/assets/2014/hochzeit/L1006531.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006533.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006536.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/Bild-561.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006542.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006544.jpg" alt="" /></p>
<p>Den Ringtausch hatten wir uns bis hier aufgehoben. Und so gaben wir uns auch hier im Beistand von unseren Trauzeugen, unseren Familien und unseren Freunden das Ja-Wort vor Gott und uns selbst, worauf wir die Ringe tauschten und uns natürlich auch einen Kuss gaben. Zum Schluss noch ein letztes Lied, bevor wir gemeinsam, als Mann und Frau, aus der Kirche auszogen.</p>
<p><img src="/assets/2014/hochzeit/L1006551.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006554.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006555.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006560.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006564.jpg" alt="" /></p>
<p>Jetzt waren natürlich erstmal Glückwünsche angesagt, über die wir uns alle sehr freuten.</p>
<p><img src="/assets/2014/hochzeit/L1006568.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006572.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006575.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006583.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006603.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/Bild-574.jpg" alt="" /></p>
<p>Neben den Glückwünschen gab es eine Überraschung für uns. Wir durften gemeinsam weiße Tauben fliegen lassen, die uns für unsere gemeinsame Zukunft Glück bringen sollten. Nica musste sich erst einmal mit den Tauben anfreunden, so dass eine Taube verfrüht gen Himmel davon flog. Beim zweiten Versuch klappte es dann und wir ließen unsere weißen Vögel gemeinsam fliegen.</p>
<p><img src="/assets/2014/hochzeit/L1006605.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006607.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006616.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/Bild-589.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006621.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/Bild-597.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006626.jpg" alt="" /></p>
<p>Mit diesem schönen Moment verließen wir die Kirche und machten uns mit viel Getöse (und Blechdosen) auf in den Rheingau zu unserer Partylocation, dem <a href="http://www.weingut-johannishof.de/weintempel/" title="Weintempel des Weingut Johannishof">Weintempel in Geisenheim</a>.</p>
<p><img src="/assets/2014/hochzeit/L1006629.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/Bild-584.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/Bild-599.jpg" alt="" /></p>
<p>Dort mussten wir, um Eintritt zu erhalten, erst einmal mit Nagelscheren ein Riesenherz aus einem Bettlacken ausschneiden. Natürlich trug ich Nica anschließend hindurch.</p>
<p>Es gab einige Spiele, fabelhaftes Essen & Trinken, Musik und jede Menge schönen Unterhaltungen. Natürlich darf bei einer Hochzeit auch die Torte und dessen obligatorischer Anschnitt nicht fehlen. An dieser Stelle noch einmal der Dank für all die netten Gaben zum Fest, über die wir uns sehr gefreut haben.</p>
<p><img src="/assets/2014/hochzeit/L1006638.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006651.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006636.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006657.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006659.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006691.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006695.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006699.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006709.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006710.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006713.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006717.jpg" alt="" /></p>
<p class="caption">Wer die Hand oben hat, hat angeblich die Hosen an in der Beziehung</p>
<p><img src="/assets/2014/hochzeit/Bild-649.jpg" alt="" /></p>
<p class="caption">Der Gabentisch</p>
<p>Zusätzlich haben wir die Zeit im Rheingau auch für unsere Fotos genutzt, auf denen uns Sebastian und Firuze gut herausgeputzt haben, und die Rafael vorzüglich in den Kasten bekam.</p>
<p><img src="/assets/2014/hochzeit/L1006800.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006807.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006809.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006773.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006768.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006764.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006740.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006739.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006869.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006860.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006866.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006854.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/L1006883.jpg" alt="" /></p>
<p class="caption">Und ab in die Flitterwochen</p>
<p>Gefeiert wurde noch bis in die Nacht. Ein langer Tag lag damit hinter uns. Eine lange Reise liegt nun vor uns. Wenn wir euch einmal wieder sehen, freuen wir uns einen Teil dieser Reise auch mit euch zu bestreiten. Vielen Dank an alle, die uns unterstützt, beschenkt und dieses Fest möglich gemacht haben.</p>
<p><img src="/assets/2014/hochzeit/L1006906.jpg" alt="Die Hochzeitsgesellschaft" /></p>
<p class="caption">Die Hochzeitsgesellschaft</p>
<h2 id="die-flitterwochen">Die Flitterwochen</h2>
<p>Abschließend noch ein Blick in die Flitterwochen.</p>
<p><img src="/assets/2014/hochzeit/IMG_6593.jpg" alt="" /></p>
<p class="caption">Miami Beach</p>
<p><img src="/assets/2014/hochzeit/IMG_20141213_014824.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/DRCPhoto_0017.jpg" alt="" /></p>
<p class="caption">Schwimmen mit Delfinen</p>
<p><img src="/assets/2014/hochzeit/DRCPhoto_0002.jpg" alt="" /></p>
<p class="caption">Nica mit Luis</p>
<p><img src="/assets/2014/hochzeit/DRCPhoto_0025.jpg" alt="" /></p>
<p class="caption">Marvin mit Cayo</p>
<p><img src="/assets/2014/hochzeit/IMG_6692.jpg" alt="" /></p>
<p><img src="/assets/2014/hochzeit/IMG_6946.jpg" alt="" /></p>
<p class="caption">Dry Tortugas NP</p>
<p><img src="/assets/2014/hochzeit/IMG_6965.jpg" alt="" /></p>
<p class="caption">Der südlichste Punkt der USA</p>
<p><img src="/assets/2014/hochzeit/IMG_6932.jpg" alt="" /></p>
<p class="caption">Fröhliche Weihnachten</p>Marvin DickhausUnikinos in Deutschland2014-11-15T00:18:36+01:002014-11-15T00:18:36+01:00https://marvindickhaus.de/2014/11/unikinos-in-deutschland<p>Während meines Studiums engagiere ich mich schon lange ehrenamtlich und intensiv im <a href="https://www.filmkreis.tu-darmstadt.de" title="Webseite des Filmkreises">Studentischen Filmkreis an der TU Darmstadt e. V.</a> Vor etwa einem halben Jahr wurde ich dazu von Björn Schneider interviewed. Das ganze ist jetzt in einem <a href="https://www.spiegel.de/a-1000881.html" title="Spiegel Online: Uni-Kino: Der Dude im Hörsaal">Artikel auf Spiegel Online</a> publiziert worden. Ich bin in Teil 2 zu sehen.</p>Marvin DickhausWährend meines Studiums engagiere ich mich schon lange ehrenamtlich und intensiv im Studentischen Filmkreis an der TU Darmstadt e. V. Vor etwa einem halben Jahr wurde ich dazu von Björn Schneider interviewed. Das ganze ist jetzt in einem Artikel auf Spiegel Online publiziert worden. Ich bin in Teil 2 zu sehen.Rechnungen mit einer Webapp verwalten – InvoicePlane auf dem Uberspace2014-10-24T02:34:08+02:002014-10-24T02:34:08+02:00https://marvindickhaus.de/2014/10/rechnungen-mit-einer-webapp-verwalten-invoiceplane-auf-dem-uberspace<p class="warning" id="deprecated-u6">Diese Anleitung bezieht sich auf Uberspace 6, welches nicht weiter aktualisiert wird und Ende 2020 sein <a href="https://de.wikipedia.org/wiki/End_of_life">End of life (EOL)</a> erreicht. Für neue Deployments solltet ihr <a href="https://uberspace.de/register">Uberspace 7</a> nutzen. Anleitungen gibt es jetzt einheitlich und mit <a href="https://uberspace.de/en/support/">Support der Ubernauten</a> im <a href="https://lab.uberspace.de/">Uberspace Lab</a>.</p>
<p>Viele kleine und mittlere Unternehmen schreiben nicht sehr viele Rechnungen. Für die wenigen, die Sie schreiben, wäre ein Einheitlicher Auftritt sowie eine leichte Erstellung sehr wünschenswert. Kosten sollen für das schreiben von Rechnungen natürlich nicht entstehen.</p>
<blockquote>
<p>Gibt’s dafür auch ne’ App?</p>
</blockquote>
<p>Wie für viele andere Dinge, so gibt es auch für die Aufgabe der Rechnungsstellung und Verwaltung eigene Apps. Sobald es aber zu <a href="http://de.wikipedia.org/wiki/Free/Libre_Open_Source_Software">FOSS Anwendungen</a> kommt, die auf dem eigenen Server laufen können wird die Auswahl leider stark eingegrenzt. Im Grunde gibt es diese fünf Apps:</p>
<ol>
<li><a href="http://www.simpleinvoices.org/">SimpleInvoices</a> – Basiert auf php, sehr wenig aktive Entwicklung, kein HTML5.</li>
<li><a href="http://bambooinvoice.org/">BambooInvoice</a> – Entwicklung im Januar 2014 eingestellt.</li>
<li><a href="https://www.fusioninvoice.com/">FusionInvoice</a> – Seit November 2013 kostenpflichtig. Letzte freie Version 1.3.4, HTML5.</li>
<li><a href="https://invoiceplane.com/">InvoicePlane</a> – Fork von FusionInvoice, aktive Entwicklung, HTML5.</li>
<li><a href="https://github.com/hillelcoren/invoice-ninja">Invoice Ninja</a> – Mehr als SaaS gedacht, jedoch Open Source. HTML5.</li>
</ol>
<p><em>Scheint wohl ein Trend bei Rechnungsanwendungen zu sein, seinen Namen als <a href="http://de.wikipedia.org/wiki/Binnenmajuske">Binnenversal</a> zu schreiben.</em> 😉</p>
<p>Nachdem mir SimpleInvoices nicht zusagte, begab ich mich auf auf eine längere suche nach Alternativen, die mich schließlich per Zufall zu InvoicePlane brachte. InvoicePlane sieht vielversprechend aus, und hat einige aktive Entwickler, die in Version zwei auch das komplette Framework (von CodeIgniter zu Laravel) wechseln, um aktuelle php-Versionen zu unterstützen.</p>
<blockquote>
<p>InvoicePlane is a self-hosted open source application for managing your invoices, clients and payments.</p>
</blockquote>
<blockquote>
<p>For more information visit <a href="https://invoiceplane.com">InvoicePlane.com</a> or take a look at the <a href="https://demo.invoiceplane.com">demo</a></p>
</blockquote>
<p>Im folgenden möchte ich euch die Installation auf einem Uberspace näher bringen.</p>
<!--more-->
<h2 id="installation-auf-dem-uberspace">Installation auf dem Uberspace</h2>
<p><em>Hinweis: Diese Anleitung bezieht sich auf InvoicePlane Version 1.x.x. Version 2, welche auf einem neuen Framework aufbaut befindet sich in Entwicklung.</em></p>
<p>Zuerst verbinden wir uns per ssh zu unserem Uberspace. Ich beschreibe die Installation von InvoicePlane in einem Unterordner. Genausogut kann man es aber auch im DocumentRoot installieren.</p>
<p>Los geht es mit dem wechsel des Verzeichnisses und dem herunterladen der Anwendung.</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ cd ~/html
$ git clone https://github.com/InvoicePlane/InvoicePlane.git ip
$ cd ip
$ git checkout v1.0.2
</code></pre></div></div>
<p>Mit <code class="language-plaintext highlighter-rouge">git checkout v1.0.2</code> nutzen wir den letzen Release. Bitte prüft bei der vorher, was die aktuellste Version ist. Hier hilft ein <code class="language-plaintext highlighter-rouge">git tag</code> um euch alle Tags anzeigen zu lassen. Das sieht beispielsweise so aus</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ git tag
0.9beta
v1.0.0
v1.0.1
v1.0.2
</code></pre></div></div>
<p>Standardmäßig ist die Deutsche Sprache nicht dabei, was wir nun ändern möchten.</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ wget http://translations.invoiceplane.com/download/project/fusioninvoice.zip
$ unzip fusioninvoice.zip de*
$ cp -r de/* .
$ rm fusioninvoice.zip de/ -r
</code></pre></div></div>
<p>Jetzt sollte InvoicePlane auch Deutsch sprechen. Weiter geht es mit dem generellen Setup. Wir müssen noch die <code class="language-plaintext highlighter-rouge">RewriteBase</code> der <code class="language-plaintext highlighter-rouge">.htaccess</code>-Datei anpassen. Dazu benutzt ihr euren Lieblingseditor.</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ ${EDITOR} .htaccess
</code></pre></div></div>
<p>Bitte fügt nach <code class="language-plaintext highlighter-rouge">RewriteEngine On</code> eine Zeile mit <code class="language-plaintext highlighter-rouge">RewriteBase /ip</code> ein. Jetzt können wir die Installationsseite aufrufen. Bei euch z.B. unter <code class="language-plaintext highlighter-rouge">https://<user>.<server>.uberspace.de/ip/setup</code></p>
<p>Bevor wir allerdings die Installation abschließen können benötigen wir noch eine Datenbank für InvociePlane</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ mysql -e "CREATE DATABASE ${USER}_invoiceplane CHARACTER SET utf8"
</code></pre></div></div>
<p>Bei der Installation könnt ihr nun auf der Datenbank-Seite folgende Daten angeben:</p>
<ul>
<li>Host: 127.0.0.1</li>
<li>Username: Euer Name bei Uberspace</li>
<li>Password: Das Passwort, aus <code class="language-plaintext highlighter-rouge">$ cat ~/.my.cnf</code></li>
<li>Database: <name>_invoiceplane</li>
</ul>
<p>Während ihr einige Male weiter drückt, werden neue Tabellen erzeugt, usw. Schließlich könnt ihr euch einen neuen Benutzer erstellen, und euch anschließend anmelden.</p>
<h2 id="fertig">Fertig</h2>
<p>Das wars. InvoicePlane läuft auf eurem Uberspace. Ab hier werden die Anforderungen wohl recht unterschiedlich. Darum sei für die Einrichtung auf das <a href="https://github.com/InvoicePlane/InvoicePlane/wiki" title="InvoicePlane Wiki">Wiki</a> und das <a href="https://community.invoiceplane.com/" title="InvoicePlane Community Forum">Community Forum</a> verwiesen.</p>
<h2 id="sicherheitshinweise">Sicherheitshinweise</h2>
<p>Die Seite <code class="language-plaintext highlighter-rouge">https://<user>.<server>.uberspace.de/ip/setup</code> kann von jedem aufgerufen werden! <a href="https://github.com/InvoicePlane/InvoicePlane/issues/20#issuecomment-58551108">Laut dem Entwicker kann hierdurch zwar nichts kaputt gehen</a>, trotzdem muss das ja nicht sein. Deswegen fügen wir als erste Zeile in unsere <code class="language-plaintext highlighter-rouge">.htaccess</code>-Datei folgende Zeile ein:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>#Redirect from /setup to home
Redirect /ip/setup /ip
</code></pre></div></div>
<p>Damit werden alle Anfragen die an setup gehen sollen sofort umgeleitet.</p>
<p>Weiterhin solltet ihr dafür sorgen, dass https erzwungen wird. Sonst gehen beispielsweise die Passwörter beim Login im Klartext durchs Internet. Wie das geht, erklären ebenfalls die Ubernauten <a href="https://wiki.uberspace.de/webserver:htaccess#ssl_erzwingen">hier</a>.</p>
<h2 id="invoiceplane-aktualisieren">InvoicePlane aktualisieren</h2>
<p>Eine Aktualisierung gestaltet sich mit git recht einfach.</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ cd ¨/html/ip
$ git stash
$ git pull origin master
$ git stash pop
</code></pre></div></div>
<p>Wenn nun ein neuer tag dabei ist könnt ihr auf die neue Version aktualisieren indem ihr <code class="language-plaintext highlighter-rouge">git checkout v.1.X.Y</code> aufruft mit der entsprechenden version.</p>
<p>Anschließend muss noch <code class="language-plaintext highlighter-rouge">https://<user>.<server>.uberspace.de/ip/setup</code> besucht werden um das Update zu vervollständigen. Solltet ihr dem Sicherheitshinweis gefolgt sein, müsst ihr dazu natürlich die <code class="language-plaintext highlighter-rouge">Redirect</code>-Zeile in eurer <code class="language-plaintext highlighter-rouge">.htaccess</code> auskommentieren (mit einer <code class="language-plaintext highlighter-rouge">#</code> vor der Zeile) und anschließend wieder einkommentieren.</p>Marvin DickhausDiese Anleitung bezieht sich auf Uberspace 6, welches nicht weiter aktualisiert wird und Ende 2020 sein End of life (EOL) erreicht. Für neue Deployments solltet ihr Uberspace 7 nutzen. Anleitungen gibt es jetzt einheitlich und mit Support der Ubernauten im Uberspace Lab. Viele kleine und mittlere Unternehmen schreiben nicht sehr viele Rechnungen. Für die wenigen, die Sie schreiben, wäre ein Einheitlicher Auftritt sowie eine leichte Erstellung sehr wünschenswert. Kosten sollen für das schreiben von Rechnungen natürlich nicht entstehen. Gibt’s dafür auch ne’ App? Wie für viele andere Dinge, so gibt es auch für die Aufgabe der Rechnungsstellung und Verwaltung eigene Apps. Sobald es aber zu FOSS Anwendungen kommt, die auf dem eigenen Server laufen können wird die Auswahl leider stark eingegrenzt. Im Grunde gibt es diese fünf Apps: SimpleInvoices – Basiert auf php, sehr wenig aktive Entwicklung, kein HTML5. BambooInvoice – Entwicklung im Januar 2014 eingestellt. FusionInvoice – Seit November 2013 kostenpflichtig. Letzte freie Version 1.3.4, HTML5. InvoicePlane – Fork von FusionInvoice, aktive Entwicklung, HTML5. Invoice Ninja – Mehr als SaaS gedacht, jedoch Open Source. HTML5. Scheint wohl ein Trend bei Rechnungsanwendungen zu sein, seinen Namen als Binnenversal zu schreiben. 😉 Nachdem mir SimpleInvoices nicht zusagte, begab ich mich auf auf eine längere suche nach Alternativen, die mich schließlich per Zufall zu InvoicePlane brachte. InvoicePlane sieht vielversprechend aus, und hat einige aktive Entwickler, die in Version zwei auch das komplette Framework (von CodeIgniter zu Laravel) wechseln, um aktuelle php-Versionen zu unterstützen. InvoicePlane is a self-hosted open source application for managing your invoices, clients and payments. For more information visit InvoicePlane.com or take a look at the demo Im folgenden möchte ich euch die Installation auf einem Uberspace näher bringen.Bruchstücke2014-10-23T16:52:22+02:002014-10-23T16:52:22+02:00https://marvindickhaus.de/2014/10/bruchstuecke<p><a href="http://heise.de/-2430961">Berlin setzt in Zukunft wieder auf MS Office</a>. Begründung: Man wolle</p>
<blockquote>
<p>den heutigen Ansprüchen an Informationstechnik und Informationssicherheit vollumfänglich entsprechen</p>
</blockquote>
<p>Informationssicherheit. Dass ich nicht lache.</p>
<h2 id="außerdem">Außerdem</h2>
<p><a href="http://www.golem.de/news/netzangriffe-ddos-botnetz-weitet-sich-ungebremst-aus-1410-110024.html">Eine DDoS Maleware breitet sich derzeit ungehindert aus</a>. Erst nur auf Linuxservern, nun auch auf Windows.</p>
<blockquote>
<p>Die Angreifer nutzen sogar übernommene Rechner als C&C-Server, […] sogar einen Server eines US-Unternehmens, das Maßnahmen gegen DDoS-Angriffe anbietet.</p>
</blockquote>
<p>Shit happens.</p>Marvin DickhausBerlin setzt in Zukunft wieder auf MS Office. Begründung: Man wolle den heutigen Ansprüchen an Informationstechnik und Informationssicherheit vollumfänglich entsprechen Informationssicherheit. Dass ich nicht lache. Außerdem Eine DDoS Maleware breitet sich derzeit ungehindert aus. Erst nur auf Linuxservern, nun auch auf Windows. Die Angreifer nutzen sogar übernommene Rechner als C&C-Server, […] sogar einen Server eines US-Unternehmens, das Maßnahmen gegen DDoS-Angriffe anbietet. Shit happens.Das blüht Deutschland mit Smart Metern2014-10-18T10:48:14+02:002014-10-18T10:48:14+02:00https://marvindickhaus.de/2014/10/das-blueht-deutschland-mit-smart-metern<p>Wenn die Hersteller schon so geizig sind, dass der ROM nicht für ein Firmware Update reicht, sind <a href="http://www.golem.de/news/intelligente-stromzaehler-gehackte-smart-meter-machen-lichter-aus-1410-109923.html">solche Artikel</a> nun wirklich kein Wunder. Ich kann nur hoffen, dass Deutschland von Smart Metern in der einzelnen Wohnung Abstand nimmt, und das höchstens auf Straßenblock-Ebene realisiert.</p>Marvin DickhausWenn die Hersteller schon so geizig sind, dass der ROM nicht für ein Firmware Update reicht, sind solche Artikel nun wirklich kein Wunder. Ich kann nur hoffen, dass Deutschland von Smart Metern in der einzelnen Wohnung Abstand nimmt, und das höchstens auf Straßenblock-Ebene realisiert.Journalisten und ihr Sprachproblem2014-09-30T02:20:24+02:002014-09-30T02:20:24+02:00https://marvindickhaus.de/2014/09/journalisten-und-ihr-sprachproblem<p><a href="http://taz.de/!145007/" title="Ein dubioses Hörproblem">Sehr lesenswerter Artikel der taz.</a></p>
<p>Es geht um <em>Raed Saleh</em>, einen Kandidat für das Amt des Bürgermeisters in Berlin, und um die Medien, die ihm fehlerhaftes Deutsch attestieren.</p>
<blockquote>
<p>Saleh spricht 1.257 Wörter, und es gibt nur wenige Stellen, an denen sein Deutsch nicht ganz korrekt ist. […] Insgesamt gibt es 9 solcher Stellen, also ein Fehler alle 140 Wörter.</p>
<p>[…] Die meisten Menschen machen, wenn sie frei sprechen, wesentlich mehr Fehler als Raed Saleh. So auch mein geschätzter Kollege Stefan Alberti in der Talkshow: […] Es gibt alle 34 Wörter eine Stelle, die nicht ganz richtig ist.</p>
</blockquote>Marvin DickhausSehr lesenswerter Artikel der taz. Es geht um Raed Saleh, einen Kandidat für das Amt des Bürgermeisters in Berlin, und um die Medien, die ihm fehlerhaftes Deutsch attestieren. Saleh spricht 1.257 Wörter, und es gibt nur wenige Stellen, an denen sein Deutsch nicht ganz korrekt ist. […] Insgesamt gibt es 9 solcher Stellen, also ein Fehler alle 140 Wörter. […] Die meisten Menschen machen, wenn sie frei sprechen, wesentlich mehr Fehler als Raed Saleh. So auch mein geschätzter Kollege Stefan Alberti in der Talkshow: […] Es gibt alle 34 Wörter eine Stelle, die nicht ganz richtig ist.Eduroam an der TU Darmstadt unter Arch Linux mit netctl2014-09-20T19:13:56+02:002014-09-20T19:13:56+02:00https://marvindickhaus.de/2014/09/eduroam-an-der-tu-darmstadt-unter-arch-linux-mit-netctl<p>Nach ein bisschen hin und her probieren habe ich auch endlich eine funktionierende Konfigurationsdatei für Eduroam unter netctl für die TU Darmstadt hinbekommen.<!--more--></p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Description='Eduroam-profile for <TU-ID>'
Interface=<dein-wlan-interface>
Connection=wireless
Security='wpa-configsection'
IP=dhcp
ESSID=eduroam
WPAConfigSection=(
'ssid="eduroam"'
'proto=WPA2'
'key_mgmt=WPA-EAP'
'eap=PEAP'
'anonymous_identity="anonymous@tu-darmstadt.de"'
'identity="<deine-TU-ID>@tu-darmstadt.de"'
'password=hash:<passwort-hash>'
'ca_cert="/etc/ssl/certs/Deutsche_Telekom_Root_CA_2.pem"'
'phase2="auth=MSCHAPv2"'
)
</code></pre></div></div>
<p>Da wir PEAP nutzen, ist es möglich das Passwort als Hash zu speichern. Der Hash errechnet sich über die Konsole.</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ tr -d '[:space:]' | iconv -t utf16le | openssl md4
</code></pre></div></div>
<p>Den Befehl ausführen, Passwort eintippen, Enter drücken, Strg+D. Schon haben wir den Hash. Sollte das nicht klappen, kann man es ja erstmal mit dem Klartext testen. Dazu ändert man die Passwortzeile zu <code class="language-plaintext highlighter-rouge">'password="<passwort>"'</code>.</p>Marvin DickhausNach ein bisschen hin und her probieren habe ich auch endlich eine funktionierende Konfigurationsdatei für Eduroam unter netctl für die TU Darmstadt hinbekommen.Ein paar Links2014-09-17T14:49:09+02:002014-09-17T14:49:09+02:00https://marvindickhaus.de/2014/09/ein-paar-links<p>Was ich schon seit geraumer Zeit verbloggen wollte sind diese beiden Links, die ein wenig mehr Aufmerksamkeit verdient haben.</p>
<p>Die ZEIT schreibt über <a href="http://www.zeit.de/2014/34/strand-sand-verschwinden">die Strände dieser Welt, und was passiert, wenn wir diese zubauen</a>. Es ist erschreckend, wie viel inzwischen künstlich nachgeholfen wird.</p>
<p>Boris Rosenkranz schreibt über <a href="http://www.stefan-niggemeier.de/blog/18878/dumme-nuesse/">Haselnüsse und warum man bald Millionär sein muss, um sich Nutella leisten zu können</a>.</p>Marvin DickhausWas ich schon seit geraumer Zeit verbloggen wollte sind diese beiden Links, die ein wenig mehr Aufmerksamkeit verdient haben. Die ZEIT schreibt über die Strände dieser Welt, und was passiert, wenn wir diese zubauen. Es ist erschreckend, wie viel inzwischen künstlich nachgeholfen wird. Boris Rosenkranz schreibt über Haselnüsse und warum man bald Millionär sein muss, um sich Nutella leisten zu können.