Windows Server DHCP Einstellungen sichern

Wer noch einen alten Windows 2003 Server sein eigen nennt und dessen DHCP Einstellungen sichern will, der kann wie folgt vorgehen:

Zuerst öffnen wir eine DOS-Box und geben folgende Befehle ein:

c:
cd \temp
netsh
dhcp
server
export dhcp-config all

Dieser Vorgang dauert ein paar Sekunden/Minuten. Anschliessend befinden sie die Einstellungen in der Datei unter c:\temp\dhcp-config . Importieren läuft dann über den fast gleichen Weg. Anstatt export wird import mit selbigen Parametern verwendet.

ACHTUNG: Vor dem Importieren müssen die DHCP Einstellungen auf dem Zielserver entfernt sein. Ansonsten kommt es zu einer Fehlermeldung.

Projektstunden berechnen, runden im viertel Stunden Takt

Ich berechne meinen Kunden pro angefangene viertel Stunde meine Dienstleistungen. Um keine Fehler in der Abrechnung zu haben verwende ich dafür folgende Excel Berechnung. Diese ermöglicht es mir zum einen korrekt die Zeitdifferenz zu ermitteln und gleichzeitig auf die nächste viertel Stunde zu runden.

=OBERGRENZE(C3-B3;1/96)

Wobei C3 die gehen Zeit und B3 die kommen Zeit ist. Auf dem folgenden Bild ist dies noch mal in andere Art veranschaulicht.

Verwendeten Speicherplatz ermitteln

Früher habe ich immer zu Treesize gegriffen wenn ich wissen wollte wo welcher Speicherplatz ver(sch)wendet wird. Durch Zufall bin ich letzt auf RidNacs gestossen.

Die Installation ist mit wenigen Klicks getan und kann durch den Parameter /silent auch einfach per GPO verteilt werden.

Ein Script mit dem man mittels passender GPO RidNacs installieren könnte wäre wie folgt:

echo off
cls

:: Silent Installations-Script für RidNacs
:: Servername muss natürlich auf die eigenen
:: Bedingungen angepasst werden.

if exist "%ProgramFiles(x86)%\RidNacs\RidNacs.exe" goto inst-ridnacs-found
  echo "Installiere RidNacs"
  \\INST-SRV\Software\RidNacs\RidNacs-2.0.3-Setup /silent
  goto ende
:inst-ridnacs-found
echo "RidNacs vorhanden"

:ende

Zurücksetzen und aktualisieren eines UBNT AP

Um einen Accesspoint von Ubnt/Unifi zurückzusetzen kann wie folgt vorgegangen werden. Ich beschreibe hier einmal das zurücksetzen und anschliessend das aufspielen einer neuen Firmware mittels ssh.

Zuerst machen wir den Accesspoint stromlos. Anschliessend drücken wir den Reset-Pin und halten diesen gedrückt während wir den AP wieder mit Strom versorgen. Nach ca. 10 Sekunden sollte man den Reset-Pin los lassen. Die LED am Accesspoint hören kurz auf zu leuchten.
Während des Neustarts sollte man das Gerät nicht ausschalten!

Nach dem Reset hat der Accesspoint die IP Adresse 192.168.1.20 sofern im Netz kein DHCP läuft. Benutzername/Passwort lautet: ubnt/ubnt .

