DNS pro Váš VPS a reverzní DNS
Modul 7: Doména, webový server a https · Doba čtení: 10 min.
Cíl lekce: Po této lekci dokážete nasměrovat doménu nebo subdoménu na svůj VPS pomocí záznamů A a AAAA, správně nastavit reverzní DNS svého serveru a ověřit, že jméno a adresa sedí oběma směry.
Klíčové pojmy: záznam A, záznam AAAA, TTL, subdoména pro každou službu, www, název hostitele serveru, PTR, reverzní DNS, forward-confirmed reverse DNS (FCrDNS), CAA, zapomenuté IPv6
Od IP adresy ke jménu
Dosud jste se ke svému serveru připojovali přes jeho IP adresu, například ssh anna@192.0.2.10. Pro web, certifikát (lekce 7.3) a služby z modulu 9 ale potřebujete jméno. Toto propojení vytvoříte v DNS své domény, u toho, kdo Vaše DNS spravuje: u registrátora, u hostingové společnosti nebo u DNS služby. Samotný VPS s tím nemá nic společného; Váš server „neví“, která jména na něj ukazují.
Základy DNS jste se naučili v kurzu DNS. Pro VPS z něj potřebujete hlavně dva záznamy:
| Záznam | Co dělá | Příklad |
|---|---|---|
| A | jméno na adresu IPv4 | web1.example.com. 3600 IN A 192.0.2.10 |
| AAAA | jméno na adresu IPv6 | web1.example.com. 3600 IN AAAA 2001:db8::10 |
Váš VPS má obvykle pevnou adresu IPv4 i IPv6. Nastavte proto oba záznamy. Návštěvníci s IPv6 (v Nizozemsku je to velká část domácích připojení a mobilních sítí) pak použijí IPv6, ostatní IPv4.
Jaká jména vytvořit?
Běžné rozdělení pro VPS s webem a několika službami:
web1.example.com. A 192.0.2.10 ; samotný server (hostname, 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 (lekce 9.4)
kluis.example.com. CNAME web1.example.com. ; Vaultwarden (lekce 9.4)Skrývá se v tom několik rozhodnutí:
- Server má vlastní jméno (
web1), nezávislé na webu. Toto jméno používáte pro SSH, pro reverzní DNS a jako název hostitele systému. Pokud se web později přestěhuje na jiný server,web1bude dál platit. - Subdoména pro každou službu. Uptime Kuma a Vaultwarden dostanou každá vlastní jméno. To je mnohem jednodušší (a bezpečnější) než umístit služby pod cestu jako
example.com/kluis: každá služba má vlastní certifikát, cookies se nemíchají a službu můžete později přesunout na jiný server změnou jediného záznamu. - CNAME pro subdomény. CNAME na
web1znamená: když se změní IP adresa serveru, upravíte jen záznamyweb1. Na holém doménovém jménu (example.com) nesmí být CNAME; tam nastavíte A a AAAA.
Název hostitele samotného systému nastavíte na serveru:
anna@web1:~$ sudo hostnamectl set-hostname web1.example.com
anna@web1:~$ hostname -f
web1.example.comZkontrolujte také, že /etc/hosts neobsahuje staré jméno. Správný název hostitele je důležitý hlavně tehdy, pokud server někdy odesílá poštu.
TTL: jak rychle se změna všude projeví
TTL (time to live) je počet sekund, po které si resolvery smějí odpověď pamatovat. Při hodnotě 3600 může trvat až hodinu, než novou adresu uvidí všichni. Chystáte-li se přestěhovat web na svůj VPS, nastavte TTL den předem na 300 (pět minut), počkejte alespoň po dobu původního TTL, změňte adresu a poté TTL zase zvyšte. Je to přesně postup z kurzu DNS, lekce 6.3.
Pomocí dig (kurz DNS, lekce 8.2) ověřte, co vidí zbytek internetu, a ptejte se veřejného resolveru, ne vlastního počítače:
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::10Ve Windows: Resolve-DnsName example.com -Type AAAA -Server 1.1.1.1.
Past: záznam AAAA bez funkčního IPv6
Pokud nastavíte záznam AAAA, musí být služba přes IPv6 opravdu dostupná. Častá chyba: záznam existuje, ale webový server naslouchá jen na IPv4, nebo firewall nepropouští IPv6 (lekce 5.2), nebo IPv6 na VPS není nastavené. Návštěvníci s IPv6 pak vidí pomalý nebo nefunkční web, zatímco Vám to „normálně funguje“, protože doma máte možná jen IPv4. Také Let's Encrypt zkouší nejdříve IPv6, pokud existuje záznam AAAA (lekce 7.3). Když Váš server přes IPv6 odpoví jinak než přes IPv4, žádost o certifikát selže.
IPv6 proto testujte zvlášť, z jiného počítače s IPv6: curl -6 -I https://example.com. Pokud sami IPv6 nemáte, použijte online test, například internet.nl.
Reverzní DNS: od adresy zpět ke jménu
Reverzní DNS přiřazuje IP adrese zpětně jméno, a to pomocí záznamu PTR (kurz DNS, lekce 4.6). Tento záznam není v zóně Vaší domény, ale v zóně IP adresy, a ta patří tomu, kdo adresu spravuje: Vašemu poskytovateli VPS. PTR tedy nastavíte v panelu poskytovatele, ne ve vlastním DNS.
Proč byste to měli dělat?
- Pošta. Přijímající poštovní servery odmítají poštu z adresy bez správné reverzní DNS, nebo jí nedůvěřují. Pokud Váš VPS odesílá poštu (byť jen upozornění z formuláře), je to nezbytné (viz kurz E-mail v pořádku, lekce 5.1).
- Rozpoznatelnost. V logech a výpisech traceroute ostatní uvidí
web1.example.commísto obecného jména poskytovatele. - Pořádek. Některé služby a spamové filtry přidělují trestné body adresám s obecným nebo chybějícím PTR.
Pravidlem je forward-confirmed reverse DNS (FCrDNS): adresa ukazuje záznamem PTR na jméno a toto jméno ukazuje záznamem A nebo AAAA zpět na stejnou adresu. Nejprve tedy vytvořte záznamy A a AAAA, potom požádejte o PTR, a to pro IPv4 i 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::10Pokud u všech čtyř dotazů dostanete očekávanou odpověď, sedí to oběma směry.
CAA: kdo smí vydávat certifikáty?
Záznamem CAA (kurz DNS, lekce 5.2) určíte, které certifikační autority smějí pro Vaši doménu vydávat certifikáty. Pokud používáte jen Let's Encrypt:
example.com. 3600 IN CAA 0 issue "letsencrypt.org"Není to povinné, ale je to užitečná vrstva navíc. Pozor: pokud už máte záznam CAA s jinou autoritou, Let's Encrypt Vaši žádost odmítne. Nejprve se proto podívejte pomocí dig CAA example.com.
V praxi: reverzní DNS v obrazovce VPS
U WebOké nastavíte reverzní DNS v obrazovce VPS, na kartě „ISO a rDNS“. Pokud máte DNS své domény také u WebOké, panel za Vás může rovnou vytvořit záznamy A a AAAA; pokud je DNS jinde, vytvořte tyto záznamy nejprve sami a poté vyplňte celé jméno. U jiných poskytovatelů se to v zákaznickém panelu jmenuje „Reverse DNS“, „rDNS“ nebo „PTR“; u některých o to musíte požádat přes ticket. Všude to funguje stejně: nejprve jméno na adresu, pak adresa na jméno.
Shrnutí
- Jméno propojíte se svým VPS záznamem A (IPv4) a záznamem AAAA (IPv6) v DNS své domény.
- Dejte serveru vlastní jméno (
web1.example.com) a každé službě vlastní subdoménu; záznamy CNAME na jméno serveru usnadňují stěhování. - Před stěhováním snižte TTL a ověřte stav pomocí
digu veřejného resolveru. - Nenastavujte záznam AAAA, pokud služba přes IPv6 opravdu nefunguje; IPv6 testujte zvlášť.
- PTR nastavíte u svého poskytovatele VPS; oba směry musí sedět (FCrDNS), pro IPv4 i IPv6.
Kvíz
Úkol
Úkol Z7.1: A, AAAA a PTR Vašeho serveru. Dejte svému serveru vlastní jméno (například web1.<jouwdomein>), vytvořte záznamy A a AAAA a nastavte reverzní DNS u svého poskytovatele. V úkolu vyplňte jméno svého serveru, adresu IPv4 a IPv6 a jméno, které jste u dig -x dostali pro obě adresy. Program živě zjistí záznamy A a AAAA i PTR obou adres a ověří, že vše sedí oběma směry. Pokud Váš server nemá IPv6, zkontroluje jen IPv4 a oznámí to oranžově.
