bind: refused notify from non-master

Auf einem bind9 SLAVE Server erscheint nach eienm restart des anmed Daemons die Meldung:

general: info: zone example.com/IN/external-zone: refused notify from non-master: 1.2.3.4

Nur: Die Angegebene IP ist die IP des SLAVE Servers selbst und dieser ist halt nun Mal kein MASTER. 😉

Continue reading bind: refused notify from non-master

robots.txt im HTTP Header

Da in der robots.txt häufig Applikationsinterne Pfade stehen, die der Webmaster vor den Suchmaschinen „verstecken“ möchte, kann das teils von security auditoren bemängelt werden.

In diesem Fall hat man die Möglichkeit mittels dem X-Robots-Tag die ensprechenden Anweisungen für die Crawler der Suchmaschinen auch im HTTP Header der betreffenden URLs auszugeben.

Continue reading robots.txt im HTTP Header

SMTP-Sinkhole mit postfix smtp-sink

Beim Testen von Applikationen oder beispielsweise Lasttests will man verhindern, dass irgendwelche Mails an Benutzer raus gehen.

Um das zu erreichen bietet postfix das kleine Tool smtp-sink an. Hier werden E-Mails vom MTA normal angenommen, aber statt tatsächlich verschickt, dann einfach in eine Datei geschrieben.

Continue reading SMTP-Sinkhole mit postfix smtp-sink

HTTP Header mit tcpdump anzeigen

Wenn man den Web-Traffic zwischen einem Reverse Proxy (z.B. HAProxy) und einem Web Server (z.B. apache) zwecks Problemdiagnose analysieren will geht das nur mit tcpdump auf dem Web Server, da im Browser die HTTP Header, welche vom Reverse Proxy kommen nicht angezeigt werden.

Continue reading HTTP Header mit tcpdump anzeigen

tomcat systemd service

Einen Java Applikationsserver wie tomcat, so scheint es, ist nicht einfach in eine systemd Service Unit zu packen.
Der Grund dafür ist, dass es in den meisten Tutorials und HowTos falsch gemacht wird.
Hier ein stabil funktionierendes template für einen tomcat systemd Service.

Continue reading tomcat systemd service

nginx reverse-proxy per source IP

Es gibt Situationen da möchte man in einem nginx reverse-proxy die Requests je nach Client IP zu einem anderen Server umleiten. Nützlich ist das beispielsweise bei einer Server Migration, wo man nur eine handvoll interner IPs zuerst auf den neuen Server proxy-en kann und wenn alles läuft dann alle.

Die Option mit „if Statements“ sollte man dabei möglichst nicht verwenden. Und es gibt auch eine viel elegantere Option.

Continue reading nginx reverse-proxy per source IP

JSON output in ansible verwenden

Hat man in einem Task JSON als Ausgabe (etwa bei einer REST-API Abfrage) könnte man auf die Werte gleich in ansible Zugreifen, welches ebenfalls JSON für die Variablen verwendet.
Zuvor muss die Ausgabe aber in JSON umgewandelt werden. Ansible stellt dazu den Filter to_json zur Verfügung.

Continue reading JSON output in ansible verwenden

Ansible: Globale Variablen

Normalerweise kann man in ansible nur auf die Variablen des gerade ausführenden hosts zugreifen. Ein Konzept von „Globalen Variablen“, welche im ganzen Playbook gültig sind gibt es nicht.
Man kann sich jedoch behelfen, in dem man einfach die Variablen eines bestimmten Hosts zugreift.

Continue reading Ansible: Globale Variablen

Umgebungsvariablen eines Benutzers in systemd unit übernehmen

Hat man ein systemd unit/service file, welches Bestimmte Umgebungs Variablen des Benutzers übernehmen soll, kann man das entweder mit Environment="[…]" direktiven machen, oder mit EnvironmentFile=/pfad/zur/datei auf eine Datei referenzieren.

Noch einfacher ist es hingegen automatisch die Umgebungsvariablen des Benutzers (die etwa von .bash_profile oder .bashrc kommen) einzulesen.

Continue reading Umgebungsvariablen eines Benutzers in systemd unit übernehmen

ansible: Rolle nur bei explizit gesetzten Tags ausführen

Manchmal hat man in seinem ansible Plabooks Rollen, die man beispielsweise nicht bei jedem Durchgang ausführen möchte, sondern nur wenn ein Tag explizit gesetzt ist.

Ein Beispiel dafür wäre eine „update“ Rolle, welche das System aktualisiert und ggf. danach den Server gleich neu startet. Das will man natürlich nicht bei jedem durchlauf machen.

Mit den zwei Spezial-Tags never und always bietet ansible hierfür die richtigen Werkzeuge.

Continue reading ansible: Rolle nur bei explizit gesetzten Tags ausführen