Modul 7 · 7.1
Slovenčina
DNS na váš VPS a reverse DNS
Modul 7: Doména, webový server a https · Čas čítania: 10 minút
Cieľ lekcie: Po tejto lekcii dokážete nasmerovať doménu alebo subdoménu na váš VPS pomocou záznamov A a AAAA, správne nastaviť reverse DNS vášho servera a overiť, že meno a adresa sedia tam aj späť.
Kľúčové pojmy: záznam A, záznam AAAA, TTL, subdoména pre každú službu, www, hostname servera, PTR, reverse DNS, forward-confirmed reverse DNS (FCrDNS), CAA, zabudnuté IPv6
Od IP adresy k menu
Doteraz ste sa k serveru pripájali cez jeho IP adresu, napríklad ssh anna@192.0.2.10. Pre webovú stránku, certifikát (lekcia 7.3) a služby z modulu 9 potrebujete meno. Toto prepojenie vytvoríte v DNS vašej domény, u toho, kto vaše DNS spravuje: u registrátora, u hostingovej spoločnosti alebo v DNS službe. Samotný VPS s tým nemá nič spoločné; váš server „nevie“, ktoré mená naňho smerujú.
Základy DNS ste sa naučili v kurze DNS. Pre VPS z neho potrebujete hlavne dva záznamy:
| Záznam | Čo robí | Príklad |
|---|---|---|
| A | meno na IPv4 adresu | web1.example.com. 3600 IN A 192.0.2.10 |
| AAAA | meno na IPv6 adresu | web1.example.com. 3600 IN AAAA 2001:db8::10 |
Váš VPS má zvyčajne pevnú IPv4 aj IPv6 adresu. Nastavte preto oba záznamy. Návštevníci s IPv6 (v Holandsku veľká časť domácich pripojení a mobilných sietí) potom použijú IPv6, ostatní IPv4.
Aké mená vytvoriť?
Bežné rozdelenie pre VPS s webovou stránkou a niekoľkými službami:
web1.example.com. A 192.0.2.10 ; samotný server (názov hostiteľa, PTR)
web1.example.com. AAAA 2001:db8::10
example.com. A 192.0.2.10 ; webová stránka
example.com. AAAA 2001:db8::10
www.example.com. CNAME example.com.
status.example.com. CNAME web1.example.com. ; Uptime Kuma (lekcia 9.4)
kluis.example.com. CNAME web1.example.com. ; Vaultwarden (lekcia 9.4)Skrýva sa v tom niekoľko rozhodnutí:
- Server má vlastné meno (
web1), nezávislé od webovej stránky. Toto meno používate pre SSH, pre reverse DNS a ako hostname systému. Ak sa webová stránka neskôr presťahuje na iný server,web1bude naďalej platiť. - Subdoména pre každú službu. Uptime Kuma a Vaultwarden dostanú každá vlastné meno. Je to oveľa jednoduchšie (a bezpečnejšie), ako umiestniť služby pod cestu ako
example.com/kluis: každá služba dostane vlastný certifikát, cookies sa navzájom nemiešajú a službu môžete neskôr presunúť na iný server zmenou jediného záznamu. - CNAME pre subdomény. CNAME na
web1znamená: ak sa IP adresa servera zmení, upravíte iba záznamy preweb1. Na holom názve domény (example.com) nesmie byť CNAME; tam nastavíte A a AAAA.
Hostname samotného systému nastavíte na serveri:
anna@web1:~$ sudo hostnamectl set-hostname web1.example.com
anna@web1:~$ hostname -f
web1.example.comSkontrolujte aj, či /etc/hosts neobsahuje staré meno. Správny hostname je dôležitý najmä vtedy, ak server niekedy odosiela poštu.
TTL: ako rýchlo sa zmena prejaví všade
TTL (time to live) je počet sekúnd, počas ktorých si resolvery smú pamätať odpoveď. Pri hodnote 3600 môže trvať až hodinu, kým každý uvidí novú adresu. Ak sa chystáte presťahovať webovú stránku na váš VPS, deň vopred nastavte TTL na 300 (päť minút), počkajte aspoň dobu pôvodného TTL, zmeňte adresu a potom TTL opäť zvýšte. Je to presne postup z kurzu DNS, lekcia 6.3.
Pomocou dig (kurz DNS, lekcia 8.2) skontrolujte, čo vidí zvyšok internetu, a pýtajte sa verejného resolvera namiesto vlastného počítača:
anna@laptop:~$ dig +short A example.com @1.1.1.1
192.0.2.10
anna@laptop:~$ dig +short AAAA example.com @1.1.1.1
2001:db8::10Vo Windows: Resolve-DnsName example.com -Type AAAA -Server 1.1.1.1.
Pasca: záznam AAAA bez funkčného IPv6
Ak nastavíte záznam AAAA, služba musí byť cez IPv6 naozaj dostupná. Častá chyba: záznam existuje, ale webový server počúva iba na IPv4, alebo firewall nepúšťa IPv6 (lekcia 5.2), alebo IPv6 nie je vo VPS nastavené. Návštevníci s IPv6 potom vidia pomalú alebo nefunkčnú stránku, zatiaľ čo u vás „všetko funguje“, pretože doma možno máte iba IPv4. Aj Let's Encrypt skúša najprv IPv6, ak existuje záznam AAAA (lekcia 7.3). Ak váš server cez IPv6 odpovedá inak ako cez IPv4, žiadosť o certifikát zlyhá.
IPv6 preto testujte samostatne, z iného počítača s IPv6: curl -6 -I https://example.com. Ak sami IPv6 nemáte, použite online test, napríklad internet.nl.
Reverse DNS: od adresy späť k menu
Reverse DNS priraďuje IP adrese späť meno, a to pomocou záznamu PTR (kurz DNS, lekcia 4.6). Tento záznam nie je v zóne vašej domény, ale v zóne IP adresy, a tá patrí tomu, kto adresu spravuje: vášmu poskytovateľovi VPS. PTR teda nastavujete v paneli poskytovateľa, nie vo vlastnom DNS.
Prečo to robiť?
- Pošta. Prijímajúce poštové servery odmietajú alebo nedôverujú poštu z adresy bez správneho reverse DNS. Ak váš VPS odosiela poštu (hoci len upozornenie z formulára), je to povinné (pozri kurz E-mail v poriadku, lekcia 5.1).
- Rozpoznateľnosť. V logoch a výstupoch traceroute ostatní uvidia
web1.example.comnamiesto všeobecného mena poskytovateľa. - Poriadok. Niektoré služby a spamové filtre udeľujú body adresám so všeobecným alebo chýbajúcim PTR.
Pravidlom je forward-confirmed reverse DNS (FCrDNS): adresa cez PTR ukazuje na meno a toto meno cez A alebo AAAA ukazuje späť na tú istú adresu. Najprv teda vytvorte záznamy A a AAAA, potom požiadajte o PTR, a to pre IPv4 aj IPv6.
anna@laptop:~$ dig +short -x 192.0.2.10
web1.example.com.
anna@laptop:~$ dig +short A web1.example.com
192.0.2.10
anna@laptop:~$ dig +short -x 2001:db8::10
web1.example.com.
anna@laptop:~$ dig +short AAAA web1.example.com
2001:db8::10Ak sa pri všetkých štyroch vráti očakávaná odpoveď, meno a adresa sedia tam aj späť.
CAA: kto smie vydávať certifikáty?
Záznamom CAA (kurz DNS, lekcia 5.2) určíte, ktoré certifikačné autority smú pre vašu doménu vydávať certifikáty. Ak používate iba Let's Encrypt:
example.com. 3600 IN CAA 0 issue "letsencrypt.org"Nie je to povinné, ale je to užitočná vrstva navyše. Pozor: ak už máte záznam CAA s inou autoritou, Let's Encrypt vašu žiadosť odmietne. Preto sa najprv pozrite pomocou dig CAA example.com.
V praxi: reverse DNS na obrazovke VPS
Vo WebOké nastavíte reverse DNS na obrazovke VPS, na karte „ISO a rDNS“. Ak máte DNS domény tiež vo WebOké, panel môže záznamy A a AAAA rovno vytvoriť za vás; ak je DNS inde, najprv tieto záznamy vytvorte sami a potom zadajte celé meno. U iných poskytovateľov sa to v zákazníckom paneli volá „Reverse DNS“, „rDNS“ alebo „PTR“; u niektorých o to treba požiadať cez tiket. Všade to funguje rovnako: najprv meno na adresu, potom adresa na meno.
Zhrnutie
- Meno priradíte k vášmu VPS záznamom A (IPv4) a záznamom AAAA (IPv6) v DNS vašej domény.
- Dajte serveru vlastné meno (
web1.example.com) a každej službe vlastnú subdoménu; záznamy CNAME na meno servera uľahčujú sťahovanie. - Pred sťahovaním znížte TTL a výsledok overte pomocou
digu verejného resolvera. - Nenastavujte záznam AAAA, ak služba cez IPv6 naozaj nefunguje; IPv6 testujte samostatne.
- PTR nastavujete u poskytovateľa VPS; tam aj späť musí všetko sedieť (FCrDNS), pre IPv4 aj IPv6.
Kvíz
Úloha
Úloha Z7.1: A, AAAA a PTR vášho servera. Dajte vášmu serveru vlastné meno (napríklad web1.<jouwdomein>), vytvorte záznamy A a AAAA a nastavte reverse DNS u vášho poskytovateľa. V úlohe zadajte meno vášho servera, IPv4 a IPv6 adresu a meno, ktoré ste pri dig -x dostali pre obe adresy. Program naživo zistí záznamy A a AAAA aj PTR oboch adries a overí, že všetko sedí tam aj späť. Ak váš server nemá IPv6, skontroluje iba IPv4 a oznámi to oranžovou farbou.
