In diesem Github-Repo „awesome-sec-talks“ findet Ihr eine handgepflückte Liste großartiger Sicherheits-Vorträge.
Anspieltipp: 32C3 von Dez. 2015.
Es dauert vermutlich ein bisschen, bis man die durchhat. Also gleich anfangen.
Auch dieser Tag geht vorbei.
In diesem Github-Repo „awesome-sec-talks“ findet Ihr eine handgepflückte Liste großartiger Sicherheits-Vorträge.
Anspieltipp: 32C3 von Dez. 2015.
Es dauert vermutlich ein bisschen, bis man die durchhat. Also gleich anfangen.
In vielen Konfigurationsbeispielen für die sshd_config, der Konfigurationsdatei für den ssh-Dämon, wird mit der AllowUsers-Direktive explizit festgelegt, mit welchen Benutzernamen (und damit Benutzern) man sich überhaupt anmelden darf. Kombiniert mit @HOST gilt der Login eines Benutzers dann sogar nur für den angegebenen Host.
AllowUsers foo bar baz@192.168.1.100
Loginversuche von Unbefugten mit dort nicht aufgeführten Benutzerkonten lassen sich damit, dank eindeutiger Fehlermeldung im Logfile, noch einfacher mit Tools wie fail2ban aufspüren.
sshd[9140]: User system from host.example.com not allowed because not listed in AllowUsers
Hat man den Login so konfiguriert, dass nur das Public-Key-Verfahren erlaubt ist und muss einem Benutzerkonto trotzdem den Login mit Passwort erlauben, kann man sich mit konditionalen Blöcken behelfen, die man mit der Match-Direktive einleitet.
An das Ende der sshd_config kann man beispielsweise ergänzen:
Match Address 192.168.1.100 User bolo AllowUsers bolo PasswordAuthentication yes
Hier werden zwei Kriterien geprüft, nämlich ob der Login von einer bestimmten IP-Adresse aus erfolgt („Address 192.168.1.100“) und ob es der zu erlaubende Benutzer ist („User bolo“). Wenn ja, wird diesem Benutzer explizit auch der Login („AllowUsers bolo“) und die Anmeldung via Passwort erlaubt („PasswordAuthentication yes“). Die im konditionalen Block gelisteten Einstellungen überschreiben die globalen.
Genauso gut kann man also auch schreiben:
# in der "globalen" AllowUsers Liste AllowUsers foo bar baz@192.168.1.100 bolo@192.168.1.100 PasswordAuthentication no PubkeyAuthentication yes PermitEmptyPasswords no Match User bolo PasswordAuthentication yes
Zur Zeit kodifiziere ich das Setup einiger alter Server in Ansible-Skripte. Dank Virtualisierung und Cloud ist es mittlerweile einfach, Migrationen auf neue Betriebssysteme und Versionsstände im Vorfeld durchzuspielen. Die neuen Setups profitieren auch vom Know-how aus zahlreichen anderen Ansible-Scripten, z.B. auf Github, weil man immer wieder auf nützliche Vorgehensweisen und Module stößt.
Bei den Core-Modulen copy, file, lineinfile und template setze ich nach Möglichkeit immer explizit group, owner und mode so restriktiv wie möglich – der SuSE-Paranoid-Mode bei den Dateirechten fehlt mir bei Debian/Ubuntu einfach 🙂 Ansonsten Tags setzen mindestens für Packages und Services. Und vor dem Schreiben eigener Rollen lohnt es sich immer, nach bereits erprobten und universellen Rollen Ausschau zu halten.
Zwar ist die Struktur eines YAML-Dokuments leicht zu verstehen, aber trotzdem ist manchmal ein schneller Blick auf die Python-Repräsentation hilfreich. Das kann man beispielsweise mit ein paar Zeilen Python selbst erledigen. „Tag 18/2016: Python-Repräsentation einer YAML-Datei ausgeben“ weiterlesen
Die Fakten: Vine, Videoportal, Videos von max. 6 Sekunden Länge (Wikipedia-Background). Witziges Beispiel aus dem großen Topf. Und dazu noch ein Cloudflare-nginx-WAF-Video.
Die Fakten: Vine, Videoportal, Videos von max. 6 Sekunden Länge (Wikipedia-Background). Für den Sound im Video links oben klicken.
„Tag 10/2016: When it rains in Southern California pt. 2 and on the server“ weiterlesen
Was hab ich die letzten Tage gelernt? Dass Dovecot-Replikation eine fantastische Sache ist. Wie überhaupt fast alles an und mit Dovecot. Das erste Ansible-Script für einen generischen Mailserver mit Postfix, Amavis und Filtern-vor-Annahme ist fertig, die Replikations-Komponente beinahe.
Das Ziel ist ein einfacher Active/Active-Cluster mit tcps:// Verbindung. Die sichere Verbindung der eigentliche Haken, der mich ein bisschen gefuchst hat: Bei der Dovecot-Version des Betriebssystem-Pakets gibt es einen Bug, bei dem der Diffie-Hellman-Parameter ssl_dh_parameters_length in diesem Zusammenhang nur mit 1024 Bit Länge gesetzt werden kann. Schade, weil guckst Du z.B. hier.
Statt eigener CA habe ich übungshalber ein Zertifikat mit den Mitteln von letsencrypt.com erstellt. Nach dem Download des Root-Zertifikats und der beiden Intermediate-Zertifikate, dem Kopieren ins zentrale ssl- Verzeichnis und einem anschließenden c_rehash wurde es anstandslos von Dovecot akzeptiert.
Good night and good luck.
Ablage von Links zur E-Mail-Connectivity oder ähnlichem Netzwerkzeugs.
If your script or app sends mail and you’ve got no time or don’t feel like configuring a real SMTP server, use a mailsink. A debugging method that in it’s simplest form just displays the result of the SMTP conversation, namely the message.
Fire up a terminal an run this code:
python -m smtpd -n -c DebuggingServer localhost:3000
This listens on port 3000 on your localhost (127.0.0.1). If you need port 25 (the SMTP default port), just run the line with sudo and enter your password:
sudo python -m smtpd -n -c DebuggingServer localhost:25
That’s it. Enjoy.
A bookmark is just not enough, sometimes. And I have way to much of them anyway.
Ok. This is my flotsam & jetsam of the week:
https://developer.atlassian.com/blog/2015/01/a-better-pull-request/
The piece of cake is in the comment of Erik van Zijst:
git merge-tree `git merge-base master bob/master` master bob/master
If your root server hoster loves to integrate 10 year old harddisks with a history of 89 previous customers you’ll have to cope many times with disk failures. If you launch a shutdown -r now or reboot you’ll likely see Input/output error messages and nothing more.
How to boot? You might use your IPMI interface or some kind of hosters panel. If this is not available for any reason here’s how you might be able to force booting immediately:
# echo 1 > /proc/sys/kernel/sysrq
# echo b > /proc/sysrq-trigger
This works (as root) because you can trigger the Magic_SysRq_key concept also via the proc filesystem.
Enjoy.
I need a memory hook for this. All the time I search for things like proxy, forward – but never for „rpaf“ (from the description: „rpaf is short for reverse proxy add forward“).
So, purely for me, this is the $!%/%%%$$$$ module:
libapache2-mod-rpaf
aptitude install libapache2-mod-rpaf
Sigh.
** Update Day 295/2016: For newer Apaches >= 2.4 the module mod_remoteip is recommended.