Tag 19/2016: ssh-Dämon-Konfiguration mit erweiterten Regeln

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

Tag 18/2016: Python-Repräsentation einer YAML-Datei ausgeben

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

Tag 17/2016: Unter OS X ist der launchd die Alternative zu Cron

launchd ist der erste Prozess den der Kernel startet und der dann die Prozesskontrolle übernimmt. Die Konfiguration der Jobs erfolgt dateibasiert im XML-Format und wird unter man 5 launchd.plist erklärt.

Wer es gewohnt ist (und wer ist es nicht) schnell eine Cron-Tabelle zu bearbeiten (man 5 crontab) und den Job dort zu hinterlegen, muss mit der dateibasierten Definition umdenken. Zwar ist es nach wie vor möglich und erlaubt, Cronjobs unter OS X zu verwenden, das wäre dann aber eine unnötige Parallelwelt zum bereits vorhandenen launchd.

Eine wesentliche Hilfe ist dieses Projekt: „A launchd.plist generator„, eine Art Komplettlösung zur Definition aller wesentlichen Merkmale für die Prozessdatei (Source ist auf Github).  Nathan, der Autor, liefert nach dem Submit sogar alle Befehle zum Anlegen des Jobs via Shell mit. Wer keine Shellscripte über das Netz curl-en und in der Shell pip-en will (und wer will das schon), bekommt die Befehle auch angezeigt und kann sie manuell ausführen.

Screenshot der Seite des launchd.plist Generators

Perfekt.

Tag 16/2016: Eine Vorstellung von der Welt aus Überschriften, Teil 2

Weiter gehts mit Schlüsselbegriffen und Satzfragmenten aus Überschriften, heute mit einem Schnappschuss aus der taz (ca. 18:50 Uhr):

Zwischen Schlamm und Tränengas, Kulturschock, Breiter Protest, ratloser Präsident, Obsessive Angst, Rassistischer AfD-Politiker, Gabriel fordert Kontingente, Flüchtlingshilfe, Flüchtlingspolitik, Das Problem wird immer größer, Sexuelle Gewalt, Debatte Rechtspopulismus, Widerstand gegen Rechtsruck, Abschiebungen, Verfassungsklage, Terror-Verdächtige, Dunkle Mächte, Anschlag, Digitalisierung der Landwirtschaft, Demo, Schlechte Stimmung zur Grünen Woche, Trennung zwischen Schichten, Hintertür einbauen, Was Obama über Tampons lernte, Verlorene Zeit, Krieg singen, Brandanschlag, Angst und Angst, Es brennt, Übergriffe.

Uff. Genauso förderlich für Depressionen wie SPON. Wenigstens ist am Ende der Seite ein schönes großes Bild schmackhafter Oliven aus Griechenland („Lecker! Bio-Olivenöl vom Peloponnes“), den es im taz.shop zu kaufen gibt.

Tag 14/2016: YNAB goes Cloud

Die beliebte Budgetierungssoftware „YNAB“ ist in der neuen Version 5 nur noch in einer Cloud-Variante mit Abo-Modell verfügbar. Version 4 wird offiziell bis Ende des Jahres gepflegt. Schade. Bisher war es möglich, die Daten nur lokal vorzuhalten. Eine Dropbox-Synchronisation konnte man, zumindest mit der Android-App, auch umgehen. Das sagt die Firma zu den Sicherheitsvorkehrungen.

Tag 13/2016: Eine Vorstellung von der Welt aus Überschriften, Teil 1

Schlüsselbegriffe und Satzfragmente aus Überschriften, heute mit einem aktuellen Schnappschuss von SPON (ca. 21:25 Uhr):

Ölpreis-Einbruch, Russland-Crash, Attentäter, Terroranschlag, Antragsflut, Übergriffe, schärferes Sexualstrafrecht, Umstrittenes Mediengesetz, Anklage nach Brandanschlag, Verachtenswert, Neonazi-Terroristen, Gerüchte anheizen, Masturbations-Charts, Rundflug über Ruinen, Katastrophenschiff, Eskalation, Wolf verletzt Jogger, Festnahme, Abgrund, Gewissenskonflikt, Zerstörungsvideo, hilfsbereiter Rassist, Ölpreisverfall, Drecksäcke, Schwerer Sturz, Sexismus, Krank zur Arbeit, Tödliches Bakterium, tote Pottwale, Masern hoch ansteckend, Attentat, Fremdgehen, verpestete Luft, begafft wie ein Tier.

Gut informiert, positiv bestärkt, schnell zur Haustür gehen und rausgucken, ob der Weltuntergang wirklich schon da ist.

Tag 12/2016: Chrome Extension THE GREAT SUSPENDER

Der große Strumpfhalter „automatically suspends unused tabs to free system resources“. Eine Chrome-Extension, ohne die es für Tab-Junkies eigentlich nicht geht. Sie funktioniert recht stabil. Kleiner Nachteil: Wer den Verlauf über die Browser und Geräte in der Cloud synchronisiert, sieht die Titel der offenen Seiten nicht mehr. Lässt sich aber verschmerzen, meiner Meinung nach.

Teil eines Screenshots der Chrome-Erweiterung THE GREAT SUSPENDER

Ein Blick in den Chrome-Speicher verrät mehr. Am Besten einen vorher/nacher-Vergleich machen.

Update: Wer Chrome beenden muss, z.B. wegen einem Betriebssystem-Update mit Neustart, kann in Kombination mit einer weiteren Extension wie Session Buddy seine 40+ offenen Tabs in zwei Sekunden „wiederherstellen“. Jeder Tab hat nur den „suspendierten“ Zustand und lädt nicht parallel die jeweilige Seite neu nach.

Tag 11/2016: Radio, ach Radio

Ich kenne niemanden, der den gleichen Radiosender über längere Zeit erträgt.  Auf einem Sender werben sie neuerdings damit, mehr Musik und weniger Sprech zu bringen, aber natürlich erst ab 9:00 Uhr. Vorher ist es nach wie vor gleichbleibend anstrengend. Kinorezensionen sind immer ganz fantastisch, weil Advertorial. Da der Anteil deutscher Sprache gestiegen ist, sickert die aktuell typisch deutsche Melancholie-verlorene-Liebe-oder-Freundschaft-Säuselei besser ins Unterbewusstsein. Aus den Wetter-, Stau- oder Blitzerberichten wird immer ein immenser Bohei gemacht („die meisten Stationen!“, „die meisten Messgeräte!“, „die aktuellsten Lalala!“).  Die Musikauswahl liefert ein langweiliger Algorithmus (play(random.choice(Charts)).

Und an dem Tag, an dem man das Radio mal wirklich brauchen wird, hat man dann kein Kurbelradio zuhause und es bleibt still.

Tag 10/2016: When it rains in Southern California pt. 2 and on the server

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