iptables REJECT

Neue öffentliche DNS Server

Jetzt gibt es eine Alternative für die Google DNS-Server (8.8.8.8 & 8.8.4.4) von Quad9 (IBM). Ich habe die gerade mal getestet und die sind in meinem Fall sogar schneller als die von Google oder OpenDNS.
Quad9 stellt nicht nur einfach öffentliche DNS-Server zu Verfügung, sondern bietet auch gleich ein Latte an Features für diese an. Folgende DNS-Server stellt Quad9 Euch zu Verfügung:

DNS-IPv4: 9.9.9.9
DNS-IPv6: 2620:fe::fe
Features: Malware Blocklist, DNSSEC, No EDNS Client-Subnet

DNS-IPv4: 9.9.9.10
DNS-IPv6: 2620:fe::10
Features: No blocklist, no DNSSEC, send EDNS Client-Subnet

DNS-IPv4: 9.9.9.11
DNS-IPv6: 2620:fe::11
Features: noch unklar

DNS-IPv4: 9.9.9.12
DNS-IPv6: 2620:fe::12
Features: noch unklar

Wer mal die Performance seiner DNS-Server checken will, der sollte dich mal DNSdiag oder/und namebench (Windows, Mac, Linux) von Google anschauen.

OpenSSL Heratbleed

Sysadmin: OpenSSL Befehle und Tipps

Nachdem ich in den letzten Wochen immer mal wieder mit OpenSSL wegen Heartbleed und Co. zu tun hatte, gibt es hier mal ein paar wissenswerte Befehle und Tipps:

Einen Private Key mit 2048bit erzeugen:
openssl genrsa -out 2048

 

Einen Private Key mit 4096bit erzeugen:
openssl genrsa -out 4096

 

Einen CSR (Certificate Signing Request, Zertifikatsanforderung) erzeugen:
openssl req -new -key -out

Anschließend müssen ein paar Fragen beantwortet werden (Beispiel):
Country Name (2 letter code) [DE]: DE
State or Province Name (full name) [Some-State]: Germany
Locality Name (eg, city) []: Berlin
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Websenat
Organizational Unit Name (eg, section) []: Ecommerce

Wichtig für ein öffentliches Zertifikat ist der „Common Name“. Hier muss der Domainname angegeben werden:
Common Name (eg, YOUR name) []: domain.de
Email Address []: info@domain.de

Please enter the following 'extra' attributes to be sent with your certificate request
A challenge password []:
An optional company name []:

 

Passt der Private Key zum Zertifikat (Public Key Match):
openssl x509 -noout -modulus -in | openssl md5
openssl rsa -noout -modulus -in | openssl md5

Sind beide Werte identisch, passt es. Ansonsten nicht.

 

Das kann man natürlich auch mit dem CSR machen:
openssl req -noout -modulus -in | openssl md5

 

Komplettes Zertifikat anzeigen:
openssl x509 -noout -text -in

 

Hash anzeigen:
openssl x509 -noout -hash -in

 

MD5-Fingerprint anzeigen:
openssl x509 -noout -fingerprint -in

 

Ach ja, noch was: !!! DEN PRIVATE KEY NIE NIE NIE WEITERGEBEN !!!

Bye bye putty! Hello Kitty!

Heute gibt es mal einen kleinen feinen Softwaretipp für Admins:

Wer viel mit Servern per SSH oder mit TELNET auf Netzwerkgeräten arbeitet, der benötigt unter Windows ein Programm für den Konsolenzugriff. Die meisten von Euch werden sicherlich das kleine Programm putty dafür benutzen. Doch leider ist putty schon etwas in die Jahre gekommen. Die letzte putty Version 0.62 ist vom 10.12.2011 und dort wurden auch nur Bugs beseitigt. Seit Jahren kommen keine neuen Funktionen mehr hinzu. Aber es gibt eine Alternative: Kitty! Kitty ist ein Fork von putty 0.62 und hat nicht nur die bekannten putty Funktionen, sondern auch noch zahlreiche Extras von den Entwicklern spendiert bekommen. Mit den neuen Funktionen sind viele Sachen einfacher geworden. Mit wenigen Handgriffen lassen sich bestimmte Sachen auch automatisieren. Wer mit putty gearbeitet hat, der wird auch mit kitty zurechtkommen:

