Build my own public DNS Servers on CentOS 7 and BIND
Hallo zusammen,
Mein Provider www.netstream.ch gibt die NetVS Plattform per ende August auf. Auf dieser Plattform habe ich bisher meine DNS Einträge gehostet. Nun muss also was neues her. Warum nicht gleich die eigenen DNS Server hochziehen - ich habe ja fünf Public IP's zur Verfügung.
Ich habe mich dazu entschieden, ein BIND DNS Server auf CentOS7 zu installieren.
http://wiki.centos.org/Manuals/ReleaseNotes/CentOS7
Installation CentOS 7
In den folgenden Screenshot zeige ich eine Zusammenfassung der wichtigsten Einstellungen bei der Installation von CentOS 7
Bei der Software-Auswahl kann man bereits den DNS Server auswählen
Auf dem Hauptbildschirm unter "Netzwerk & Hostname" kann der Hostname eingetragen werden. Die weiteren Netzwerkeinstellungen erreicht man über "konfigurieren"
Wichtig ist das Häcklein "Automatisch mit diesem Netzwerk verbinden, wenn es verfügbar ist" - somit wird das Netzwerk beim Systemstart automatisch gestartet.
Die restlichen Einstellungen wie IP, Subnet, Gateway und DNS können in der Registerkarte "IPv4 Einstellungen" gemacht werden.
Während bereits installiert wird, kann man noch das Root Passwort festlegen
Zwei neue Features von CentOS 7 sind der wechsel auf Systemd und Firewalld
Mit dem folgenden Befehl wird der named.service (BIND) zukünftig automatisch gestartet.
systemctl enable named.service
Mit dem folgenden Befehl kann man die Konfiguration überprüfen
systemctl list-unit-files
Mit folgenden Kommandos können die Dienste (Unter Linux nennt man Services/Dienste dann "deamon") starten und stoppen
systemctl start named.service
systemctl restart named.service
systemctl stop named.service
Der FirewallD hat mich halb wahnsinnig gemacht.
Ich konnte die Regeln der Firewall mit den folgenden iptables Befehlen hinzufügen. Aber jeder Neustart des Systems oder des Firewalld (systemctl restart firewalld.service) hat die Regeln wieder entfernt.
iptables -A IN_public_allow -i ens192 -p tcp --dport 53 -j ACCEPT
iptables -A IN_public_allow -i ens192 -p udp --dport 53 -j ACCEPT
Erst als ich die Regeln über das "Firewall-cmd" hinzugefügt habe. Bleiben die Regeln bestehen.
firewall-cmd --permanent --zone=public --add-port=53/tcp
firewall-cmd --permanent --zone=public --add-port=53/udp
Allenfalls muss man hierzu noch die Konfiguration vom Firewalld anpassen
/etc/firewalld/firewalld.conf
CleanupOnExit=yes auf no setzen
Überprüfen kann man die Firewall Regeln mit folgendem Befehl
iptables -L
Nach der Installation müssen noch die Updates installiert werden
yum update
Da ich die Linux Server auf meinem ESXi Server laufen lasse, habe ich noch die VMware Tools installiert
http://blog.icewolf.ch/archive/2014/03/19/install-vmware-tools-on-centos-6-5.aspx
Konfiguration von BIND DNS Server
Nun muss die Zonendatei erstellt werden.
vi /var/named/serveralive.ch
Die Zonendatei sieht dann so aus
$ORIGIN serveralive.ch.
$TTL 3H
@ IN SOA ns1.icewolf.ch. hostmaster.icewolf.ch. (
2014072404 ; serial
12H ; refresh
1H ; retry
2W ; expire
3H ) ; minimum
IN NS ns1.icewolf.ch.
IN NS ns2.icewolf.ch.
IN MX 10 mail.icewolf.ch.
IN TXT "v=spf1 mx -all"
ns1 IN A 80.238.215.82
ns2 IN A 80.238.215.83
@ IN A 80.238.215.86
www IN A 80.238.215.86
autodiscover IN CNAME autodiscover.icewolf.ch.
Nun muss man die Zonendatei noch der Gruppe "named" zuordnen
chgrp named /var/named/serveralive.ch
Anschliessend muss die Zonendatei der BIND Konfiguration hinzugefügt werden.
vi /etc/named.conf
Dabei müssen die folgenden Optionen angepasst werden:
IP Adresse auf welcher der DNS Server arbeiten soll.
type master;
file "bhend-metallbau.ch";
allow-transfer { 172.21.175.9; };
allow-query { any; };
allow-update{none;};
};
Nach der Anpassung muss der Bind Service neu gestartet werden.
systemctl restart named.service
Danach sollte man die Logs des Services prüfen
cat /var/named/data/named.run
Auf dem Slave muss natürlich ebenfalls die Zone eingerichtet werden
zone "bhend-metallbau.ch" IN {
type slave;
file "slaves/bhend-metallbau.ch";
masters {172.21.175.8;};
};
Nun kann man das mit nslookup überprüfen
nslookup -type=SOA bhend-metallbau.ch 172.21.175.8
Als letzter Schritt ist dann die Anpassung beim Registrar notwendig. Im falle von .ch Domains ist das www.switch.ch