O prolínání práce v IT a osobního života

čtvrtek 23. srpna 2007

BIND Multiview



V situaci, kdy je doména hostována na DNS serveru, který je součástí lokální sítě nebo DMZ, vzniká problém s překladem DNS pro aplikační služby umístěné za firewallem.

Tento problém spočívá v tom, že DNS ukazuje na WAN rozhraní firewallu. Při přístupu z vnitřní sítě však firewall typicky zakáže přístup přes WAN rozhraní všem packetům se zdrojovým IP z vnitřní sítě. Výsledkem je, že aplikační služby umístěné za firewallem fungují pouze z internetu, nikoliv však z vnitřní sítě.

Možností jak vyřešit tento problém je několik, například:
  • omezení firewallových pravidel (díra do fw)
  • speciální funkce firewallu (modifikace DNS odpovědi)
  • použití veřejných IP adres pro DMZ
  • dva DNS servery (jeden pro internet, druhý pro vnitřní síť)
  • DNS multiview
A právě o posledně jmenovaném řešení pojednává tento článek. Hlavní myšlenka je prostá: Nakonfigurovat DNS server tak, aby vracel různé odpovědi na základě zdrojové IP tazatele.

V případě BIND9 by konfigurační soubor vypadal následovně:

// ====
// ACLs
// ====
acl "ournetworks" {
127.0.0.0/8;
10.0.0.0/8;
};

acl "ispns" {
8.8.8.0/24;
};

// ============================
// Konfigurace pro dotazy z LAN
// ============================
view "internal" {
match-clients {
ournetworks;
};
recursion yes;

// =============
// special zones
// =============
zone "." {
type hint;
file "/etc/bind/db.root";
};

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";
};

zone "255.in-addr.arpa" {
type master;
file "/etc/bind/db.255";
};


// =========
// our zones
// =========
zone "domena.cz" {
type master;
file "/etc/bind/db.cz.domena.internal";
allow-transfer { any; };
};

zone "0.0.10.in-addr.arpa" {
type master;
file "/etc/bind/db.10.0.0";
allow-transfer { any; };
};
};

// =================================
// Konfiguace pro dotazy z internetu
// =================================
view "external" {
match-clients {
any;
};
recursion no;

// =============
// special zones
// =============
zone "." {
type hint;
file "/etc/bind/db.root";
};

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";
};


// =========
// our zones
// =========
zone "domena.cz" {
type master;
file "/etc/bind/db.cz.domena.external";
allow-transfer { ispns; };
};
};
Share:

0 komentářů:

Okomentovat

Předem děkuji za Váš komentář.
Prosím o Váš podpis, anonymní komentáře nemají žádnou váhu a nikdo je nebere vážně. Děkuji.