Kitty - ssh/telnet Client

Mit Kitty hat man ohne Probleme (Kitty runterladen, starten und fertig.) Zugriff auf die gespeicherten Verbindungen von putty. Diese werde nämlich in der Windows-Registry gespeichert. Dies ist zum Beispiel auch eine Einschränkung von putty die ich gar nicht mag. Die Verbindungen lassen sich mit putty auch nicht aus der Registry exportieren. Mit Kitty ist das kein Problem. Im Ordner von Kitty einfach eine „kitty.ini“-Datei anlegen und folgendes reinschreiben:
[KiTTY] savemode=dir
Wird jetzt Kitty gestartet, dann werden einige Verzeichnisse (Commands, Folders, Launcher, Sessions, Sessions_Commands, SshHostKeys) angelegt. Werden nun neue Verbindungen eingerichtet, dann werden diese nicht mehr in der Registry gespeichert, sondern im Sessions-Ordner in einzelnen Dateien.
Damit die gespeicherten putty Verbindungen auch dort landen, muss Kitty einmal mit einer Option gestartet werden: kitty.exe -convert-dir
Schon hat man eine portable Version von Kitty. Natürlich kann Kitty noch viel: Tray-Launcher, Auto-Login, Verbindungsverwaltung, … Probiert es am besten selber aus.

Kitty: Download | Funktionen | Command-line Options

Systemüberwachung mit Nagios und Twitter

Wollte mich heute eigentlich mal um meine ToDo-Liste kümmern, aber irgendwie fehlte mir da die Lust zu ;) Stattdessen habe ich mich heute mal mit cURL, JSON, Twitter und Nagios beschäftigt.
Jeder Admin wird es kennen, das Problem mit der Benachrichtigung wenn mal etwas nicht funktioniert, eine Website nicht erreichbar ist oder der Datenbank-Server nicht läuft. Man strebt immer mehr die ständige Verfügbarkeit von Servern und Diensten an. Daher ist es wichtig das die entsprechenden Personen schnell benachrichtigt werden oder zumindest wissen das es Probleme gibt. Aus diesem Grund überwachen viele Admins ihre Systeme mit unterschiedlichen Tools. Bekanntes und gern eingestztes Systemmonitoring-Tool im OpenSoucre Bereich ist Nagios. Mit diesem Tool kann man eigentlich alles überwachen was man möchte. Von einfachen pings bis hinzu kompletten Verbindungschecks kann Nagios eigentlich alles. Dadurch das die meistenvorgefertigten Checks in Perl geschreiben sind, kann es ohne Probleme erweitert werden. Im Netz gibt es zahlreiche Erweiterungen für das Tool. Man kann Server mit Switchs etc. in Abhängikeit bringen und durch Kontaktgruppen auch nur die Leute informieren die das Problem angeht. Benachrichtigungen laufen normalerweise per Mail oder per SMS. Leider fehlt mir hier eindeutig der Twittersupport. ;)
Mittlerweile checken die Admins eher Twitter als ihre Mails oder SMSs. Wer schreibt schon noch ne sms? ;) Ich hab mein Nagios heute mal um Twitter ergänzt und bis jetzt funktioniert das gut. Jeder der benachrichtigt werden möchte brauch einfach nur dem Twitter-Account folgen und schon bekommt er immer den aktuellen Status in seine Timeline. Jetzt werden sicherlich gleich viele aufschreiben wegen Datenschutz etc. Man kann den Twitteraccount für die Statusmeldungen auch auf privat setzten, wenn man es möchte. Im Moment werden auch noch keine DMs (Direct Messages) verschickt, sondern einfach nur ein Tweet abgesetzt. Sicherlich kann man das alles noch ausbauen, aber für meine Zwecke reicht das erstmal so. Später werde ich es mal erweitern.
Was muss mal also machen? Nicht viel ;) das ganze ist in weniger als 5 Minuten erledigt. Als erstes sollte man sich einen Account bei Twitter für die Statusmeldungen anlegen. Danach sollte man sichergehen, das auf dem Rechner/Server wo Nagios läuft auch Curl installiert ist. Wenn nicht dann einfach nachinstallieren (z.B. unter ubuntu „apt-get install curl“). Anschließend packt man die folgenden Zeilen in die „commands.cfg“ (liegt unter /etc/nagios3/ bei ubuntu) bei Nagios rein:

