Inhaltsverzeichnis
OpenNic
OpenNic ist ein privates Network Information Center und alternatives DNS System - mehr Informationen finden Sie bei Wikipedia und auf der Projektseite.
Ich möchte hier die Einrichtung eines T2 DNS-Server unter Ubuntu 9.10 (64-bit Server) beschreiben.
Bind Installieren
apt-get install bind9
da Bind noch nicht konfiguriert ist stoppen wir den Dienst sofort.
/etc/init.d # bind9 stop
Konfigurationsdateien anpassen
named.conf.default-zones
/etc/bind # nano named.conf.default-zones
- named.conf.default-zones
// prime the server with knowledge of the root servers //zone "." { // type hint; // file "/etc/bind/db.root"; //}; zone "." { type slave; file "opnnenic.root"; masters { 58.6.115.45;58.6.115.46;66.244.95.11;207.192.71.13;128.177.28.254;66.96.213.86;216.87.84.214;206.225.16.60; }; allow-transfer { any; }; notify no; }; // be authoritative for the localhost forward and reverse zones, and for // broadcast zones as per RFC 1912 zone "localhost" { type master; file "/etc/bind/db.local"; }; zone "127.in-addr.arpa" { type master; file "/etc/bind/db.127"; }; zone "0.in-addr.arpa" { type master; file "/etc/bind/db.0"; }; zone "255.in-addr.arpa" { type master; file "/etc/bind/db.255"; };
Die Ablage der Datei „opennic.root“ erfolgt unter „/var/cache/bind“ - das ist unter Ubuntu das Arbeits-Verzeichnis des named Servers dameon ! Daher muss hier kein Verzeichnispfad angegeben werden, an dieser Stelle ist keine Änderung apparmor Profiles notwendig. Siehe Ubuntuforums.org
named.conf.options
/etc/bind # nano named.conf.options
- named.conf.options
options { directory "/var/cache/bind"; // If there is a firewall between you and nameservers you want // to talk to, you may need to fix the firewall to allow multiple // ports to talk. See http://www.kb.cert.org/vuls/id/800113 // If your ISP provided one or more IP addresses for stable // nameservers, you probably want to use them as forwarders. // Uncomment the following block, and insert the addresses replacing // the all-0's placeholder. // forwarders { // 0.0.0.0; // }; auth-nxdomain no; # conform to RFC1035 allow-recursion { any; }; allow-query { any; }; allow-query-cache { any; }; listen-on-v6 { none; }; };
IP-V6 ist deaktiviert, die Einträge allow-recursion, allow-query, allow-query-cache sind notwendig damit von „außen“ DNS An/Abfragen zulässig sind - Teilweise habe ich diese Informationen dem Thread bei howtoforge.com entnommen.
named.conf.local
/etc/bind # nano named.conf.local
- named.conf.local
// // Do any local configuration here // // Consider adding the 1918 zones here, if they are not used in your // organization //include "/etc/bind/zones.rfc1918"; logging { channel "misc" { file "/var/log/named.log" versions 3 size 1M; severity info; print-severity no; print-category yes; print-time yes; }; channel "querylog" { file "/var/log/query.log"; severity info; print-severity no; print-category no; print-time yes; }; category "queries" { "querylog"; }; category default { "misc"; }; };
Logging Rotation
Das Logging ist so konfiguriert das über Logrotate die Query-Logfiles täglich „rotiert“ und gepackt werden. Siehe https://answers.launchpad.net/ubuntu/+source/bind9/+question/43187 Erzeugen Sie dazu folgende Datei:
sudo nano /etc/logrotate.d/bind9_query
- bind9_query
/var/log/query.log { daily rotate 14 compress delaycompress missingok notifempty create 0664 bind root postrotate /etc/init.d/bind9 reload > /dev/null endscript }
Die Logging Konfiguration ist noch eine ziemliche Baustelle, für Ergänzungen und Anregungen bin ich dankbar.
Danach noch folgende Anpassungen vornehmen:
//sudo touch /var/log/named.log //sudo chown bind /var/log/named.log //sudo touch /var/log/query.log //sudo chown bind /var/log/query.log // edit /etc/apparmor.d/usr.sbin.named and add: ///var/log/named.log rw, ///var/log/query.log rw, //etc/init.d ./apparmor reload
Danach bind starten
/etc/init.d # bind9 start
Wenn bind ohne Fehlermeldung startet können wir den DNS-Server testen. Tragen Sie den Server als DNS Server in Ihrem System ein - unter Linux/Unix/OSX sollte „dig“ folgende Ausgabe erzeugen:
; <<>> DiG 9.6.0-APPLE-P2 <<>>
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22536
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 7, AUTHORITY: 0, ADDITIONAL: 7
;; QUESTION SECTION:
;. IN NS
;; ANSWER SECTION:
. 518400 IN NS ns21.opennic.glue.
. 518400 IN NS ns5.opennic.glue.
. 518400 IN NS ns4.opennic.glue.
. 518400 IN NS ns22.opennic.glue.
. 518400 IN NS ns7.opennic.glue.
. 518400 IN NS ns6.opennic.glue.
. 518400 IN NS ns2.opennic.glue.
;; ADDITIONAL SECTION:
ns2.opennic.glue. 9297 IN A 216.87.84.214
ns4.opennic.glue. 9297 IN A 84.200.228.200
ns5.opennic.glue. 9297 IN A 128.177.28.254
ns6.opennic.glue. 9297 IN A 207.192.71.13
ns7.opennic.glue. 9297 IN A 66.244.95.11
ns21.opennic.glue. 9297 IN A 58.6.115.46
ns22.opennic.glue. 9297 IN A 58.6.115.45
;; Query time: 38 msec
;; SERVER: 78.46.76.146#53(78.46.76.146)
;; WHEN: Fri Oct 22 23:28:47 2010
;; MSG SIZE rcvd: 262
Monitoring
Zu einem Server gehört natürlich auch ein Monitoring-System, schließlich möchte man ja wissen was auf der Kiste so passiert….., als Monitoring-Software wird Munin verwendet, für Munin spricht die (relativ) einfache Konfiguration und die vielen guten Tutorials und Anleitungen im Internet. Da sich das Monitoring nicht nur auf den DNS-Server „bind“ beschränkt wird es gesondert beschrieben - das „Bind“ Logging wird hier beschrieben.