< DNS szerver

Bind9 View

Szerző: Sallai András

Copyright © 2018, Sallai András

Licenc: CC BY-SA 4.0

Web: https://szit.hu

Bevezetés

A View nézetet jelent. De mit biztosít számunkra a Bind9-ben? A nézetek lehetővé teszik különböző nevek feloldását IP címtől függően. Hasznos lehet, ha például más weboldalt szeretnénk kiszolgálni két különböző privát alhálózatunk számára.

Ebben a leírásban Debian9 rendszeren próbáljuk ki a Bind9 View lehetőségét.

A hálózat

Legyen két hálózat:

info – 192.168.6.0/24

gazd – 192.168.7.0/24

külső – 192.168.5.0/24

Van egy hálózat az informatika és egy a gazdasági osztály számára. Szeretnénk, ha az „intranet” nevet a böngészőbe beírva más-más weboldal jöjjön be.

Szükséges programok telepítése

apt install bind9 dnsutils

A bind9 beállítása

Elsőként tegyük megjegyzésbe az alapértelmezett zónákra vonatkozó include bejegyzést:

include "/etc/bind/named.conf.options"; include "/etc/bind/named.conf.local"; //include "/etc/bind/named.conf.default-zones";

Természetesen törölhetjük is a bejegyzést. Ezeket a nézetekben fogjuk megadni.

Készítsük el a nézeteket, benne a zónákkal:

view "info" { match-clients { localhost; 192.168.6.0/24; }; recursion yes; zone "intranet" { type master; file "master/intranetInfo.zone"; }; include "/etc/bind/named.conf.default-zones"; }; view "gazd" { match-clients { localhost; 192.168.7.0/24; }; recursion yes; zone "intranet" { type master; file "master/intranetGazd.zone"; }; include "/etc/bind/named.conf.default-zones"; };

Zónafájlok létrehozása:

mkdir /var/cache/bind/master/

$TTL 3D intranet. SOA intranet. hostmaster.zold.and. ( 2018090801 8H 2H 4W 1D) intranet. NS intranet. intranet. A 192.168.6.1
$TTL 3D intranet. SOA intranet. hostmaster.zold.and. ( 2018090801 8H 2H 4W 1D) intranet. NS intranet. intranet. A 192.168.7.1

Ellenőrzés

Egy kliens programon az info-s hálózatban írjuk be a böngészőbe:

intranet

Majd írjuk be a másik hálózatban is ugyanezt:

intranet

A két különböző weblapot kell kapjuk.

Függelék

Apache

Az Apache beállítása ugyan nem tartozik a DNS beállításokhoz, de a fenti feladat megoldásához, ezt is megnézzük.

Ha az apache nincs telepítve:

apt install apache2

Vegyük fel a virtulahostokat IP cím alapján:

nano /etc/apache2/sites-available/intranet.conf

Az intranet.conf fájl nem létezik, most hozzuk létre. Tartalma ehhez hasonló legyen:

<VirtualHost 192.168.6.1> ServerAdmin valaki@zold.and DocumentRoot /home/www/info/htdocs <Directory /home/www/info> Require all granted </Directory> </VirtualHost> <VirtualHost 192.168.7.1> ServerAdmin valaki@zold.and DocumentRoot /home/www/gazd/htdocs <Directory /home/www/gazd> Require all granted </Directory> </VirtualHost>

Engedélyezzük a webhelyeket:

a2ensite intranet
systemctl restart apache2

Készítsük a weboldalak előkészítéséhez egy index.html állományt:

mkdir -p /home/www/info/htdocs
mkdir -p /home/www/gazd/htdocs

echo "Informatika osztaly" > /home/www/info/htdocs/index.html
echo "Gazdasagi osztaly" > /home/www/gazd/htdocs/index.html

Az isc-dhcp-server beállítása

Az isc-dhcp-server is opcionális lehetőség, csak a teljesség kedvéért.

Ha nincs telepítve:

apt install isc-dhcp-server

Határozzuk meg milyen hálózati kártyákon szeretnénk a DHCP szolgáltatást megvalósítani. A hálózati kártyák neveinek kiderítéséhez használjuk az ip parancsot:

ip address show

Legyenek a hálózati kártyák nevei: enp0s3, enp0s8. Szerkesszük a /etc/default/isc-dhcp-server állományt:

nano /etc/default/isc-dhcp-server

Keressük meg az INTERFACESV4 SORT. Adjuk meg a hálózati kártyákat:

INTERFACESV4="enp0s3 enp0s8"

Mentsük el az eredeti beállításfájlt:

cd /etc/dhcp
cp dhcpd.conf dhcpd.conf.backup

Készítsünk egy újat:

option domain-name-servers 8.8.8.8; option domain-name "zold.and"; default-lease-time 600; max-lease-time 7200; subnet 192.168.6.0 netmask 255.255.255.0 { range 192.168.6.101 192.168.6.200; option routers 192.168.6.1; option broadcast-address 192.168.6.255; option domain-name-servers 192.168.6.1, 8.8.4.4, 8.8.8.8; } subnet 192.168.7.0 netmask 255.255.255.0 { range 192.168.7.101 192.168.7.200; option routers 192.168.7.1; option broadcast-address 192.168.7.255; option domain-name-servers 192.168.7.1, 8.8.4.4, 8.8.8.8; }

Hálózatbeállítások

nano /etc/network/interfaces

[...] allow-hotplug enp0s3 iface enp0s3 inet static address 192.168.6.1 netmask 255.255.255.0 allow-hotplug enp0s8 iface enp0s8 inet static address 192.168.7.1 netmask 255.255.255.0 # külső interfész: allow-hotplug enp0s9 iface enp0s9 inet static address 192.168.5.88 netmask 255.255.255.0 gateway 192.168.5.1

Hibakövetés

A DNS beállításokhoz használjuk a dig parancsot, például:

dig @192.168.6.1 intranet

A DHCP kérésekhez monitorozásához:

tcpdump -i enp0s8 -i enp0s3 port bootps

A dig parancs a dnsutils, a tcpdump a tcpdump csomagban található.

Irodalom

https://kb.isc.org/article/AA-00851/0/Understanding-views-in-BIND-9-by-example.html (2018)

https://www.howtoforge.com/two_in_one_dns_bind9_views (2018)