Quote des Tages

+rnelson0 | i call that "security by nobody else knowing what the fuck they're doing"

Posted in General, IT-Security, Nerd Stuff | Leave a comment

Nginx mit Unicorn und SELinux

Ich betreibe aktuell einen Puppetmaster auf einem CentOS 7 Node. SELinux soll aktiviert bleiben, als Webserver dient Unicorn und davor ein nginx als Reverse Proxy. Nginx soll auf Unicorn per Unix Socket zugreifen. Dies führt zu folgendem Fehler:
2014/11/14 11:51:28 [crit] 14255#0: *2772 connect() to unix:/var/run/puppet/puppetmaster_unicorn.sock failed (13: Permission denied) while connecting to upstream, client: 37.61.199.26, server: , request: "GET /production/file_metadata/plugins?source_permissions=ignore&links=manage HTTP/1.1", upstream: "http://unix:/var/run/puppet/puppetmaster_unicorn.sock:/production/file_metadata/plugins?source_permissions=ignore&links=manage", host: "puppet.awesome:8140

SELinux loggt Fehler nach /var/log/audit/audit.log. Zusammen mit Rob Nelson habe ich einige stunden lang debuggt, bis ich bemerkete das SELinux standardmäßig nicht alle Meldungen loggt was das Debugging erschwerte. Mit folgendem Befehl aktiviert man das Logging aller Policies komplett:

semodule --disable_dontaudit --build

Danach finden sich im audit.log folgende zwei Fehlermeldungen:
type=AVC msg=audit(1415962288.172:5772): avc: denied { write } for pid=14255 comm="nginx" name="puppetmaster_unicorn.sock" dev="tmpfs" ino=131185 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:puppet_var_run_t:s0 tclass=sock_file
type=SYSCALL msg=audit(1415962288.172:5772): arch=c000003e syscall=42 success=no exit=-13 a0=1a a1=903688 a2=6e a3=7fff925f8530 items=0 ppid=14254 pid=14255 auid=4294967295 uid=996 gid=995 euid=996 suid=996 fsuid=996 egid=995 sgid=995 fsgid=995 tty=(none) ses=4294967295 comm="nginx" exe="/usr/sbin/nginx" subj=system_u:system_r:httpd_t:s0 key=(null)

Passende SELinux Regeln um dies zu erlauben kann man wie folgt erstellen:

yum install policycoreutils-python
egrep "(nginx|puppetmaster)" /var/log/audit/audit.log | audit2allow -M nginx
semodule -i nginx.pp

Der entscheidende Hinweis für das Logging kam von foxxx0 aus dem #archlinux.de IRC channel, er verlinkte auf die Gentoo Wiki Seite über SELinux.
Außerdem war die CentOS Wiki Seite hilfreich.

Posted in General, IT-Security, Linux, Nerd Stuff, Puppet | Leave a comment

Linux Short Tips

ssh Key Login absichern:
from="1.2.3.4",no-agent-forwarding,no-port-forwarding,no-X11-forwarding ssh-rsa...... vor jedem Key in der ~/.ssh/authorized_keys einfügen.

Verfügbare Entropy checken:

cat /proc/sys/kernel/random/entropy_avail
Posted in General, Linux, Short Tips | 2 Comments

Noch mehr Lesestoff und Code

und heute mit dabei:

Blogpost über den Vorteil von Nix und warum andere Packetmanager kacke sind

Packaging is the Worst Way to Distribute Software, Except for Everything Else

Außerdem habe ich ein kleines Ruby Script geschrieben welches die PuppetDB API triggert und Nodes findet die noch nie Reports eingereicht haben.

Ich nutze auf diversen Puppetmastern nginx als Reverse Proxy und als Webserver Unicorn. Da es kein passendes Puppet Modul gibt um dieses Setup zu installieren habe ich ein vorhandenes für Apache/Passenger geforkt und dann einen Pull Request erstellt.

Einen bestimmten Remote Branch in git auschecken:

git checkout -b feature-nginx remotes/origin/feature-nginx

Noch eine interessante PDF über KVM Ballooning gibt es hier

Posted in General, Internet found pieces, Linux, Puppet | Leave a comment

Neuer Leserstoff

Da ich nun einen Monat lang jeden Tag bloggen möchte gibt es aktuell keine Wochenzusammenfassung. Hier die ersten Links:

Informationen über mehrere CAs für ein Cert
Infotext über Convergence
PDF von Daniel J. Bernstein über das bruteforcen mehrerer RSA Keys parallel

Posted in General, Internet found pieces, IT-Security, Linux | Leave a comment

Howto Haskell

Ein Bekannter hat mir heute diverse Anlaufstellen für das Erlernen von Haskell empfohlen:

Link 1
Link 2
Link 3
Link 4

Posted in General | Leave a comment

Neue Präsentation

Ich arbeite aktuell an einer neuen Präsentation. Erstmals werde ich dafür Markdown nutzen und dies mit remarkjs.com rendern. Vorteile:
– Versionierung möglich
– Einfache Implementierung von Notes + Slides
– Gerendert wird in html, welches in *jedem* Browser skaliert
– Späteres rendern in pdf problemlos möglich

Git repo gibt es hier. Übersicht über die Themen:

Wer bin ich und warum ist Raid wichtig?
Allgemeine Definition
Raid Typen
Striping
Mirroring
Parity
Einsatzzweck
Implementierung
Hardware
Raidcontroller mit RoC
Biosraid / Fakeraid
Software
mdadm
LVM2
ZFS
BTRFS
glusterfs
ceph

Posted in General | Leave a comment

Updates Updates

Nachdem ich vor einiger Zeit den Arbeitgeber gewechselt habe, hier mal einige Infos dazu:

Über Mich aktualisiert, sowie das verlinkte Xing Profil

Mein Portfolio ist nun auch wieder aktuell.

Wie in “Über Mich” erklärt mache ich aktuell zwei langfristige Weiterbildungen. Der staatlich geprüfte Techniker ist gleichwertig mit dem Bachelor Abschluss einer Uni/FH. Der Fachkaufmann ist der dritte Teil der Meisterprüfung im Handwerk. Geplant für 2015 ist der Ausbilderschein (Teil vier der Meisterprüfung), LPIC1 und LPIC2 Zertifizierung sowie die Prüfung zum Puppet Professional.

Posted in General, Linux, Nerd Stuff, Puppet | Leave a comment

PDF Sammlung KW45

Handbook of Elliptic and Hyperelliptic Curve Cryptography

Slides von Markus Schade über IPv6, PUE und Green IT im Datacenter

Informationen über RSA, Perfect Forward Secrecy und Diffie-Hellman Key Exchange2

Update meines Mailserver Workshops, nun mit Migrationsanleitung auf mdbox, noch mehr Security Features.
Todo: autoconfig für Thunderbird bauen, Rate Limits und Sperrung des Mailversands für einzelne Nutzer mit postfwd2 (die nötige SQL Datei gibt es hier).

Von Lennart Poettering gibt es einen Blogpost über das absichern von systemd Units, sowie eine sehr gute Manpage

Posted in General, Internet found pieces, IT-Security, Linux, Nerd Stuff | Leave a comment

#VDM30IN30

Rob Nelson (rnelson0) hat mich auf die Aktion #VDM30IN30 hingewiesen. Hier geht es darum in 30 Tagen jeweils einen Blogpost pro Tag zu erstellen um damit Blogs beliebter und belebter zu machen. Daran nehme ich natürlich gern teil :). Morgen gibt es dann wieder einen Wochenrückblick mit PDFs.

Posted in General | Leave a comment