Nach Möglichkeit sollte der Zugriff so weit wie möglich
beschränkt werden. Verwendet man kein dynamisches Update, so
sollte man die option "allow-update { none; };"
verwenden, ansonsten die IP-Adresse von jeder berechtigten
Maschine aufzählen.
Steht diese Option im "options {};"-Block, so
gilt sie für alle Zones. Hat eine Zone einen eigenen Eintrag, so
überschreibt dieser den globalen im "Options {};"-Block
stehenden.
Ein Primary, der nirgendwo als "NS"-Record auftritt,
wird normalerweise nie Anfragen erhalten, außer Zonetransfers von
seinen Secondaries. Deshalb kann man in diesem Falle die Option
"allow-query { none; };" setzen, diese darf ebenfalls
im "options {};"-Block stehen, und damit global gelten.
Sehr häufig erlauben die Server Zonetransfers nur ihren
Secondaries. Damit erlaubt auch ein Secondary (der von keinem als
Primary verwendet wird, theoretisch lassen sich die Server aber
kaskadieren) überhaupt keine Zonetransfers,
höchstens zu ein, zwei Maschinen zu Testzwecken (wo z.B.
dnswalk läuft, das Zonetransfres benötigt).
Das konfiguriert man mit der Option
"allow-transfer { none; };", bzw. bei Primaries durch
Aufzählen der IP-Adressen der Secondaries (und evtl. Testhosts),
z.B. "allow-transfer { 1.2.3.4; 1.2.3.5; };". Anstatt
einzelner Adressen können selbstverständlich auch Netzwerke
angegeben werden.
bind (ab Version 8) unterstützt auch
ACLs (Access Control Lists),
was die Übersicht erhöht. Hier kann man symbolische Namen
für IP Adressen und Netzwerke vergeben, ein Beispiel:
/etc/named.conf |
acl fremde_clients { !1.2.3/24; any; }; // alle, außer 1.2.3.0/24
acl locals { 1.2.4.0/24; }; // eigenes Netz
acl transfer { 1.2.10.53; 1.2.11.53; }; // Secondaries
acl clients { locals; transfer; }; // Resolver
acl dhcp { 1.2.4.254; }; // DHCP-Server
allow-transfer { transfer; };
allow-query { clients; };
allow-update { dhcp; };
|
Das ist dann besser lesbar.
Dabei müssen die ACLs natürlich vor deren Verwendung definiert
werden. Sollen diese bereits im "options {};"-Block
verwendet werden, müssen diese davor (also außerhalb dieses
Blockes) definiert werden. Finden die ACLs in den
"zone {};"-Blöcken Anwendung, so können nach dem
"options {};"-Block (und vorzugsweise vor dem ersten
"-zone {};"-Block) definiert werden.
Die Struktur sähe z.B. so aus:
/etc/named.conf |
acl transfer { 1.2.10.53; 1.2.11.53; }; // Secondaries
options {
....
allow-transfer { transfer; };
};
acl locals { 192.168.0.0/16; }; // eigenes Netz
zone "my.play.net.de" {
....
allow-query { locals; };
};
|
Damit könnte man dann eventuell eine interne, private Zone für
private IP-Adressen auf dem normalen DNS-Server konfigurieren,
aber den Zugriff aus dem Internet verbieten. Ansonsten kann es zu
Störungen fremder Clienten führen, da Namen u.U. falsch aufgelöst
werden könnten.
|