define command {
command_name notify-by-twitter
command_line /usr/bin/curl --basic -u "user:password" -d "status=[Nagios] $NOTIFICATIONTYPE$ $HOSTALIAS$/$SERVICEDESC$ ist $SERVICESTATE$" http://twitter.com/statuses/update.json
}


define command {
command_name host-notify-by-twitter
command_line /usr/bin/curl --basic -u "user:password" -d "status=[Nagios] $HOSTSTATE$ Status bei $HOSTNAME$" http://twitter.com/statuses/update.json
}

Bei „User“ und „Password“ tragt ihr die entsprechenden Daten von dem vorher erstellten Twitter-Account ein. Die Variablen „$NOTIFICATIONTYPE$, $HOSTALIAS$, $SERVICEDESC$, $SERVICESTATE$“ etc. werden dann von Nagios entsprechend ausgefüllt. Nagios bietet aber auch noch andere an.
Dadurch das ich aber auch noch mehrere Standorte überwachen möchte, gebe ich den Tweets noch die entsprechenden GPS-Koordinaten mit. Somit weiß ich gleich wenn ich den Tweet sehe, an welchem Standort eine Problem vorliegt. Hierfür ergänzt man einfach die Zeilen mit den entsprechenden Parametern:

define command {
command_name notify-by-twitter-B
command_line /usr/bin/curl --basic -u "user:password" -d "status=[Nagios] $NOTIFICATIONTYPE$ $HOSTALIAS$/$SERVICEDESC$ ist $SERVICESTATE$" -d "lat=+52.51246" -d "long=+13.41349" http://twitter.com/statuses/update.json
}


define command {
command_name host-notify-by-twitter-B
command_line /usr/bin/curl --basic -u "user:password" -d "status=[Nagios] $HOSTSTATE$ Status bei $HOSTNAME$" -d "lat=+52.51246" -d "long=+13.41349" http://twitter.com/statuses/update.json
}

Das wäre dann in beiden Fällen Berlin als Standort. Wenn ich mal wieder etwas mehr Zeit habe, dann werde ich das noch um einige Sachen erweitern. Für den Anfang reicht es mir. Ich finde Twitter eignet sich perfekt für sowas. Jetzt müssen nur noch die Twitter-Server auch immer verfügbar sein ;)

Weitere Informationen zum Thema: Twitter API |

USB-Stick für Admins

Heute habe ich mir mal etwas Gedanken über einen Admin-USB-Stick gemacht. Da es in letzter Zeit immer wieder vorgekommen ist, dass man mit den vorhandenen Boardmitteln nicht zum Erfolg kommt. Gerade wenn ich an den Rechner von M&M oder an den Laptop von Andy denke, haben mir die installierten Tools nicht weitergeholfen. Meistens blockte die Malware oder Trojaner die Internetverbindung, was eine Installation bzw. Aktualisierung auch nicht möglich machte.
Jetzt gibt es viele CD-Lösungen (z.B. Ultimate Boot CD for Windows, etc.) von denen gebootet werden kann und von dort aus die entsprechende Gegenmaßnahmen gegen die Schädlinge gestartet werden können. CDs sind aber zu groß und unhandlich. Nicht alles gibt es auf einer CD. Viel sinnvoller würde ich einen USB-Stick finden. Dieser wäre nicht nur schneller, sondern könnte sich noch durch weitere Tools erweitern lassen. Allerdings sollte man schon bei der Auswahl des USB-Sticks darauf achten, dass dieser einen Schreibschutz-Schalter besitzt. Dadurch können sich die Viren oder Trojaner nicht noch auf diesem ausbreiten. Leider gibt es am Markt nicht viele solcher Sticks. Hab aber auch noch nicht richtig danach geschaut.
Nächste Herausforderung ist die Auswahl der Software, die auf den Stick kommen sollte. Ich würde mir die Tools von Sysinternals (oder auch hier) und die c’t Helper schon mal auf den Stick ziehen. Damit könnte man schon einige Probleme beheben.
Habt ihr vielleicht weitere Vorschläge bzw. Empfehlungen? Gibt es sowas auch für den Mac?