Nßvody
-
Nastavenφ DNS
Nastavenφ DNS
Komentovan² p°φklad nastavenφ DNS.
Myslφm si, ╛e DNS je u╛iteΦnß v∞c, a to nejen na internetu, ale i v malΘ
domßcφ sφti. U╛ t°eba jenom kv∙li proxy serveru, ke kterΘmu se mo╛nß dostaneme
v dal╣φm Φlßnku. Tento Φlßnek se budu sna╛it psßt pro zaΦßteΦnφky, proto╛e se
za zaΦßteΦnφka po°ßd pova╛uji. Vφm, jakΘ jsem m∞l problΘmy se shßn∞nφm
informacφ. Bu∩ jsem si je musel p°eklßdat, nebo nebyly ·plnΘ a nebo napsanΘ
tak, ╛e jsem z toho pochopil jen mßlo. A co si budeme povφdat, nastaveni DNS
pat°φ k t∞m t∞╛╣φm ·kol∙m.
Tak╛e, co bychom se v tomto Φlßnku m∞li nauΦit?
- Pochopenφ principu DNS
- Porozum∞t konfiguraΦnφm soubor∙m
- Spustit danou slu╛bu
- Nakonfigurovat sv∙j milovan² Linux, aby vyu╛φval DNS slu╛eb
- Nakonfigurovat nenßvid∞n² OS, kter² stejn∞ v╣ichni pou╛φvajφ, aby
vyu╛φval DNS slu╛eb
Historie
Co to vlastn∞ DNS je? Jednodu╣e °eΦeno, slou╛φ k p°evodu jmenn²ch adres
na IP adresy a naopak. NejlΘpe se to chßpe na p°φkladu. Co si zapamatujete
lΘpe?
www.abclinuxu.cz nebo 80.95.102.12
www.abclinuxu.cz je jmennß adresa a 80.95.102.12 je IP adresa. Pokud nejste kybernetik, budete urΦit∞ volit prvnφ mo╛nost. Kdysi na to existoval soubor /etc/hosts , kter² se ╣φ°il pomocφ slu╛by FTP a musel b²t ulo╛en na ka╛dΘm poΦφtaΦi p°ipojenΘm do Internetu. Jen╛e postupem Φasu zaΦalo b²t jasnΘ, ╛e to takhle dßl nep∙jde, a tak se zaΦala hledat nßhradnφ °e╣enφ. A vymyslelo se DNS (Domain Name System), jen╛ si
udr╛uje informace o poΦφtaΦφch, kterΘ se v sφti nachßzejφ. Neboli, ka╛dß
sφ╗ mß jeden poΦφtaΦ, kter² znß v╣echny poΦφtaΦe v sφti. Adresa danΘho
poΦφtaΦe je ulo╛ena v centrßlnφ tabulce a ostatnφ stroje se ho mohou
dotazovat na adresy poΦφtaΦ∙, kterΘ obsluhuje.
Tak, te∩ se vrhn∞me na instalaci. Nainstalujte si BIND verze 9.x. M∞l by
ve va╣φ distribuci b²t. Pokud chcete kompilovat, hledejte zde ftp://ftp.isc.org/isc/. Kompilacφ se zde
zab²vat nebudu; p°edpoklßdßm, ╛e ten, kdo kompiluje ze zdrojov²ch k≤d∙, vφ
co d∞lß a co mß Φφst, a proto pro tento Φlßnek p°edpoklßdßm instalaci z
balφΦku (jsem zaΦßteΦnφk .
Konfigurace
Po instalaci se podφvejte do souboru /etc/named.conf . Pokud
jste modemisti, p°φpadn∞ mßte jednoduchou sφ╗ jako jß, m∞li byste tento
soubor upravit asi takhle:
Malß poznßmka: text kter² je uveden za '// ' nemusφte
opisovat. Mφsto yakuza.net a mΘ IP dosazujte va╣e sprßvnΘ
·daje.
options {
directory "/var/named";
// Zde bude BIND hledat svΘ konfiguraΦnφ soubory
// Obecn∞ to tu b²vß p°ednastaveno va╣φ distribucφ
// (v Debianu /etc/bind), tak╛e nem∞nit!
// Moje nastavenφ
// Pokud DNS neznß odpov∞d pou╛ije DNS od Contactelu
auth-nxdomain no;
// Server neposkytuje informace o na╣φ sφti
query-source port 53;
// Pro komunikaci s jinou DNS pou╛ij port 53
forward first;
// Pokud n∞co nevφ, ptß se nejprve server∙
// uveden²ch ve forwarders
forwarders {
212.65.193.6;
212.65.242.210;
};
cleaning-interval 259200;
// ProΦi╣╗uje tabulku pomocnΘho serveru od zßznam∙,
// na kterΘ se nikdo neptal (v sekundßch)
};
// a caching only nameserver config
zone "." IN {
type hint;
file "named.ca";
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
};
// Informace o DNS ns.yakuza.net
zone "yakuza.net" {
type master;
file "named.yakuza.net";
};
// konfiguraΦnφ soubor named.yakuza.net
// (pojmenovat si ho m∙╛ete jakkoliv)
// je ulo╛en v cest∞ uvedenΘ v directory
// v tomto p°φpad∞ /var/named/named.yakuza.net
// Slou╛φ ke zp∞tnΘmu p°ekladu. (IP -> jmΘno)
zone "4.168.192.in-addr.arpa" {
//toto jmΘno je slo╛eno z IP adresy t°φdy
// C (192.168.4) a .in-addr.arpa
type master;
file "named.rev";
// op∞t konfiguraΦnφ soubor
};
V╣imn∞te si, ╛e ve file "....." nenφ celß cesta. To dφky
direktiv∞ directory "/var/named" . Pokud chcete konfiguraΦnφ
soubory dßt do n∞jakΘho adresß°e, nap°. /var/named/moje_sit ,
musφte v souboru named.conf v direktiv∞ file
napsat i ten adresß°. file moje_sit/named.yakuza.net . V╣imn∞te
si, ╛e prakticky ka╛d² p°φkaz konΦφ st°ednφkem ; ! Opomenutφ
b²vß nejΦast∞j╣φ chybou.
Tak╛e mßme nakonfigurovßno chovßnφ dΘmona bind. Te∩ mu musφme je╣t∞
vytvo°it databßzi poΦφtaΦ∙ v sφti. Je╣t∞ si vysv∞tlφme rozdφl mezi z≤nou a
domΘnou a pak se vrhneme na konfiguraΦnφ soubory. Mimochodem, pokud nejste v sφti, staΦφ vßm soubory, kterΘ jste na╣li u╛ p°ednastavenΘ k loopbacku.
Prost∞ je jenom editujte a dopi╣te tam, co pot°ebujete.
DomΘna je tvo°ena z≤nami. Nap°φklad domΘna abclinuxu.cz
m∙╛e mφt poddomΘnu firewall.abclinuxu.cz nebo router.abclinuxu.cz a ka╛dß
z t∞chto domΘn mß vlastnφ z≤nu. Tak╛e domΘna abclinuxu.cz se v na╣em
p°φkladu sklßdß ze 2 z≤n.
Soubor named.yakuza.net
$TTL 86400
@ IN SOA yakuza.net. metalman.yakuza.net. (
// jmΘno domΘny, email sprßvce: mφsto @ je tu "."
2002102100 ; // IdentifikaΦnφ Φφslo (rok, m∞sφc, den)
10800 ; // Obnovovacφ frekvence (v sekundßch)
1800 ; // OpakovanΘ pokusy (v sekundßch)
1209600 ; // Expirace datov²ch tabulek na
// sekundßrnφm serveru, pokud nedojde k aktualizaci
604800 ) ;
// minimum - doba, po kterΘ prohlßsφ sekundarnφ
// server po╛adavek za nesplniteln²
IN NS ns.yakuza.net. // zßznam typu NS (Name Server)
// nezapomenout na konci teΦku!
IN MX 10 mail.yakuza.net.
// mail server MX (MailExchage)
// 10 (vßha) p°ednostn∞ se pou╛ije ten s nejni╛╣φ
ns IN A 192.168.4.13 ;
// Zßznam typu A (Address)
// slou╛φ k p°evodu jmΘna na IP adresu.
mail IN A 192.168.4.13 ;
// k mail se automaticky p°ipojφ
// yakuza.net, tak╛e vznikne mail.yakuza.net
hobitton IN A 192.168.4.13 ;
www IN CNAME hobitton
// Zßznam typu CNAME (Canonical Name)
// funguje jako alias
smtp IN CNAME hobitton
pop3 IN CNAME hobitton
metalman IN A 192.168.4.11 ;
igis IN A 192.168.4.12 ;
myra IN A 192.168.4.14 ;
kess IN A 192.168.4.15 ;
notre IN A 192.168.4.16 ;
evik IN A 192.168.4.17 ;
pavla IN A 192.168.4.18 ;
darkstar IN A 192.168.4.20 ;
Pozor: ve 2. °ßdku na konci jmΘna domΘny a emailu nezapome≥te napsat "."
-> yakuza.net. metalman.yakuza.net. Dßle by vßs mohlo zmßst
www , smtp a pop3 . Mßm to, proto╛e
mi na serveru b∞╛φ slu╛ba www a mail. Pokud tyto slu╛by neposkytujete,
tak to tam samoz°ejm∞ nepi╣te.
Te∩ soubor named.rev k p°ekladu IP na jmΘna.
$TTL 604800
@ IN SOA 4.168.192.in-addr.arpa. metalman.yakuza.net. (
2002102101 ;
10800 ;
1800 ;
1209600 ;
604800 ) ;
IN NS ns.yakuza.net.
11 IN PTR metalman.yakuza.net // Typ PTR (pointer); Φφslo
// na zaΦßtku je poslednφ v celΘ IP adrese (192.168.4.11)
13 IN PTR www.yakuza.net
13 IN PTR hobitton.yakuza.net
13 IN PTR mail.yakuza.net
13 IN PTR ns.yakuza.net
13 IN PTR smtp.yakuza.net
13 IN PTR pop3.yakuza.net
13 IN PTR www.metalman.yakuza.net
13 IN PTR www.myra.yakuza.net
13 IN PTR www.kess.yakuza.net
13 IN PTR www.notre.yakuza.net
13 IN PTR www.igis.yakuza.net
13 IN PTR www.satan.yakuza.net
14 IN PTR myra.yakuza.net
15 IN PTR kess.yakuza.net
16 IN PTR notre.yakuza.net
17 IN PTR evik.yakuza.net
18 IN PTR pavla.yakuza.net
20 IN PTR darkstar.yakuza.net
Tak, te∩ mßme konfiguraΦnφ soubory napsßny a zkontrolujeme si
jejich sprßvnost:
named-checkconf - zkontroluje syntaxi
named.conf . Vypisuje Φφsla °ßdk∙, kde se chyba nachßzφ.
V∞t╣inou chyb∞jφcφ ;
named-checkzone jmΘno_z≤ny cesta_ke_konfigurßku -
zkontroluje syntaxi databßze
Tyto soubory jsem vid∞l ve Slackware 8.1 a Debian 3.0, nevφm, jestli
jsou i v ostatnφch distribucφch. PotΘ spustφme dΘmona named . V
Debianu: /etc/init.d/bind9start ve Slackware v
/etc/rc.d/rc.inet2 najφt a odkomentovat spu╣t∞nφ
named , ostatnφ si poradφ sami. Dß se spustit i ruΦn∞ -
/usr/sbin/named . Pokud ho chcete spou╣t∞t automaticky p°i
startu, tak v Debianu se vßm nastavφ automaticky (pokud jste instalovali z
*.deb balφΦku), SlackwaristΘ u╛ urΦit∞ editovali rc.inet2 ,
RedHa╗ßci pou╛ijφ chkconfig a SuSEovcirctab .
Pokud si nebudete v∞d∞t rady, pou╛ijte man , nebo
--help
Te∩ nauΦφme vyu╛φvat DNS, se kterou jsme si dali tolik prßce, Linux a
pak Windows. V Linuxu je t°eba mrknout do souboru
/etc/host.conf . M∞li byste tam mφt nßsledujφcφ:
order hosts,bind
multi on
Pokud mßte soubor hosts a chcete mu dßt p°ednost, nechte
to tak, v opaΦnΘm p°φpad∞ proho∩te bind a hosts .
Bind je na╣e slavnß DNS. A pak do /etc/resolv.conf
p°ipsat:
search yakuza.net
nameserver 192.168.4.13
Samoz°ejm∞, ╛e za yakuza.net a IP si dosadφte svoje ·daje,
kterΘ odpovφdajφ va╣im po╛adavk∙m a sφti. Ulo╛te a zkuste polo╛it dotaz
DNS programem host .
P°φklad:
host hobitton
hobitton.yakuza.net has address 192.168.4.13
Pokud to nefunguje, zkontrolujte si, jestli vßm DNS v∙bec b∞╛φ (ps
-A| grep named ). Pokud ne, proje∩te si znova konfigurßky v²╣e
uveden²mi programy, p°φpadn∞ kontaktujte /var/log/messages .
A pokud ani to neodhalφ chybu, ptejte se v diskusi
Te∩ se vrhneme na Windows:
Dosta≥te se do okna Vlastnosti sφt∞ , vyberte protokol
TCP/IP a klikn∞te na Vlastnosti .
V tomto okn∞ zatrhneme Pou╛φt nßsledujφcφ adresy server∙
DNS , do pole Up°ednost≥ovan² server DNS napφ╣eme IP
adresu na╣φ DNS, nßhradnφ server jsme si nenastavovali. Po vypln∞nφ
klikneme na tlaΦφtko Up°esnit...
Zde klepneme na kartu DNS , zvolφme mo╛nost P°ipojit
nßsledujφcφ p°φpony DNS v tomto po°adφ a klikneme na
P°idat . Do novΘho okna napφ╣eme na╣φ domΘnu. Pak u╛ jenom
potvrdφme kliknutφm na OK na╣e nastavenφ.
Zb²vß u╛ jen v╣echny okna zav°φt, a pokud mßme funkΦnφ DNS, tak ji
Windows zaΦnou pou╛φvat. V²╣e uvedenΘ nastavenφ je z Windows XP. Pro jinΘ
druhy Windows je nastavenφ hodn∞ podobnΘ.
Zßv∞r
Zßv∞rem bych m∞l napsat d∙vody, proΦ si DNS d∞lat:
- DNS je t°eba, pokud si chcete posφlat v lokßlnφ sφti emaily.
- Pokud mßte webov² server a Φasto m∞nφte URL (zkou╣φte), je jednodu╣╣φ
upravit zßznam v DNS ne╛ vysv∞tlovat u╛ivatel∙m, co si maji zapsat do
souboru
hosts
- ModemistΘ si u╣et°φ Φas, kter² je pot°eba k dotaz∙m DNS u svΘho
providera.
- Budete um∞t zase n∞co navφc a i to se poΦφtß.
Diskuse k tomuto Φlßnku
Moc pekny uvod do DNS nastavovani. Zavidim ten dar takhle psat..
Neboli, ka╛dß sφ╗ mß jeden poΦφtaΦ, kter² znß v╣echny poΦφtaΦe vE SV╔ sφti. Na ty dal╣φ se doptß jinde a m∙╛e si je zapamatovat.
Ano, skutecne jsem tam zapomel dopsat to ve SVE siti stane se...
DoporuΦuji kontrolovat z≤ny na adrese http://atrey.karlin.mff.cuni.cz/~mj/sleuth/. Chyba je popsana na adrese:
http://www.cis.ohio-state.edu/cgi-bin/rfc/rfc1912.html#sec-4.1
V konfiguraci DNS serveru chybφ sekce:
zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};
M∙╛e mi n∞kdo vysv∞tlit, proΦ je ze zaΦßtku 2x navφc A zßznam. Myslele jsem, ╛e podle RFC mß b²t jedno IP = jedno kanonickΘ jmΘno ?
Dφk.
To je jednoduche - CNAME mi blbnul, a vsechny sluzby bezi na jednom PC, protoze jsme vsichni v siti jeste nevydelecne cinni, tudiz si nemuzem dovolit kupovat PC na kazdou sluzbu zvlast a to nemluvim o tom jaky kraval ty vetraky ve zdroji delaji, a ne kazdy si na to zvykne.Muzu vas ujistit,ze i kdyz to mozna neni podle RFC, tak to funguje.Pekny zbytek dne.
Jß bych m∞l jeden OT komentß°: takovΘhle screenshoty prosφm zav∞╣ujte jako PNG, ne JPEG. Budou krat╣φ a o hodn∞ hezΦφ. Opakuju to furt v╣ude dokola, ale je to marn²
Omlouvam se, je to moje prvotina, zkusenosti s psanim pro web teprve sbiram. Priste, pokud pouziji screenshoty na to zkusim myslet.
bohuzel autori mi casto screenshoty posilaji v jpegu nevalne kvality a kdyz jsem pod casovym tlakem, nemuzu je pozadat o nove zaslani. pak to dopada takto
super vec ,pouzivam a nemuzu si vynachvalit
Pouzival jsem, ale jen jako dnscache. Mira nestandardnosti djbdns je oproti qmailu mnohonasobna, takze bych uvital jeste dalsi alternativu: non-bind, non-DJB. Existuje? Pouziva ji nekdo? Dik.
Jenom drobne upresneni: ke kanonickemu nazvu by nemely byt definovany reverzni zaznamy - pokud z nejakeho duvodu reverzni zaznam potrebujete, je lepsi misto " CNAME " dat " A " (uz to tam stejne dvakrat mate, takze dalsi navic na vnitrni siti nicemu nevadi).
Presneji - alespon reverzni zaznam IP adresy by mel byt jedinecny (i pro vnitrni sit, pokud rozjede autentizaci, nektere programy budou delat problemy), tzn. nejlepsi reseni bude:
...
ns IN A 192.168.4.13
mail IN A 192.168.4.13
hobitton IN A 192.168.4.13
www IN CNAME hobitton
smtp IN A 192.168.4.13
pop3 IN A 192.168.4.13
... atd.
- a v reverznich zaznamech bude napr. jenom:
13 IN PTR ns.yakuza.net
14 IN PTR myra.yakuza.net
... atd.
Moc hezky clanek. Rekl bych, ze po jeho precteni si 90% spravcu konecne opravi sve konfiguracni soubory a budou vsude reverzni zaznamy. Zbyvajicich 10% doporucuji zastrelit
Dobr² Φlßnek, opravdu. Dφky autorovi.
Sice bych m∞l pßr p°ipomφnek k interpretaci v²znam∙ n∞kter²ch Φφseln²ch prom∞nn²ch v SOA zßznamu, ale nejsou p°φli╣ podstatnΘ. Pro jistotu se podφvßm do knihy a kdy╛tak to sem napφ╣u.. :)
Zajφmß m∞, zdali n∞kdo nevφ, jak v BIND 8, resp. 9, vypnout v konfiguraci serveru jeho vlastnost, kterß zp∙sobuje, ╛e server na urΦit² dotaz z vn∞j╣ku odpovφdß ·dajem o jeho verzi. ProΦ je toto pot°eba, snad nenφ nutno podot²kat - ji╛ n∞kolikrßt se vyskytly r∙znΘ exploity nebo nßstroje, kterΘ v internetu scannovaly nameservery "ve velkΘm" za ·Φelem zji╣t∞nφ jejich verzφ, a upozor≥ovßnφ (v p°φpad∞ exploitu hackera, kter² scanning provßd∞l) na ty, kterΘ svΘho Φasu byly n∞jak²m zp∙sobem zranitelnΘ...
Dφky za jakoukoliv radu.
Vzhledem k tomu, ze nastaveni DNS v tomto clanku neni uplne tip top, prosim vsechny, aby zde rekli sve pripominky, a ja to opravim, pokud to bude v mezich meho chapani.
Zajimalo by mne, jak se profesionalne resi tento problem:
Mam webovy serever, hlavni stranka je na www.yakuza.net. Uzivatel kess ma na serveru sve stranky, a protoze se mi nelibi zapis www.yakyza.net/kess, rozhodl jsem se pouzivat zapis www.kess.yakuza.net, ktery je podle meho nazoru pro laiky lepe zapamatovatelny. Ve sve DNS jsem to resil tak ze jsem napsal:
www.kess IN A 192.168.4.13
no a v reverznich zaznamech
13 IN PTR www.kess.yakuza.net
Tak mi to funguje bez problemu. Lepe jsem to vymyslet nedokazal. Ale zajima me to jak se to dela v profesionalni praxi a clanek doupravil.
Moc Vam dekuji
Vetsinou se takoveto veci resi pomoci hvezdickove konvence
* IN A 192.168.4.13
a v apachovi se pouzije modul rewrite (o nem konkretne byl hezky clanek na root.cz)
Dobre napsany clanek. Prosim autora, jestli by mohl napsat jeste neco o konfiguraci proxy serveru, tak je slibovano na zacatku clanku. Jen vice podobnych clanku!
V Φlßnku je n∞kolik nep°esnostφ, kterΘ bych tu rßd shrnul:
1. Parametr hned za SOA nemß b²t jmΘno domΘny, ale domΘnovΘ jmΘno poΦφtaΦe, z n∞ho╛ data pochßzejφ. JmΘnem domΘny je ve skuteΦnosti ten zavinßΦ na zaΦßtku °ßdku. Viz RFC 1035, sekce 3.3.13.
2. Parametr minimum v SOA zßznamu je vysv∞tlen znaΦn∞ nep°esn∞. Ve skuteΦnosti znamenß dolnφ mez pro TTL (╛ivotnost) zßznam∙ p°φslu╣nΘ z≤ny. T∞m zßznam∙, kterΘ majφ TTL men╣φ se automaticky pou╛ije hodnota minimum.
3. Nenφ mi jasn² smysl t∞ch st°ednφk∙ na konci ka╛dΘho °ßdku v z≤novΘm souboru. Pro BIND to znamenß komentß°, tak╛e je ignoruje, ale k Φemu mφt na ka╛dΘm °ßdku prßzdn² komentß°?
4. V p°i°azenφ A a PTR zßznam∙ je docela zmatek. Sprßvn∞ to mß b²t tak, ╛e ke ka╛dΘ IP adrese existuje jen jeden A zßznam, v╣echna ostatnφ jmΘna jsou realizovßna pomocφ CNAME na to jedno kanonickΘ a (jedin²) reverznφ zßznam sm∞°uje op∞t na toto kanonickΘ jmΘno. Pokud to ud∞lßte jinak, bude vßm to v∞t╣inou fungovat, ale zad∞lßvßte si na problΘmy.
5. Na konci domΘnov²ch jmen v PTR zßznamech by takΘ m∞ly b²t teΦky, stejn∞ jako v╣ude jinde.
ad 4. ne tak docela. podle rfc1035 jde skutecne o nedefinovany stav, ale nejake nasledujici tusim, ze jeste porad <2000 definuje RRSet, kde pro stejny klic (name,type,class) muze existovat vice zaznamu s rozlisnou hodnotou rdata,rdlength, a ttl jsem moc nestudoval, ale tusim, ze kvuli cache-ovani se muzou i lisit nekdy, ale je nejakej zpusob, jak se dopocitat spravnych cisel.
tusim ze je to kvuli necemu, cemu se rika multihoming hosts, ale kdo vi ten at to rozvede...
sorry predchozi je OT. zase sem si neprecet poradne na co odpovidam ;)
ja mluvim o name->A+ predchozi prizpevek o A->name+
takze ted uz snad k tematu. todle reseni vice jmen pro jeden A zaznam muze pusobit chybu pri kontrole reversniho dns zaznamu, pokud se stane, ze je napsana zrovna takto:
Q:jmeno,A,IN
A:jmeno,A,IN,...,1.2.3.4
Q:4.3.2.1.in-addr.arpa,PTR,IN
A:4.3.2.1.in-addr.arpa,PTR,IN,...,jmeno2
--ted muze skoncit s tim, ze "jmeno" nema reversni zaznam
Q:jmeno2,A,IN
A:jmeno2,A,IN,...,1.2.3.4
--ted skonci s tim, ze "jmeno" ma reversni zaznam
Je╣t∞ maliΦkost: soubor /etc/host.conf ovliv≥uje pouze programy linkovanΘ proti libc5 a star╣φ. Programy linkovanΘ proti glibc2 (tj. na souΦasn²ch distribucφch prakticky v╣echny) se °φdφ podle /etc/nsswitch.conf
|