Modul 7 · 7.1
DNS till din VPS och omvänd DNS
Modul 7: Domän, webbserver och https · Lästid: 10 minuter
Lärandemål: Efter den här lektionen kan du peka en domän eller subdomän mot din VPS med A- och AAAA-poster, ställa in omvänd DNS för din server på rätt sätt och kontrollera att namn och adress stämmer åt båda hållen.
Nyckelbegrepp: A-post, AAAA-post, TTL, en subdomän per tjänst, www, serverns värdnamn, PTR, omvänd DNS, forward-confirmed reverse DNS (FCrDNS), CAA, glömd IPv6
Från IP-adress till namn
Hittills har du nått din server via dess IP-adress, till exempel ssh anna@192.0.2.10. För en webbplats, ett certifikat (lektion 7.3) och tjänsterna i modul 9 behöver du ett namn. Den kopplingen gör du i DNS för din domän, hos den som hanterar din DNS: din registrar, ditt webbhotell eller en DNS-tjänst. Själva VPS:en har inget med det att göra. Din server "vet" inte vilka namn som pekar mot den.
Grunderna i DNS lärde du dig i DNS-kursen. För en VPS behöver du framför allt två poster:
| Post | Vad | Exempel |
|---|---|---|
| A | namn till IPv4-adress | web1.example.com. 3600 IN A 192.0.2.10 |
| AAAA | namn till IPv6-adress | web1.example.com. 3600 IN AAAA 2001:db8::10 |
Din VPS har oftast både en fast IPv4- och en fast IPv6-adress. Lägg då in båda posterna. Besökare med IPv6 (i Nederland en stor del av hemanslutningarna och mobilnäten) använder då IPv6, övriga IPv4.
Vilka namn skapar du?
En vanlig uppdelning för en VPS med en webbplats och några tjänster:
web1.example.com. A 192.0.2.10 ; själva servern (värdnamn, PTR)
web1.example.com. AAAA 2001:db8::10
example.com. A 192.0.2.10 ; webbplatsen
example.com. AAAA 2001:db8::10
www.example.com. CNAME example.com.
status.example.com. CNAME web1.example.com. ; Uptime Kuma (lektion 9.4)
kluis.example.com. CNAME web1.example.com. ; Vaultwarden (lektion 9.4)Här finns några val inbyggda:
- Servern har ett eget namn (
web1), skilt från webbplatsen. Det namnet använder du för SSH, för omvänd DNS och som systemets värdnamn. Flyttar webbplatsen senare till en annan server stämmerweb1fortfarande. - En subdomän per tjänst. Uptime Kuma och Vaultwarden får var sitt namn. Det är mycket enklare (och säkrare) än att lägga tjänster under en sökväg som
example.com/kluis: varje tjänst får ett eget certifikat, cookies blandas inte ihop och du kan senare flytta en tjänst till en annan server genom att ändra en enda post. - CNAME för subdomänerna. En CNAME till
web1innebär att om serverns IP-adress ändras behöver du bara ändra posterna förweb1. På själva domännamnet (example.com) får det inte finnas någon CNAME. Där lägger du A och AAAA.
Själva systemets värdnamn ställer du in på servern:
anna@web1:~$ sudo hostnamectl set-hostname web1.example.com
anna@web1:~$ hostname -f
web1.example.comKontrollera också att /etc/hosts inte innehåller något gammalt namn. Ett korrekt värdnamn är särskilt viktigt om servern någon gång skickar e-post.
TTL: hur snabbt en ändring syns överallt
TTL (time to live) är antalet sekunder som resolvrar får komma ihåg ett svar. Vid 3600 kan det ta upp till en timme innan alla ser en ny adress. Ska du flytta en webbplats till din VPS, sänk då TTL till 300 (fem minuter) en dag i förväg, vänta minst den gamla TTL-tiden, ändra adressen och höj sedan TTL igen. Det är precis stegplanen från DNS-kursen, lektion 6.3.
Kontrollera med dig (DNS-kursen lektion 8.2) vad resten av internet ser, och fråga en publik resolver i stället för din egen dator:
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::10På Windows: Resolve-DnsName example.com -Type AAAA -Server 1.1.1.1.
Fällan: en AAAA-post utan fungerande IPv6
Lägger du in en AAAA-post måste tjänsten också verkligen gå att nå via IPv6. Ett vanligt fel: posten finns, men webbservern lyssnar bara på IPv4, eller så släpper brandväggen inte igenom IPv6 (lektion 5.2), eller så är IPv6 inte konfigurerat i VPS:en. Besökare med IPv6 får då en långsam eller trasig webbplats, medan det "bara fungerar" för dig eftersom du kanske bara har IPv4 hemma. Även Let's Encrypt provar IPv6 först om det finns en AAAA-post (lektion 7.3). Ger din server ett annat svar via IPv6 än via IPv4 misslyckas certifikatbeställningen.
Testa därför IPv6 separat, från en annan maskin med IPv6: curl -6 -I https://example.com. Har du själv ingen IPv6, använd då ett onlinetest som internet.nl.
Omvänd DNS: från adress tillbaka till namn
Omvänd DNS (reverse DNS) kopplar en IP-adress tillbaka till ett namn, med en PTR-post (DNS-kursen lektion 4.6). Den posten ligger inte i zonen för din domän utan i zonen för IP-adressen, och den tillhör den som förvaltar adressen: din VPS-leverantör. Du ställer alltså in PTR i leverantörens panel, inte i din egen DNS.
Varför ska du göra det?
- E-post. Mottagande e-postservrar avvisar eller misstror e-post från en adress utan korrekt omvänd DNS. Skickar din VPS e-post (även om det bara är en avisering från ett formulär) är detta ett måste (se kursen E-post i ordning, lektion 5.1).
- Igenkänning. I loggar och traceroutes ser andra
web1.example.comi stället för ett generiskt namn från leverantören. - Ordning och reda. Vissa tjänster och spamfilter ger straffpoäng åt adresser med en generisk eller saknad PTR.
Regeln heter forward-confirmed reverse DNS (FCrDNS): adressen pekar med PTR mot ett namn, och det namnet pekar med A eller AAAA tillbaka mot samma adress. Skapa alltså först A- och AAAA-posten och begär sedan PTR, för både IPv4 och 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::10Får du tillbaka det förväntade svaret på alla fyra stämmer det åt båda hållen.
CAA: vem får utfärda certifikat?
Med en CAA-post (DNS-kursen lektion 5.2) anger du vilka certifikatutfärdare som får utfärda certifikat för din domän. Använder du bara Let's Encrypt:
example.com. 3600 IN CAA 0 issue "letsencrypt.org"Det är inte obligatoriskt, men ett snyggt extra skydd. Obs: har du redan en CAA-post med en annan utfärdare avvisar Let's Encrypt din beställning. Kontrollera därför först med dig CAA example.com.
I praktiken: omvänd DNS i VPS-vyn
Hos WebOké ställer du in omvänd DNS i VPS-vyn, på fliken "ISO och rDNS". Ligger din domän också i DNS hos WebOké kan panelen skapa A- och AAAA-posten åt dig direkt. Ligger DNS någon annanstans skapar du först de posterna själv och fyller sedan i hela namnet. Hos andra leverantörer heter detta "Reverse DNS", "rDNS" eller "PTR" i kundpanelen, och hos vissa måste du begära det via ett ärende. Det fungerar likadant överallt: först namnet till adressen, sedan adressen till namnet.
Sammanfattning
- Du kopplar ett namn till din VPS med en A-post (IPv4) och en AAAA-post (IPv6) i DNS för din domän.
- Ge servern ett eget namn (
web1.example.com) och varje tjänst en egen subdomän. CNAME-poster till servernamnet gör flyttar enkla. - Sänk TTL före en flytt och kontrollera med
digmot en publik resolver. - Lägg inte in någon AAAA-post om tjänsten inte verkligen fungerar via IPv6. Testa IPv6 separat.
- PTR ställer du in hos din VPS-leverantör. Det måste stämma åt båda hållen (FCrDNS), för IPv4 och IPv6.
Quiz
Uppgift
Uppgift Z7.1: A, AAAA och PTR för din server. Ge din server ett eget namn (till exempel web1.<jouwdomein>), skapa A- och AAAA-posten och ställ in omvänd DNS hos din leverantör. Fyll i uppgiften med serverns namn, IPv4- och IPv6-adressen samt namnet du fick med dig -x för båda adresserna. Programmet hämtar A- och AAAA-posterna och PTR för båda adresserna live och kontrollerar att allt stämmer åt båda hållen. Har din server ingen IPv6 kontrolleras bara IPv4, och det visas i orange.