Unter dem Downloadportal von Unifi ( https://www.ui.com/download/ ) kann man sich z.B. mit wget eine aktuelle Firmware passend zum eigenen Produkt herunter laden. Dieses kann man anschliessend mittels scp auf den Accresspoint speichern.

scp BZ.ar7240.v4.0.15.9872.181229.0259.bin ubnt@192.168.1.20:/tmp/fwupdate.bin

Nach dem Upload kann man sich mittels ssh aus den Accesspoint Verbindung und folgenden Befehl eingeben:

syswrapper.sh upgrade2 &

Nach dem Neustart ist die Firmware aktuell.

Bash: NL (Numbering Lines)

Um eine Text-Datei mit Zeilennummern zu versehen gibt es viele Möglichkeiten. cat, awk, sed, less, grep und nl.
Hier mal ein Beispiel mit nl :

nl -b a input-datei.txt 

Unter meinem OSX ist offensichtlich die Option a als default eingestellt. Wie auf dem Screenshot zu erkennen ist, werden auch ohne extra einstellen auch die leeren Zeilen entsprechend nummeriert.

DNS – Überblick einer Domain verschaffen

Mit der Tool Website DNSDumpster.com kann man sich sehr schnell einen Überblick über eine Domain verschaffen. Mit der Eingabe einer Domain bekommt man die dort verwendeten DNS Server, dessen Standorte, Netzblock Eigentümer und einige Einträge die zuvor ermittelt und „gecached“ wurden.

Zum Schluss wird dies noch grafisch übersichtlich dargestellt. Einfach mal ausprobieren.

Mailadresse von Webseiten ermitteln

Hier möchte ich kurz aufzeigen, wie einfach es ist von Webseiten die Mailadresse aus dem Code zu extrahieren und evtl. für SPAM weiter zu verwenden.

curl -# https://www.daserste.de/specials/service/ard-links-adressen-100.html | grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" | sort | uniq

Zuerst verwenden wir den Befehl curl um den html-Code auszugeben. Diesen „schicken“ wir dann weiter zu grep, der mit dem Pattern für gültige Mailadressen dieses aus dem Code extrahiert. Zur besseren Übersicht wird das Ergebnis von grep noch sortiert (sort) und eventuell doppelte Einträge entfernt (uniq).

Wer das öfters zu Demonstrationszwecken tun möchte, der kann auch gerne eine kleine Funktion in .profile abspeichern.

function get-mailadr-from-website {
	curl  -# $1 | grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" | sort | uniq		 
}

Grafana – Tage bis Zertifikat ausläuft ermitteln

In letzter Zeit befasse ich mich öfters mit Grafana. Man kann damit recht einfach und übersichtlich Daten darstellen lassen. Mit folgendem Script ermittle ich das Ablaufdatum einen Webserverzertifikates.

Ich habe in einer MySQL Datenbank eine DB „Hosts“ und darin ist eine Tabelle Server enthalten. Ich verwende diese öfters und kann anhand der Spalte „certchk“ ermitteln ob ich das Zertifikat zu diesem Server ermitteln soll.

In der Variable „DOM“ stehen die Server, die in der Tabelle entsprechend eine 1 stehen haben. Zusätzlich steht in der Spalte „Port“ welcher Port (Standard 443) abgefragt werden soll. Später schreibe ich die Daten in die Tabelle „cerdata“ um diese in Grafana zu verwerten. Einmal in der Nacht mittels Crontab das Script aufrufen sollte reichen.

#!/usr/bin/env bash

SERVER=`mysql -h localhost --database=hosts -s -e "select Hostname from server where certchk = 1;"`
SDATE=`date "+%Y-%m-%d %H:%M:%S"`

for DOM in $SERVER 
do

PORT=$(mysql -h localhost --database=hosts -s -e "select port from server where Hostname = '$DOM';")
	ENDD=$( echo | openssl s_client -showcerts -servername google.com -connect $DOM:$PORT 2>/dev/null | openssl x509 -inform pem -noout -text | grep "Not After" |awk -F" " '{print $4" "$5" "$6" "$7 }')
	ENDD=$( date -d "$ENDD" +%s )
   NOWD=$( date +%s )

	ANZ=$(( ( $ENDD - $NOWD )/(60*60*24) ))
	mysql -h localhost --database=hosts -sN -e "INSERT INTO certdata ( Datum, Server, Counter) VALUES ('$SDATE', '$DOM', '$ANZ');"

done;

Wer mag kann in Grafana noch einen Alert, z.B. < 10 Tage, einrichten. Dann hat man ja noch 10 Tage Zeit sich um ein neues Zertifikat zu besorgen sofern man keines von Letsencrypt verwendet.