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.