<?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>Netzwerke Archive - dahlen.org</title>
	<atom:link href="https://www.dahlen.org/tag/netzwerke/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.dahlen.org/tag/netzwerke/</link>
	<description>Private Webseite der Familie Dahlen</description>
	<lastBuildDate>Thu, 17 Mar 2022 09:23:28 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.3</generator>
	<item>
		<title>ASRock DeskMini A300</title>
		<link>https://www.dahlen.org/2020/03/06/asrock-deskmini-a300/</link>
					<comments>https://www.dahlen.org/2020/03/06/asrock-deskmini-a300/#comments</comments>
		
		<dc:creator><![CDATA[christoph]]></dc:creator>
		<pubDate>Fri, 06 Mar 2020 17:00:00 +0000</pubDate>
				<category><![CDATA[Hobby]]></category>
		<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Netzwerke]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<guid isPermaLink="false">https://www.dahlen.org/?p=2980</guid>

					<description><![CDATA[<p>Mein HP ProLiant N54L ist in die Jahre gekommen. CPU und Speicher stossen an ihre Grenzen. Der ASRock DeskMini A300 tritt an, diese Grenzen zu überwinden.</p>
<p>Der Beitrag <a href="https://www.dahlen.org/2020/03/06/asrock-deskmini-a300/">ASRock DeskMini A300</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Seit einigen Jahren dient ein HP ProLiant N54L Microserver mir als &#8222;Heimserver&#8220;. Ein grundsolides Gerät, leise, wartungsarm, stabil. Die AMD Turion II CPU ist allerdings festverlötet und stößt mit ihren 2,2 GHz an ihre Grenzen, ebenso wie die max. 8 GB RAM. Zeit für etwas Neues, stärker, größer &#8211; und kleiner: Der ASRock DeskMini A300.</p>



<span id="more-2980"></span>



<h2 class="wp-block-heading">Der &#8222;Alte&#8220;</h2>



<p>Der N54L Generation 7 (G7) ist ein Microserver auf Basis der AMD Turion II Neo Dual-Core CPU. Sie ist auf einem HP Custom Mainboard verlötet und bietet 2x 2,2&nbsp;GHz. Ihr zur Seite stehen aktuell 8&nbsp;GB RAM und 4x 2&nbsp;TB HDDs (WD Red) im RAID 5 Verbund.</p>



<p>Auf diesem Server laufen Dienste, welche in unserem Haus durch mich und andere Familienmitglieder genutzt werden. Zunächst natürlich <a href="#software">Homegear</a> und <a href="#software">Home Assistant</a> zur Heimautomatisierung. Aber auch Datenbanken und Datei-Freigaben für die Windows-Geräte im Haus. Und eben auch mehrere <a href="#software">Minecraft</a> Server &#8211; zur Unterhaltung. </p>



<p>All das bringt die CPU immer deutlicher an ihre Grenzen, es kommt zu Mikrorucklern (&#8222;Lags&#8220;) in Minecraft und zwischen auslösendem Ereignis und Reaktion des Smart Home können schonmal Sekunden vergehen. Man liegt also bereits im Dunkeln, wenn die Beleuchtung endlich angeht.</p>



<h2 class="wp-block-heading">Der &#8222;Neue&#8220;</h2>



<p>Zeit also für etwas Neues, was größer (= leistungsstärker)  und gleichzeitig kleiner (= raumsparender) ist. Von den insgesamt 5,6 TB  Plattenplatz waren nämlich dauerhaft nie mehr als 600 GB belegt. </p>



<p>Es war schnell klar, dass ein Eigenbau zum Einsatz kommen sollte. Möglichst klein, doch mit ausreichend aktueller Hardware und Platz für mindestens 2 Festplatten. Intel NUC oder Gigabyte BRIX Systeme kamen daher nicht infrage. Außerdem sollte wieder <a href="#software">Ubuntu</a> Linux zu Einsatz kommen. Damit schieden NAS-Systeme von Synology oder QNAP aus.</p>



<p>Nach einiger Recherche stieß ich auf System, das für meine Anforderung wie gemacht schien: Den <a href="#produkte">ASRock DeskMini A300</a> Barebone.</p>



<figure class="wp-block-image size-large"><a href="https://www.dahlen.org/wp-content/uploads/2020/03/img_4384-scaled-1.jpg"><img decoding="async" src="https://www.dahlen.org/wp-content/uploads/2020/03/img_4384-1920x1174.jpg" alt="Größenvergleich, Zauberwürfel, A300, N54L" class="wp-image-3019"/></a><figcaption>ASRock A300 und HP N54L im Größenvergleich</figcaption></figure>



<h3 class="wp-block-heading">ASRock DeskMini A300</h3>



<p>Der <a href="#produkte">DeskMini A300</a> ist ein Barebone im Mini-STX Format. Die Abmessungen des Gehäuses betragen 155x155x80 mm. Auf dem Mainboard befindet sich ein AM4 Sockel mit A300 Chipsatz für moderne AMD CPUs der Picasso, Raven Ridge oder Bristol Ridge Familie.</p>



<p>Somit sind viele aktuelle AMD Athlon und Ryzen CPUs nutzbar, solange die TWP nicht 65 W übersteigt. Außerdem muss eine CPU mit integrierter Grafik (<em>APU</em> bzw. <em>iGPU</em>) zum Einsatz kommen. Das Bild-Signal kann via HDMI, Display Port oder D-SUB/VGA abgegriffen werden.</p>



<p>Verfügbar sind weiterhin M.2 Slots (Type 2280), SATA 6GB/s, Gigabit-LAN und USB 3.1 vorhanden. Der maximale Speicherausbau beträgt 64 GB und im Gehäuse haben 2 2,5&#8243; HDDs bis max. 9mm Dicke Platz.</p>



<h3 class="wp-block-heading">AMD Athlon 200GE</h3>



<p>Die <a href="#produkte">AMD Athlon 200GE</a> APU ist eine Low-Cost CPU aus der Raven Ridge Familie mit 2 Kernen in Zen-Architektur. Sie bietet 4 logische CPUs und taktet mit bis zu 3,2 GHz. </p>



<p>Neben der CPU ist noch eine Vega 3 Grafikeinheit verbaut, so dass auf eine dedizierte Lösung verzichtet werden kann. Mit 35 W TWP passt sie locker in die Spezifikation des <a href="#produkte">DeskMini A300</a> und liegt leistungstechnisch doch weit über dem Turion II des N54L.</p>



<h3 class="wp-block-heading">Speicher</h3>



<p>Ein Barebone muss neben der CPU natürlich noch mit flüchtigem und permanentem Speicher bestückt werden. Der <a href="#produkte">Athlon 200GE</a> unterstützt DDR4-2666 Speicher, entsprechend den Vorgaben des Boards kommt ein 2x 8 GB Kit von <a href="#produkte">Crucial</a> zum Einsatz. </p>



<p>Als Medium für das Betriebssystem (Ubuntu Server 18.04 LTS) kommt eine <a href="#produkte">Samsung PM981</a> 256 GB SSD im M.2 2280 Format zum Einsatz. Über NVMe angesteuert, können bis zu 3GB/s gelesen werden. Als &#8222;Bulk Version&#8220; ohne Kühlkörper ist sie für knapp 50 EUR erhältlich.</p>



<figure class="wp-block-image size-large"><a href="https://www.dahlen.org/wp-content/uploads/2020/03/img_4385-scaled-1.jpg"><img decoding="async" src="https://www.dahlen.org/wp-content/uploads/2020/03/img_4385-1920x2220.jpg" alt="ASRock A300 Mainboard" class="wp-image-3020"/></a><figcaption>A300 mit bestücktem Mainboard</figcaption></figure>



<p>Die eigentlichen Nutzdaten werden auf 2 <a href="#produkte">Seagate BarraCuda</a> 2000 GB HDDs abgelegt, welche über md-tools zu einem RAID 1 (also gespiegelt) verbunden sind. Bis zu 125 MB/s lesender Transfer sind möglich. Aufgrund der beengten Platzverhältnisse können keine HDDs höher als 9 mm verbaut werden, die Seagates sind 7,5 mm dick. </p>



<h2 class="wp-block-heading">Fazit</h2>



<p>Der Eigenbau auf Basis des DeskMini A300 erfüllt meine Anforderungen bis dato in vollem Umfang. Er ist klein, leistungsstark, dabei leise und günstig in Anschaffung und Unterhalt.  Der gesamte Setup hat ca. 450 EUR gekostet.  </p>



<p>Der Zusammenbau war kinderleicht, lediglich die Montage der zweiten HDD ist etwas aufwendiger, dann muss das Mainboard demontiert werden. </p>



<figure class="wp-block-image size-large"><a href="https://www.dahlen.org/wp-content/uploads/2020/03/img_4386-scaled-1.jpg"><img decoding="async" src="https://www.dahlen.org//wp-content/uploads/2020/03/img_4386-1920x1188.jpg" alt="ASRock A300 Festplatten" class="wp-image-3018"/></a><figcaption>A300 Mainboard-Träger mit montierten Festplatten</figcaption></figure>



<p>Die Geräuschentwicklung mit dem &#8222;boxed&#8220; Kühler des Athlon 200GE ist moderat, für Wohn- oder Schlafzimmer sicher zu laut, steht mir allerdings ein eigener Raum für die &#8222;Haus-IT&#8220; zur Verfügung.</p>



<h2 class="wp-block-heading">Ausblick</h2>



<p>Die Migration des N54L auf den neuen Server wird sicherlich einige Zeit in Anspruch nehmen. Vorteilhaft ist, dass schon auf dem alten Server <a href="#software">Docker</a> und Docker Compose zum Einsatz kommen. Nutz- und Konfigurationsdaten der Anwendungen sind daher leicht identifizier- und kopierbar.</p>



<p>Um meine &#8222;Skills&#8220; im Bereich Container Orchestrierung auszubauen, werde ich wohl <a href="#software">Kubernetes</a> oder <a href="#software">Rancher K3s</a> installieren. Letzteres läuft schon auf den <a href="#produkte">Raspberry Pi</a>s im Haus, so dass ein Cluster mit 4 Nodes entstünde.</p>



<p>Sollte da neue System wider Erwarten an seine Grenzen stoßen, bleiben mir mehrere Möglichkeiten der &#8222;vertikalen&#8220; Skalierung: Eine leistungsstärkere CPU und/oder mehr Hautpspeicher. Auch eine &#8222;horizontale&#8220; Skalierung ist möglich, durch mehrere Duplikate des neuen Systems. Das Volumen eines N54L (ca. 14 Liter) ist auf jeden Fall ausreichend für bis zu 6 ASRock DeskMinis.</p>



<p></p>



<h2 class="wp-block-heading">Weiterführende Informationen</h2>



<h3 class="wp-block-heading" id="software"> Software und Dokumentation </h3>



<ul class="wp-block-list"><li><a href="https://ubuntu.com/download/server" target="_blank" rel="noreferrer noopener" aria-label=" (öffnet in neuem Tab)">Ubuntu Server</a></li><li><a href="https://hub.docker.com/editions/community/docker-ce-server-ubuntu" target="_blank" rel="noreferrer noopener" aria-label=" (öffnet in neuem Tab)">Docker Community Edition</a> für Ubuntu</li><li><a href="https://k3s.io/">Rancher K3s</a></li><li><a href="https://prometheus.io/" target="_blank" rel="noreferrer noopener" aria-label="Prometheus (öffnet in neuem Tab)">Prometheus</a></li><li><a href="https://homegear.eu/" target="_blank" rel="noreferrer noopener" aria-label=" (öffnet in neuem Tab)">Homegear</a></li><li><a href="https://home-assistant.io/" target="_blank" rel="noreferrer noopener" aria-label=" (öffnet in neuem Tab)">Home Assistant</a></li><li><a href="https://minecraft.net/" target="_blank" rel="noreferrer noopener" aria-label=" (öffnet in neuem Tab)">Minecraft</a></li></ul>



<h3 class="wp-block-heading" id="produkte">Produkte<a href="https://www.dahlen.org/impressum#affiliate">*</a></h3>



<ul class="wp-block-list"><li><a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(1830954062, {de : 'A-B07P9GL1LN'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B07P9GL1LN?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B07P9GL1LN&amp;SubscriptionId=">ASRock DeskMini A300 Barebone</a> (<a href="https://www.asrock.com/nettop/AMD/DeskMini%20A300%20Series/index.de.asp#Specification" target="_blank" rel="noreferrer noopener" aria-label=" (öffnet in neuem Tab)">Produktseite</a>)</li><li><a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(453181953, {de : 'A-B07HJWVJDN'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B07HJWVJDN?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B07HJWVJDN&amp;SubscriptionId=">AMD Athlon 200GE APU boxed (YD200GC6FBBOX)</a> (<a href="https://www.amd.com/de/products/apu/amd-athlon-200ge" target="_blank" rel="noreferrer noopener" aria-label=" (öffnet in neuem Tab)">Produktseite</a>)</li><li><a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(1444738118, {de : 'A-B071KP8CGG'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B071KP8CGG?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B071KP8CGG&amp;SubscriptionId=">Crucial DDR4-2666 16GB Kit (CT2K8G4SFS8266)</a></li><li><a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(782403154, {de : 'A-B07CGCJJMV'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B07CGCJJMV?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B07CGCJJMV&amp;SubscriptionId=">Samsung PM981 256GB M.2 SSD (MZVLB256HAHQ)</a></li><li><a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(1655834382, {de : 'A-B01LXRWWB6'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B01LXRWWB6?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B01LXRWWB6&amp;SubscriptionId=">Seagate BarraCuda 2000GB HDD (ST2000LM015)</a> (<a href="https://www.seagate.com/www-content/datasheets/pdfs/barracuda-2-5-DS1907-2-1907DE-de_DE.pdf" target="_blank" rel="noreferrer noopener" aria-label="Datenblatt (öffnet in neuem Tab)">Datenblatt</a>)</li><li><a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(1366691672, {de : 'A-B07PGWXQCM'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B07PGWXQCM?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B07PGWXQCM&amp;SubscriptionId=">Western Digital RED 2TB 3,5″ HDD (WD20EFAX)</a></li></ul>
<p>Der Beitrag <a href="https://www.dahlen.org/2020/03/06/asrock-deskmini-a300/">ASRock DeskMini A300</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dahlen.org/2020/03/06/asrock-deskmini-a300/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Raspberry Pi Zero W &#8222;headless&#8220; Setup &#8211; so geht&#8217;s</title>
		<link>https://www.dahlen.org/2017/10/12/raspberry-pi-zero-w-headless-setup/</link>
					<comments>https://www.dahlen.org/2017/10/12/raspberry-pi-zero-w-headless-setup/#comments</comments>
		
		<dc:creator><![CDATA[christoph]]></dc:creator>
		<pubDate>Thu, 12 Oct 2017 06:30:33 +0000</pubDate>
				<category><![CDATA[Hobby]]></category>
		<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Internet of Things]]></category>
		<category><![CDATA[Netzwerke]]></category>
		<category><![CDATA[Raspberry]]></category>
		<category><![CDATA[Raspian]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<guid isPermaLink="false">https://www.dahlen.org/?p=2154</guid>

					<description><![CDATA[<p>Der Raspberry Pi Zero W kommt für wenig Geld daher. Er verfügt ab Werk über WLAN (und Bluetooth). Sind Adapter für Mini-HDMI und Micro-USB nicht im Haus, kommt ein Setup mit Monitor und Tastatur nicht infrage. Und die fehlende LAN-Buchse am Zero bedeutet: Der Kaugummistreifen muß erstmal ins WLAN. Eine lösbare Herausforderung &#8230; Den Zero&#160;W [&#8230;]</p>
<p>Der Beitrag <a href="https://www.dahlen.org/2017/10/12/raspberry-pi-zero-w-headless-setup/">Raspberry Pi Zero W &#8222;headless&#8220; Setup &#8211; so geht&#8217;s</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Der Raspberry Pi Zero W kommt für wenig Geld daher. Er verfügt <q>ab Werk</q> über WLAN (und Bluetooth). Sind Adapter für Mini-HDMI und Micro-USB nicht im Haus, kommt ein Setup mit Monitor und Tastatur nicht infrage. Und die fehlende LAN-Buchse am Zero bedeutet: Der <q>Kaugummistreifen</q> muß erstmal ins WLAN.</p>



<p>Eine lösbare Herausforderung &#8230;<br>
<br>
Den Zero&nbsp;W gibt es für unter 15 EUR (ohne Zubehör) bzw. für unter 30 Euro als <q>Essential</q> Paket (z.B. bei <a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(691362034, {de : 'A-B06XCYGP27'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B06XCYGP27?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B06XCYGP27&amp;SubscriptionId=">Amazon</a>). Für die Installation wird eine <a title="Dokumentation SD-Karten" href="https://www.raspberrypi.org/documentation/installation/sd-cards.md" target="_blank" rel="noopener">geeignete</a> Micro-SD-Karte mit mindestens 8GB Kapazität benötigt. Außerdem ein Kartenleser (z.B. von Lexar, bei <a onMouseOut="al_link_out()" onMouseOver="al_gen_multi(1595037672, {de : 'A-B00V3IEMNO'}, 'de', 'default');"  rel="nofollow" target="_blank" href="http://www.amazon.de/gp/product/B00V3IEMNO?ie=UTF8&amp;linkCode=xm2&amp;camp=2025&amp;creative=6738&amp;tag=dahlenorg-21&amp;creativeASIN=B00V3IEMNO&amp;SubscriptionId=">Amazon</a>), welcher an einen weiteren Rechner angeschlossen wird.</p>



<span id="more-2154"></span>



<h2 class="wp-block-heading">Vorbereitung</h2>



<p>Das Bespielen der SD-Karte mit <a title="Raspian Downloads" href="https://www.raspberrypi.org/software/operating-systems/" target="_blank" rel="noopener">Raspbian</a> lt. <a title="Installations-Anleitung" href="https://www.raspberrypi.org/documentation/installation/installing-images/README.md" target="_blank" rel="noopener">Install Guide</a> ist schnell erledigt und mündet folgender Partitionierung:</p>



<ol class="wp-block-list"><li>die boot-Partition, welche das DOS-Dateisystem nutzt und</li><li>die root-Partition, welche das Linux Ext-Dateisystem nutzt.</li></ol>



<p>Wir werden ausschließlich den Inhalt der <b>boot</b>-Partition erweitern, dank DOS-Dateisystem sind die folgenden Änderungen unter allen populären Betriebssystemen möglich.</p>



<h3 class="wp-block-heading">OpenSSH-Service aktivieren</h3>



<p>Gemäß offizieller <a href="https://www.raspberrypi.org/documentation/remote-access/ssh/README.md" target="_blank" rel="noopener">Anleitung</a> (Abs.&nbsp;3) ist im Stammverzeichnis der boot-Partition eine Datei namens <span class="tt">ssh</span> zu erstellen. Die reine Existenz dieser Datei führt im Raspian-Boot-Prozess dazu, dass der OpenSSH Server automatisch aktiviert wird und eingehende Verbindungen auf Port 22 annimmt.</p>



<h3 class="wp-block-heading">WLAN-Konfiguration vorbereiten</h3>



<p>Der zweite Schritt ist etwas umfangreicher. Ebenfalls im Stammverzeichnis der boot-Partition wird die Datei <span class="tt">wpa_supplicant.conf</span> erstellt. Lt. ungeprüfter Aussagen muss sie Linux-Zeilenenden aufweisen. Wie in den <a title="Raspberry Pi Blog Post" href="https://www.raspberrypi.org/blog/another-update-raspbian/" target="_blank" rel="noopener">Hintergrundinformationen</a> angekündigt, wird diese Datei beim Start automatisch an die <q>richtige</q> Stelle <span class="tt">/etc/wpa_supplicant/</span> verschoben.</p>



<p>Die Datei hat folgenden Inhalt:
</p>



<pre class="wp-block-code"><code>country=DE 
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev 
update_config=1 
network={
     ssid="WLAN SSID"
     scan_ssid=1
     psk="WLAN PASSWORT"
     key_mgmt=WPA-PSK
}</code></pre>



<p>Die Werte <span class="tt">WLAN SSID</span> und <span class="tt">WLAN PASSWORT</span> sind natürlich durch die tatsächlichen Angaben zu ersetzen. Befindet man sich nicht in Deutschland, ist <span class="tt">DE</span> durch den ISO-Code des aktuellen Landes zu ersetzen.</p>



<h2 class="wp-block-heading">Start</h2>



<p>Damit sind die Vorbereitungen für den ersten Start abgeschlossen. Die SD-Karte wird nun in den Raspberry Pi gesteckt und dieser mit Energie versorgt. Nach einigen Sekunden sollte der Raspberry&nbsp;Pi im WLAN auftauchen, als Standard-Hostname wird dabei <em>raspberrypi</em> verwendet. Im WLAN-Access Point sollte sich auch die vergebene IP-Adresse ermitteln lassen. </p>



<p>Mittels eines geeigneten SSH-Clients kann nun die Anmeldung erfolgen. Das Passwort zum Standard-Benutzer <span class="tt">pi</span> ist in der offiziellen Dokumentation zu finden und sollte nach der 1. Anmeldung unbedingt geändert werden. </p>



<p>Das Verfahren zur WLAN-Client-Definition kann übrigens wiederholt werden und eignet sich somit auch, um eine nachträgliche Änderung <q>headless</q> durchzuführen.</p>
<p>Der Beitrag <a href="https://www.dahlen.org/2017/10/12/raspberry-pi-zero-w-headless-setup/">Raspberry Pi Zero W &#8222;headless&#8220; Setup &#8211; so geht&#8217;s</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dahlen.org/2017/10/12/raspberry-pi-zero-w-headless-setup/feed/</wfw:commentRss>
			<slash:comments>30</slash:comments>
		
		
			</item>
		<item>
		<title>Kostenlose TLS/SSL-Zertifikate durch eigene CA erstellen (Teil 3: Verwendung)</title>
		<link>https://www.dahlen.org/2015/02/13/kostenlose-ssl-zertifikate-3/</link>
					<comments>https://www.dahlen.org/2015/02/13/kostenlose-ssl-zertifikate-3/#comments</comments>
		
		<dc:creator><![CDATA[christoph]]></dc:creator>
		<pubDate>Thu, 12 Feb 2015 23:45:12 +0000</pubDate>
				<category><![CDATA[Hobby]]></category>
		<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Netzwerke]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[SSL]]></category>
		<category><![CDATA[TLS]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Zertifikate]]></category>
		<guid isPermaLink="false">https://www.dahlen.org/?p=1465</guid>

					<description><![CDATA[<p>Im ersten Teil dieser Artikelserie bin ich zunächst auf die Grundlagen von Verschlüsselung und Authentifizierung via Transport Layer Security (TLS) eingegangen, bevor im zweiten Teil Certificate Signing Requests (CSR) erstellt und durch die eigene Certificate Authority (CA) in Zertifikate überführt wurden. Im diesem, letzten Teil geht es um die Installation des Stammzertifikats der CA in [&#8230;]</p>
<p>Der Beitrag <a href="https://www.dahlen.org/2015/02/13/kostenlose-ssl-zertifikate-3/">Kostenlose TLS/SSL-Zertifikate durch eigene CA erstellen (Teil 3: Verwendung)</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="excerpt">
<p>
Im <a href="https://www.dahlen.org/?p=1363">ersten</a> Teil dieser Artikelserie bin ich zunächst auf die Grundlagen von Verschlüsselung und Authentifizierung via <em>Transport Layer Security</em> (<abbr>TLS</abbr>) eingegangen, bevor im <a href="https://www.dahlen.org/?p=1447">zweiten</a> Teil <em>Certificate Signing Requests</em> (<abbr>CSR</abbr>) erstellt und durch die eigene <em>Certificate Authority</em> (<abbr>CA</abbr>) in Zertifikate überführt wurden.</p>
<p>Im diesem, letzten Teil geht es um die Installation des Stammzertifikats der CA in diversen Clients, sowie die Verwendung der Server-Zertifikate unter Apache HTTPd, lighttpd und nginx.</p>
</div>
<p><span id="more-1465"></span></p>
<h2>Verwendung der Zertifikate</h2>
<p>Die Absicherung eines Dienstes bedingt im Allgemeinen die Bereitstellung des Server- bzw. Dienst-Zertifikates, des zugehörigen privaten Schlüssels und des CA-Stammzertifikats. Kommt keine eigene CA zum Einsatz, sondern wurden die Dienste eines kommerziellen Anbieters genutzt, so müssen bei Bedarf deren Zertifikate bereitgestellt werden, sofern sie nicht Teil der Standard-Installation moderner Browser sind. </p>
<p>Ziel ist in jedem Fall, daß ein Client (der Browser) die Kette vom Server-Zertifikat bis zu einem <q>vertrauenswürdigen</q> Zertifikat einer Certificate Authority schliessen kann.</p>
<h3>Installation eines Server-Zertifikats</h3>
<p>In <a href="https://www.dahlen.org/?p=1447">zweiten</a> Teil wurden für einen fiktiven Beispiel-Server example.dahlen.org die folgenden Dateien erzeugt, welche jetzt zum Einsatz kommen:</p>
<ul>
<li><span class="code">ca.crt</span>: das Stammzertifikat der eigenen CA</li>
<li><span class="code">server.crt</span>: das Zertifikat des Servers</li>
<li><span class="code">server.key</span>: der private Schlüssel zum Zertifikat des Servers</li>
</ul>
<p>Die tatsächliche Einbindung ist spezifisch für die jeweilige Server-Software. Dabei können einige Dienste (z.B. Apache HTTPd) die Dateien einzeln ansprechen, während andere (z.B. nginx) zusammengefasste Dateien (bundle) erwarten. Dabei ist teilweise sogar die Reihenfolge der Zertifikate im bundle von Bedeutung.</p>
<p>Ein Hinweis an dieser Stelle: Die beschriebenen Konfigurationen beschränken sich auf das Einbinden der Dateien, so daß die jeweilige Server-Software startet und verschlüsselte Kommunikation erlaubt. <b>Für die optimale Absicherung sind weitere Aktionen notwendig, wie das Aktivieren empfohlener und das De-Aktivieren veralteter Protokolle</b>.</p>
<p>Eine gute Anlaufstelle hierfür ist &#8211; neben der Dokumentation zur Software &#8211; die Webseite <a href="https://bettercrypto.org/" title="Webseite bettercrypto.org besuchen" target="_blank" rel="noopener">bettercrypto.org</a> bzw. die dort angebotene Dokumentation <a href="https://bettercrypto.org/" target="_blank" rel="noopener">Applied Crypto Hardening</a>.</p>
<h4>Apache</h4>
<p>Der <a href="https://httpd.apache.org/" title="The Apache HTTP Server Project" target="_blank" rel="noopener">Apache HTTP Server</a> kann obige Dateien getrennt ansprechen. Ihre Pfade werden in der Konfiguration des virtuellen Hosts eingetragen, der später über https ansprechbar sein soll. Vorher müssen die Dateien noch an die passende Stelle kopiert werden, z.B. <span class="code">/etc/apache2</span>:</p>
<p><code><br />
&lt;VirtualHost *:443><br />
&#160;ServerName <b>example.dahlen.org</b><br />
&#160;DocumentRoot /var/www/html/<br />
&#160;SSLEngine on<br />
&#160;SSLCertificateFile    /etc/apache2/server.crt<br />
&#160;SSLCertificateKeyFile /etc/apache2/server.key<br />
&#160;SSLCACertificateFile /etc/apache2/ca.crt<br />
&lt;/VirtualHost><br />
</code></p>
<p>Eine tiefergehende Einführung mit allen Optionen findet sich in der <a href="https://httpd.apache.org/docs/2.2/ssl/index.html" title="Apache SSL/TLS Encryption" target="_blank" rel="noopener">Dokumentation</a> zum Apache HTTP Server. Nochmal der Hinweis: Der <em>Common Name</em> (<abbr>CN</abbr>) im Zertifikat muß der Domäne entsprechen, unter welcher die Website angeboten wird.</p>
<h4>nginx</h4>
<p><a href="http://nginx.org" title="Homepage des nginx-Webservers" target="_blank" rel="noopener">nginx</a> benötigt das Server-Zertifikat und das Stammzertifikat der CA in einer Datei. Diese wird zunächst als <span class="code">bundle.crt</span> angelegt:</p>
<p><code>cat server.crt ca.crt > bundle.crt</code></p>
<p>Anschließend werden das bundle und der private Schlüssel des Server-Zertifikats in der Konfiguration von nginx (z.B. als virtueller Host) angesprochen:<br />
<code><br />
server {<br />
&#160;listen 443;<br />
&#160;server_name <b>example.dahlen.org</b>;<br />
&#160;ssl on;<br />
&#160;ssl_certificate bundle.crt;<br />
&#160;ssl_certificate_key server.key;<br />
}<br />
</code></p>
<p>Weitere Details, inbesondere zu den Einstellungen unterstützer Protokolle finden sich in der <a href="http://nginx.org/en/docs/http/configuring_https_servers.html" title="Configuring HTTPS servers" target="_blank" rel="noopener">Dokumentation</a> von nginx.</p>
<h4>lighttpd</h4>
<p>Eine Anleitung für lighttpd habe ich bereits im 1. Teil des oben erwähnten <a title="Die eigene Cloud auf dem Raspberry PI (Teil 1: lighttpd und SSL)" href="https://www.dahlen.org/2013/02/die-eigene-cloud-1#lighttpd-ssl">Posts</a> gegeben. Achtung: Für die Beispiele dort wurden ein anderer Hostname (owncloud.dahlen.org) und andere Dateien (in der Regel mit Dateiendung .pem statt .crt)  verwendet.</p>
<h3>Installation des CA-Zertifikats</h3>
<p>Damit auch der Browser die neu geschaffene Certificate Authority bzw. die von ihr beglaubigten Zertifikate als <q>vertrauenswürdig</q> akzeptiert, ist noch die Installation des CA-Zertifikats im jeweiligen Zertifikat-Speicher notwendig. Dieser Schritt entfällt, wenn auf die Zertifizierung durch eine akkreditierte CA zurückgegriffen wurde.</p>
<h4>Windows 7 &amp; 8</h4>
<p>Unter Windows 7 und 8(.1) reicht ein Doppelklick auf das CA-Zertifikat <span class="code">ca.crt</span>. Im anschließenden Dialog wählt man <q>Zertifikat installieren</q>, um den entsprechenden Assistenten zu starten. </p>
<p><figure id="attachment_1482" aria-describedby="caption-attachment-1482" style="width: 560px" class="wp-caption aligncenter"><a href="https://www.dahlen.org/wp-content/uploads/2015/02/ca-installation-win8.png"><img fetchpriority="high" decoding="async" width="961" height="936" src="https://www.dahlen.org/wp-content/uploads/2015/02/ca-installation-win8.png" alt="Zertifikat-Installation Windows" class="size-full wp-image-1482" srcset="https://www.dahlen.org/wp-content/uploads/2015/02/ca-installation-win8.png 961w, https://www.dahlen.org/wp-content/uploads/2015/02/ca-installation-win8-300x292.png 300w, https://www.dahlen.org/wp-content/uploads/2015/02/ca-installation-win8-768x748.png 768w" sizes="(max-width: 961px) 100vw, 961px" /></a><figcaption id="caption-attachment-1482" class="wp-caption-text">Zertifikat-Installation Windows</figcaption></figure></p>
<p>Wichtig ist der 2. Schritt des Assistenten, im welchem der Zertifikat-Speicher ausgewählt wird. Statt der Vorgabe der automatischen Auswahl ist der Speicher selbst auszuwählen. Er wird bei einem deutschen Windows als <q>Vertrauenswürdige Stamm&shy;zertifizierungs&shy;stellen</q> genannt (siehe Screenshot).</p>
<h4>Mozilla Firefox / Thunderbird</h4>
<p>Beide Programme verwalten ihre Zertifikate selbst. Die Installation des <span class="code">ca.crt</span> geschieht über den Menüpfad <em>Einstellungen</em> > <em>Erweitert</em> > <em>Zertifikate</em>. Dort ist <q>Zertifikate anzeigen</q> auszuwählen und im daraus resultierenden Fenster der Reiter <q>Zertifizierungsstellen</q>. Der Button <q>Importieren &#8230;</q> schließlich öffnet einen Dialog, in welchem <span class="code">ca.crt</span> ausgewählt werden kann.</p>
<p><figure id="attachment_1486" aria-describedby="caption-attachment-1486" style="width: 560px" class="wp-caption aligncenter"><a href="https://www.dahlen.org/wp-content/uploads/2015/02/ca-installation-ff.png"><img decoding="async" width="1225" height="738" src="https://www.dahlen.org/wp-content/uploads/2015/02/ca-installation-ff.png" alt="Zertifikat Installation Firefox / Thunderbird" class="size-full wp-image-1486" srcset="https://www.dahlen.org/wp-content/uploads/2015/02/ca-installation-ff.png 1225w, https://www.dahlen.org/wp-content/uploads/2015/02/ca-installation-ff-300x181.png 300w, https://www.dahlen.org/wp-content/uploads/2015/02/ca-installation-ff-1024x617.png 1024w, https://www.dahlen.org/wp-content/uploads/2015/02/ca-installation-ff-768x463.png 768w" sizes="(max-width: 1225px) 100vw, 1225px" /></a><figcaption id="caption-attachment-1486" class="wp-caption-text">Zertifikat Installation Firefox / Thunderbird</figcaption></figure></p>
<h4>iPhone / iOS</h4>
<p>Die Installation auf einem iOS-Gerät (hier getestet iPhone 5 mit iOS 8.1.3) ist erstaunlich unkompliziert. Einfach die Datei <span class="code">ca.crt</span> als E-Mail-Anhang versenden, auf dem Mobiltelefon auswählen und installieren.</p>
<h4>Android</h4>
<p>Android ist der Grund, warum ich noch auf die Dienste von Anbietern wie StartSSL zurückgreifen muß. Offenbar ist es auf einem Android-Gerät ohne root-Zugang (hier: Nexus 7 2012, Stock Android 5.0.2) nicht möglich ein CA-Zertifikat systemweit zu installieren. </p>
<p>Insofern liefern die Browser, aber auch diverse Apps, welche auf meine Server-Dienste zugreifen eine entsprechende Warnung. Schlimmer noch: Unmittelbar nach der (unwirksamen) Installation als Benutzer-Zertifikat erscheint in der Mitteilungszentrale <q>Das Netzwerk wird möglicherweise überwacht</q>.</p>
<p>Wer für dieses Problem eine Lösung anbieten kann, dem sei die <a href="https://www.dahlen.org/2015/02/13/kostenlose-ssl-zertifikate-3/#response" title="Kommentar hinterlassen">Kommentarfunktion</a> unterhalb dieses Artikels empfohlen.</p>
<h2>Fazit</h2>
<p>Am Ende dieser Artikelserie ergibt sich für mich ein zwiespältiges Bild: Die Einrichtung verschlüsselter Verbindungen für eigene Dienste ist in wenigen Minuten durchführbar. Eine eigene Certificate Authority reduziert Aufwand und Kosten und steht technisch gesehen einer externen, oftmals kommerziellen CA in nichts nach.</p>
<p>Dennoch hat der Einsatz nur in kontrollierten Umgebungen Sinn. Das Problem liegt weniger auf der Server-Seite, sondern an der Notwendigkeit die eigene CA allen Clients bekannt zu machen. Unbedarfte Besucher dürften bei einer oftmals plakativen Warnung des Browsers (<q>Dieser Verbindung wird nicht vertraut</q>) entweder kehrt machen oder die Warnung ignorieren. Beides ist sicherlich nicht im Sinne des Erfinders. </p>
<p>Am Einsatz einer kommerziellen CA führt aktuell daher kaum ein Weg vorbei. Die wenigen kostenlosen oder <q>günstigen</q> Angebote (lt; 200 EUR) bestätigen dabei nicht mehr als die Verwendung einer gültigen E-Mail-Adresse und einen korrekten DNS-Eintrag. Sie sind allerdings für Privatpersonen oder kleinere Unternehmen ausreichend. Mit der <a href="https://letsencrypt.org/" title="Let's Encrypt">Let&#8217;s Encrypt</a>-Initiative der Internet Security Research Group (Mozilla und andere) soll Mitte 2015 eine interessante Alternative zu etablierten CAs den Markt betreteten. </p>
<p>Organisationen, welche auf hohe Glaubwürdigkeit angewiesen sind (z.B. beim Online-Banking) haben hingegen keine Wahl. Für <a href="https://de.wikipedia.org/wiki/Extended-Validation-Zertifikat"><abbr title="Extended Validation">EV</abbr></a>-Zertifkate mit grüner Namenserwähnung in der Browser-Zeile sind üblicherweise über 1.000 EUR zu bezahlen &#8211; pro Jahr.</p>
<p>Der Beitrag <a href="https://www.dahlen.org/2015/02/13/kostenlose-ssl-zertifikate-3/">Kostenlose TLS/SSL-Zertifikate durch eigene CA erstellen (Teil 3: Verwendung)</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dahlen.org/2015/02/13/kostenlose-ssl-zertifikate-3/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title>Kostenlose TLS/SSL-Zertifikate durch eigene CA erstellen (Teil 2: Erzeugung)</title>
		<link>https://www.dahlen.org/2015/02/13/kostenlose-ssl-zertifikate-2/</link>
					<comments>https://www.dahlen.org/2015/02/13/kostenlose-ssl-zertifikate-2/#comments</comments>
		
		<dc:creator><![CDATA[christoph]]></dc:creator>
		<pubDate>Thu, 12 Feb 2015 23:40:53 +0000</pubDate>
				<category><![CDATA[Hobby]]></category>
		<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Netzwerke]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[SSL]]></category>
		<category><![CDATA[TLS]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Zertifikate]]></category>
		<guid isPermaLink="false">https://www.dahlen.org/?p=1447</guid>

					<description><![CDATA[<p>Im ersten Teil dieser Artikelserie habe ich Grundsätzliches zu Verschlüsselung und Authentifizierung, besonders im Umfeld der für https gebräuchlichen Transport Layer Security (TLS, vormals SSL) beschrieben. In diesem zweiten, technischen Teil beschreibe ich den Weg von der Erstellung eines privaten Schlüssels zum Server-Zertifikat für Apache, lighttpd und andere Server-Dienste. Dazu kommen die unter vielen Plattformen [&#8230;]</p>
<p>Der Beitrag <a href="https://www.dahlen.org/2015/02/13/kostenlose-ssl-zertifikate-2/">Kostenlose TLS/SSL-Zertifikate durch eigene CA erstellen (Teil 2: Erzeugung)</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Im <a href="https://www.dahlen.org/2015/02/13/kostenlose-ssl-zertifikate-2/?p=1363">ersten</a> Teil dieser Artikelserie habe ich Grundsätzliches zu Verschlüsselung und Authentifizierung, besonders im Umfeld der für https gebräuchlichen <em>Transport Layer Security</em> (<abbr>TLS</abbr>, vormals <abbr title="Secure Socket Layer">SSL</abbr>) beschrieben.</p>
<p>In diesem zweiten, technischen Teil beschreibe ich den Weg von der Erstellung eines privaten Schlüssels zum Server-Zertifikat für Apache, lighttpd und andere Server-Dienste. Dazu kommen die unter vielen Plattformen verfügbaren OpenSSL-Werkzeuge in Verbindung mit einer (eigenen) <em>Certificate Authority</em> (<abbr>CA</abbr>) zum Einsatz.<br />
<span id="more-1447"></span></p>
<h2>Erstellung und Installation</h2>
<p>Für die Durchführung der folgenden Anleitung wird eine aktuelle Installation des OpenSSL-Paketes für das eigene Betriebssystem benötigt, die Version sollte dabei mindestens 1.0.1g (siehe <a title="Wikipedia-Artikel zum Heartbleed Bug" href="https://de.wikipedia.org/wiki/Heartbleed" target="_blank" rel="noopener">Heartbleed</a> Bug) sein. Für dieses Protokoll wurde Version 1.0.1k unter <a title="Website des Cygwin-Projektes" href="http://cygwin.org" target="_blank" rel="noopener">Cygwin64</a> für Windows verwendet.</p>
<p>Unter Debian-basierten Linux-Systemen sind die Pakete openssl und ca-certificates zu installieren:<br />
<code>sudo apt-get install openssl ca-certificates</code></p>
<h3>Vorbereiten des Server-Zertifikats</h3>
<p>Der Weg zum Server-Zertifikat für den Betrieb einer mit TLS/SSL abgesicherten Website beginnt stets mit der Erstellung eines privaten Schlüssels. Aus diesem wird später der öffentliche Schlüssel abgeleitet und mit weiteren Informationen, besonders dem Domänennamen (im Feld <em>Common Name</em> <abbr>CN</abbr>) in einem sog. <em>Certificate Signing Request</em> (<abbr>CSR</abbr>) gespeichert. Anschließend bestätigt eine <em>Certificate Authority</em> (<abbr>CA</abbr>) mit ihrer Signatur die <q>Echtheit</q> des öffentlichen Schlüssels und stellt darüber ein Zertifikat aus.</p>
<h4>Privater Schlüssel</h4>
<p>Der folgende Befehl erstellt einen privaten Schlüssel von 4096 Bytes Länge:</p>
<p><code>openssl genrsa -out server.key 4096</code></p>
<p>Zu den Parametern:</p>
<dl>
<dt>genrsa</dt>
<dd>Erstellung eines privaten Schlüssels nach RSA-Verfahren</dd>
<dt>-out server.key</dt>
<dd>Speichern des privaten Schlüssels in der Datei <span class="code">server.key</span></dd>
<dt>4096</dt>
<dd>die Schlüssellänge in Bytes. Werte unter 2048 sollten nicht mehr verwendet werden, 4096 ist auf absehbare Zeit nicht mit vertretbarem Aufwand zu <q>knacken</q></dd>
</dl>
<p>Damit die später eingesetzte Server-Software (z.B. Apache HTTPd) den privaten Schlüssel ohne weiteres Zutun lesen kann, ist dieser nicht über eine zusätzliche, symmetrische Verschlüsselung gesichert. Er muß an einem sicheren Ort mit genau definierten Zugriffsrechten aufbewahrt werden.</p>
<h4>Certificate Signing Request</h4>
<p>Aus dem gerade generierten privaten Schlüssel <span class="code">server.key</span> erzeugen wir nun einen CSR. Dieser wird später bei der (eigenen) CA zur Beglaubigung eingereicht:</p>
<p><code>openssl req -new -key server.key -out server.csr</code></p>
<p>Beschreibung der Parameter:</p>
<dl>
<dt>req</dt>
<dd>Erstellung eines Certificate Signing Request</dd>
<dt>-new</dt>
<dd>einen neuen CSR erstellen, daher Eigenschaften zum Schlüsselinhaber anfragen</dd>
<dt>-key server.key</dt>
<dd>Pfad zur privaten Schlüsseldatei, aus welcher der öffentliche Schlüssel für diesen CSR abgeleitet werden soll</dd>
<dt>-out server.csr</dt>
<dd>Speichern des CSRs in der Datei <span class="code">server.csr</span></dd>
</dl>
<p>Der Aufruf des Befehls stösst einen Dialog an, in welchem Angaben zum Inhaber des privaten Schlüssels angefordert werden. Wichtig dabei: Auf die Frage nach dem <em>Common Name</em> (<abbr>CN</abbr>) muß der <em>Fully Qualified Domain Name</em> (<abbr>FQDN</abbr>) des Servers bzw. des Services (z.B. des Virtual Hosts) angegeben werden. Beispielhaft sei hier example.dahlen.org verwendet. Das angefragte <em>Challenge Passwort</em> wird nicht gesetzt, die entsprechende Rückfrage also einfach per Enter bestätigt:</p>
<p><code class="console"><br />
You are about to be asked to enter information that will<br />
be incorporated into your certificate request.<br />
What you are about to enter is what is called a Distinguished<br />
Name or a DN.<br />
There are quite a few fields but you can leave some blank<br />
For some fields there will be a default value,<br />
If you enter '.', the field will be left blank.<br />
-----<br />
Country Name (2 letter code) [AU]:DE<br />
State or Province Name (full name) [Some-State]:Nordrhein-Westfalen<br />
Locality Name (eg, city) []:<br />
Organization Name (eg, company) [Internet Widgits Pty Ltd]:dahlen.org<br />
Organizational Unit Name (eg, section) []:<br />
Common Name (e.g. server FQDN or YOUR name) []:<b>example.dahlen.org</b><br />
Email Address []:<br />
&#160;<br />
Please enter the following 'extra' attributes<br />
to be sent with your certificate request<br />
A challenge password []:<br />
An optional company name []:<br />
</code></p>
<h3>Vorbereiten der Certificate Authority</h3>
<p>Ein Certificate Signing Request für den Server oder Service liegt nun in der Datei <span class="code">server.csr</span> vor. Er enthält neben dem öffentlichen Schlüssel (welcher aus dem privaten Schlüssel <span class="code">server.key</span> abgeleitet wurde) Details zum Inhaber des Schlüsselpaares.</p>
<p>Um aus dem CSR nun ein Zertifikat zu erzeugen, ist die Beglaubigung durch eine Certificate Authority notwendig. Dies kann entweder ein kommerzieller Anbieter (wie StartSSL, optional mit kostenlosen Angeboten) oder eine eigene CA sei. Bzgl. der Verwendung von StartSSL sei erneut auf die Anleitung bei <a href="http://www.heise.de/security/artikel/SSL-fuer-lau-880221.html" title="SSL für lau - Artikel bei heise Security" target="_blank" rel="noopener">heise Security</a> hingewiesen.</p>
<p>Eine eigene CA ist ein günstige Variante um beliebig viele Server oder Dienste mit Zertifikaten zu versehen. Clients, welche das Stammzertifikate der CA installiert haben und es als <q>vertrauenswürdig</q> betrachten, akzeptieren später Zertifikate, welche durch Unterschrift der eigenen CA erstellt wurden.</p>
<h4>Privater Schlüssel</h4>
<p>Auch eine eigene Certificate Authority benötigt zunächst einen privaten Schlüssel. Aus diesem wird später das selbst-signierte Stammzertifikat (CA ROOT) erzeugt. Der Befehlsaufruf ist nahezu identisch zur obigen Variante für das Server-Zertifikat:</p>
<p><code>openssl genrsa -aes256 -out ca.key 4096</code></p>
<p>Die Parameter sind weitestgehend bekannt, daher hier nur die Abweichung:</p>
<dl>
<dt>-aes256</dt>
<dd>der private Schlüssel wird beim Speichern mit einer symmetrischen Verschlüsselung nach <abbr title="Advanced Encryption Standard">AES</abbr> versehen. </dd>
</dl>
<p>Früher gebräuchliche Verfahren wie DES oder 3DES sollten nicht mehr angewendet werden. Das für die Verschlüsselung notwendige Kennwort (oder besser &#8211; die Passphrase) wird im Rahmen des Befehlsablaufs angefragt:</p>
<p><code class="console"><br />
Generating RSA private key, 4096 bit long modulus<br />
.............++<br />
.........++<br />
e is 65537 (0x10001)<br />
Enter pass phrase for ca.key:<br />
Verifying - Enter pass phrase for ca.key:<br />
</code></p>
<p>Als Ergebnis liegt nun der private Schlüssel der CA in der Datei <span class="code">ca.key</span> vor.</p>
<h4>Stammzertifikat</h4>
<p>Als nächstes wird ein temporärer Zertifikatsantrag (<em>Certificate Signing Request</em>, <abbr>CSR</abbr>) für die eigene CA erzeugt und durch <q>Eigenbeglaubigung</q> in Form eines X.509 Zertifikates im Dateisystem abgelegt:</p>
<p><code>openssl req -x509 -new -extensions v3_ca -key ca.key -days 1461 \<br />
  -out ca.crt -sha512</code></p>
<p>Auf hier sind viele Parameter schon im Bereich des Server-CSRs aufgeführt. Daher nur die Ergänzungen bzw. Abweichungen:</p>
<dl>
<dt>-x509</dt>
<dd>bewirkt, daß der erzeugte CSR unmittelbar in ein Zertifikat überführt wird, es wird also keine .csr-Datei angelegt</dd>
<dt>-extensions v3_ca</dt>
<dd>aktiviert Erweiterungen im erzeugten Zertifikat, die für den Betrieb einer CA notwendig sind</dd>
<dt>-days 1461</dt>
<dd>bestimmt die Gültigkeit des Zertifikats, 1461 sollten 4 Jahre (inkl. Schaltjahr sein)</dd>
<dt>-sha512</dt>
<dd>bestimmt das Verfahren, mit welchem die Signatur des Zertifikates gebildet wird.
</dd>
</dl>
<p>Für die Signatur sollte mindestens SHA2 (-sha256) zum Einsatz kommen. SHA1 oder MD5 sind veraltet und gelten als unsicher. Viele Browser werden in absehbarer Zukunft vor so signierten Zertifikaten warnen (siehe Ankündigung von <a href="http://googleonlinesecurity.blogspot.co.uk/2014/09/gradually-sunsetting-sha-1.html" target="_blank" rel="noopener">Google</a>).</p>
<p>Im Rahmen der Befehlsausführung wird zunächst die oben definierte Passphrase des privaten CA-Schlüssels angefordert. Anschliessend sind einzelne Felder des Zertifikates mit Angaben zur eigenen CA zu füllen. Letztendlich kann man hier beliebige Werte eingeben, besser sind jedoch tatsächliche Angaben und eine gültige E-Mail-Adresse, damit Interessierte später mit Details zu eurer eigenen CA versorgt werden.</p>
<p><code class="console"><br />
Enter pass phrase for ca.key:<br />
You are about to be asked to enter information that will<br />
be incorporated<br />
into your certificate request.<br />
What you are about to enter is what is called a<br />
Distinguished Name or a DN.<br />
There are quite a few fields but you can leave some blank<br />
For some fields there will be a default value,<br />
If you enter '.', the field will be left blank.<br />
-----<br />
Country Name (2 letter code) [AU]:DE<br />
State or Province Name (full name) [Some-State]:Nordrhein-Westfalen<br />
Locality Name (eg, city) []:<br />
Organization Name (eg, company) [Internet Widgits Pty Ltd]:dahlen.org<br />
Organizational Unit Name (eg, section) []:Certificate Authority<br />
Common Name (e.g. server FQDN or YOUR name) []:<br />
Email Address []: certificates@dahlen.org<br />
</code></p>
<h3>Zertifizierung durch die CA</h3>
<p>Als Ergebnis liegt das Zertifikat zum privaten CA-Schlüssel <span class="code">ca.key</span> in der Datei <span class="code">ca.crt</span> vor und die eigene Zertifizierungsstelle ist bereit. Sie wird &#8211; mit ihrer Unterschrift &#8211; den im ersten Schritt erzeugten CSR des Servers example.dahlen.org beglaubigen: </p>
<p><code>openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key  \<br />
&#160; -CAcreateserial -out server.crt -days 365 -sha512</code></p>
<p>Wieder gibt es einige neue Parameter und Argumente:</p>
<dl>
<dt>x509</dt>
<dd>hier nicht als Argument sondern als Option aktiviert sie den Bereich Zertifikatsmanagement in OpenSSL</dd>
<dt>-req</dt>
<dd>definiert, daß ein CSR (und kein Zertifikat) als Eingabe erwartet wird</dd>
<dt>-in server.csr</dt>
<dd>Pfad zum eingereichten CSR</dd>
<dt>-CA ca.crt</dt>
<dd>Pfad zum (Stamm-) Zertifikat der CA</dd>
<dt>-CAkey ca.key</dt>
<dd>Pfad zum privaten Schlüssel der CA</dd>
<dt>-CAcreateserial</dt>
<dd>erzeugt eine Zertifikats-Seriennummer bei Bedarf und legt diese als Datei <span class="code">ca.srl</span> ab</dd>
</dl>
<p>Zur Signatur werden zunächst Details aus dem CSR ausgegeben. Anschließend wird das Kennwort für die Schlüsseldatei <span class="code">ca.key</span> angefordert: </p>
<p><code class="console"><br />
Signature ok<br />
subject=/C=DE/ST=Nordrhein-Westfalen/O=dahlen.org/CN=example.dahlen.org<br />
Getting CA Private Key<br />
Enter pass phrase for ca.key:<br />
</code></p>
<p>Damit ist der Prozeß der Zertifikat-Erzeugung abgeschlossen. Bei der Unterzeichnung durch die CA wurde auch die Laufzeit (-days 365) festgelegt. Der Inhalt des Zertifikats (<span class="code">server.crt</span>) kann &#8211; in lesbarer Form &#8211; wie folgt ausgegeben werden:</p>
<p><code>openssl x509 -noout -text -in server.crt</code></p>
<p>Die Gültigkeit des Zertifikats im Hinblick auf die Zertifikatskette kann unter Angabe des öffentlichen CA-Zertifikats überprüft werden:</p>
<p><code>openssl verify -CAfile ca.crt server.crt</code></p>
<p>Im <a href="https://www.dahlen.org/?p=1465">dritten</a> Teil dieser Serie gehe ich auf die Verwendung der Server-Zertifikate und die Installation des CA Stammzertifikates für diverse Umgebungen ein.</p>
<p>Weiter zu <a href="https://www.dahlen.org/?p=1465">Teil 3: Verwendung</a>. </p>
<p>Der Beitrag <a href="https://www.dahlen.org/2015/02/13/kostenlose-ssl-zertifikate-2/">Kostenlose TLS/SSL-Zertifikate durch eigene CA erstellen (Teil 2: Erzeugung)</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dahlen.org/2015/02/13/kostenlose-ssl-zertifikate-2/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Kostenlose TLS/SSL-Zertifikate durch eigene CA erstellen (Teil 1: Grundlagen)</title>
		<link>https://www.dahlen.org/2015/02/13/kostenlose-ssl-zertifikate-1/</link>
					<comments>https://www.dahlen.org/2015/02/13/kostenlose-ssl-zertifikate-1/#comments</comments>
		
		<dc:creator><![CDATA[christoph]]></dc:creator>
		<pubDate>Thu, 12 Feb 2015 23:30:44 +0000</pubDate>
				<category><![CDATA[Hobby]]></category>
		<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Netzwerke]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[SSL]]></category>
		<category><![CDATA[TLS]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Zertifikate]]></category>
		<guid isPermaLink="false">https://www.dahlen.org/?p=1363</guid>

					<description><![CDATA[<p>Vor einiger Zeit habe ich eine Artikelserie über die Installation von ownCloud auf einem Raspberry PI veröffentlicht. Die für die Absicherung via Transport Layer Security (TLS, vormals SSL) verwendeten Schlüssel wurden damals durch die israelische Firma StartSSL zertifiziert und damit beglaubigt. Nun sind diese Zertifikate abgelaufen und es ist Zeit für eine Erneuerung. Ein willkommener [&#8230;]</p>
<p>Der Beitrag <a href="https://www.dahlen.org/2015/02/13/kostenlose-ssl-zertifikate-1/">Kostenlose TLS/SSL-Zertifikate durch eigene CA erstellen (Teil 1: Grundlagen)</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="excerpt">
<p>
Vor einiger Zeit habe ich eine <a title="Die eigene Cloud auf dem Raspberry PI (Teil 1: lighttpd und SSL)" href="https://www.dahlen.org/2013/02/die-eigene-cloud-1/">Artikelserie</a> über die Installation von ownCloud auf einem Raspberry PI veröffentlicht. Die für die Absicherung via <em>Transport Layer Security</em> (<abbr>TLS</abbr>, vormals <abbr title="Secure Socket Layer">SSL</abbr>) verwendeten Schlüssel wurden damals durch die israelische Firma StartSSL zertifiziert und damit <q>beglaubigt</q>.</p>
<p>Nun sind diese Zertifikate abgelaufen und es ist Zeit für eine Erneuerung. Ein willkommener Anlaß etwas ausführlicher auf die Funktion von Schlüsseln, deren Beglaubigung durch (eigene) <em>Certificate Authorities</em> (<abbr>CA</abbr>) und die Installation auf Server und Client einzugehen.</p>
</div>
<p><span id="more-1363"></span></p>
<h2>Verschlüsselung und Authentifizierung</h2>
<p>Über Sinn und Unsinn von Verschlüsselung muß meines Erachstens nicht diskutiert werden. Das Ziel ist es, Informationen vertraulich aufzubewahren und/oder abhörsicher zu übertragen, so daß sie nur dem Sender und den Empfängern zugänglich sind. </p>
<p>Art und Inhalt der Information sind dabei ohne Belang. Was privat und damit schützenswert und was öffentlich und potentiell einsehbar ist &#8211; darüber darf und sollte jeder Bürger eines freien Landes selbst entscheiden. Und wie die jüngsten Skandale rund um <abbr>NSA</abbr>, <abbr>GCHQ</abbr>, sowie die wiederkehrenden Rufe nach einer Vorratsdatenspeicherung demonstrieren, scheint kein Detail unseres Lebens trivial genug, als daß sich nicht jemand dafür interessieren würde &mdash; selbstverständlich nur zu unserer eigenen Sicherheit.</p>
<h3>Verschlüsselung</h3>
<p>Verschlüsselung macht aus einer Information (einer Datei, einer E-Mail oder dem Inhalt einer Verbindung) ein Geheimnis. Die angewandten, kryptographischen Verfahren lassen sich grob in zwei Kategorien unterteilen:</p>
<ol>
<li><em>symmetrische</em> Verschlüsselung (<abbr>DES</abbr>, <abbr title="Advanced Encryption Standard">AES</abbr>, usw.) setzt auf einen einzelnen, dem Sender und den Empfängern bekannten Schlüssel (<cite>shared secret</cite> bzw. <cite>pre-shared-key</cite>).</li>
<li><em>asymmetrische</em> Verschlüsselung (<abbr title="Pretty Good Privacy">PGP</abbr>, <abbr title="GNU Privacy Guard">GnuPG</abbr>, etc.) verwendet Schlüsselpaare, deren privater Teil (<cite>private key</cite>) vertraulich bleibt, während der öffentliche Teil (<cite>public key</cite>) verteilt wird.</li>
</ol>
<p>Während bei <em>symmetrischer</em> Verschlüsselung der Schlüssel über ein anderes, <q>sicheres</q> Verfahren zwischen Sender und Empfänger ausgetauscht werden muß, benötigt man bei der <em>asymmetrischen</em> Verschlüsselung nur den öffentlichen Schlüsselteil des jeweils anderen Kommunikationspartners. Dieser kann im Vorfeld per E-Mail geschickt, zum Download angeboten oder über eine <em>Public Key Infrastructure</em> (<abbr>PKI</abbr>) öffentlich gemacht werden. Für die Verschlüsselung bzw. Entschlüsselung werden der öffentliche Schlüssel und der eigene private Schlüssel kombiniert. </p>
<p>Da die symmetrische Verschlüsselung einfacher und ressourcenschonend ist, kommen beide Verfahren oft in Kombination zur Anwendung:</p>
<ul>
<li>für den initialen Aufbau der Verbindung werden die öffentlichen Schlüssel von Server und Client ausgetauscht</li>
<li>über die so mögliche <em>asymmetrische</em> Verschlüsselung wird anschliessend ein gemeinsamer Schlüssel ausgehandelt und auf <em>symmetrische</em> Verschlüsselung umgestellt</li>
</ul>
<p>Diese Beschreibung ist bewußt einfach gehalten, Interessierten sei an dieser Stelle der entsprechende Eintrag bei <a href="http://de.wikipedia.org/wiki/Transport_Layer_Security" title="Wikipedia-Eintrag zu Transport Layer Security (TLS)" target="_blank" rel="noopener">Wikipedia</a> oder ein Beratungsgespräch bei meinem Arbeitgeber <a href="http://www.cassini.de/" title="Webseite der Cassini Consulting GmbH" target="_blank" rel="noopener">Cassini Consulting GmbH</a> empfohlen.</p>
<h3>Authentifizierung</h3>
<p>Die oben beschriebenen Methoden sind bereits ausreichend, um eine verschlüsselte Kommunikation zwischen zwei Endpunkten aufzubauen. Sie sagen aber nichts über die Identität der Schlüsselinhaber aus. Über eine sog. <em>Man-in-the-middle</em> Attacke kann ein Angreifer sich zum Zeitpunkt des Verbindungsaufbaus in den Kommunikationsweg einschalten, die ausgetauschten Schlüssel abfangen und durch eigene ersetzen. Er kann dann den gesamten Datenstrom entschlüsseln und mitzulesen, ohne das dies den eigentlichen Kommunikationspartnern auffällt.</p>
<h4>Certificate Authority</h4>
<p>Die Bestätigung von Schlüsseln durch Dritte ist daher wesentlicher Bestandteil der Verschlüsselungstopologie. Die Beglaubigung durch eine oder viele, als <q>vertrauenswürdig</q> geltende Instanzen soll einen öffentlichen Schlüssel validieren und seinen Inhaber identifizieren. Die <em>Zertifizierung</em> durch andere, akkreditierte Personen oder Organisationen soll somit die eigene Glaubwürdigkeit bestätigen. Auf diese Art und Weise bildet sich ein Netz aus Vertrauen, das sog. <a title="Wikipedia-Artikel zu Web of Trust" href="https://de.wikipedia.org/wiki/Web_of_Trust" target="_blank" rel="noopener">Web of Trust</a>.</p>
<p>Während im Bereich <a href="http://www.pgpi.org/" title="Internationale PGP Homepage" target="_blank" rel="noopener">PGP</a> und <a href="https://www.gnupg.org/" title="Homepage des GNU Privacy Guard" target="_blank" rel="noopener">GnuPG</a> die Authentizität des Kommunikationspartners vornehmlich durch gegenseitige Bestätigung (z.B. auf <q>Crypto-Parties</q>) erreicht wird, übernehmen diese Aufgabe im World Wide Web und bei E-Mail-Verschlüsselung via S/MIME <em>Certificate Authorities</em> (<abbr>CA</abbr>).</p>
<h5>Kommerzielle CAs</h5>
<p>Rund um Zertifikate und Signaturen hat sich darum ein großer, lukrativer Markt entwickelt. Große CAs wie <a href="http://www.verisign.de/" title="Homepage von Verisign / Symantec " target="_blank" rel="noopener">Verisign</a> oder <a href="https://www.globalsign.com/de-de/" title="dt. Homepage von GlobalSign" target="_blank" rel="noopener">Global Sign</a> versprechen Sicherheit durch gewissenhafte Prüfung und regelmässige Audits &mdash; zu entsprechenen Preisen. Günstigere oder gar kostenlose Angebote (wie das von StartSSL) bieten in der Regel lediglich eine Validierung der E-Mail-Adresse und des Domain Records. </p>
<p>Anbieter, deren Stammzertifikate Teil einer Browser- oder System-Installation sind, kommen dabei besonders gut weg, da ihre Kunden keinerlei Warnungen durch den Browser erwarten müssen. Faktisch kein Unternehmen, welches für Glaubwürdigkeit und Sicherheit steht, kann es sich erlauben ohne das Zertifikat einer solchen <q>Root-CA</q> zu arbeiten. Dabei zeigen z.B. der Fall <a title="Wikipedia Artikel zu DigiNotar" href="https://de.wikipedia.org/wiki/DigiNotar" target="_blank" rel="noopener">DigiNotar</a> oder die Gewißheit, daß eine Regierung bzw. deren Geheimdienste Unternehmen zur Preisgabe vertraulicher Informationen zwingen kann, daß absolute Sicherheit auch in diesem Bereich nicht existiert.</p>
<h5>Die eigene CA</h5>
<p>Die Hürde für die Einrichtung einer eigenen Certificate Authority ist äußerst niedrig. Technisch kann die eigene CA Schlüssel signieren und somit Zertifikate erzeugen, welche bzgl. Sicherheit in keinster Weise kommerziellen Varianten nachstehen. Im Gegenteil, sie kann sogar schneller aktuelle Entwicklungen im Bereich Verschlüsselung aufgreifen und anbieten, als es einem kommerziellen Anbieter mit definierten <abbr title="Service Level Agreements">SLA</abbr>s möglich ist. Außerdem löst die eigene CA die Abhängigkeit von (ausländischen) Unternehmen und deren Rechtsumfeld und spart natürlich Kosten. </p>
<p>Fachlich jedoch wird die eigene Certificate Authority einem akkreditierten Anbieter auf absehbare Zeit nicht das Wasser reichen können. Solange das Stammzertifikat (also der selbst-signierte öffentliche Schlüssel der CA) nicht in allen Clients, wie Computern, Mobiltelefonen, Programmen und Apps installiert ist, werden diese unweigerlich mehr oder weniger dramatische Warnungen beim Verbindungsaufbau aussprechen &#8211; oder den Aufbau ganz verweigern.</p>
<p>Aus diesem Grund richtet sich die Anleitung im <a href="https://www.dahlen.org/?p=1447">zweiten</a> Teil der Artikelserie primär an erfahrene Administratoren, welche ausgewählte Dienste in einem kontrollierten Umfeld, für ein definiertes Publikum mit einer sicheren, kostengünstigen Transport-Verschlüsselung anbieten wollen.</p>
<p>Weiter zu <a href="https://www.dahlen.org/?p=1447">Teil 2: Erstellung</a>.</p>
<p>Der Beitrag <a href="https://www.dahlen.org/2015/02/13/kostenlose-ssl-zertifikate-1/">Kostenlose TLS/SSL-Zertifikate durch eigene CA erstellen (Teil 1: Grundlagen)</a> erschien zuerst auf <a href="https://www.dahlen.org">dahlen.org</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dahlen.org/2015/02/13/kostenlose-ssl-zertifikate-1/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
	</channel>
</rss>
