<?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>nginx &#8211; matthias.guru</title>
	<atom:link href="https://matthias.guru/tag/nginx/feed/" rel="self" type="application/rss+xml" />
	<link>https://matthias.guru</link>
	<description>Tipps und Tricks rund um Serveradministration, Werbeeinnahmen und allem was mit meiner IT Selbstständigkeit zu tun hat</description>
	<lastBuildDate>Wed, 09 Sep 2020 05:34:49 +0000</lastBuildDate>
	<language>de-DE</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.0.3</generator>
	<item>
		<title>Perfekte nginx SSL Konfiguration Debian</title>
		<link>https://matthias.guru/2020/09/09/perfekte-nginx-ssl-konfiguration-debian/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=perfekte-nginx-ssl-konfiguration-debian</link>
					<comments>https://matthias.guru/2020/09/09/perfekte-nginx-ssl-konfiguration-debian/#respond</comments>
		
		<dc:creator><![CDATA[Matthias]]></dc:creator>
		<pubDate>Wed, 09 Sep 2020 05:34:49 +0000</pubDate>
				<category><![CDATA[debian]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[ssl]]></category>
		<guid isPermaLink="false">https://hilfreiche-server.tips/?p=9</guid>

					<description><![CDATA[HTTPS ist nicht nur für das Google Ranking wichtig, sondern schützt es auch euch, euere Webseiten und somit euere Besucher. Mit folgender Konfiguration erreicht ihr eine maximal sichere Konfiguration eueres nginx Webservers. Bevor ihr diese <a class="mh-excerpt-more" href="https://matthias.guru/2020/09/09/perfekte-nginx-ssl-konfiguration-debian/" title="Perfekte nginx SSL Konfiguration Debian">[...]</a>]]></description>
										<content:encoded><![CDATA[
<p>HTTPS ist nicht nur für das Google Ranking wichtig, sondern schützt es auch euch, euere Webseiten und somit euere Besucher. Mit folgender Konfiguration erreicht ihr eine maximal sichere Konfiguration eueres nginx Webservers.</p>



<p>Bevor ihr diese Zeilen in eueren <strong>server</strong> Teil euerer nginx Konfiguration ergänzt, stellt sicher bereits ein SSL Zertifikat zu haben und den Pfad dorthin anzupassen. Darüber hinaus solltet ihr auch einen Diffie-Hellmann Key erzeugen und den Pfad dorthin ebenfalls anzupassen.</p>



<p>Einen Diffie-Hellmann Key wird mit folgendem Befehl erzeugt (kann sehr lange dauern):<br>&gt; cd /etc/ssl/private</p>



<p>&gt; openssl dhparam -out dhparams.pem 2048</p>



<p>&gt; chmod 600 dhparams.pem</p>



<p>Habt ihr nun ein SSL Zertifikat und einen eigene DH Key, so stellt nochmals sicher die Pfade in folgendem Snippet anzupassen &#8211; dann könnt ihr es in euerer nginx Server Directive einsetzen:</p>



<pre class="wp-block-code"><code>listen 443 ssl http2;
ssl    on;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
ssl_ciphers 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_certificate    /etc/letsencrypt/live/hilfreiche-server.tips/fullchain.pem;
ssl_certificate_key    /etc/letsencrypt/live/hilfreiche-server.tips/privkey.pem;</code></pre>
]]></content:encoded>
					
					<wfw:commentRss>https://matthias.guru/2020/09/09/perfekte-nginx-ssl-konfiguration-debian/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>nginx dynamic modules kompilieren und nutzen</title>
		<link>https://matthias.guru/2019/02/11/nginx-dynamic-modules-kompilieren-und-nutzen/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=nginx-dynamic-modules-kompilieren-und-nutzen</link>
					<comments>https://matthias.guru/2019/02/11/nginx-dynamic-modules-kompilieren-und-nutzen/#comments</comments>
		
		<dc:creator><![CDATA[Matthias]]></dc:creator>
		<pubDate>Mon, 11 Feb 2019 13:51:40 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[dynamic modules]]></category>
		<category><![CDATA[nginx]]></category>
		<guid isPermaLink="false">https://matthiasdietel.de/?p=312</guid>

					<description><![CDATA[Wenn man nginx um ein Modul erweitern will, aber nicht das gesamte nginx neu kompilieren möchte oder kann, z.b. weil man fertige Pakete aus einer Paketquelle installiert hat, kann man das gewünschte Modul dynamisch nachträglich <a class="mh-excerpt-more" href="https://matthias.guru/2019/02/11/nginx-dynamic-modules-kompilieren-und-nutzen/" title="nginx dynamic modules kompilieren und nutzen">[...]</a>]]></description>
										<content:encoded><![CDATA[
<p>Wenn man nginx um ein Modul erweitern will, aber nicht das gesamte nginx neu kompilieren möchte oder kann, z.b. weil man fertige Pakete aus einer Paketquelle installiert hat, kann man das gewünschte Modul dynamisch nachträglich einbinden.</p>



<p>Das ganze ist eigentlich recht einfach. Wir benötigen den Quellcode unserer gerade installierten nginx Version, sowie den Quellcode des gewünschten Moduls. Dann bauen wir beides zusammen, nehmen aber nur das erstelle Modul und binden es in die vorhandene nginx Installation ein. Wie so immer müssen wir jedoch auf das ein oder andere Detail achten.</p>



<p>Wir brauchen den Quellcode der nginx Version die wir bereits installiert haben. Diese bekomen wir mit folgendem Befehl:</p>



<pre class="wp-block-preformatted">nginx -v</pre>



<p>Das Ergbnis sieht so aus: </p>



<figure class="wp-block-image"><img width="224" height="20" src="https://matthias.guru/wp-content/uploads/2019/02/grafik-4.png" alt="" class="wp-image-313"/></figure>



<p>Jetzt wissen wir also dass wir aktuell Version 1.15.8 installiert haben und können uns davon den Quellcode herunterladen:</p>



<pre class="wp-block-preformatted">wget http://nginx.org/download/nginx-1.15.8.tar.gz <br>tar -xzvf nginx-1.15.8.tar.gz</pre>



<p>Nun benötigen wir den Quellcode des gewünschten Moduls. Als Beispiel nehme ich hier das NAXSI Modul:</p>



<pre class="wp-block-preformatted">git clone https://github.com/nbs-system/naxsi.git</pre>



<p>Jetzt wechseln wir in den nginx Ordner</p>



<p>cd nginx-1.15.8</p>



<p>Bevor wir nun aber nginx und das Modul bauen können, benötigen wir noch die Build Flags des bereits installierten nginx, sonst bekommen wir später folgende Meldung:</p>



<pre class="wp-block-code"><code>dynamic module is not binary compatible with nginx</code></pre>



<p>Um die Flags festzustellen nutzen wir den Befehl</p>



<pre class="wp-block-preformatted">nginx -V</pre>



<p>Was uns die gesuchten Flags anzeigt</p>



<figure class="wp-block-image"><img loading="lazy" width="654" height="383" src="https://matthias.guru/wp-content/uploads/2019/02/grafik-5.png" alt="" class="wp-image-314" srcset="https://matthias.guru/wp-content/uploads/2019/02/grafik-5.png 654w, https://matthias.guru/wp-content/uploads/2019/02/grafik-5-300x176.png 300w" sizes="(max-width: 654px) 100vw, 654px" /></figure>



<p>Der nun zu verwendente Buildbefehl sieht so aus und muss durch die gerade festgestellten Flags erweitert werden:</p>



<pre class="wp-block-code"><code>./configure --with-compat --add-dynamic-module=../naxsi/naxsi_src</code></pre>



<p>Was dann bei mir so aussieht:</p>



<pre class="wp-block-preformatted">./configure --with-compat --add-dynamic-module=../naxsi/naxsi_src  <br>
--prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-g -O2 -fdebug-prefix-map=/data/builder/debuild/nginx-1.15.8/debian/debuild-base/nginx-1.15.8=. -specs=/usr/share/dpkg/no-pie-compile.specs -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC' --with-ld-opt='-specs=/usr/share/dpkg/no-pie-link.specs -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie'</pre>



<p>Nachdem der Befehl erfolgreich abgeschlossen wurde, erstellen wir noch die Module mit</p>



<pre class="wp-block-preformatted">make modules</pre>



<p>Nun ist das Modul bereit zu Verwendung. Dazu kopieren wir es in den nginx modules Ordner</p>



<pre class="wp-block-preformatted">cp objs/ngx_http_naxsi_module.so /etc/nginx/modules</pre>



<p>Und aktivieren es in der nginx.conf</p>



<pre class="wp-block-preformatted">load_module modules/ngx_http_naxsi_module.so;</pre>



<p>Das war es auch schon. Nginx abschließend neustarten und das Modul wird geladen.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://matthias.guru/2019/02/11/nginx-dynamic-modules-kompilieren-und-nutzen/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>nginx &#8211; langsamer SSL Handshake</title>
		<link>https://matthias.guru/2017/04/03/nginx-langsamer-ssl-handshake/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=nginx-langsamer-ssl-handshake</link>
					<comments>https://matthias.guru/2017/04/03/nginx-langsamer-ssl-handshake/#respond</comments>
		
		<dc:creator><![CDATA[Matthias]]></dc:creator>
		<pubDate>Mon, 03 Apr 2017 08:20:36 +0000</pubDate>
				<category><![CDATA[Lets Encrypt]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[ciphers]]></category>
		<category><![CDATA[handshake]]></category>
		<category><![CDATA[slow]]></category>
		<guid isPermaLink="false">https://hilfreiche-server.tips/?p=122</guid>

					<description><![CDATA[Dank Lets Encrypt und günstigen SSL Zertifikaten werden HTTPS Verbindungen immer mehr zum Standard. Das ist auch kein Wunder, da Google HTTPS Verbindungen besser rankt als normales HTTP. Google sind jedoch auch niedrige Ladezeiten wichtig, <a class="mh-excerpt-more" href="https://matthias.guru/2017/04/03/nginx-langsamer-ssl-handshake/" title="nginx &#8211; langsamer SSL Handshake">[...]</a>]]></description>
										<content:encoded><![CDATA[<p>Dank Lets Encrypt und günstigen SSL Zertifikaten werden HTTPS Verbindungen immer mehr zum Standard. Das ist auch kein Wunder, da Google HTTPS Verbindungen besser rankt als normales HTTP.</p>
<p>Google sind jedoch auch niedrige Ladezeiten wichtig, leider ist es jedoch so das eine HTTPS Verbindung per se mehr Rechenleistung benötigt um die Verbindung zum Browser zu verschlüsseln. Besonders aufgefallen ist mir der langsame SSL Handshake. Also der Abschnitt des Verbindungsaufbaus in dem sich Server und Browser auf eine Technologie einigen. Das lag an den zahlreichen unterstützen SSL Algorithmen. Manchmal ist halt doch weniger mehr.</p>
<p>Daher bietet mein nginx Webserver nun nur noch die SSL Algorithmen an die von Cloudflare empfohlen werden und somit konnte ich auch die Ladezeiten wieder verbessern:</p>
<p>&nbsp;</p>
<blockquote>
<pre>ssl_protocols               TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers                 EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_prefer_server_ciphers   on;</pre>
</blockquote>
]]></content:encoded>
					
					<wfw:commentRss>https://matthias.guru/2017/04/03/nginx-langsamer-ssl-handshake/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>nextcloud Warnungen beheben unter nginx</title>
		<link>https://matthias.guru/2016/11/14/nextcloud-warnungen-beheben-unter-nginx/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=nextcloud-warnungen-beheben-unter-nginx</link>
					<comments>https://matthias.guru/2016/11/14/nextcloud-warnungen-beheben-unter-nginx/#comments</comments>
		
		<dc:creator><![CDATA[Matthias]]></dc:creator>
		<pubDate>Mon, 14 Nov 2016 10:50:01 +0000</pubDate>
				<category><![CDATA[debian]]></category>
		<category><![CDATA[nextcloud]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[fehler]]></category>
		<category><![CDATA[header]]></category>
		<category><![CDATA[meldung]]></category>
		<category><![CDATA[nextcoud]]></category>
		<category><![CDATA[warnungen]]></category>
		<guid isPermaLink="false">https://hilfreiche-server.tips/?p=68</guid>

					<description><![CDATA[nextcloud verlangt sehr genau definierte Servereinstellungen. Sind diese nicht richtig gesetzt werden im Admininterface folgende Meldungen angezeigt: Der „X-XSS-Protection“-HTTP-Header ist nicht so konfiguriert, dass er „1; mode=block“ entspricht. Dies ist ein potentielles Sicherheitsrisiko und es <a class="mh-excerpt-more" href="https://matthias.guru/2016/11/14/nextcloud-warnungen-beheben-unter-nginx/" title="nextcloud Warnungen beheben unter nginx">[...]</a>]]></description>
										<content:encoded><![CDATA[<p>nextcloud verlangt sehr genau definierte Servereinstellungen. Sind diese nicht richtig gesetzt werden im Admininterface folgende Meldungen angezeigt:</p>
<ul class="warnings">
<li>Der „X-XSS-Protection“-HTTP-Header ist nicht so konfiguriert, dass er „1; mode=block“ entspricht. Dies ist ein potentielles Sicherheitsrisiko und es wird empfohlen, diese Einstellung zu ändern.</li>
<li>Der „X-Content-Type-Options“-HTTP-Header ist nicht so konfiguriert, dass er „nosniff“ entspricht. Dies ist ein potentielles Sicherheitsrisiko und es wird empfohlen, diese Einstellung zu ändern.</li>
<li>Der „X-Robots-Tag“-HTTP-Header ist nicht so konfiguriert, dass er „none“ entspricht. Dies ist ein potentielles Sicherheitsrisiko und es wird empfohlen, diese Einstellung zu ändern.</li>
<li>Der „X-Frame-Options“-HTTP-Header ist nicht so konfiguriert, dass er „SAMEORIGIN“ entspricht. Dies ist ein potentielles Sicherheitsrisiko und es wird empfohlen, diese Einstellung zu ändern.</li>
<li>Der „X-Download-Options“-HTTP-Header ist nicht so konfiguriert, dass er „noopen“ entspricht. Dies ist ein potentielles Sicherheitsrisiko und es wird empfohlen, diese Einstellung zu ändern.</li>
<li>Der „X-Permitted-Cross-Domain-Policies“-HTTP-Header ist nicht so konfiguriert, dass er „none“ entspricht. Dies ist ein potentielles Sicherheitsrisiko und es wird empfohlen, diese Einstellung zu ändern.</li>
</ul>
<p>Beheben lässt sich das sehr leicht. Verwendet man nginx muss man lediglich in die nginx v-host Konfiguration ein paar Zeilen ergänzen. Die Datei findet man im Normalfall unter /etc/nginx/sites-enabled/default</p>
<pre>Hinzugefügt werden muss innerhalb des Serverblocks folgendes

add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options "noopen";
add_header X-Permitted-Cross-Domain-Policies none;
add_header Referrer-Policy no-referrer;</pre>
<p>Abschließend den Server neustarten</p>
<blockquote><p>/etc/init.d/nginx restart</p></blockquote>
]]></content:encoded>
					
					<wfw:commentRss>https://matthias.guru/2016/11/14/nextcloud-warnungen-beheben-unter-nginx/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
	</channel>
</rss>
