V předchozím dílu jsme si představili základy fungování a provozu DNSSEC na serveru Knot DNS. Dnes navážeme popisem některých dalších funkcí tohoto serveru, které s DNSSEC souvisí.
Knot DNS – DNSSEC (1)
Internetový protokol DNS má počátky v roce 1983. Od svého vzniku prošel mnoha úpravami a je neustále rozvíjen. Mezi jeho nejvýznamnější rozšíření patří zabezpečení DNSSEC. O co jednodušší bylo v úvodním dílu zapnutí DNSSEC, o to složitější procesy probíhají pod kapotou. Dnes si přiblížíme jak DNSSEC funguje a jak ho lze efektivně provozovat se serverem Knot DNS.
Knot DNS – konfigurace
Abychom mohli server Knot DNS spustit, je třeba mu předložit nějakou konfiguraci. Konfigurace může být ve formě textového souboru nebo binární databáze. Pokud konfiguraci explicitně nezadáme, pokusí se démon použít konfiguraci z přednastaveného umístění, které je určeno při překladu programu. Nejprve se zkouší konfigurační databáze (většinou /var/lib/knot/confdb) a pokud neexistuje, zkouší se konfigurační soubor (většinou /etc/knot/knot.conf). Konfigurací může být prázdný soubor nebo prázdná databáze. Kromě démona knotd, využívá konfiguraci i nástroj knotc na ovládání démona, nástroj keymgr na správu DNSSEC a další.
Knot DNS – zónové transfery
V úvodním dílu jsme si zprovoznili automatickou synchronizaci zóny na sekundárním serveru. Dnes si ukážeme jaké jsou další možnosti nastavení zónových transferů a co je jejich obsahem.
Knot DNS – správa zóny
V předchozím díle jsme si vytvořili jednoduchou zónu ve formě zónového souboru a dnes si povíme, jak s takovým souborem pracovat. Jedná se o nejčastější uživatelskou operaci a je užitečné jí porozumět.
Knot DNS – začínáme
Stále častěji se setkáváme s dotazy uživatelů, jak zprovoznit DNS server Knot DNS. Přestože se snažíme udržovat kvalitní dokumentaci, její obsah přímo nenabízí formu tutoriálu. Na praktických příkladech si tedy přiblížíme základy i pokročilejší možnosti tohoto software.
Knot DNS slaví deset let své existence
Projekt autoritativního DNS serveru Knot DNS patří mezi nejstarší projekty Laboratoří CZ.NIC. Dnes je tomu právě deset let od uložení prvotního prototypu serveru commitem 2da03d5da do veřejného repozitáře Git. Jde o software, který nemá vizuální výstup a běžný člověk s ním vědomě nepřijde do kontaktu, proto si připomeňme jeho význam a kde se s ním můžete setkat.
Knot DNS na OpenWRT
Projekt autoritativního serveru Knot DNS již není třeba představovat. Stojí však za zmínku, že lze server rovněž provozovat i v prostředí OpenWRT, a tedy i na routeru Turris. Dnes si tu popíšeme jak na to.
Ačkoli balíček Knota nebyl dosud začleněn do repozitáře OpenWRT, můžeme si ze stránek projektu stáhnout port balíčku, pomocí kterého si již snadno sestavíme binánární balíček pro naši konkrétní architekturu.
V našem příkladu budeme předpokládat, že pracujeme s OpenWRT verze 12.09. Některé starší verze jsou rovněž podporované. V případě hlavní vývojové větve je průběh ještě jednodušší, neboť potřebná závislost, knihovna liburcu, je v ní již začleněna.
Začneme stažením prostředí Buildroot:
git clone --depth 1 git://git.openwrt.org/12.09/openwrt.git
Jak již bylo zmíněno, OpenWRT 12.09 neobsahuje balíček knihovny liburcu. Proto si ho vypůjčíme z vývojové větve:
git clone --depth 1 git://git.openwrt.org/packages.git
cp -a ./packages/libs/liburcu ./openwrt/package/
Nyní už jen zbývá samotný port Knot DNS verze 1.4.4:
wget https://www.knot-dns.cz/static/download/knot-1.4.4-owrt.tar.gz
tar -xzf knot-1.4.4-owrt.tar.gz
cp -a ./knot ./openwrt/package/
Nastavení překladu provedeme následující sekvencí příkazů:
cd openwrt
make defconfig
make prereq
make menuconfig
V konfigurátoru nastavíme požadovanou platformu (např. ar71xx):
Target System>ar71xx
a zaškrtneme balíček serveru:
Network>IP Addresses and Names>knot
Dále můžeme zaškrtnout pomocné utility (kdig, khost, knsupdate a knsec3hash):
Network>IP Addresses and Names>knot-utils
A pokud si chceme ověřit, že Knot bude pracovat správně na naší platformě, zvolíme i sadu základních testů:
Network>IP Addresses and Names>knot-tests
Následuje překlad potřebných utilit a našich balíčků:
make tools/install
make toolchain/install
make package/knot/compile
Po několika desítkách minut se můžeme tešit na balíčky:
./bin/ar71xx/packages/knot_1.4.4-1_ar71xx.ipk
./bin/ar71xx/packages/knot-utils_1.4.4-1_ar71xx.ipk
./bin/ar71xx/packages/knot-tests_1.4.4-1_ar71xx.ipk
./bin/ar71xx/packages/liburcu_0.7.6-1_ar71xx.ipk
Předchozí soubory nakopírujeme na cílové zařízení (scp) a připojíme se na terminál (ssh).
Následuje instalace:
opkg install liburcu_0.7.6-1_ar71xx.ipk
opkg install knot_1.4.4-1_ar71xx.ipk
opkg install knot-utils_1.4.4-1_ar71xx.ipk
opkg install knot-tests_1.4.4-1_ar71xx.ipk
Základní testy spustíme:
cd /usr/share/knot/tests
./runtests -l TESTS -b /tmp