Obsah
- Krok 1: Nainstalujte požadované balíčky
- Krok 2: Globální konfigurace serveru DNS
- Krok 3: Vytvořte přední a zadní zónu
- Krok 4: Spuštění serveru DNS
- Krok 5: Změňte nastavení brány firewall
- Krok 6: Nastavení přístupových práv
- Krok 7: Testování chyb a dokončení konfigurace
- Krok 8: Kontrola nainstalovaného serveru DNS
- Konfigurace na straně klienta serveru DNS
- Testování serveru DNS
- Otázky a odpovědi
Krok 1: Nainstalujte požadované balíčky
Než se začneme zabývat následujícími pokyny, chceme si uvědomit, že náš web již má obecného průvodce konfigurací standardního DNS v systému Linux. Doporučujeme použít přesně tento materiál, pokud potřebujete nastavit nastavení pro pravidelné návštěvy internetových stránek. Dále vám ukážeme, jak nainstalovat primární místní server DNS na straně klienta.
Přečtěte si také: Konfigurace DNS v systému Linux
Jako prostředek k vytvoření místního serveru DNS doporučujeme použít bind9... Nastavení následných konfiguračních souborů bude také založeno na obecných principech chování této komponenty. Výchozí bind9 v operačním systému chybí, tak začněme jeho přidáním.
- Spusťte konzolu způsobem, který vám vyhovuje. Je v sekci "Aplikace" — Oblíbené nebo jej lze otevřít pomocí standardní klávesové zkratky Ctrl + Alt + T.
- Zde musíte zadat příkaz
sudo yum install bind bind-utils -y
a klikněte na Enter aktivovat. - Tato akce se provádí jménem superuživatele (sudo), takže budete muset účet potvrdit zadáním hesla do zobrazeného řádku.
- Počkejte na dokončení stahování a instalace balíčků.
Na konci tohoto procesu budete upozorněni, že všechny balíčky byly úspěšně přidány do systému. Poté přejděte k dalšímu kroku.
Krok 2: Globální konfigurace serveru DNS
Nyní chceme ukázat, jak přesně je upraven hlavní konfigurační soubor a jaké řádky jsou tam přidány. Nebudeme se zabývat každou linkou zvlášť, protože to bude trvat velmi dlouho, kromě toho jsou všechny potřebné informace k dispozici v oficiální dokumentaci.
- K úpravě konfiguračních objektů lze použít libovolný textový editor. Nabízíme k instalaci pohodlné nanozadáním do konzoly
sudo yum install nano
. - Stáhnou se všechny požadované balíčky a pokud jsou již v distribuci přítomny, obdržíte oznámení "Nedá se nic dělat".
- Začněme s úpravami samotného souboru. Otevřete to
sudo nano /etc/named.conf
... V případě potřeby nahraďte požadovaný textový editor a řádek bude vypadat asi takto:sudo vi /etc/named.conf
. - Níže poskytneme obsah, který musíte vložit do otevřeného souboru, nebo jej porovnat s existujícím přidáním chybějících řádků.
- Poté klikněte na Ctrl + Ozaznamenat změny.
- Není třeba měnit název souboru, stačí kliknout na Enter.
- Opusťte textový editor pomocí Ctrl + X.
Jak již bylo zmíněno dříve, do konfiguračního souboru budete muset vložit určité řádky, které stanoví obecná pravidla pro chování serveru DNS.
//
// named.conf
//
// Poskytnuto balíčkem Red Hat Bind pro konfiguraci ISC BIND s názvem (8) DNS
// server jako server pouze pro ukládání do mezipaměti nameserver (pouze jako překladač localhost DNS).
//
// Viz / usr / share / doc / bind * / sample / například pojmenované konfigurační soubory.
//
možnosti {
naslouchací port 53 {127.0.0.1; 192.168.1.101;}; ### Hlavní DNS IP ###
# list-on-v6 port 53 {:: 1; };
adresář "/ var / pojmenovaný";
dump-file "/var/named/data/cache_dump.db";
statistický soubor "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query {localhost; 192.168.1.0/24;}; ### Rozsah IP ###
allow-transfer {localhost; 192.168.1.102; }; ### Slave DNS IP ###
/*
- Pokud vytváříte AUTORITATIVNÍ server DNS, NEPOVOLUJTE rekurzi.
- Pokud vytváříte RECURSIVE (ukládání do mezipaměti) server DNS, musíte povolit
rekurze.
- Pokud má váš rekurzivní server DNS veřejnou adresu IP, MUSÍTE povolit přístup
ovládání k omezení dotazů na vaše oprávněné uživatele. Pokud tak neučiníte, bude
způsobí, že se váš server stane součástí rozsáhlého zesílení DNS
útoky. Implementace BCP38 ve vaší síti by byla velmi důležitá
zmenšit takovou útočnou plochu
*/
rekurze ano;
dnssec-povolit ano;
dnssec-validace ano;
dnssec-lookaside auto;
/ * Cesta k klíči ISC DLV * /
bindkeys-file "/etc/named.iscdlv.key";
adresář spravovaných klíčů "/ var / pojmenovaný / dynamický";
pid-soubor "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};
protokolování {
kanál default_debug {
soubor "data / named.run";
závažnost dynamická;
};
};
zóna "." V {
tip na typ;
soubor "named.ca";
};
zóna „unixmen.local“ V {
typový mistr;
soubor "forward.unixmen";
allow-update {none; };
};
zóna „1.168.192.in-addr.arpa“ V {
typový mistr;
soubor "reverse.unixmen";
allow-update {none; };
};
zahrnout "/etc/named.rfc1912.zones";
zahrnout "/etc/named.root.key";
Ujistěte se, že je vše nastaveno přesně tak, jak je uvedeno výše, a pokračujte dalším krokem.
Krok 3: Vytvořte přední a zadní zónu
Server DNS používá k získání informací o zdroji zóny vpřed a vzad. Přeposlat vám umožní získat IP adresu podle názvu hostitele a reverzní IP vám dá název domény. Správný provoz každé zóny musí být zajištěn zvláštními pravidly, jejichž vytvoření navrhujeme dále řešit.
- Vytvořme samostatný soubor pro přímou zónu pomocí stejného textového editoru.Řádek bude vypadat takto:
sudo nano /var/named/forward.unixmen
. - Budete upozorněni, že se jedná o prázdný objekt. Vložte tam následující obsah:
8 6400 $
@ V SOA masterdns.unixmen.local. root.unixmen.local. (
2011071001; Sériové číslo
3600; Obnovit
1800; Opakovat
604800; platnost vyprší
86400; minimální TTL
)
@ IN NS masterdns.unixmen.local.
@ IN NS secondarydns.unixmen.local.
@ IN A 192.168.1.101
@ IN 192.168.1.102
@ IN 192.168.1.103
masterdns IN A 192.168.1.101
secondarydns IN A 192.168.1.102
klient IN A 192.168.1.103 - Uložte změny a zavřete textový editor.
- Nyní přejdeme k reverzní zóně. Vyžaduje soubor
/var/named/reverse.unixmen
. - Bude to také nový prázdný soubor. Vložte tam:
8 6400 $
@ V SOA masterdns.unixmen.local. root.unixmen.local. (
2011071001; Sériové číslo
3600; Obnovit
1800; Opakovat
604800; platnost vyprší
86400; minimální TTL
)
@ IN NS masterdns.unixmen.local.
@ IN NS secondarydns.unixmen.local.
@ IN PTR unixmen.local.
masterdns IN A 192.168.1.101
secondarydns IN A 192.168.1.102
klient IN A 192.168.1.103
101 IN PTR masterdns.unixmen.local.
102 IN PTR secondarydns.unixmen.local.
103 IN PTR client.unixmen.local. - Při ukládání neměňte název objektu, ale jednoduše stiskněte klávesu Enter.
Nyní budou zadané soubory použity pro zónu vpřed a vzad. Pokud je to nutné, měli byste je upravit, abyste mohli změnit některé parametry. O tom si můžete přečíst také v oficiální dokumentaci.
Krok 4: Spuštění serveru DNS
Po provedení všech předchozích pokynů můžete již spustit server DNS, takže v budoucnu bude snadné zkontrolovat jeho funkčnost a pokračovat v konfiguraci důležitých parametrů. Úkol se provádí takto:
- V konzole zadejte
sudo systemctl povoleno pojmenované
přidat server DNS ke spuštění pro automatické spuštění při spuštění operačního systému. - Tuto akci potvrďte zadáním hesla superuživatele.
- Budete upozorněni na vytvoření symbolického odkazu, což znamená, že akce byla úspěšně dokončena.
- Spusťte nástroj pomocí
systemctl start name
... Můžete jej zastavit stejným způsobem, pouze nahrazením možnosti Start nastop
. - Když se zobrazí vyskakovací okno ověřování, zadejte heslo uživatele root.
Jak vidíte, správa zadané služby se provádí podle stejného principu jako všechny ostatní standardní nástroje, takže by s tím neměly být žádné problémy ani pro začínající uživatele.
Krok 5: Změňte nastavení brány firewall
Pro správnou funkci serveru DNS budete muset otevřít port 53, který se provádí pomocí standardního firewallu FirewallD. V "Terminál" musíte zadat pouze tři jednoduché příkazy:
- První má formu
firewall-cmd --permanent --add-port = 53 / tcp
a odpovídá za otevření portu TCP. Vložte jej do konzoly a klikněte na Enter. - Měli byste být upozorněni "Úspěch", což naznačuje úspěšné použití pravidla. Poté vložte řádek
firewall-cmd --permanent --add-port = 53 / udp
otevřete port UDP. - Všechny změny budou použity až po restartu brány firewall, což se provede pomocí příkazu
firewall-cmd --reload
.
Ve firewallu již nemusíte provádět žádné další změny. Udržujte jej stále zapnutý, abyste předešli problémům se získáním přístupu.
Krok 6: Nastavení přístupových práv
Nyní budete muset nastavit základní oprávnění a přístupová práva, abyste mírně zabezpečili fungování serveru DNS a chránili běžné uživatele před možností měnit parametry. Udělejme to standardním způsobem a prostřednictvím SELinuxu.
- Všechny následující příkazy musí být aktivovány jménem superuživatele. Aby nedošlo k neustálému zadávání hesla, doporučujeme vám povolit trvalý přístup root pro aktuální relaci terminálu. Chcete-li to provést, zadejte do konzoly
su
. - Zadejte přístupové heslo.
- Poté zadejte následující příkazy jeden po druhém a vytvořte optimální nastavení přístupu:
chgrp pojmenovaný -R / var / pojmenovaný
chown -v root: s názvem /etc/named.conf
restorecon -rv / var / pojmenovaný
restorecon /etc/named.conf
Tím je dokončena obecná konfigurace hlavního serveru DNS. Zbývá jen upravit několik konfiguračních souborů a otestovat chyby. S tím vším navrhujeme porozumět v dalším kroku.
Krok 7: Testování chyb a dokončení konfigurace
Doporučujeme vám začít kontrolou chyb, abyste v budoucnu nemuseli měnit zbývající konfigurační soubory. Proto to vše pokryjeme v jednom kroku a poskytneme také příklady správného výstupu příkazu pro testování.
- Vstupte "Terminál"
named-checkconf /etc/named.conf
... Tím se zkontrolují globální parametry. Pokud následkem toho nebude následovat žádný výstup, je vše správně nakonfigurováno. Jinak si zprávu prostudujte a vycházejte z ní a problém vyřešte. - Dále musíte zkontrolovat přímou zónu vložením řádku
named-checkzone unixmen.local /var/named/forward.unixmen
. - Ukázkový výstup vypadá takto:
zóna unixmen.local / IN: načten sériový 2011071001 OK
. - Provádíme přibližně to samé s protaženou reverzní zónou
named-checkzone unixmen.local /var/named/reverse.unixmen
. - Správný výstup by měl být takový:
zóna unixmen.local / IN: načten sériový 2011071001 OK
. - Nyní přejdeme k nastavení hlavního síťového rozhraní. Bude nutné přidat data aktuálního serveru DNS. Chcete-li to provést, otevřete soubor
/ etc / sysconfig / network-scripts / ifcfg-enp0s3
. - Zkontrolujte, zda je obsah zobrazen níže. V případě potřeby vložte parametry DNS.
TYPE = "Ethernet"
BOOTPROTO = "žádný"
DEFROUTE = "ano"
IPV4_FAILURE_FATAL = "ne"
IPV6INIT = "ano"
IPV6_AUTOCONF = "ano"
IPV6_DEFROUTE = "ano"
IPV6_FAILURE_FATAL = "ne"
NAME = "enp0s3"
UUID = "5d0428b3-6af2-4f6b-9fe3-4250cd839efa"
ONBOOT = "ano"
HWADDR = "08: 00: 27: 19: 68: 73"
IPADDR0 = "192.168.1.101"
PREFIX0 = "24"
GATEWAY0 = "192.168.1.1"
DNS = "192.168.1.101"
IPV6_PEERDNS = "ano"
IPV6_PEERROUTES = "ano" - Po uložení změn přejděte do souboru
/etc/resolv.conf
. - Zde stačí přidat pouze jeden řádek:
nameserver 192.168.1.101
. - Po dokončení zbývá pouze restartovat síť nebo počítač a aktualizovat konfiguraci. Síťová služba se restartuje pomocí příkazu
systemctl restartovat síť
.
Krok 8: Kontrola nainstalovaného serveru DNS
Na konci konfigurace zbývá pouze zkontrolovat činnost stávajícího serveru DNS po přidání do globální síťové služby. Tato operace se také provádí pomocí speciálních příkazů. První z nich má formu kopat masterdns.unixmen.local
.
Výsledkem by měl být výstup na obrazovce, který vypadá podobně jako následující obsah.
; <> DiG 9.9.4-RedHat-9.9.4-14.el7 <> masterdns.unixmen.local
;; globální možnosti: + cmd
;; Mám odpověď:
;; - >> HEADER << - opcode: QUERY, status: NOERROR, id: 25179
;; příznaky: qr aa rd ra; DOTAZ: 1, ODPOVĚĎ: 1, ORGÁN: 2, DALŠÍ: 2
;; OPTICKÁ PSEUDOSEKCE:
; EDNS: verze: 0, příznaky:; udp: 4096
;; ODDÍL OTÁZKY:
; masterdns.unixmen.local. V
;; SEKCE ODPOVĚĎ:
masterdns.unixmen.local. 86400 IN A 192.168.1.101
;; SEKCE ÚŘADU:
unixmen.local. 86400 IN NS secondarydns.unixmen.local.
unixmen.local. 86400 IN NS masterdns.unixmen.local.
;; DALŠÍ ČÁST:
secondarydns.unixmen.local. 86400 IN A 192.168.1.102
;; Čas dotazu: 0 ms
;; SERVER: 192.168.1.101 # 53 (192.168.1.101)
;; KDY: St 20. srpna 16:20:46 IST 2014
;; VELIKOST MSG rcvd: 125
Další příkaz vám umožní zjistit stav místní operace serveru DNS. Chcete-li to provést, vložte do konzoly nslookup unixmen.local
a klikněte na Enter.
To by mělo zobrazit tři různé reprezentace IP adres a názvů domén.
Server: 192.168.1.101
Adresa: 192.168.1.101 # 53
Název: unixmen.local
Adresa: 192.168.1.103
Název: unixmen.local
Adresa: 192.168.1.101
Název: unixmen.local
Adresa: 192.168.1.102
Pokud se výstup shoduje s tím, který jsme označili, byla konfigurace úspěšně dokončena a můžete pokračovat v práci s klientskou částí serveru DNS.
Konfigurace na straně klienta serveru DNS
Tento postup nebudeme dělit do samostatných kroků, protože se provádí úpravou pouze jednoho konfiguračního souboru. Je nutné přidat informace o všech klientech, kteří budou připojeni k serveru, a příklad takového nastavení vypadá takto:
- Otevřete soubor
/etc/resolv.conf
prostřednictvím libovolného pohodlného textového editoru. - Přidejte tam řádky
prohledat unixmen.local nameserver 192.168.1.101
anameserver 192.168.1.102
, nahradí nezbytné adresy klienta. - Při ukládání neměňte název souboru, ale jednoduše stiskněte klávesu Enter.
- Po ukončení textového editoru nezapomeňte restartovat globální síť pomocí příkazu
systemctl restartovat síť
.
To byly hlavní body konfigurace klientské strany serveru DNS, o kterých jsme chtěli mluvit. Doporučujeme prostudovat všechny ostatní nuance přečtením oficiální dokumentace, pokud je požadována.
Testování serveru DNS
Poslední fází našeho dnešního materiálu je závěrečné testování serveru DNS. Níže vidíte několik příkazů pro zvládnutí úkolu. Použijte jeden z nich aktivací přes "Terminál"... Pokud na výstupu nejsou žádné chyby, je celý proces správný.
kopat masterdns.unixmen.local
kopat sekundárnídns.unixmen.local
kopat client.unixmen.local
nslookup unixmen.local
Dnes jste se dozvěděli vše o nastavení hlavního serveru DNS v distribuci CentOS. Jak vidíte, celá operace je zaměřena na zadávání příkazů terminálu a úpravy konfiguračních souborů, což může začínajícím uživatelům způsobit určité potíže. Musíte však přesně dodržet pokyny a přečíst si výsledky kontrol, aby vše proběhlo bez chyb.