Archiv für den Monat: Dezember 2011

host_name ändern in Nagios: Bug?

In Nagios ist es nicht so einfach, wenn ein Server umbenannt wird…
Ein Neuling in Nagios wird intuitiv in die Konfigurationsdatei XYZ.cfg gehen und darin den neuen Namen unter “host_name” eintragen. Dann noch ein Reload des Daemons und… nichts hat sich geändert! Noch immer erscheint der alte Name in der Webseite.
Nochmals ein Blick in die Konfigurationsdatei; da ist alles richtig eingetragen. Die Seite wird nochmals neu geladen und weil immer noch der alte Name da steht, beginnt man an der eigenen Sehkraft zu zweifeln!

Die alteingesessenen Nagios-Admins kennen das Problem: Es ist keines, es ist ein Feature – so habe ich mich von der Community belehren lassen!

Es hängt zusammen mit einer Statusdatei, welche Nagios anlegt, damit nach einem Neustart des Daemons nicht immer alle Checks ohne Daten dastehen und erst alles wieder aufgebaut werden muss. Deshalb wird darin der letzte Zustand gespeichert und dann auch abgerufen.
Wieso dabei auch der Hostname gespeichert und aus dieser Datei anstelle der Konfigurationsdatei ausgelesen wird, kann ich mir leider nicht erklären. Aber eben: Das ist ein Feature, kein Bug!

Die Lösung des Problems liegt darin, dass der Name nicht nur in der offiziellen Konfigurationsdatei, sondern auch in der Statusdatei unter var/retention.dat angepasst wird. Bevor das geschieht, muss aber der Nagios-Daemon gestoppt werden.

Also (der Pfad der Nagios-Installation bitte anpassen):

/etc/init.d/nagios stop
vi /usr/local/nagios/var/retention.dat
/etc/init.d/nagios start

Verzweifelt nicht an euer Sehkraft, es ist wirklich so ;-)

Ich weiss, was du dir runterlädst!

Ja, weiss ich wirklich. Naja, wenn ich deine IP habe – dann schon…

Heute habe ich eine interessante Seite entdeckt, die nennt sich youhavedownloaded.com. Dies ist eine Suchmaschine für eine Datenbank, welche sich an öffentliche Torrent Tracker anhängt und jeden Zugriff mit IP und Dateiname protokolliert.
Und die Datenbank kann sich echt sehen lassen:

Users in database: 52,902,000
Torrents: 113,200
Files: 1,955,000
Files size: (106.07 TB)

Die Seite ist darauf ausgerichtet, um zu sehen, ob die eigenen Downloads protokolliert wurden, doch viel interessanter finde ich es, das ganze mal in der Firma laufen zu lassen.
Da kannst du live mitverfolgen, was so alles heruntergeladen wird. :D
Für Private ist es eher langweilig, wegen der dynamischen IPs, welche die meisten Provider vergeben!

Und ja, ich weiss! Torrents gibt es nicht nur für illegale Downloads, aber die Statistiken von youhavedownloaded.com sprechen auch hier Bände:

Top 5 themes
Music
Movies
TV-shows
Games
Applications

Top 5 regions
China
United States
Spain
United Kingdom
Taiwan

Firefox zu Chrome: Eine Ära!

Fett, träge und langsam! Leider treffen diese Adjektive je länger je mehr auf den guten alten Firefox zu! Eigentlich liebäugelte ich schon lange mit einem Wechsel zu einem alternativen Browser, heute aber hat mir Firefox den Rest gegeben. Bei einem Download oder einer Seite mit Flash hängt sich der komplette Browser auf, das Schliessen und Öffnen dauert fast länger als den Computer neuzustarten, das waren Punkte, wo ich sagen musste, jetzt ist die Zeit gekommen!

Liebe Opera-Gemeinde, hasst mich, ich habe Google Chrome für mich auserwählt ;)
Die Installation von Chrome ist wie gehabt einfach und zum Glück kann ich direkt aus Firefox meine Lesezeichen und Passwörter importieren. Somit erspare ich mir mühsames abgleichen o.ä.
Und wie sich bei meinen ersten Erkundungsreisen zeigt vermisse ich nichts. Dinge wie Rechtschreibprüfung oder Firebug brauche ich gar nicht mehr zu installieren, das gibt es schon out-of-the-box!
Ausserdem öffnet und schliesst Chrome binnen Sekunden und ich frage mich echt langsam: Wieso habe ich nicht schon früher gewechselt…

Ich möchte Firefox ja nicht vergraulen, aber leider kann ich den Wechsel nur jedem empfehlen! Und ja, das ist mein erster Post von Chrome ;)

