CentOS:Webmin-Bind
Vorwort
Das Ziel dieser Anleitung ist es auf einem CentOS Bind in der neusten Version zu installieren und dies im "chroot" mode. Zur Administration werden wir Webmin hinzufügen. Das Tool Webmin erlaubt es einen DSN Server komplett über ein Webinterface zu administrieren.
Test- und Installationsmaschinen waren:
HP DL 360, Xeon-3.06 GHz, 2 GB RAM, 30 GB HD
Datenschutz
********************************************************************* * * * THIS FILE MAY CONTAIN CONFIDENTIAL, PRIVILEGED OR OTHER LEGALLY * * PROTECTED INFORMATION. YOU ARE PROHIBITED FROM COPYING, * * DISTRIBUTING OR OTHERWISE USING IT WITHOUT PERMISSION FROM * * ALSO SCHWEIZ AG SWITZERLAND. * * * ********************************************************************* "Die in diesen Artikeln enthaltenen Informationen sind vertraulich und dürfen ohne schriftliche Zustimmung von der ALSO Schweiz AG gegenüber Dritt-Unternehmen nicht bekannt gemacht werden"
CentOS Installation
Die CentOS Installation die hier benutzt wird basiert auf einer minimal Installation dh. bei der Installation wurden KEINE Applikationen ausgewählt (deaktivere bei der CentOS Installation alle Positionen und gehe dann auf Customized; unter Customized deaktiviere ebenfalls sämtliche Positionen bis auf Emacs und Vi). Um die effektive Installation auszuführen kann natürlich die CD oder DVD von CentOS benutzt werden. In unserem Beispile wurde das CentOS anhand eines "Netinstall" durchgeführt. Dies bedeutet anstelle der ganzen CD oder DVD runterzuladen wurde nur folgendes ISO heruntergeladen:
http://mirror.switch.ch/ftp/mirror/centos/5.4/isos/i386/CentOS-5.4-i386-netinstall.iso
Danach wurde das ISO auf eine CD gebrannt und durch einen Neustart des Servers gebootet. Beim Austarten wird nach einem DHCP Server gesucht und sofern gefunden der Server per DHCP adressiert. Es ist nicht zu empfehlen dieses ISO zu benutzen wenn KEIN DHCP Server im Netz ist da die statische Adressierung in diesem ISO einige Probleme verursacht. Die Ganze Doku basiert auf einer DHCP Adressierung dh. erst zuletzt -bevor der Server Live geht- muss die statische Konfiguration durchgeführt werden.
CentOS Repositoriy Installation
Nach der CentOS Installation führe folgendes aus:
Linux:Yum-Priority-FreshRPM
SELinux Deaktivierung
Als nächstes werden wir SELinux sowie IPTables deaktivieren. Um SELinux zu deaktivieren führe folgendes durch:
# service iptables stop Flushing firewall rules: [ OK ] Setting chains to policy ACCEPT: filter [ OK ] Unloading iptables modules: [ OK ]
# vi /etc/sysconfig/selinux --------------- /etc/sysconfig/selinux --------------- # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - SELinux is fully disabled. SELINUX=disabled # SELINUXTYPE= type of policy in use. Possible values are: # targeted - Only targeted network daemons are protected. # strict - Full SELinux protection. SELINUXTYPE=targeted # SETLOCALDEFS= Check local definition changes SETLOCALDEFS=0 --------------- /etc/sysconfig/selinux ---------------
NOTE
Obwohl SELinux nun deaktivert ist sind einige Einstellungen im Kernel immer noch aktiv dh. umbedingt ein Neustart des Servers durchführen. Wird dies nicht durchgeführt kann beim Start von Bind eine Fehlermeldung erscheinen "initgroups". Diese
Fehlermeldung stammt daher da Bind beim Start anhand User "root" nachträglich die entsprechenden Rechte im "chroot" oder "jail" dem User "named" übergibt. Solche Uebergaben werden im Kernel von SELinux überwacht und verhindert.
# reboot
IPTables Deaktivierung
Um IPTables zu deaktiveren führe folgendes durch:
# chkconfig --list exim 0:off 1:off 2:on 3:on 4:on 5:on 6:off gpm 0:off 1:off 2:on 3:on 4:on 5:on 6:off haldaemon 0:off 1:off 2:off 3:on 4:on 5:on 6:off ip6tables 0:off 1:off 2:on 3:on 4:on 5:on 6:off iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off kudzu 0:off 1:off 2:off 3:on 4:on 5:on 6:off lvm2-monitor 0:off 1:on 2:on 3:on 4:on 5:on 6:off mcstrans 0:off 1:off 2:on 3:on 4:on 5:on 6:off messagebus 0:off 1:off 2:off 3:on 4:on 5:on 6:off multipathd 0:off 1:off 2:off 3:off 4:off 5:off 6:off netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off netfs 0:off 1:off 2:off 3:on 4:on 5:on 6:off netplugd 0:off 1:off 2:off 3:off 4:off 5:off 6:off network 0:off 1:off 2:on 3:on 4:on 5:on 6:off rawdevices 0:off 1:off 2:off 3:on 4:on 5:on 6:off rdisc 0:off 1:off 2:off 3:off 4:off 5:off 6:off restorecond 0:off 1:off 2:on 3:on 4:on 5:on 6:off sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off syslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off tcsd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
# chkconfig iptables off # chkconfig ip6tables off
# chkconfig --list exim 0:off 1:off 2:on 3:on 4:on 5:on 6:off gpm 0:off 1:off 2:on 3:on 4:on 5:on 6:off haldaemon 0:off 1:off 2:off 3:on 4:on 5:on 6:off ip6tables 0:off 1:off 2:off 3:off 4:off 5:off 6:off iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off kudzu 0:off 1:off 2:off 3:on 4:on 5:on 6:off lvm2-monitor 0:off 1:on 2:on 3:on 4:on 5:on 6:off mcstrans 0:off 1:off 2:on 3:on 4:on 5:on 6:off messagebus 0:off 1:off 2:off 3:on 4:on 5:on 6:off multipathd 0:off 1:off 2:off 3:off 4:off 5:off 6:off netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off netfs 0:off 1:off 2:off 3:on 4:on 5:on 6:off netplugd 0:off 1:off 2:off 3:off 4:off 5:off 6:off network 0:off 1:off 2:on 3:on 4:on 5:on 6:off rawdevices 0:off 1:off 2:off 3:on 4:on 5:on 6:off rdisc 0:off 1:off 2:off 3:off 4:off 5:off 6:off restorecond 0:off 1:off 2:on 3:on 4:on 5:on 6:off sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off syslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off tcsd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
Webmin Installation
Nun die Vorraussetzung um Webmin zu installieren sind gegeben. Da wir mit "freshRPM und Yum-Priority" arbeiten die unsere CentOS Packages nach Prioritäten up to date halten müssen wir Webmin ebenfalls in diese Konstellation bringen. Um dies zu gewährleisten installieren wir das "Webmin Repository" indem wir folgendes File anlegen mit folgenden Inhalt:
# vi /etc/yum.repos.d/webmin.repo --------------- /etc/yum.repos.d/webmin.repo --------------- [Webmin] name=Webmin Distribution Neutral baseurl=http://download.webmin.com/download/yum enabled=1 priorities=10 --------------- /etc/yum.repos.d/webmin.repo --------------- # chown root:root /etc/yum.repos.d/webmin.repo # chmod 644 /etc/yum.repos.d/webmin.repo
Als Erstes muss der public key von Webmin importiert werden:
# rpm --import http://www.webmin.com/jcameron-key.asc
Sobald dies erstellt ist kann durch yum Webmin installiert werden da es jetzt durch das Repository File eingebunden ist in unsere Konstellation mit "freshRPM" und "Yum-Priority":
# yum install webmin Loaded plugins: fastestmirror, priorities Loading mirror speeds from cached hostfile * addons: mirror.switch.ch * base: mirror.switch.ch * epel: mirror.switch.ch * extras: mirror.switch.ch * rpmfusion-free-updates: mirror.andreas-mueller.com * rpmfusion-free-updates-testing: mirror.andreas-mueller.com * rpmfusion-nonfree-updates: mirror.andreas-mueller.com * rpmfusion-nonfree-updates-testing: mirror.andreas-mueller.com * updates: mirror.switch.ch Webmin | 951 B 00:00 Webmin/primary | 5.4 kB 00:00 Webmin 35/35 100 packages excluded due to repository priority protections Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package webmin.noarch 0:1.500-1 set to be updated --> Finished Dependency Resolution Dependencies Resolved ======================================================================================================= Package Arch Version Repository Size ======================================================================================================= Installing: webmin noarch 1.500-1 Webmin 15 M Transaction Summary ======================================================================================================= Install 1 Package(s) Update 0 Package(s) Remove 0 Package(s) Total download size: 15 M Is this ok [y/N]: y Downloading Packages: webmin-1.500-1.noarch.rpm | 15 MB 02:16
Webmin Konfiguration
Als nächsten Schritt weren Wir Webmin konfigurieren dh. vergewissere dich das Webmin aktiv ist:
# /etc/init.d/webmin start
Danach logge dich auf dem WebInterface von Webmin ein:
http://[IP des Servers oder Hostname]:10000
Benutze User "root" und dessen Passwort um ein Login durchzuführen. Im Webmin Interface wähle "Webmin" > "Change Language and Theme" umd die entsprechende Sprache einzustellen:
Datei:Webmin-01.jpg
Danach bestätige mit "Make Changes" und aktualisiere den Browser. Nun erstelen wir einen Benutzer "dnsadmin" anhand dessen sich die User für die Bind konfiguration einloggen. Wähle wiederum den Menüpunkt "Webmin" und danach "Webmin-Benutzer":
Datei:Webmin-02.jpg
Anhand des Menüpunktes "Einen neuen Webminbenutzer anlegen" kann nun der Benutzer angelegt werden. Achte im Abschnitt "verfügbare Webminmodule" darauf, dass "nur" folgendes Module aktiviert ist:
BIND DNS-Server
Datei:Webmin-03.jpg
Datei:Webmin-04.jpg
Dies bedeutet wenn der User "dnsadmin" sich einloggt hat er ausschliesslich nur dieses Module zur Verfügung. Danach bestätige die Konfig mit dem Button "Erstellen". Durch "Abmelden" logge dich kurz aus und wieder ein anhand des neu erstellten Users "dnsadmin". Nachdem erfolgreichen einloggen steht nun dem User "dnsadmin" nur noch das Bind Module zur Verfügung:
Datei:Webmin-05.jpg
Um das Module Bind von Webmin zu konfigurieren wähle "BIND DNS-Server" und danach "Modulkonfiguration":
Datei:Webmin-06.jpg
Kontrolliere die Einstellungen und achte auf folgende Punkte:
Kategorisiere Zonen gemäß Ansicht? Ja Verzeichnis für Master-Zonendatei /var/named/chroot/var/named/masters Verzeichnis für Slave-/Stub-Zonendatei /var/named/chroot/var/named/slaves Stil der seriellen Nummer Datum basierend (YYYYMMDDnn) Sicherheitsabfrage vor dem Löschen von Records? Ja
Datei:Webmin-07.jpg Datei:Webmin-08.jpg Datei:Webmin-09.jpg
Bestätige die Einstellungen mit "Speichern". Nun ist Webmin für den Einsatz bereit.
NOTE
Will man das Logo von Webmin durch sein eigenes Austauschen so muss das File "/usr/libexec/webmin/images/webmin-blue.png" ersetzt werden!
Webmin Log
Die Log Dateien von Webmin befinden sich in folgenden Verzeichnis:
/var/webmin/miniserv.error /var/webmin/miniserv.log /var/webmin/webmin.log
Webmin Perl Module
Wenn man sich die Webmin Logs anschaut fällt einem folgende Fehlermeldung auf:
[27/Jan/2010:15:25:53 +0100] Continuing without the Authen::PAM perl module [01/Feb/2010:17:19:18 +0100] miniserv.pl started [01/Feb/2010:17:19:18 +0100] Perl module Authen::PAM needed for PAM is not installed : Can't locate Authen/PAM.pm in @INC (@INC contains: /usr/libexec/webmin /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 .) at (eval 5) line 1. BEGIN failed--compilation aborted at (eval 5) line 1.
Diese Fehlermeldung stammt daher das einige empfohlene Perl Module für Webmin nicht installiert sind. Speziell wenn Webmin im SSL Modus benützt werden möchte muss "Net::SSLeay" installiert sein. Die empfohlenen Perl Module (exkl. Datenbank Perl Module) sind:
Authen::PAM (PAM-Authentifizierung) Net::SSLeay (Webmin-Konfiguration) Authen::Libwrap (Webmin-Konfiguration) IO::Pty (Laufende Prozesse) Sys::Syslog (Webmin-Konfiguration)
Damit die empfohlenen Perl Module installiert werden können muss "pam-devel" installiert sein ansonsten kommt es bei der Kompilation der Perl Module zu Fehlermeldungen. Also installiere als Vorraussetzung das RPM Packge "pam-devel":
# yum install pam-devel
NOTE
Es würde die Möglichkeit bestehen die Perl Module auch über das Webmin zu installieren. Dies ist jedoch bei den empfohlenen Perl Module nicht möglich!
Die Vorraussetzungen sind gegeben. Um die Perl Module zu installieren nehmen wir CPAN zu Hilfe dh. starte dieses mit folgenden Befehl:
# cd /root # perl -MCPAN -e shell
NOTE
Wenn CPAN das erste Mal benutzt wird werden einige Fragen gestellt jedoch werden immer auch Vorschläge gemacht. Alle
Vorschläge können Grundsätzlich wie vorgeschlagen akzeptiert werden (auch wenn keine vorgeschlagen werden). Nur die Auswahl
des Kontinentes auf dem man sich befindet sowie das Land müssen manuell ausgewählt werden!
sobald die Grundkonfiguration durchgeführt wurde von CPAN steht einem die CPAN Shell zur Verfügung. Um das erste Module zu installieren führe folgenden Befehl aus:
cpan> install Authen::PAM NOTE
Während der Installation muss das "root" Passwort angegeben werden um die Funktion von Authen::PAM zu überprüfen!
cpan> install Net::SSLeay ................................................. ................................................. ................................................. ExtUtils::MakeMaker Shall I follow them and prepend them to the queue of modules we are processing right now? [yes] yes ................................................. ................................................. .................................................
cpan> install Authen::Libwrap ................................................. ................................................. ................................................. This module requires Module::Build to install itself. Install Module::Build now from CPAN? [y] y ExtUtils::CBuilder Test::Harness ExtUtils::ParseXS Shall I follow them and prepend them to the queue of modules we are processing right now? [yes] yes ................................................. ................................................. ................................................. do you want to link against /usr/lib/libwrap.so? [y ]y do you want to use /usr/include/tcpd.h as your header? [y ]y ................................................. ................................................. ................................................. Test::Exception Shall I follow them and prepend them to the queue of modules we are processing right now? [yes] yes Test::More Test::Builder Sub::Uplevel Test::Simple Test::Builder::Tester Shall I follow them and prepend them to the queue of modules we are processing right now? [yes] yes ................................................. ................................................. .................................................
cpan> install IO::Pty
cpan> install Sys::Syslog
cpan> exit
Nun sind alle benötigten Module installiert und stehen Webmin zur Verfügung. Um dies zu kontrollieren wähle im Webmin folgenden Menüpunkt:
Sonstiges > Perl-Module (CPAN) > Existing Modules
Webmin SSL
Also Vorraussetzung für die SSL (https) Aktivierung innerhalb Webmin gilt das Perl Module:
Net::SSLeay
Weitere Information wie dieses Package installiert wird findet man unter den Menüpunkt:
CentOS:Webmin-Bind#Webmin_Perl_Module
Nachdem das nötige Perl Module installiert wurde wähle im Webmin folgenden Menüpunkt:
Webmin > Webmin-Konfiguration > SSL-Verschlüsselung
Datei:Webmin-18.jpg
Danach ist SSL sofort verfügbar über:
https://10.150.0.185:10000/
Weitere Optionen für die Generierung eines Certificates etc. stehen unter dem erwähnten Menüpunkt zur Verfügung.
Bind Installation
Nun wir wollen nun Bind installieren jedoch mit der Version "libxml". Diese "libxml" Funktion ist eine Statistik Seite die automatisch generiert wird innerhalb Bind und über Web per xml zur Verfügung gestellt wird. Die aktuellste Verion von Bind in den Repositories von CentOS ist jedoch die Version 9.3.x und diese Version enthält die Funktion "libxml" nicht. Diese Funktion ist ab Version 9.5.x enthalten diese wird jedoch nicht in den Repositories von CentOS angeboten. Aus diesem Grund muss die Bind Version aus den source RPM generiert werden. Als Grundvorraussetzung ein SRC RPM zu installieren ist das Package "rpm-build". Installiere dieses über "yum install":
# yum install rpm-build ============================================================================================================== Package Arch Version Repository Size ============================================================================================================== Installing: rpm-build i386 4.4.2.3-18.el5 base 301 k Installing for dependencies: bzip2 i386 1.0.3-4.el5_2 base 48 k elfutils i386 0.137-3.el5 base 228 k elfutils-libs i386 0.137-3.el5 base 193 k patch i386 2.5.4-29.2.3.el5 base 64 k unzip i386 5.52-3.el5 base 156 k Transaction Summary ============================================================================================================== Install 6 Package(s) Update 0 Package(s) Remove 0 Package(s) Total download size: 991 k Is this ok [y/N]: y
Wir erstellen ein Source RPM Verzeichnis indem wir das SRC RPM von Bind runterladen:
# mkdir SRPMS # cd SRPMS
NOTE
Soll ein Proxy verwendet werden um den Download durchzuführen benütze folgenden Befehl. Dieser bewirkt das in der momentanen Shell der Proxy für HTTP gesetzt wird:
# export http_proxy="http://10.150.0.110:8080"
Lade nun über "wget" das SRC RPM Package runter:
# wget http://mirror.switch.ch/ftp/mirror/fedora/linux/updates/12/SRPMS/bind-9.6.1-15.P3.fc12.src.rpm
Installiere nun das SRC RPM Package:
# rpm -ivh --nomd5 bind-9.6.1-15.P3.fc12.src.rpm
NOTE
Die nachfolgende "warning" kann ignoriert werden:
warning: bind-9.6.1-15.P3.fc12.src.rpm: Header V3 RSA/SHA256 signature: NOKEY, key ID 57bbccba 1:bind warning: user mockbuild does not exist - using root
Das Source RPM Package wurde installieret und kann nun anhand eines Compilers Kompiliert werden. Die Konfiguration Datei um die Kompilation auszuführen liegt im folgenden Verzeichnis
/usr/src/redhat/SPECS/
In diesem Verzeichnis liegt ein .spec File. Dieses representiert das Konfig File das benutzt wird um Bind zu kompilieren. Sollen Funktionen etc. abgeschaltet werden kann dieses .spec File manipuliert werden. In unserem Fall möchten wir die Funktion "libxml" einschalten. Manipuliere den folgenden Abschnitt innerhalb des Files "bind.spec" um die "libxml" Funktion zu aktivieren:
# vi /usr/src/redhat/SPECS/bind.spec --------------- /usr/src/redhat/SPECS/bind.spec --------------- %configure \ --with-libtool \ --localstatedir=/var \ --enable-threads \ --enable-ipv6 \ --with-libxml2=yes \ --with-pic \ --disable-static \ --disable-openssl-version-check \ %if %{SDB} --with-dlz-ldap=yes \ --with-dlz-postgres=yes \ --with-dlz-mysql=yes \ --with-dlz-filesystem=yes \ %endif %if %{GSSTSIG} --with-gssapi=yes \ --disable-isc-spnego \ %endif --------------- /usr/src/redhat/SPECS/bind.spec ---------------
Für die Funktion "libxml" in Bind muss "libxml2" selber auf dem System ebenfalls installiert sein. Vergewissere dich das dieses Package installiert ist:
# rpm -q --all | grep libxml2 libxml2-2.6.26-2.1.2.8
Damit die Kompilierung des Package speziell für Bind sowie allgemein auf dem System erfolgreich ist müssen folgende Package zusätzlich installiert werden:
# yum install openssl-devel # yum install openldap-devel # yum install libxml2-devel # yum install libtool # yum install pkgconfig # yum install libcap-devel
# yum install libidn-devel # yum install postgresql-devel # yum install sqlite-devel # yum install mysql-devel
# yum install gcc # yum install make
NOTE
Das nachfolgende Package "which" ist optional jedoch Sinnvoll vorallem wenn gewisse Funktionen nicht zur verfügung stehen und man im Troubleshooten rausfinden muss ob diese vorhanden sind!
# yum install which
Nun wechsle ins Verzeichnis des SRC RPM .spec File und starte die Kompilation:
# cd /usr/src/redhat/SPECS/ # rpmbuild -ba ./bind.spec
Nach einer erfolgreichen Kompilation befinden sich die entsprechenden RPM Package im folgenden Verzeichnis:
/usr/src/redhat/RPMS/i386/ /usr/src/redhat/RPMS/x86_64/
In unserem Fall wurden folgende Package durch das SRC RPM Package erstellt:
/usr/src/redhat/RPMS/i386/bind-9.6.1-15.P3.i386.rpm /usr/src/redhat/RPMS/i386/bind-sdb-9.6.1-15.P3.i386.rpm /usr/src/redhat/RPMS/i386/bind-libs-9.6.1-15.P3.i386.rpm /usr/src/redhat/RPMS/i386/bind-utils-9.6.1-15.P3.i386.rpm /usr/src/redhat/RPMS/i386/bind-devel-9.6.1-15.P3.i386.rpm /usr/src/redhat/RPMS/i386/bind-chroot-9.6.1-15.P3.i386.rpm
Um die Package einwandfrei zu installieren benötigen wir "dnssec-conf" und dieses hat wiederum Abhängikeiten auf "curl" "phyton":
# yum install dnssec-conf Downloading Packages: (1/3): dnssec-conf-1.21-5.el5.noarch.rpm | 80 kB 00:00 (2/3): curl-7.15.5-2.1.el5_3.5.i386.rpm | 232 kB 00:00 (3/3): python-dns-1.7.1-1.el5.noarch.rpm | 246 kB 00:00
Nun sind die Vorraussetzungen gegeben um unserere Kompilierten Package von Bind zu installieren. Jedoch werden wir nur diese installiere die wir wirklich für unsere Installation benötigen:
# rpm -ivh /usr/src/redhat/RPMS/i386/bind-libs-9.6.1-15.P3.i386.rpm # rpm -ivh /usr/src/redhat/RPMS/i386/bind-utils-9.6.1-15.P3.i386.rpm # rpm -ivh /usr/src/redhat/RPMS/i386/bind-devel-9.6.1-15.P3.i386.rpm
Damit das Package von Bind einwandfrei installiert wird muss der User "named" existieren dh. erstelle diesen:
# groupadd -g 25 named # useradd -u 25 -g 25 -d /var/named -s /sbin/nologin named
Kontrolliere ob dieser User korrekt erstellt wurde mit der Gruppe:
# cat /etc/passwd | grep named named:x:25:25::/var/named:/sbin/nologin
# cat /etc/group | grep named named:x:25:
Der Account von "named" könnnte missbraucht werden um sich einzuloggen in das System obwohl der User keine Shell hat. Dieser User kann mit "lock-down" gesperrt werden:
# passwd -l named Locking password for user named. passwd: Success
Nun installiere die restlichen Package von Bind:
# rpm -ivh /usr/src/redhat/RPMS/i386/bind-9.6.1-15.P3.i386.rpm # rpm -ivh /usr/src/redhat/RPMS/i386/bind-chroot-9.6.1-15.P3.i386.rpm
Alle Package für Bind sind installiert. Es ergiebt sich folgendes Bild:
# rpm -q --all | grep bind bind-utils-9.6.1-15.P3 bind-chroot-9.6.1-15.P3 bind-libs-9.6.1-15.P3 bind-devel-9.6.1-15.P3 bind-9.6.1-15.P3
Bind Konfiguration
Für Bind wurden folgende Files in folgenden Verzeichnissen installiert:
/usr/include/isccfg/namedconf.h /usr/share/man/man5/named.conf.5.gz /usr/share/man/man8/named-checkzone.8.gz /usr/share/man/man8/named-compilezone.8.gz /usr/share/man/man8/named-checkconf.8.gz /usr/share/man/man8/named_selinux.8.gz /usr/share/man/man8/named.8.gz /usr/share/doc/bind-9.6.1/named.conf.default /usr/share/doc/bind-9.6.1/sample/etc/named.conf /usr/share/doc/bind-9.6.1/sample/etc/named.rfc1912.zones /usr/share/doc/bind-9.6.1/sample/var/named /usr/share/doc/bind-9.6.1/sample/var/named/named.ca /usr/share/doc/bind-9.6.1/sample/var/named/named.loopback /usr/share/doc/bind-9.6.1/sample/var/named/named.localhost /usr/share/doc/bind-9.6.1/sample/var/named/named.empty /usr/share/vim/vim70/syntax/named.vim /usr/sbin/named-checkzone /usr/sbin/named-compilezone /usr/sbin/named /usr/sbin/named-checkconf /usr/lib/python2.4/site-packages/dns/namedict.py /usr/lib/python2.4/site-packages/dns/namedict.pyc /usr/lib/python2.4/site-packages/dns/namedict.pyo /etc/pki/dnssec-keys/named.dnssec.keys /etc/rc.d/init.d/named /etc/logrotate.d/named /etc/named.conf.bak /etc/sysconfig/named /etc/named.conf /etc/named /etc/named.rfc1912.zones /var/spool/mail/named /var/run/named /var/named /var/named/named.ca /var/named/named.loopback /var/named/chroot/etc/named /var/named/chroot/var/run/named /var/named/chroot/var/named /var/named/named.localhost /var/named/named.empty
Die Daten resp. die Zone Files werden im sogenannten "chroot" erstellt. Dieses "chroot" befindet sich im "/var/named/chroot".In dieesem Verzeichnis existieren folgende Verzeichnisse:
total 48 drwxr-x--- 6 root named 4096 Feb 1 16:48 . drwxr-x--- 5 root named 4096 Feb 2 09:27 .. drwxr-x--- 2 root named 4096 Feb 1 16:48 dev drwxr-x--- 4 root named 4096 Feb 1 16:48 etc drwxr-xr-x 3 root root 4096 Feb 1 16:48 usr drwxr-x--- 6 root named 4096 Feb 1 16:48 var
NOTE
Nun ein "chroot" wird auch "jail" (Gefängnis) genannt dh. dies ist ein Bereich indem ein bestimmtes Programm in einem eigens fuer diesen Zweck erstellten Bereich (jail) drin laeuft. Die "binarys" des Programmes befinden sich nicht im "jail" sondern ausserhalb. Beim start des Deamon wird der "chroot" Befehl ausgefuehrt und der Deamon wechselt mit einem bestimmten "user" (in unserem Fall User "named") ins "jail" (chroot) und laeuft dort als ob dieses "jail" das "root" (/) darstellt.
Diese Verzeichnisse haben folgende Funktion innerhalb des "chroots":
dev Representiert die Devices innerhalb des "chroots" etc Representiert das Konfig Verzeichnis innerhalb des "chroots" usr Representiert das Library Verzeichnis innerhalb des "chroots" var Representiert das varierende Daten Verzeichnis (zB log, Zone Files etc.)
Im Verzeichnis "var" befindet sich ein Verzeichnis "named" und darin das Verzeichnis "master". Dieses Verzeichnis wird durch den Primary DNS Server benutzt um die Zone Files darin abzulegen. Damit ein Server beide Rollen übernehmen kann werden wir ebenfalls ein Verzeichnis "slave" erstellen:
# mkdir /var/named/chroot/var/named/slave # chown root:named /var/named/chroot/var/named/slave # chmod 755 /var/named/chroot/var/named/slave
Webmin arbeitet betreffend Pfade mit "masters" und "slaves" dh. um hier die Konfig nicht abändern zu müssen erstellen wir Softlinks die "masters" und "slaves" representieren und in die jeweiligen Verzeichnisse "master" und "slave" zeigen: Es ist darauf zu achten das Symbolische Links zwar von ausserhalb in das "jail" funktionieren jedoch nicht von innerhalb des "jail's" nach ausserhalb da der Deamon nicht faehig ist diesen Symbolischen Links zu folgen da er nur das "root" (/) sieht dh. das "jail" (chroot). Hardlinks funktionieren ueberhaupt nicht also immer Symbolische Links von ausserhalb nach innerhalb des "jail's".
# cd /var/named/chroot/var/named # ln -s master ./masters # ln -s slave ./slaves
Es ergiebt sich folgende Situation:
# ls -la /var/named/chroot/var/named total 40 drwxr-x--- 4 root named 4096 Feb 2 10:15 . drwxr-x--- 6 root named 4096 Feb 1 16:48 .. drwxr-xr-x 2 root named 4096 Feb 2 10:14 master lrwxrwxrwx 1 root root 6 Feb 2 10:14 masters -> master drwxr-xr-x 2 root named 4096 Feb 2 10:14 slave lrwxrwxrwx 1 root root 5 Feb 2 10:15 slaves -> slave
# vi /var/named/chroot/etc/named.conf --------------- /var/named/chroot/etc/named.conf --------------- options { directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; version "[secured]"; // Hide our "real" version number }; zone "." { // The root nameservers type hint; file "named.ca"; }; zone "localhost" { // localhost - forward zone type master; file "named.localhost"; notify no; }; zone "loopback" { // localhost - inverse zone type master; file "named.loopback"; notify no; }; --------------- /var/named/chroot/etc/named.conf --------------- # chown root:named /var/named/chroot/etc/named.conf # chmod 640 /var/named/chroot/etc/named.conf
NOTE
Die Angaben im "named.conf" der Files fuer "pid" usw. sind relativ zum "jail" und verweisen nicht auf das "root" (/) des Systems.
Im Konfigurationsfile werden mehrer Files erwaehnt dh. "named.ca" ist das Konfig File das die sogenannten "root-Server" enthaelt. Die Files "named.localhost"und "named.loopback" sind fuer den localhost selber resp. lokalen gebrauch und werden nur einmal konfiguriert! Erstelle nun diese Files:
# vi /var/named/named.ca --------------- /var/named/named.ca --------------- ; This file holds the information on root name servers needed to ; initialize cache of Internet domain name servers ; (e.g. reference this file in the "cache . <file>" ; configuration file of BIND domain name servers). ; ; This file is made available by InterNIC ; under anonymous FTP as ; file /domain/named.root ; on server FTP.INTERNIC.NET ; -OR- RS.INTERNIC.NET ; ; last update: Jan 29, 2004 ; related version of root zone: 2004012900 ; ; ; formerly NS.INTERNIC.NET ; . 3600000 IN NS A.ROOT-SERVERS.NET. A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4 ; ; formerly NS1.ISI.EDU ; . 3600000 NS B.ROOT-SERVERS.NET. B.ROOT-SERVERS.NET. 3600000 A 192.228.79.201 ; ; formerly C.PSI.NET ; . 3600000 NS C.ROOT-SERVERS.NET. C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12 ; ; formerly TERP.UMD.EDU ; . 3600000 NS D.ROOT-SERVERS.NET. D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90 ; ; formerly NS.NASA.GOV ; . 3600000 NS E.ROOT-SERVERS.NET. E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10 ; ; formerly NS.ISC.ORG ; . 3600000 NS F.ROOT-SERVERS.NET. F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241 ; ; formerly NS.NIC.DDN.MIL ; . 3600000 NS G.ROOT-SERVERS.NET. G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4 ; ; formerly AOS.ARL.ARMY.MIL ; . 3600000 NS H.ROOT-SERVERS.NET. H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53 ; ; formerly NIC.NORDU.NET ; . 3600000 NS I.ROOT-SERVERS.NET. I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17 ; ; operated by VeriSign, Inc. ; . 3600000 NS J.ROOT-SERVERS.NET. J.ROOT-SERVERS.NET. 3600000 A 192.58.128.30 ; ; operated by RIPE NCC ; . 3600000 NS K.ROOT-SERVERS.NET. K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129 ; ; operated by ICANN ; . 3600000 NS L.ROOT-SERVERS.NET. L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12 ; ; operated by WIDE ; . 3600000 NS M.ROOT-SERVERS.NET. M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33 ; End of File --------------- /var/named/named.ca --------------- # chown root:named /var/named/named.ca # chmod 640 /var/named/named.ca
# vi /var/named/named.localhost --------------- /var/named/named.localhost --------------- $TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ A 127.0.0.1 AAAA ::1 --------------- /var/named/named.localhost --------------- # chown root:named /var/named/named.localhost # chmod 640 /var/named/named.localhost
# vi /var/named/named.loopback --------------- /var/named/named.loopback --------------- $TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ PTR localhost. --------------- /var/named/named.loopback --------------- # chown root:named /var/named/named.loopback # chmod 640 /var/named/named.loopback
NOTE
Sofern Internet Zugriff bereits besteht kann dieses File autom. angelegt werden:
# /usr/bin/dig @a.root-servers.net . ns > /var/named/named.ca
Die "Root-Server" sollten von Zeit zu Zeit aktualisiert werden. Dies kann mit folgenden Befehl bewerkstelligt werden:
# /usr/bin/dig @a.root-servers.net . ns > /var/named/named.ca
Dies kann auch so im Cron erfasst werden. Dazu muss um Cron nutzen zu können "vixie-cron:" installiert werden:
# yum install vixie-cron
Nun kann anhand "crontab" der Cron Job erfasst werden. In unserem Beispiel wird der Cron um 01:00 Morgens ausgeführt:
# crontab -e 0 1 * * * /usr/bin/dig @a.root-servers.net . ns > /var/named/named.ca
Alle Grundlegenden Files für die Funktion von Bind sind erstellt dh. Bind kann das erste Mal gestartet werden um zu überprüfen ob alles in Ordnung ist. Beim Start von Bind wird nachdem File "/etc/named.conf" gesucht dh. unser "named.conf" befindet sich jedoch im Verzeichnis "/Var/named/chroot/etc" dh. erstelle einen Softlink von "/etc/named.conf" nach "/Var/named/chroot/etc/named.conf":
# mv /etc/named.conf /etc/named.conf.orig # ln -s /var/named/chroot/etc/named.conf /etc/named.conf
Danach starte Bind anhand des Startscriptes:
# /etc/init.d/named start
NOTE
Ab Bind 9.6.x wird im "/var/log/messages" zusätzliche Informationen angzeigt dh. zB wie Kompiliert wurde etc.
Als naechstes konfigurieren wir die Funktion "rndc.key" dh. diese Funktion wird fuer das Absetzen von Remote-Befehlen gebraucht zB. "reload" des Servers usw. In Bind 8 war dies der "ndc" Befehl jedoch dieser war sehr beschraenkt und die Sicherheit liess auch einige Wuensche offen. Dies wurde mit "rndc" geloest.
Das Konfigurationsfile von "rndc.key" gleich ziemlich einem "named.conf" File. Der Name des Key's kann, sei es in Art und Weise sowie in der Laenge, frei gewaehlt werden. Die Position "secret key here" stellt den Key dar (base-64-encoded) der mit dem Tool "dnssec-keygen" generiert werden muss! Also generieren wir diesen Key mit folgenden Befehl:
# cd /var/named/chroot/ # /usr/sbin/dnssec-keygen -a HMAC-MD5 -b 256 -n HOST rndc --------------- output of dnssec-keygen --------------- Krndc.+157+50653 --------------- output of dnssec-keygen ---------------
NOTE
Sollte es zu Problemen kommen bei der Generierung des Keys dh. sollte das System haengen bleiben kann versucht werden vor der Option "-a" folgende Option zusaetzlich anzugeben:
-r /dev/urandom
Nach erfolgreicher Ausfuehrung haben wir zwei Files resp. zwei Keys dh. einen "*.key" sowie einen "*.private" Key:
# ls -la Krndc.* -rw------- 1 root root 68 Feb 2 14:21 Krndc.+157+50653.key -rw------- 1 root root 112 Feb 2 14:21 Krndc.+157+50653.private
Der Inhalt des "*.privat" Key resp. die Position Key selber muss im Konfigurationsfile "rndc.conf" unter "secret key here" angegeben werden:
# cat Krndc.+157+50653.private --------------- output of Krndc.+157+64641.private --------------- Private-key-format: v1.2 Algorithm: 157 (HMAC_MD5) Key: guXeDVSSU6bL/TGDu7oG0znF+x2Ii374kyaJYMRp2a0= Bits: AAA= --------------- output of Krndc.+157+64641.private ---------------
Das Konfig File legen wir aus Sicherheitsgruenden im "jail" unter dem Verzeichnis "etc/" an:
# vi /var/named/chroot/etc/rndc.conf --------------- /var/named/chroot/etc/rndc.conf --------------- # # /var/named/chroot/etc/rndc.conf # options { default-server 127.0.0.1; default-key "rndckey_comcept"; }; server 127.0.0.1 { key "rndckey_comcept"; }; key "rndckey_comcept" { algorithm "hmac-md5"; secret "guXeDVSSU6bL/TGDu7oG0znF+x2Ii374kyaJYMRp2a0="; }; --------------- /var/named/chroot/etc/rndc.conf --------------- # chown root:named /var/named/chroot/etc/rndc.conf # chmod 640 /var/named/chroot/etc/rndc.conf
Nachdem der "Key" im File "rndc.conf" unter "secret key here" angegeben wurde koennen die generierten Key's "*.privat" und "*.key* geloescht werden:
# rm /var/named/chroot/Krndc.*
Das System liest autom. das per standard bestehende File "/etc/rndc.key" aus dh. damit dieses vom "chroot" benutzt wird werden wir einen Softlink erstellen:
# mv /etc/rndc.key /etc/rndc.key.orig # ln -s /var/named/chroot/etc/rndc.conf /etc/rndc.conf
Die Informatione des "rndc" Keys muss auch in "namde.conf" konfiguriert werden. Die Konfiguration MUSS zu beginn des Files eingefügt werden ansonsten wird die Konfig nicht akzeptiert. Wir fügen nun auch einige weitere Optionen ins File "named.conf" wie Log's, Log Level etc. Das bestehende "named.conf" das wir erstellt haben war nur für Test Zwecke dh. bestehende Positionen werden nun abgeändert etc. :
# vi /var/named/chroot/etc/named.conf --------------- /var/named/chroot/etc/named.conf --------------- // *************************************************************** // // Set up our ACLs for dns1 // // In BIND 8, ACL names with quotes were treated as different from // the same name without quotes. In BIND 9, both are treated as // the same. // // The ordering of our views is very important. The named daemon // accepts the first match. It means first match wins! // // *************************************************************** controls { inet 127.0.0.1 allow { 127.0.0.1; } keys { rndckey_comcept.ch; }; inet 10.150.0.185 allow { 127.0.0.1; // localhost 10.150.0.0/24; // Local Network } keys { rndckey_comcept.ch; }; }; key "rndckey_comcept.ch" { algorithm "hmac-md5"; secret "guXeDVSSU6bL/TGDu7oG0znF+x2Ii374kyaJYMRp2a0="; }; logging { channel "default_syslog" { syslog local2; severity debug; }; channel audit_log { file "/var/named/chroot/var/log/named.log" versions 10 size 5m; severity debug; print-time yes; print-category yes; print-severity yes; }; category default { default_syslog; }; category general { default_syslog; }; category security { audit_log; default_syslog; }; category config { default_syslog; }; category resolver { audit_log; }; category xfer-in { audit_log; }; category xfer-out { audit_log; }; category notify { audit_log; }; category client { audit_log; }; category network { audit_log; }; category update { audit_log; }; category queries { audit_log; }; category lame-servers { audit_log; }; category edns-disabled { null; }; }; statistics-channels { inet 10.150.0.185 port 8053 allow { 127.0.0.1; // localhost 10.150.0.0/24; // Local Sysop }; }; options { listen-on-v6 { none; }; directory "/var/named"; pid-file "/var/named/chroot/var/run/named.pid"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; zone-statistics yes; query-source address * port 53; notify no; // Applies to slave zones only transfer-format many-answers; // Controls global zone transfer max-transfer-time-in 60; // Limit duration of inbound zone transfer interface-interval 0; // Disable scanning for new interfaces dnssec-enable no; dnssec-validation no; version "[secured]"; // Hide our "real" version number }; view "external" { allow-query-cache { 127.0.0.1; // Localhost 10.150.0.0/24; // Local Network }; allow-recursion { 127.0.0.1; // mx record smtpmx 10.150.0.0/24; // external device brutus }; match-clients { any; }; zone "." { // The root nameservers type hint; file "named.ca"; }; zone "localhost" { // localhost - forward zone type master; file "named.localhost"; allow-transfer { any; }; }; zone "loopback" { // localhost - inverse zone type master; file "named.loopback"; allow-transfer { any; }; }; }; --------------- /var/named/chroot/etc/named.conf ---------------
NOTE
Die Funktion "statistics-channels" steht im Zusammenhang mit der "libxml2" Library dh. wird dies konfiguriert muss die Source mit "--with-libxml2=yes" kompiliert werden sowie diese Library muss zur Verfuegung stehen. Die Position "inet 192.168.100.194 allow { 127.0.0.1; " im File "named.conf" veranlasst den Bind Server ausschliesslich auf das "localhost" Interface zu hoeren und ist deshalb eine zusaetzliche Security Funktion!
Damit der Start von Bind erfolgreich ist müssen das Verzeichnis der Logs sowie des PID Files angepasst werden:
# chmod 770 /var/named/ # chmod 770 /var/named/chroot/var/log # chmod 770 /var/named/chroot/var/run
Nun starten wir den Deamon neu:
# /etc/init.d/named stop # /etc/init.d/named start
Kontrolliere den Status des Servers:
# /usr/sbin/rndc status --------------- output rndc status --------------- version: 9.6.1-P3-RedHat-9.6.1-15.P3 ([secured]) CPUs found: 4 worker threads: 4 number of zones: 2 debug level: 0 xfers running: 0 xfers deferred: 0 soa queries in progress: 0 query logging is ON recursive clients: 0/0/1000 tcp clients: 0/100 server is up and running --------------- output rndc status ---------------
Damit Bind auch automatisch gestartet wird beim Systemstart erstellen wir im nötigen Runlevel einen Softlink auf das Startscript:
# cd /etc/rc3.d/ # ln -s ../init.d/named /etc/rc3.d/S99named
# cd /etc/rc0.d/ # ln -s ../init.d/named /etc/rc3.d/K22named
DNS Zone Erfassen
Wir werden nun im nächsten Schritt eine Zone erfassen (eine Domaine hinzufügen). Als Ausgangslage sind beide Server dh. DNS1 und DNS2 exakt genau gleiche wie hier dokumentiert konfiguriert. Als Beispiel nehmen wir die Domaine comcept.ch zur Hand. Um die Konfiguration manuell durchzuführen erstelle folgendes File:
Für den Primary DNS1 Server: # vi /var/named/chroot/var/named/master/comcept.ch.hosts -------------- /var/named/chroot/var/named/master/comcept.ch.hosts -------------- $TTL 86400 ; Information for the "forward" domain comcept.ch. @ IN SOA ns1.comcept.ch. netadmin.comcept.ch. ( 2010020101 ; Serial number 43200 ; Refresh timer - 12 hours 3600 ; Retry timer - 1 hour 604800 ; Expire timer - 1 week 86400 ; Minimum timer - 1 day ) IN NS ns1.comcept.ch. ; primary IN NS ns2.comcept.ch. ; secondary gw.comcept.ch. IN A 195.225.45.254 www.comcept.ch. IN A 62.192.27.145 comcept.ch. IN MX 10 smtp.comcept.ch. ftp.comcept.ch. IN CNAME www localhost IN A 127.0.0.1 -------------- /var/named/chroot/var/named/master/comcept.ch.hosts --------------
Das Master Zone File für die Domaine comcept.ch ist erstellt. Dieses Domaine benutzt den IP Range "195.225.45.0/24". Um nun für die entsprechenden Hosts ein Reverse Lookup zu erstellen muss folgendes File erstellt werden:
# vi /var/named/chroot/var/named/master/195.225.45.rev -------------- /var/named/chroot/var/named/master/195.225.45.rev -------------- $TTL 86400 ; Information for the loopback domain 45.225.195.in-addr.arpa. @ IN SOA ns1.comcept.ch. netadmin.comcept.ch. ( 2004072203 ; Serial number 43200 ; Refresh timer - 12 hours 3600 ; Retry timer - 1 hour 604800 ; Expire timer - 1 week 86400 ; Minimum timer - 1 day ) IN NS ns1.comcept.ch. ; primary IN NS ns2.comcept.ch. ; secondary 161 IN PTR ns1.comcept.ch. 162 IN PTR ns2.comcept.ch. 254 IN PTR gw.comcept.ch. 163 IN PTR smtp.comcept.ch. -------------- /var/named/chroot/var/named/master/195.225.45.rev --------------
Damit nun die Zone comcept.ch sowie der Reverse Lookup für 195.225.45.0/24 berücksichtigt werden müssen die in "named.conf" konfiguriert werden:
NOTE
In unserem Beispiel hat DNS1 die IP 10.150.0.185 sowie DNS2 10.150.0.189 dh. damit der Zone Transfer funktioniert muss der DNS2 für Zone Transfer konfiguriert werden innerhalb der Zone!
Für den Primary DNS1 Server:
# vi /var/named/chroot/etc/named.conf --------------- /var/named/chroot/etc/named.conf --------------- // *************************************************************** // // Set up our ACLs for dns1 // // In BIND 8, ACL names with quotes were treated as different from // the same name without quotes. In BIND 9, both are treated as // the same. // // The ordering of our views is very important. The named daemon // accepts the first match. It means first match wins! // // *************************************************************** controls { inet 127.0.0.1 allow { 127.0.0.1; } keys { rndckey_comcept.ch; }; inet 10.150.0.185 allow { 127.0.0.1; // localhost 10.150.0.0/24; // Local Network } keys { rndckey_comcept.ch; }; }; key "rndckey_comcept.ch" { algorithm "hmac-md5"; secret "guXeDVSSU6bL/TGDu7oG0znF+x2Ii374kyaJYMRp2a0="; }; logging { channel "default_syslog" { syslog local2; severity debug; }; channel audit_log { file "/var/named/chroot/var/log/named.log" versions 10 size 5m; severity debug; print-time yes; print-category yes; print-severity yes; }; category default { default_syslog; }; category general { default_syslog; }; category security { audit_log; default_syslog; }; category config { default_syslog; }; category resolver { audit_log; }; category xfer-in { audit_log; }; category xfer-out { audit_log; }; category notify { audit_log; }; category client { audit_log; }; category network { audit_log; }; category update { audit_log; }; category queries { audit_log; }; category lame-servers { audit_log; }; category edns-disabled { null; }; }; statistics-channels { inet 10.150.0.185 port 8053 allow { 127.0.0.1; // localhost 10.150.0.0/24; // Local Sysop }; }; options { listen-on-v6 { none; }; directory "/var/named"; pid-file "/var/named/chroot/var/run/named.pid"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; zone-statistics yes; query-source address * port 53; notify no; // Applies to slave zones only transfer-format many-answers; // Controls global zone transfer max-transfer-time-in 60; // Limit duration of inbound zone transfer interface-interval 0; // Disable scanning for new interfaces dnssec-enable no; dnssec-validation no; version "[secured]"; // Hide our "real" version number }; view "external" { allow-query-cache { 127.0.0.1; // Localhost 10.150.0.0/24; // Local Network }; allow-recursion { 127.0.0.1; // mx record smtpmx 10.150.0.0/24; // external device brutus }; match-clients { any; }; zone "." { // The root nameservers type hint; file "named.ca"; }; zone "localhost" { // localhost - forward zone type master; file "named.localhost"; allow-transfer { any; }; }; zone "loopback" { // localhost - inverse zone type master; file "named.loopback"; allow-transfer { any; }; }; zone "45.225.195.in-addr.arpa" { type master; file "/var/named/chroot/var/named/masters/195.225.45.rev"; allow-transfer { 10.150.0.189;}; notify yes; }; zone "comcept.ch" { type master; file "/var/named/chroot/var/named/masters/comcept.ch.hosts"; allow-transfer { 10.150.0.189;}; notify yes; }; }; --------------- /var/named/chroot/etc/named.conf ---------------
Das war die Konfiguration für den Primary. Nun muss damit der Slave seine Aufgabe erfüllen kann das "named.conf" des Slaves konfiguriert werden:
Für den Secondary DNS2 Server:
# vi /var/named/chroot/etc/named.conf --------------- /var/named/chroot/etc/named.conf --------------- // *************************************************************** // // Set up our ACLs for dns2 // // In BIND 8, ACL names with quotes were treated as different from // the same name without quotes. In BIND 9, both are treated as // the same. // // The ordering of our views is very important. The named daemon // accepts the first match. It means first match wins! // // *************************************************************** controls { inet 127.0.0.1 allow { 127.0.0.1; } keys { rndckey_comcept.ch; }; inet 10.150.0.189 allow { 127.0.0.1; // localhost 10.150.0.0/24; // Local Network } keys { rndckey_comcept.ch; }; }; key "rndckey_comcept.ch" { algorithm "hmac-md5"; secret "guXeDVSSU6bL/TGDu7oG0znF+x2Ii374kyaJYMRp2a0="; }; logging { channel "default_syslog" { syslog local2; severity debug; }; channel audit_log { file "/var/named/chroot/var/log/named.log" versions 10 size 5m; severity debug; print-time yes; print-category yes; print-severity yes; }; category default { default_syslog; }; category general { default_syslog; }; category security { audit_log; default_syslog; }; category config { default_syslog; }; category resolver { audit_log; }; category xfer-in { audit_log; }; category xfer-out { audit_log; }; category notify { audit_log; }; category client { audit_log; }; category network { audit_log; }; category update { audit_log; }; category queries { audit_log; }; category lame-servers { audit_log; }; category edns-disabled { null; }; }; statistics-channels { inet 10.150.0.189 port 8053 allow { 127.0.0.1; // localhost 10.150.0.0/24; // Local Sysop }; }; options { listen-on-v6 { none; }; directory "/var/named"; pid-file "/var/named/chroot/var/run/named.pid"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; zone-statistics yes; query-source address * port 53; notify no; // Applies to slave zones only transfer-format many-answers; // Controls global zone transfer max-transfer-time-in 60; // Limit duration of inbound zone transfer interface-interval 0; // Disable scanning for new interfaces dnssec-enable no; dnssec-validation no; version "[secured]"; // Hide our "real" version number }; view "external" { allow-query-cache { 127.0.0.1; // Localhost 10.150.0.0/24; // Local Network }; allow-recursion { 127.0.0.1; // mx record smtpmx 10.150.0.0/24; // external device brutus }; match-clients { any; }; zone "." { // The root nameservers type hint; file "named.ca"; }; zone "localhost" { // localhost - forward zone type master; file "named.localhost"; allow-transfer { any; }; }; zone "loopback" { // localhost - inverse zone type master; file "named.loopback"; allow-transfer { any; }; }; zone "45.225.195.in-addr.arpa" { type slave; masters { 10.150.0.185;}; // transfer-source 10.150.0.185; file "/var/named/chroot/var/named/slave/195.225.45.rev"; allow-transfer { none; }; }; zone "comcept.ch" { type slave; masters { 10.150.0.185;}; // transfer-source 10.150.0.185; file "/var/named/chroot/var/named/slave/comcept.ch.hosts"; allow-transfer { none; }; }; }; --------------- /var/named/chroot/etc/named.conf ---------------
Die Konfiguration für diese Domaine comcept.ch sowie mit dem IP Range 195.225.45.0/24 der für den Reverse Lookup verwendet wird ist abgeschlossen. Starte nun den Bind DNS Server 1 und 2 neu:
# /etc/init.d/named restart
Um die vorherige Konfiguration betreffend comcept.ch sowie 195.225.45.0/24 durchzuführen kann auch Webmin benutzt werden dh. gehe folgendermassen vor:
BIND DNS-Server > Neue Master-Zone anlegen
Danach erscheint eine neue Seite anhand dieser kann die neue Zone erfasst werden. In unserem Fall comcept.ch
Datei:Webmin-11.jpg
Das File das generiert wurde kann auch angeschaut werden dh. wähle:
Datei:Webmin-12.jpg
Datei:Webmin-13.jpg
Die Zone Parameter können unter "Bearbeite Zonenparameter" manipuliert werden:
Datei:Webmin-14.jpg
Datei:Webmin-15.jpg
Um das Zonen File nun zu vervollständingen kann über "Bearbeite Datensatzdatei" die entpsrechenden Einträge per copy/paste hinzugefügt werden oder man benutzt die verschieenen "Type" Positionen:
Datei:Webmin-16.jpg
Der Eintrag für "/var/named/chroot/etc/named.conf" muss nicht hinzugefügt werden denn Webmin übernimmt diese Arbeit:
zone "beispiel.ch" { type master; file "/var/named/chroot/var/named/masters/beispiel.ch.external.hosts"; }; };
Wie man sieht ist der allgemeine Eintrag erstellt worden jedoch fehlt zur Vervollständigung "allow-transfer" sowie die "notify" Anweisung. Oeffne über die Hauptseite von Webmin das "named.conf" über "Bearbeiten":
Datei:Webmin-17.jpg
Erweitere nun den entsprechenden Eintrag:
zone "beispiel.ch" { type master; file "/var/named/chroot/var/named/masters/beispiel.ch.external.hosts"; allow-transfer { 10.150.0.189;}; notify yes; }; };
Bestätige die Konfig mit dem Button "Speichern". Gehe für den IP Range gleichermassen vor inkl. "named.conf" für den Secondary DNS2 Server. Die Erweiterung betreffend RC192 etc. Netzwerke können ebenfalls über Webmin zu "named.conf" anhand der Position "Bearbeiten hinzugefügt werden.
NOTE
Webmin kontrolliert bei jedem Speichervorgang die Konfig im Hintergrund jedoch ist es empfohlen speziell bei der Manipulation von "named.conf" die Konfig von Webmin überprüfen zu lassen (Check BIND Config)
Weitere Informationen/Dokumentation betreffend dem Modul Bind findet man auf folgenden Link:
http://doxfer.com/Webmin/BINDDNSServer
Bind Zusätzliche Konfiguration
Um den DNS1 und DNS2 Server zu optimieren dh. damit er bestimmte Anfragen nicht mehr beantwortet kann die Konfiguration erweitert werden. Die zusätzliche Konfiguration die wir durchführen hat zum Ziel das IPv6 IP Ranges sowie bestimmte Netzwerke nach RFC nicht mehr berücksichtigt werden dh. Anfragen werden von diesen Netzwerken nicht mehr beantwortet. Zur Vorbereitung erstelle folgende Files:
# vi /var/named/named.empty --------------- named.empty --------------- $TTL 3H @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ --------------- named.empty ---------------
# vi /var/named/named.localhost-reverse --------------- /var/named/named.localhost-reverse --------------- $TTL 3h @ SOA localhost. nobody.localhost. 42 1d 12h 1w 3h ; Serial, Refresh, Retry, Expire, Neg. cache TTL NS localhost. 1.0.0 PTR localhost. 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 PTR localhost. --------------- /var/named/named.localhost-reverse ---------------
# chown root:named /var/named/named.* # chmod 640 /var/named/named.*
Danach füge zum Primary DNS Server folgendes zur Konfig hinzu:
Für den Primary DNS1 Server:
# vi /var/named/chroot/etc/named.conf --------------- /var/named/chroot/etc/named.conf --------------- // *************************************************************** // // Set up our ACLs for dns1 // // In BIND 8, ACL names with quotes were treated as different from // the same name without quotes. In BIND 9, both are treated as // the same. // // The ordering of our views is very important. The named daemon // accepts the first match. It means first match wins! // // *************************************************************** controls { inet 127.0.0.1 allow { 127.0.0.1; } keys { rndckey_comcept.ch; }; inet 10.150.0.185 allow { 127.0.0.1; // localhost 10.150.0.0/24; // Local Network } keys { rndckey_comcept.ch; }; }; key "rndckey_comcept.ch" { algorithm "hmac-md5"; secret "guXeDVSSU6bL/TGDu7oG0znF+x2Ii374kyaJYMRp2a0="; }; logging { channel "default_syslog" { syslog local2; severity debug; }; channel audit_log { file "/var/named/chroot/var/log/named.log" versions 10 size 5m; severity debug; print-time yes; print-category yes; print-severity yes; }; category default { default_syslog; }; category general { default_syslog; }; category security { audit_log; default_syslog; }; category config { default_syslog; }; category resolver { audit_log; }; category xfer-in { audit_log; }; category xfer-out { audit_log; }; category notify { audit_log; }; category client { audit_log; }; category network { audit_log; }; category update { audit_log; }; category queries { audit_log; }; category lame-servers { audit_log; }; category edns-disabled { null; }; }; statistics-channels { inet 10.150.0.185 port 8053 allow { 127.0.0.1; // localhost 10.150.0.0/24; // Local Sysop }; }; options { listen-on-v6 { none; }; directory "/var/named"; pid-file "/var/named/chroot/var/run/named.pid"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; zone-statistics yes; query-source address * port 53; notify no; // Applies to slave zones only transfer-format many-answers; // Controls global zone transfer max-transfer-time-in 60; // Limit duration of inbound zone transfer interface-interval 0; // Disable scanning for new interfaces dnssec-enable no; dnssec-validation no; version "[secured]"; // Hide our "real" version number }; view "external" { allow-query-cache { 127.0.0.1; // Localhost 10.150.0.0/24; // Local Network }; allow-recursion { 127.0.0.1; // mx record smtpmx 10.150.0.0/24; // external device brutus }; match-clients { any; }; zone "." { // The root nameservers type hint; file "named.ca"; }; zone "localhost" { // localhost - forward zone type master; file "named.localhost"; allow-transfer { any; }; }; zone "loopback" { // localhost - inverse zone type master; file "named.loopback"; allow-transfer { any; }; }; // Serving the following zones locally will prevent any queries for these zones // leaving your network and going to the root name servers. This has two significant // advantages: // 1. Faster local resolution for your users // 2. No spurious traffic will be sent from your network to the roots // RFC 1912 zone "127.in-addr.arpa" { type master; file "named.localhost-reverse"; }; zone "255.in-addr.arpa" { type master; file "named.empty"; }; // RFC 1912-style zone for IPv6 localhost address zone "0.ip6.arpa" { type master; file "named.localhost-reverse"; }; // "This" Network (RFCs 1912 and 3330) zone "0.in-addr.arpa" { type master; file "named.empty"; }; // Private Use Networks (RFC 1918) zone "10.in-addr.arpa" { type master; file "named.empty"; }; zone "16.172.in-addr.arpa" { type master; file "named.empty"; }; zone "17.172.in-addr.arpa" { type master; file "named.empty"; }; zone "18.172.in-addr.arpa" { type master; file "named.empty"; }; zone "19.172.in-addr.arpa" { type master; file "named.empty"; }; zone "20.172.in-addr.arpa" { type master; file "named.empty"; }; zone "21.172.in-addr.arpa" { type master; file "named.empty"; }; zone "22.172.in-addr.arpa" { type master; file "named.empty"; }; zone "23.172.in-addr.arpa" { type master; file "named.empty"; }; zone "24.172.in-addr.arpa" { type master; file "named.empty"; }; zone "25.172.in-addr.arpa" { type master; file "named.empty"; }; zone "26.172.in-addr.arpa" { type master; file "named.empty"; }; zone "27.172.in-addr.arpa" { type master; file "named.empty"; }; zone "28.172.in-addr.arpa" { type master; file "named.empty"; }; zone "29.172.in-addr.arpa" { type master; file "named.empty"; }; zone "30.172.in-addr.arpa" { type master; file "named.empty"; }; zone "31.172.in-addr.arpa" { type master; file "named.empty"; }; zone "168.192.in-addr.arpa" { type master; file "named.empty"; }; // Link-local/APIPA (RFCs 3330 and 3927) zone "254.169.in-addr.arpa" { type master; file "named.empty"; }; // TEST-NET for Documentation (RFC 3330) zone "2.0.192.in-addr.arpa" { type master; file "named.empty"; }; // Router Benchmark Testing (RFC 3330) zone "18.198.in-addr.arpa" { type master; file "named.empty"; }; zone "19.198.in-addr.arpa" { type master; file "named.empty"; }; // IANA Reserved - Old Class E Space zone "240.in-addr.arpa" { type master; file "named.empty"; }; zone "241.in-addr.arpa" { type master; file "named.empty"; }; zone "242.in-addr.arpa" { type master; file "named.empty"; }; zone "243.in-addr.arpa" { type master; file "named.empty"; }; zone "244.in-addr.arpa" { type master; file "named.empty"; }; zone "245.in-addr.arpa" { type master; file "named.empty"; }; zone "246.in-addr.arpa" { type master; file "named.empty"; }; zone "247.in-addr.arpa" { type master; file "named.empty"; }; zone "248.in-addr.arpa" { type master; file "named.empty"; }; zone "249.in-addr.arpa" { type master; file "named.empty"; }; zone "250.in-addr.arpa" { type master; file "named.empty"; }; zone "251.in-addr.arpa" { type master; file "named.empty"; }; zone "252.in-addr.arpa" { type master; file "named.empty"; }; zone "253.in-addr.arpa" { type master; file "named.empty"; }; zone "254.in-addr.arpa" { type master; file "named.empty"; }; // IPv6 Unassigned Addresses (RFC 4291) zone "1.ip6.arpa" { type master; file "named.empty"; }; zone "3.ip6.arpa" { type master; file "named.empty"; }; zone "4.ip6.arpa" { type master; file "named.empty"; }; zone "5.ip6.arpa" { type master; file "named.empty"; }; zone "6.ip6.arpa" { type master; file "named.empty"; }; zone "7.ip6.arpa" { type master; file "named.empty"; }; zone "8.ip6.arpa" { type master; file "named.empty"; }; zone "9.ip6.arpa" { type master; file "named.empty"; }; zone "a.ip6.arpa" { type master; file "named.empty"; }; zone "b.ip6.arpa" { type master; file "named.empty"; }; zone "c.ip6.arpa" { type master; file "named.empty"; }; zone "d.ip6.arpa" { type master; file "named.empty"; }; zone "e.ip6.arpa" { type master; file "named.empty"; }; zone "0.f.ip6.arpa" { type master; file "named.empty"; }; zone "1.f.ip6.arpa" { type master; file "named.empty"; }; zone "2.f.ip6.arpa" { type master; file "named.empty"; }; zone "3.f.ip6.arpa" { type master; file "named.empty"; }; zone "4.f.ip6.arpa" { type master; file "named.empty"; }; zone "5.f.ip6.arpa" { type master; file "named.empty"; }; zone "6.f.ip6.arpa" { type master; file "named.empty"; }; zone "7.f.ip6.arpa" { type master; file "named.empty"; }; zone "8.f.ip6.arpa" { type master; file "named.empty"; }; zone "9.f.ip6.arpa" { type master; file "named.empty"; }; zone "a.f.ip6.arpa" { type master; file "named.empty"; }; zone "b.f.ip6.arpa" { type master; file "named.empty"; }; zone "0.e.f.ip6.arpa" { type master; file "named.empty"; }; zone "1.e.f.ip6.arpa" { type master; file "named.empty"; }; zone "2.e.f.ip6.arpa" { type master; file "named.empty"; }; zone "3.e.f.ip6.arpa" { type master; file "named.empty"; }; zone "4.e.f.ip6.arpa" { type master; file "named.empty"; }; zone "5.e.f.ip6.arpa" { type master; file "named.empty"; }; zone "6.e.f.ip6.arpa" { type master; file "named.empty"; }; zone "7.e.f.ip6.arpa" { type master; file "named.empty"; }; // IPv6 ULA (RFC 4193) zone "c.f.ip6.arpa" { type master; file "named.empty"; }; zone "d.f.ip6.arpa" { type master; file "named.empty"; }; // IPv6 Link Local (RFC 4291) zone "8.e.f.ip6.arpa" { type master; file "named.empty"; }; zone "9.e.f.ip6.arpa" { type master; file "named.empty"; }; zone "a.e.f.ip6.arpa" { type master; file "named.empty"; }; zone "b.e.f.ip6.arpa" { type master; file "named.empty"; }; // IPv6 Deprecated Site-Local Addresses (RFC 3879) zone "c.e.f.ip6.arpa" { type master; file "named.empty"; }; zone "d.e.f.ip6.arpa" { type master; file "named.empty"; }; zone "e.e.f.ip6.arpa" { type master; file "named.empty"; }; zone "f.e.f.ip6.arpa" { type master; file "named.empty"; }; // IP6.INT is Deprecated (RFC 4159) zone "ip6.int" { type master; file "named.empty"; }; }; zone "45.225.195.in-addr.arpa" { type master; file "/var/named/chroot/var/named/masters/195.225.45.rev"; allow-transfer { 10.150.0.189;}; notify yes; }; zone "comcept.ch" { type master; file "/var/named/chroot/var/named/masters/comcept.ch.hosts"; allow-transfer { 10.150.0.189;}; notify yes; }; }; --------------- /var/named/chroot/etc/named.conf ---------------
NOTE
Nachdem diese Konfiguration durchgeführt wurde können die Zonen innerhalb Webmin nicht mehr angzeigt werden da das max. der Zonen überschritten wurde. Aendere die max. anzuzeigender Zonen in Webmin indem du folgendes wählst:
BIND DNS-Server > Modulkonfiguration Datei:Webmin-10.jpg
Nun muss nur noch das Konfig File des DNS2 konfiguriert werden:
Für den Secondary DNS2 Server:
# vi /var/named/chroot/etc/named.conf --------------- /var/named/chroot/etc/named.conf --------------- // *************************************************************** // // Set up our ACLs for dns2 // // In BIND 8, ACL names with quotes were treated as different from // the same name without quotes. In BIND 9, both are treated as // the same. // // The ordering of our views is very important. The named daemon // accepts the first match. It means first match wins! // // *************************************************************** controls { inet 127.0.0.1 allow { 127.0.0.1; } keys { rndckey_comcept.ch; }; inet 10.150.0.189 allow { 127.0.0.1; // localhost 10.150.0.0/24; // Local Network } keys { rndckey_comcept.ch; }; }; key "rndckey_comcept.ch" { algorithm "hmac-md5"; secret "guXeDVSSU6bL/TGDu7oG0znF+x2Ii374kyaJYMRp2a0="; }; logging { channel "default_syslog" { syslog local2; severity debug; }; channel audit_log { file "/var/named/chroot/var/log/named.log" versions 10 size 5m; severity debug; print-time yes; print-category yes; print-severity yes; }; category default { default_syslog; }; category general { default_syslog; }; category security { audit_log; default_syslog; }; category config { default_syslog; }; category resolver { audit_log; }; category xfer-in { audit_log; }; category xfer-out { audit_log; }; category notify { audit_log; }; category client { audit_log; }; category network { audit_log; }; category update { audit_log; }; category queries { audit_log; }; category lame-servers { audit_log; }; category edns-disabled { null; }; }; statistics-channels { inet 10.150.0.189 port 8053 allow { 127.0.0.1; // localhost 10.150.0.0/24; // Local Sysop }; }; options { listen-on-v6 { none; }; directory "/var/named"; pid-file "/var/named/chroot/var/run/named.pid"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; zone-statistics yes; query-source address * port 53; notify no; // Applies to slave zones only transfer-format many-answers; // Controls global zone transfer max-transfer-time-in 60; // Limit duration of inbound zone transfer interface-interval 0; // Disable scanning for new interfaces dnssec-enable no; dnssec-validation no; version "[secured]"; // Hide our "real" version number }; view "external" { allow-query-cache { 127.0.0.1; // Localhost 10.150.0.0/24; // Local Network }; allow-recursion { 127.0.0.1; // mx record smtpmx 10.150.0.0/24; // external device brutus }; match-clients { any; }; zone "." { // The root nameservers type hint; file "named.ca"; }; zone "localhost" { // localhost - forward zone type master; file "named.localhost"; allow-transfer { any; }; }; zone "loopback" { // localhost - inverse zone type master; file "named.loopback"; allow-transfer { any; }; }; // Serving the following zones locally will prevent any queries for these zones // leaving your network and going to the root name servers. This has two significant // advantages: // 1. Faster local resolution for your users // 2. No spurious traffic will be sent from your network to the roots // RFC 1912 zone "127.in-addr.arpa" { type slave; masters { 10.150.0.185;}; file "named.localhost-reverse"; }; zone "255.in-addr.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; // RFC 1912-style zone for IPv6 localhost address zone "0.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.localhost-reverse"; }; // "This" Network (RFCs 1912 and 3330) zone "0.in-addr.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; // Private Use Networks (RFC 1918) zone "10.in-addr.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "16.172.in-addr.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "17.172.in-addr.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "18.172.in-addr.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "19.172.in-addr.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "20.172.in-addr.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "21.172.in-addr.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "22.172.in-addr.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "23.172.in-addr.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "24.172.in-addr.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "25.172.in-addr.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "26.172.in-addr.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "27.172.in-addr.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "28.172.in-addr.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "29.172.in-addr.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "30.172.in-addr.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "31.172.in-addr.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "168.192.in-addr.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; // Link-local/APIPA (RFCs 3330 and 3927) zone "254.169.in-addr.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; // TEST-NET for Documentation (RFC 3330) zone "2.0.192.in-addr.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; // Router Benchmark Testing (RFC 3330) zone "18.198.in-addr.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "19.198.in-addr.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; // IANA Reserved - Old Class E Space zone "240.in-addr.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "241.in-addr.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "242.in-addr.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "243.in-addr.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "244.in-addr.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "245.in-addr.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "246.in-addr.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "247.in-addr.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "248.in-addr.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "249.in-addr.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "250.in-addr.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "251.in-addr.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "252.in-addr.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "253.in-addr.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "254.in-addr.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; // IPv6 Unassigned Addresses (RFC 4291) zone "1.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "3.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "4.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "5.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "6.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "7.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "8.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "9.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "a.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "b.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "c.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "d.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "e.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "0.f.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "1.f.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "2.f.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "3.f.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "4.f.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "5.f.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "6.f.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "7.f.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "8.f.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "9.f.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "a.f.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "b.f.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "0.e.f.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "1.e.f.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "2.e.f.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "3.e.f.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "4.e.f.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "5.e.f.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "6.e.f.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "7.e.f.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; // IPv6 ULA (RFC 4193) zone "c.f.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "d.f.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; // IPv6 Link Local (RFC 4291) zone "8.e.f.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "9.e.f.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "a.e.f.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "b.e.f.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; // IPv6 Deprecated Site-Local Addresses (RFC 3879) zone "c.e.f.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "d.e.f.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "e.e.f.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "f.e.f.ip6.arpa" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; // IP6.INT is Deprecated (RFC 4159) zone "ip6.int" { type slave; masters { 10.150.0.185;}; file "named.empty"; }; zone "45.225.195.in-addr.arpa" { type slave; masters { 10.150.0.185;}; // transfer-source 10.150.0.185; file "/var/named/chroot/var/named/slave/195.225.45.rev"; allow-transfer { none; }; }; zone "comcept.ch" { type slave; masters { 10.150.0.185;}; // transfer-source 10.150.0.185; file "/var/named/chroot/var/named/slave/comcept.ch.hosts"; allow-transfer { none; }; }; }; --------------- /var/named/chroot/etc/named.conf ---------------
Bind XML Statistik
Zusätzlich zum Webmin und Bind selber läuft im Hintergrund eine Statistik. Diese wird per XML aufbereitet und steht per http auf diesem Port zur Verfügung der definiert wurde im "named.conf" im Container "statistics-channels". Somit um die Statistik Seite anzugehen benutze:
http://10.150.0.185:8053