<?xml version="1.0" encoding="utf-8"?>
<!-- generator="Kirby" -->
<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">

  <channel>
    <title>shut up Server</title>
    <link>https://verkruem.uber.space</link>
    <generator>Kirby</generator>
    <lastBuildDate>Thu, 01 Jan 1970 01:00:00 +0100</lastBuildDate>
    <atom:link href="https://verkruem.uber.space" rel="self" type="application/rss+xml" />

        <description>The blog feed for this blog.</description>
    
        <item>
      <title>SMB-Server &#252;ber Reverse Proxy ansprechen</title>
      <link>https://verkruem.uber.space/blog/smb-server-ueber-reverse-proxy-ansprechen</link>
      <guid>blog/smb-server-ueber-reverse-proxy-ansprechen</guid>
      <pubDate>Thu, 09 Jun 2022 09:39:00 +0200</pubDate>
      <description><![CDATA[<p>Wenn man einen Samba-Server (Windows-Dateifreigaben) über einen NGINX Reverse Proxy erreichen möchte geht das folgendermaßen:</p>
<pre><code class="language-nginx">upstream smb_servers {
    server 192.168.1.101:445;
}

server {
    listen 445; # TCP
    proxy_pass smb_servers;
    error_log  /var/log/nginx/dns.log info;
}</code></pre>
<p>Wenn man einen gespiegelten Dateiserver hat, kann man diesen zusätzlich in einer server-Direktive angeben. Damit könnte man die Last automatisch verteilen.</p>
<blockquote>
<p>Achtung: einen SMB-Server über das Internet erreichbar zu machen ist nicht ratsam! Dafür eine VPN-Verbindung verwenden.</p>
</blockquote>]]></description>
    </item>
        <item>
      <title>Selbstsigniertes Zertifikat automatisch erneuern</title>
      <link>https://verkruem.uber.space/blog/selbstsigniertes-zertifikat-automatisch-erneuern</link>
      <guid>blog/selbstsigniertes-zertifikat-automatisch-erneuern</guid>
      <pubDate>Mon, 11 Oct 2021 07:51:00 +0200</pubDate>
      <description><![CDATA[<p>Wenn ein Zertifikat abläuft und irgendwelche Sachen nicht mehr funktionieren ist das ziemlich ärgerlich.<br />
Um dies zu verhindern, kann man das Zertifikat automatisiert erneuern.</p>
<pre><code class="language-powershell">Get-childitem 'Cert:\LocalMachine\My' | ? {$_.Subject -eq $_.Issuer} | Remove-Item
New-SelfSignedCertificate -DnsName ([System.Net.Dns]::GetHostByName(($env:computerName))).Hostname
Restart-Service -Name [ServiceName]</code></pre>
<p>Dieser PowerShell-Schnipsel entfernt zuerst das Zertifikat unter <code>local machine</code>, erzeugt anschließend ein neues, dass nach dem FQDN des Systems benannt ist und startet dann den betreffenden Windows-Dienst durch.</p>
<p>Zum Automatisieren muss das Ganze in eine geplante Aufgabe gepackt werden. Diese muss mit erhöhten Rechten ausgeführt werden.</p>]]></description>
    </item>
        <item>
      <title>AltoRouter</title>
      <link>https://verkruem.uber.space/blog/altorouter</link>
      <guid>blog/altorouter</guid>
      <pubDate>Tue, 24 Nov 2020 06:26:00 +0100</pubDate>
      <description><![CDATA[<p><a href="http://altorouter.com/">AltoRouter</a> ist eine kleine, aber mächtige PHP-Klasse, mit der man auch große Projekte umsetzen kann.</p>
<p>Um AltoRouter nutzen zu können, muss im Webserver das URL-Rewriting aktiviert sein. Zusätzlich dazu, ist eine <code>.htaccess</code>-Datei notwendig, die die Anfragen an die <code>index.php</code> weiterleitet:</p>
<pre><code class="language-php">&lt;IfModule mod_rewrite.c&gt;
  RewriteEngine on
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule . index.php [L]
&lt;/IfModule&gt;</code></pre>
<p>Die <code>index.php</code>-Datei nimmt die Anfragen entgegen und man kann eigene Routen erstellen, über die die Anfragen abgearbeitet werden:</p>
<pre><code class="language-php">&lt;?php
header("Content-Type: text/html");
include dirname(__FILE__) . '/AltoRouter.php';

$router = new AltoRouter();
// $router-&gt;setBasePath('/');

/* Setup the URL routing. This is production ready. */

$router-&gt;map('GET', '/', 'home.php', 'home');
$router-&gt;map('GET', '/guest/', 'guest.php', 'guest');
$router-&gt;map('GET', '/user/[*:id]/', 'user/id.php', 'user-id');

// // API Routes
// $router-&gt;map('GET','/api/[*:key]/[*:name]/', 'json.php', 'api');

/* Match the current request */
$match = $router-&gt;match();
if($match) {
  require $match['target'];
} else {
  header("HTTP/1.0 404 Not Found");
  require '404.html';
}
?&gt;
</code></pre>
<p>Wenn keine passende Route gefunden wird, wird HTTP Error 404 zurückgegeben und die <code>404.html</code>-Datei angezeigt.</p>
<p>Eine (ungetestete) vHost-Konfiguration, bei der keine <code>.htaccess</code> notwendig ist:</p>
<pre><code class="language-php">&lt;VirtualHost *:80&gt;
  ServerName altorouter.local
  DocumentRoot "/var/www/html/altorouter/"
  ServerAdmin apache@altorouter.local
  ErrorLog ${APACHE_LOG_DIR}/altorouter-error.log
  CustomLog ${APACHE_LOG_DIR}/altorouter-access.log combined
  LimitRequestFieldSize 32768
  &lt;Directory /var/www/html/altorouter&gt;
    &lt;IfModule mod_rewrite.c&gt;
      RewriteEngine on
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteRule . index.php [L]
    &lt;/IfModule&gt;
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
  &lt;/Directory&gt;
&lt;/VirtualHost&gt;</code></pre>]]></description>
    </item>
        <item>
      <title>clumsy - schlechte Netzwerkverbindung auf Knopfdruck</title>
      <link>https://verkruem.uber.space/blog/clumsy-schlechte-netzwerkverbindung-auf-knopfdruck</link>
      <guid>blog/clumsy-schlechte-netzwerkverbindung-auf-knopfdruck</guid>
      <pubDate>Tue, 24 Nov 2020 06:23:00 +0100</pubDate>
      <description><![CDATA[<p>Mit <a href="https://jagt.github.io/clumsy/">clumsy</a> kann man per GUI beispielsweise die Latenz der Netzwerkverbindung erhöhen.</p>]]></description>
    </item>
        <item>
      <title>Clean URL in Ubuntu 18.04 mit Apache2</title>
      <link>https://verkruem.uber.space/blog/clean-url-in-ubuntu-18-04-mit-apache2</link>
      <guid>blog/clean-url-in-ubuntu-18-04-mit-apache2</guid>
      <pubDate>Mon, 17 Sep 2018 13:35:00 +0200</pubDate>
      <description><![CDATA[<p>Die Schritte, die für Ubuntu 16.04 gelten, sind auch für Ubuntu 18.04 gültig:</p>
<ol>
<li><code>mod_rewrite</code> aktivieren</li>
</ol>
<pre><code class="language-bash">sudo a2enmod rewrite</code></pre>
<p>ausführlicher bei <a href="https://wiki.ubuntuusers.de/Apache/mod_rewrite/" rel="noopener noreferrer" target="_blank">ubuntuusers.de</a> beschrieben</p>
<ol start="2">
<li><code>sites-enabled</code> Konfiguration anpassen</li>
</ol>
<pre><code class="language-bash">sudo nano /etc/apache2/sites-enabled/000-default.conf</code></pre>
<p>und in der VirtualHost Direktive folgendes ergänzen</p>
<pre><code class="language-bash"> &lt;Directory "/var/www/html"&gt;
  RewriteEngine On
  Options Indexes FollowSymLinks
  AllowOverride All
  Order allow,deny
  Allow from all
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule . index.php [L]
&lt;/Directory&gt;</code></pre>
<ol start="3">
<li>Apache2-Dienst neu starten</li>
</ol>
<pre><code class="language-bash">sudo systemctl restart apache2</code></pre>
<p>Die <code>.htaccess</code>-Datei kann entfallen, da die Einstellungen bereits in der <code>000-default.conf</code> vorgenommen werden.</p>]]></description>
    </item>
        <item>
      <title>Windows Key auslesen</title>
      <link>https://verkruem.uber.space/blog/windows-key-auslesen</link>
      <guid>blog/windows-key-auslesen</guid>
      <pubDate>Wed, 11 Jul 2018 09:31:00 +0200</pubDate>
      <description><![CDATA[<p>Mit Hilfe des Kommandozeilenbefehls</p>
<pre><code class="language-bash">wmic path softwarelicensingservice get OA3xOriginalProductKey</code></pre>
<p>kann man den Windows Key ganz einfach auslesen.</p>]]></description>
    </item>
        <item>
      <title>dd &#252;ber ssh</title>
      <link>https://verkruem.uber.space/blog/dd-ueber-ssh</link>
      <guid>blog/dd-ueber-ssh</guid>
      <pubDate>Wed, 14 Mar 2018 16:30:00 +0100</pubDate>
      <description><![CDATA[<pre><code class="language-bash"># Entferntes System zu lokalem System für ganze Platte/SSD
ssh user@remote "dd if=/dev/sda | gzip -1 -" | dd of=image.gz</code></pre>
<pre><code class="language-bash"># Entferntes System zu lokalem System für einzelne Partition
ssh user@remote "dd if=/dev/sda1 | gzip -1 -" | dd of=image.gz</code></pre>
<pre><code class="language-bash"># Lokales System zu entferntem System für ganze Platte/ SSD
dd if=/dev/sda | gzip -1 - | ssh user@local dd of=image.gz</code></pre>
<pre><code class="language-bash"># Lokales System zu entferntem System für einzelne Partition
dd if=/dev/sda1 | gzip -1 - | ssh user@local dd of=image.gz</code></pre>]]></description>
    </item>
        <item>
      <title>SSH-Verbindungen mit Auto-Vervollst&#228;ndigung</title>
      <link>https://verkruem.uber.space/blog/known-hosts-auto-verfollstaendigung</link>
      <guid>blog/known-hosts-auto-verfollstaendigung</guid>
      <pubDate>Mon, 12 Mar 2018 16:13:00 +0100</pubDate>
      <description><![CDATA[<p>In <code>~/.bashrc</code> folgendes ergänzen:</p>
<pre><code class="language-bash">complete -W "$(echo `cat ~/.ssh/known_hosts | cut -f 1 -d ' ' | \ sed -e s/,.*//g | uniq | grep -v "["`;)" ssh"</code></pre>]]></description>
    </item>
        <item>
      <title>Clean URL in Ubuntu 16.04 mit Apache2</title>
      <link>https://verkruem.uber.space/blog/clean-url-in-ubuntu-16-04-mit-apache2</link>
      <guid>blog/clean-url-in-ubuntu-16-04-mit-apache2</guid>
      <pubDate>Tue, 27 Dec 2016 08:30:00 +0100</pubDate>
      <description><![CDATA[<p>Für saubere URLs muss man in Ubuntu 16.04 mit Apache2 an mehreren Stellen schrauben.</p>
<ol>
<li><code>mod_rewrite</code> aktivieren</li>
</ol>
<pre><code class="language-bash">sudo a2enmod rewrite</code></pre>
<p>ausführlicher bei <a href="https://wiki.ubuntuusers.de/Apache/mod_rewrite/" rel="noopener noreferrer" target="_blank">ubuntuusers.de</a> beschrieben</p>
<ol start="2">
<li><code>sites-enabled</code> Konfiguration anpassen</li>
</ol>
<pre><code class="language-bash">sudo nano /etc/apache2/sites-enabled/000-default.conf</code></pre>
<p>in der VirtualHost Direktive folgendes ergänzen</p>
<pre><code class="language-bash">&lt;Directory "/var/www/html"&gt;
  RewriteEngine On
  RewriteRule ^link([^/]*).html$ rewrite.php?link=$1 [L]
  Options Indexes FollowSymLinks
  AllowOverride All
  Order allow,deny
  Allow from all
&lt;/Directory&gt;</code></pre>
<ol start="3">
<li>Apache2-Dienst neu starten</li>
</ol>
<pre><code class="language-bash">sudo service apache2 restart</code></pre>
<ol start="4">
<li><code>.htaccess</code> anlegen in Webverzeichnis</li>
</ol>
<pre><code class="language-bash">&lt;IfModule mod_rewrite.c&gt;
  RewriteEngine On
  RewriteRule ^index\.php$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . index.php [L]
&lt;/IfModule&gt;</code></pre>
<p>Ein kleiner Tipp zum Schluss: <a href="http://altorouter.com/" rel="noopener noreferrer" target="_blank">AltoRouter</a> ist eine kleine PHP-Routing-Klasse, die sich sehr flexibel einsetzen lässt.<br />
<a href="https://github.com/dannyvankooten/AltoRouter" rel="noopener noreferrer" target="_blank">github.com/dannyvankooten/AltoRouter</a></p>
<p><em>happy coding</em></p>]]></description>
    </item>
        <item>
      <title>The Terrifying Cost of &#34;Free&#8221; Websites</title>
      <link>https://verkruem.uber.space/blog/the-terrifying-cost-of-free-websites</link>
      <guid>blog/the-terrifying-cost-of-free-websites</guid>
      <pubDate>Fri, 23 Dec 2016 11:56:00 +0100</pubDate>
      <description><![CDATA[<p>Link: <a href="https://www.youtube.com/watch?v=5pFX2P7JLwA" rel="noopener noreferrer" target="_blank">youtube.com/watch?v=5pFX2P7JLwA</a></p>]]></description>
    </item>
    
  </channel>
</rss>
