Mit ‘dns’ Tagged einträge

dns sshfp record für alle Algorithmen gleichzeitig erstellen

Freitag, Januar 9th, 2015

Wie ich schon vor einigen Jahren geschrieben habe, kann man die SSH fingerprints im DNS hinterlegen, um SSH Verbindungen zu validieren.

# dig -t sshfp blog.chr.istoph.de
;; ANSWER SECTION:
blog.chr.istoph.de. 7199 IN SSHFP 1 1 D931B1124CC5DA23DB2131C62BA9D286081E3EA7
...

Dafür hinterlegt man die Secure Hash Algorithm (SHA) Summen im DNS:
ssh-keygen -r blog.chr -f /etc/ssh/ssh_host_rsa_key.pub
blog IN SSHFP 1 1 d931b1124cc5da23db2131c62ba9d286081e3ea7
blog IN SSHFP 1 2 0fe30bacf0833a9051a74cec431af450ceeca4171b3da5bf0550ada55adadbfa

Jetzt gibt es aber neue Algorithmen die in SSH Einzug erhalten haben.
1: RSA
2: DSA
3: ECDSA
4: ED25519

Da man mit ssh-keygen immer nur einen Key haschen kann und die neue Kurve ED25519 noch nicht von Ubuntu 14.04. unterstützt wird siehe Beispiel:
ssh-keygen -r blog.chr -f /etc/ssh/ssh_host_ed25519_key.pub
export_dns_rr: unsupported algorithm and/or digest_type

So habe ich mir ein Skript geschrieben, das mir alle Fingerprints auf einmal erstellt.

#!/bin/bash

domain="$1"

if [ "$domain" = "" ]; then
	echo $0 domain
	exit 0
fi

function sshfp() {
	a=$1 #algorithmus
	f=$2 #file
	echo $domain IN SSHFP $a 1 $(awk '{print $2}' $f|base64 -d|sha1sum|awk '{print $1}')
	echo $domain IN SSHFP $a 2 $(awk '{print $2}' $f|base64 -d|sha256sum|awk '{print $1}')
}

for f in /etc/ssh/ssh_host_*_key.pub; do
	case "$(echo $f|awk -F '_' '{print $3}')"
	in
	  rsa)
		sshfp 1 $f
		;;
	  dsa)
		sshfp 2 $f
		;;
	  ecdsa)
		sshfp 3 $f
		;;
	  ed25519)		
		sshfp 4 $f
		;;
	esac
done | sort

Die Ausgabe sieht dann folgendermaßen aus:
(mehr …)

Bearbeiten von resolv.conf deprecated

Dienstag, Mai 15th, 2012

Das bearbeiten der /etc/resolv.conf ist seit ubuntu 12.04. deprecated. Nun muss man in die /etc/resolvconf/resolv.conf.d/head Datei editien oder mittels stdout den Nameserver hinzufügen.

echo "nameserver 8.8.4.4" >> /etc/resolvconf/resolv.conf.d/head

Dann muss man noch den Dienst neu updaten. Das geschit mittels:

resolvconf -u

zone files eine IP ändern

Freitag, April 6th, 2012

Mal eben schnell in allen Zonefiles eine IP ändern und die serial Nummer updaten.

#!/bin/bash
for item in *; do 
  if [ -f $item ]; then 
    sed 's/'88.198.44.248'/'46.4.34.52'/g' $item > $item.tmp;
    if [ "$(md5sum $item | awk '{print $1}')" = "$(md5sum $item.tmp | awk '{print $1}')" ]; then 
      rm $item.tmp
    else
      sed "s/$(cat $item.tmp | grep 'serial' | awk '{print $1}')/2012040601/g" $item.tmp > $item
      rm $item.tmp
    fi   
  fi 
done

Das funktioniert natürlich nur solange wenn die Zonefiles noch nicht geupdatet wurden und die Serienummern mit ;sirial getakt sind.

OpenSSH Fingerprinte im DNS

Sonntag, November 27th, 2011

Jetzt habe ich endlich mal eine einfache Anleitung gefunden um OpenSSH Fingerprinte im DNS zu hinterlegen (RFC4255).

Denn ssh-keygen kann diereckt den für BIND nötigen SSHFP record erstellen.

root@ns01:~# ssh-keygen -r ns01.caix.de -f /etc/ssh/ssh_host_rsa_key.pub
ns01.caix.de IN SSHFP 1 1 e208441777cba0459c52e8680b617b254183f711
root@ns01:~# ssh-keygen -r ns01.caix.de -f /etc/ssh/ssh_host_dsa_key.pub
ns01.caix.de IN SSHFP 2 1 0476a2a57fb720fbee586b78e28490929501d8c6

Nach dem veröffentlichen im DNS kann mal den Record mit dig abrufe.
dig -t SSHFP ns01.caix.de

;; ANSWER SECTION:
ns01.caix.de. 7200 IN SSHFP 1 1 E208441777CBA0459C52E8680B617B254183F711
ns01.caix.de. 7200 IN SSHFP 2 1 0476A2A57FB720FBEE586B78E28490929501D8C6

Testen kann mal das ganze dann mit der Option VerifyHostKeyDNS und -v für den Debug mode. Die zwei entscheiden Zielen habe ich unten aufgeführt.

ssh root@ns01.caix.de -o VerifyHostKeyDNS=yes -v
...
debug1: found 2 insecure fingerprints in DNS
debug1: matching host key fingerprint found in DNS
...

Quelle: bd.hauke-lampe.de

root die Schreibrechte entziehen

Montag, August 22nd, 2011

Auf einem ext2/ext3/ext4 basierende Dateisystem kann man root die Schreibrechte für einzelne Dateien entziehen.

Nötig war das für meinen Router der am externen Netz eine per DHCP zugewiesene IP bekommt und damit immer die /etc/resolv.conf überschreiben hat. Da ich aber auf dem Router einen bind9 laufen lasse, sollten die Lokalen DNS anfragen an die 127.0.0.1 weitergeleitet werden.

chattr +i /etc/resolv.conf

Um das ganze wieder rückgängig zu machen verwendet man die Option -i.

Quelle: wiki.ubuntuusers.de