SFTP-Server

FTP ist historisch bedingt ein sehr fragiles Protokoll, welches grosse Mühe hat mit heute gängigen Techniken wie NAT und Firewalls klar zukommen.
Es sollte eigentlich nicht mehr verwendet- und stattdessen auf SFTP (FTP über SSH) umgestellt werden.

Das hat u.a. auch den Vorteil, dass man keinen extra Server mehr laufen lassen muss.

In diesem Tutorial wird erklärt wie man einem SFTP-Server aufsetzt.

Continue reading SFTP-Server

Kalender auslesen mit python

Wen man seinen Kalender auf einem CalDAV-Server (z.B. mittels NextCloud) hat, lässt sich dieser via python einfach auslesen.

Dies ergibt interessante Anwendungen; so könnte man beispielsweise einen Ferienkalender erstellen und dann mittels einem python Script Aktionen auslösen, welche nur bei an- oder Abwesenheit erfolgen sollen

Continue reading Kalender auslesen mit python

Ansible: mode für Dateien und Verzeichnisse anders setzen

Bei vielen ansible Modulen gibt es den „mode“ Paramater, mit welchem man die Berechtigung für Verzeichnisse und Dateien setzen kann. Man kann jedoch nur einen Modus angeben, d.h. setzt man diesen beispielsweise auf: 0755 werden die Verzeichnisse world readable, jedoch auch alle Dateien world executable.

Will man dies verhindern kann man anstelle eines kleinen x ein grosses X setzen, das gilt dann nur für Verzeichnisse:

Continue reading Ansible: mode für Dateien und Verzeichnisse anders setzen

nginx: Location Pfad mit default redirect

Möchte man in nginx innerhalb einer Domain für einen Pfad einen neuen DocumentRoot definieren (z.B. für /app) und darin jede nicht existierende Datei auf index.html weiterleiten, geht dies mittels:

location /app {
  alias /srv/example.org/app;
  try_files $uri $uri/ /index.html =404;
}

Das selbe mit index.php unter Beibehaltung der Parameter:

location /app {
  alias /srv/example.org/app;
  try_files $uri $uri/ /index.php?$args =404;
}

Volles Beispiel:

server {
  listen 80;
  server_name example.org www.example.org;
  access_log /srv/example.org/logs/access_log;
  error_log /srv/example.org/logs/error_log;
 
  location /app {
    alias /srv/example.org/app;
    try_files $uri $uri/ /index.html =404;
  }
}

Spammer aus der Mailqueue entfernen

Manchmal passiert es, dass eine Webseite- oder das Passwort eines Mailserver-Benutzers gehackt wird.
In der Folge steigt die mail queue auf dem Server rasant an.

In einem solchen Fall ist sehr rasches eingreifen des Administrators gefragt, denn nicht selten sendet der Server so innert wenigen Stunden Zehntausende Spam-Mails raus und die IP-Adresse des Servers landet auf diversen blacklisten, aus die man zum Teil nur sehr schwierig wieder herauskommt.

Zumindest die Mails, welche noch in der Mailqueue sind, kann man aber so entfernen, bevor dieser ebenfalls herausgeschickt werden.

Continue reading Spammer aus der Mailqueue entfernen

HA Loadbalancer mit keepalived und HAProxy

In einer high-availability Umgebung (HA) sind nicht nur die loadbalncer redundant, sondern auch die dahinter liegenden Backend-Server.

Das Szenario ist, dass es zwei Loadbalancer (lb01 und lb02) gibt. Diese haben je eine eigene IP-Adresse und „teilen“ sich eine dritte virtuelle IP-Adresse (VIP), welche in einem failover-Fall mittels keepalived von einem System auf das andere System transferiert wird.

Im backend gibt es zwei gleiche Webserver (web01 und web02). HAProxy verteilt die requests auf einen der beiden Webserver, sofern beide verfügbar sind.

Es kann also sowohl einer der Loadbalancer, wie auch einer der Webserver ausfallen.
Continue reading HA Loadbalancer mit keepalived und HAProxy