Nutzung von DNSSec unter Mac OS
Auf dieser Seite finden Sie Anleitung zur Nutzung von DNSSec unter MAC OS.
unbound DNS-Resolver
Zunächst ein DNSSec-fähiger DNS-Resolver zu installieren. Dies geschieht am einfachsten über brew
brew install unbound ldns
Aus Sicherheitsgründen ist es ratsam, den DNS-Resolver mit unpriveligierten Rechten zu betreiben. Daher sollte ein entsprechender Nutzer und eine Gruppe eingerichtet werden. Hierfür prüft man zunächst, ob eine Nutzer- und Gruppen-ID zwischen 1-500 frei ist, z.B. mittels
dscl . -list /Groups PrimaryGroupID | grep 451
dscl . -list /Users PrimaryGroupID | grep 451
Wenn die IDs (in diesem Fall 451) frei sind, werden der Nutzer und die Gruppe angelegt
sudo dscl . -create /Groups/_unbound
sudo dscl . -create /Groups/_unbound PrimaryGroupID 451
sudo dscl . -create /Users/_unbound
sudo dscl . -create /Users/_unbound RecordName _unbound unbound
sudo dscl . -create /Users/_unbound RealName "Unbound DNS server"
sudo dscl . -create /Users/_unbound UniqueID 451
sudo dscl . -create /Users/_unbound PrimaryGroupID 451
sudo dscl . -create /Users/_unbound UserShell /usr/bin/false
sudo dscl . -create /Users/_unbound Password '*'
sudo dscl . -create /Groups/_unbound GroupMembership _unbound
Anschließend kann unbound konfiguriert werden
/usr/local/etc/unbound/unbound.conf
server:
verbosity: 1
interface: 127.0.0.1
access-control: 127.0.0.1/8 allow
chroot: ""
username: "_unbound"
auto-trust-anchor-file: "/usr/local/etc/unbound/root.key"
unblock-lan-zones: yes
forward-zone:
name: "."
forward-addr: 141.53.10.4
forward-addr: 141.53.10.5
wobei der Fingerprint des öffentlichen Schlüssels der DNS-Root-Zone zu hinterlegen ist
/usr/local/etc/unbound/root.key
. IN DS 19036 8 2 49AAC11D7B6F6446702E54A1607371607A1A41855200FD2CE1CDDE32F24E8FB5
. IN DS 20326 8 2 E06D44B80B8F1D39A95C0B0D7C65D08458E880409BBC683457104237C7F8EC8D
An dieser Stelle werden aus Sicherheitsgründen auch die Dateiberechtigungen für den unbound DNS-Resolver eingeschränkt
sudo chown -R _unbound:staff /usr/local/etc/unbound
sudo chmod 640 /usr/local/etc/unbound/*
Zum Abschluss der Installation muss noch der Autostart des unbound DNS-Resolvers konfiguriert werden. Dazu wird die Datei /Library/LaunchDaemons/net.unbound.plist mit folgendem Inhalt angelegt
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>net.unbound</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/sbin/unbound</string>
<string>-d</string>
<string>-c</string>
<string>/usr/local/etc/unbound/unbound.conf</string>
</array>
<key>KeepAlive</key>
<true/>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
Abschließend muss in den Systemeinstellungen der neue DNS-Resolver zur Verwendung aktiviert werden. Hierzu geht man über Systemeinstellungen -> Netzwerk -> Ethernet bzw. WLAN, also die jeweilige Verbindung -> Weitere Optionen -> DNS in die DNS-Einstellungen und ändert den vorhandenen DNS-Server in 127.0.0.1.
OpenSSH-Client mit SSHFP-Unterstützung
Mac OS liefert einen OpenSSH-Client mit, der aufgrund der verwendeten Bibliotheken nicht mit SSHFP-DNS-Einträgen arbeiten kann. Dies ist aber zwingend erforderlich, wenn die Option VerifyHostKeyDNS=yes genutzt werden soll.
Daher kann man einfach via brew eine alternative OpenSSH-Version installieren
brew install openssh
/usr/local/bin/ssh -V