SSH von ESXi absichern

Vor kurzem habe ich ja bereits über Syslog geschrieben. Jeder der schon mal einen Server in den weiten des Internets betrieben hat (damit meine ich nicht zu Hause im eigenen Netzwerk), der weiss, quickportabletoilets.com wie schnell es geht, bis die ersten Bots und Kiddies mit endlosen Versuchen probieren, das SSH-Passwort zu knacken.
Für Linux-Distributionen wie Ubuntu, Debian, RedHat oder was auch immer gibt es unzählige Tools und Applikationen, welche helfen entweder den SSH-Zugriff zu verstecken, oder aber zu verteidigen.

Beides gibt es leider nicht bei meinem ESXi Server. Noch nicht mal eine anständige iptable oder hosts.deny sind vorhanden, geschweige denn von einer Firewall, wie es bei ESX Standard ist.

Um jedoch mal zu sehen, wie viele Personen versuchen, mein SSH zu knacken, habe ich ein einfaches kleines Script für Nagios geschrieben.

Ich weiss es kann noch viel optimiert werden dabei, doch es erfüllt seinen Zweck:

#!/bin/bash

# ####################################################################
# Check Syslog /var/log/SPLVS002.log for Brute Force Attacks via SSH
# by Patrick Schmid
# Version 1.0
######################################################################

export STATE_OK=0
export STATE_WARNING=1

time=`date +%H.%M.%S |cut -d'.' -f1`
time=`echo $time|sed 's/^0*//'`
time2=$(( $time - 1))
time3=$(( $time - 2))

if [ $time -lt 10 ]; then
        time=0$time
fi

if [ $time2 -lt 10 ]; then
        time2=0$time2
fi

if [ $time3 -lt 10 ]; then
        time3=0$time3
fi

compare=`tail -300 /var/log/SPLVS002.log |grep "from" |grep "root" |grep "attempt" | cut -d' ' -f3`
compare=`echo $compare | cut -d' ' -f1`

if [ $compare -lt 10  ]; then
        attackers=`tail -300 /var/log/SPLVS002.log |grep "from" |grep "root" |grep "attempt" | cut -d' ' -f4,14 |cut -d':' -f1,2,3 |sed -e 's/://' | tee -a |sed -e 's/://' |tee -a |grep "^$time\|^$time2\|^$time3" |cut -d' ' -f2 |sort |uniq`
        computers=`tail -300 /var/log/SPLVS002.log |grep "from" |grep "root" |grep "attempt" | cut -d' ' -f4,14 |cut -d':' -f1,2,3 |sed -e 's/://' | tee -a |sed -e 's/://' |tee -a |grep "^$time\|^$time2\|^$time3" |cut -d' ' -f2 |sort |uniq |wc -l`
        attemps=`tail -300 /var/log/SPLVS002.log |grep "from" |grep "root" |grep "attempt" | cut -d' ' -f4,14 |cut -d':' -f1,2,3 |sed -e 's/://' | tee -a |sed -e 's/://' |tee -a |grep "^$time\|^$time2\|^$time3" |cut -d' ' -f2 |sort |wc -l`
else
        attackers=`tail -300 /var/log/SPLVS002.log |grep "from" |grep "root" |grep "attempt" | cut -d' ' -f3,13 |cut -d':' -f1,2,3 |sed -e 's/://' | tee -a |sed -e 's/://' |tee -a |grep "^$time\|^$time2\|^$time3" |cut -d' ' -f2 |sort |uniq`
        computers=`tail -300 /var/log/SPLVS002.log |grep "from" |grep "root" |grep "attempt" | cut -d' ' -f3,13 |cut -d':' -f1,2,3 |sed -e 's/://' | tee -a |sed -e 's/://' |tee -a |grep "^$time\|^$time2\|^$time3" |cut -d' ' -f2 |sort |uniq |wc -l`
        attemps=`tail -300 /var/log/SPLVS002.log |grep "from" |grep "root" |grep "attempt" | cut -d' ' -f3,13 |cut -d':' -f1,2,3 |sed -e 's/://' | tee -a |sed -e 's/://' |tee -a |grep "^$time\|^$time2\|^$time3" |cut -d' ' -f2 |sort |wc -l`
fi

[ "$attackers" ] && echo -e "$attemps attemps from $computers attackers\n$attackers"
[ "$attackers" ] || echo "No Attack running"

[ "$attackers" ] && exit $STATE_WARNING
[ "$attackers" ] || exit $STATE_OK

Und schon sieht man in Nagios selbst, was so abgeht:

Weiterlesen