-
-
Save mpaskalev/207ac091495ef648e269 to your computer and use it in GitHub Desktop.
#!/bin/bash | |
# Run as root or sudo the commands that need it as you go. | |
# brew version 0.9.5 | |
# Mac OS X 10.10.1 | |
# A little bit changed version of this: | |
# http://stackoverflow.com/questions/19538118/osx-mavericks-bind-no-longer-installed-how-to-get-local-dns-server-working | |
# 1) USE HOMEBREW TO INSTALL BIND | |
brew install bind | |
# 2) CONFIGURE BIND | |
# Create a custom launch key for BIND | |
/usr/local/sbin/rndc-confgen > /etc/rndc.conf | |
head -n 6 /etc/rndc.conf > /etc/rndc.key | |
# Set up a basic named.conf file. | |
# Brew directory could be slightly different mine is this /usr/local/Cellar/bind/9.10.1-P1/ | |
cd /usr/local/Cellar/bind/*/etc | |
cat > named.conf <<END | |
// | |
// Include keys file | |
// | |
include "/etc/rndc.key"; | |
// Declares control channels to be used by the rndc utility. | |
// | |
// It is recommended that 127.0.0.1 be the only address used. | |
// This also allows non-privileged users on the local host to manage | |
// your name server. | |
// | |
// Default controls | |
// | |
controls { | |
inet 127.0.0.1 port 54 allow {any;} | |
keys { "rndc-key"; }; | |
}; | |
options { | |
directory "/var/named"; | |
}; | |
// | |
// a caching only nameserver config | |
// | |
zone "." IN { | |
type hint; | |
file "named.ca"; | |
}; | |
zone "localhost" IN { | |
type master; | |
file "localhost.zone"; | |
allow-update { none; }; | |
}; | |
zone "0.0.127.in-addr.arpa" IN { | |
type master; | |
file "named.local"; | |
allow-update { none; }; | |
}; | |
logging { | |
category default { | |
_default_log; | |
}; | |
channel _default_log { | |
file "/Library/Logs/named.log"; | |
severity info; | |
print-time yes; | |
}; | |
}; | |
END | |
# Symlink Homebrew's named.conf to the typical /etc/ location. | |
ln -s /usr/local/Cellar/bind/*/etc/named.conf /etc/named.conf | |
# Create directory that bind expects to store zone files | |
mkdir /var/named | |
curl http://www.internic.net/domain/named.root > /var/named/named.ca | |
# If you are using some third party DNS you should add: nameserver 127.0.0.1 in /etc/resolv.conf | |
# If your resolv.conf file is automaticaly generated you should change it on startup in order to work properly | |
# Start bind | |
sudo /usr/local/sbin/named | |
# Check if it is working | |
dig google.com |
Thanks for sharing this.
I have Mac OS Catalina 10.15.5 and do see that dig/bind is installed on this version of macos. What I would like to do is to experiment with creating dns zone files and experimenting (creating naptr records etc) with those using dig, but I do not see any /var/named or /etc/named.config. How to create and use dns zone files in macos catalina 10.15.5. Do I need to brew install bind as you have in this post (if so will there any conflict with the bind that comes with macos 10.15.5)? Thank you.
I would love to see this updated for the latest Catalina as well.
I used this shit in Big Sur, and is working, because this is just a bind server running locally, and you are pointing this to that bind server, so it should work and be very straightforward.
Any tips on getting this working then?
A version for MacOs 11 Big Sur, based on a Debian standard configuration:
https://gist.github.com/Ikkyusan1/4e79e1ac844a2073223c2c4690931e77
How work this under Monterey an an M1 Mac?
And his security?
Just to update @alisade's comment,
/System/Library/LaunchDaemons/
is now a private directory; even as root.Use:
/Library/LaunchDaemons/org.isc.named.plist