Dezember, 2012

Rechner für Bildschirmflächen und -rahmen

Freitag, Dezember 28th, 2012

Da ich mich für einen neuen Fernseher informieren wollte, aber bei den Händlerangaben nur wenige Informationen standen. Habe ich einen Rechner für Bildschirmflächen und -rahmen geschrieben.

Z.B. hat der Händler nur folgende Angaben gemacht, die Bildschirm Diagonale und die äußere Abmessungen. Da ich aber wissen wollte wie breit der Rahmen ist musste ich etwas länger rechen.
sichtbares Bild: 119 cm
Abmessungen (BxHxT) 1089 x 720 x 269 mm

Somit habe ich folgendes Tool geschrieben
http://blog.chr.istoph.de/monitor.php

Das auf dieses Ergebnis für die breite des Rahmens kommt:
Oben, Links und Rechts: 2.59 cm
Unten: 4.24 cm

SSH warnings und die known_hosts

Sonntag, Dezember 23rd, 2012

Manchmal kommt es vor das meine einen Server die IP ändert, das System neu aufsetzt bzw. den SSH key erneuert. Wenn unter dem Namen oder der IP bereits ein andere Rechner in der known_hosts eingetragen war, warnt SSH standardmäßig davor vor dem Login um auf MITM attacken abzuwehren.

ssh 192.168.0.22
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: POSSIBLE DNS SPOOFING DETECTED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The RSA host key for blog.chr.istoph.de has changed,
and the key for the corresponding IP address 192.168.0.22
is unchanged. This could either mean that
DNS SPOOFING is happening or the IP address for the host
and its host key have changed at the same time.
Offending key for IP in /root/.ssh/known_hosts:111
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
1e:14:52:64:3a:55:a2:02:00:00:00:22:00:84:d4:25.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending key in /root/.ssh/known_hosts:94
RSA host key for blog.chr.istoph.de has changed and you have requested strict checking.
Host key verification failed.

Blöd ist das natürlich wenn man nur eine Rescue CD eingelegt hat und den Rechner warten will. Dabei hilft es die SSH known_hosts Datei nach /dev/null zu Mappen um
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no 192.168.0.22

Wenn im einem localen netz die Server immer wieder neue DHCP Adressen bekommen, kann es hilfreich sein die internen Adressen ganz von der prüfung durch die known_hosts Datei auszuschließen. Dafür fügt man in der ~/.ssh/config Datei folgende Zeilen exemplarisch an:
Host 192.168.0.* 192.168.122.*
User root
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null

Server Passwort ändern und keepassx.xml erstellen

Mittwoch, Dezember 19th, 2012

Hier habe ich eine Script geschrieben um auf allen meinen Servern ein Passwort zu ändern und anschließend in einer keepassx XML Datei zu Dokumentieren. Voraussetzung hierfür ist, das neben dem Tool pwgen eine Publikkey auf den Servern ist.

Zunächst muss die Liste der Server in einer Datei angelegt werden.

#!/bin/bash
# Christoph Hueffelmann 
# v0.1 2012-12-12

export path=keepassx.xml

function sshpw () {
	server=$1
	echo $server

	#Hier wird ein Zufallspasswort erzeugt.
	PW=$(pwgen -1 12)

	#Hier wird eine SSH Verbindung auf den Server erstellt und das Passwort geändert
	#sollte dieser Vorgang schief gegen wird das PW nicht in die XML Datei geschrieben. 
	ssh $server "passwd  </dev/null > $path 
}

function dbcreate() {
	echo '

 
  Server
  30'
}

function dbentry() {
	server=$1
	PW=$2
	d=$(date "+%Y-%m-%dT%H:%M:%S")

	echo "   
   $server
   root
   $PW
   
   
   30
   $d
   $d
   $d
   Nie
  ";
}

function dbclose() {
	echo ' 
'
}

#Hier wird überprüft ob eine Liste angegeben wurde.
if [ "$1" == "" ]; then
        echo "ssh-chpw.sh server.liste"
	exit 1
else
        list=$1
fi

if [ -s "$path" ]; then
        echo "Die $path Datei Existiert bereits und sollte nicht überschreiben werden."
        exit 1
fi

if [ -x "/usr/bin/pwgen" ]; then
        echo "Das Programm pwgen ist nicht verfügbar"
        echo "  sudo apt-get install pwgen"
        exit 1
fi

#Hier werden auskommentierte Zeilen wie # entfernt
tmp=$(mktemp)
sort --random-sort $list.txt | grep -v -e "^#" -e ";" -e "^$" > $tmp

dbcreate > $path
while read server; do 
	sshpw "${server}"
done > $path

rm $tmp
exit 0

Die Liste der Server wird dann wie folgt übergeben.
# ssh-chpw.sh liste
Die durch das Script erstelle keepassx.xml kann dann in keepass importiert werden und sollte dann umgehend gelöscht werden, da die Passwörter in der XML Datei im Klartext stehen.

Mehr Infos über: KeePassX

Logging Problem bei dovecot

Dienstag, Dezember 18th, 2012

Nach einem Neustart des E-Mail Servers startete der dovecot nicht mehr. Leider stand in sämtliche dovecot log Dateien nicht mal das er Starten bzw. warum er nicht Starten konnte. Lediglich im Kernel log Stand folgende, nicht aussagekräftige Meldung.

init: dovecot main process (1341) terminated with status 89

Da das Debuggen eines Problems ohne ordentliches Loggig nicht möglich ist haben wir uns das init Script an geschaut, um zu erfahren wie der dovecot Startet.
less /etc/init/dovecot.conf

Mit dem hier gefunden Befehl kann der dovecot dann per Hand gestartet werden.
/usr/sbin/dovecot -F -c /etc/dovecot/dovecot.conf

Und siehe da, die Logmeldungen tauchen auf dem Stdout auf. Und wir konnten den Fehler fixen.

speedport.ip 403 permission to get this page

Mittwoch, Dezember 12th, 2012

Heute mussten wir bei einem Kunden das WLAN auf seinem neuen DSL Router einstellen. Hierfür habe ich den Port auf meinen Rechner durch leiten wollen:

ssh -L 8080:192.168.2.1:443 hostname-client

Dann haben wir aber eine 403 Error bekommen:
403 Forbidden
Your client does not have permission to get this page.(code=41193) from this server.

Also habe ich in der /etc/hosts auf meinem localen Rechner den Namen des Routers Nachgetragen:
127.0.0.1 speedport.ip

Dann habe ich den SSH Befehl noch um sudo erweitert um den Port 443 (SSL) bei mir auch local zu binden.
sudo -i ./id_rsa ssh -L 443:192.168.2.1:443 hostname-client