Modul 7 · 7.1
DNS til VPS-en din og reverse DNS
Modul 7: Domene, webserver og https · Lesetid: 10 minutter
Læringsmål: Etter denne leksjonen kan du peke et domene eller underdomene mot VPS-en din med A- og AAAA-poster, sette opp reverse DNS for serveren riktig og kontrollere at navn og adresse stemmer begge veier.
Nøkkelbegreper: A-post, AAAA-post, TTL, underdomene per tjeneste, www, vertsnavnet til serveren, PTR, reverse DNS, forward-confirmed reverse DNS (FCrDNS), CAA, glemt IPv6
Fra IP-adresse til navn
Til nå har du nådd serveren din via IP-adressen, for eksempel ssh anna@192.0.2.10. For et nettsted, et sertifikat (leksjon 7.3) og tjenestene fra modul 9 trenger du et navn. Den koblingen lager du i DNS-en til domenet ditt, hos den som administrerer DNS-en din: registraren, webhotellet eller en DNS-tjeneste. VPS-en selv har ingenting med dette å gjøre. Serveren din "vet" ikke hvilke navn som peker mot den.
Det grunnleggende om DNS lærte du i DNS-kurset. For en VPS trenger du først og fremst to typer poster:
| Post | Hva | Eksempel |
|---|---|---|
| A | navn til IPv4-adresse | web1.example.com. 3600 IN A 192.0.2.10 |
| AAAA | navn til IPv6-adresse | web1.example.com. 3600 IN AAAA 2001:db8::10 |
VPS-en din har som regel både en fast IPv4- og en fast IPv6-adresse. Sett da begge postene. Besøkende med IPv6 (i Nederland en stor del av hjemmetilkoblingene og mobilnettene) bruker da IPv6, resten IPv4.
Hvilke navn lager du?
En vanlig inndeling for en VPS med et nettsted og noen tjenester:
web1.example.com. A 192.0.2.10 ; selve serveren (vertsnavn, PTR)
web1.example.com. AAAA 2001:db8::10
example.com. A 192.0.2.10 ; nettstedet
example.com. AAAA 2001:db8::10
www.example.com. CNAME example.com.
status.example.com. CNAME web1.example.com. ; Uptime Kuma (leksjon 9.4)
kluis.example.com. CNAME web1.example.com. ; Vaultwarden (leksjon 9.4)Her ligger noen valg:
- Serveren har sitt eget navn (
web1), atskilt fra nettstedet. Det navnet bruker du til SSH, til reverse DNS og som vertsnavn for systemet. Flytter nettstedet senere til en annen server, stemmerweb1fortsatt. - Ett underdomene per tjeneste. Uptime Kuma og Vaultwarden får hvert sitt navn. Det er mye enklere (og sikrere) enn å legge tjenester under en sti som
example.com/kluis: hver tjeneste får sitt eget sertifikat, informasjonskapsler blandes ikke, og du kan senere flytte en tjeneste til en annen server ved å endre én post. - CNAME for underdomenene. En CNAME til
web1betyr at hvis serverens IP-adresse endres, trenger du bare å endre postene forweb1. På selve domenenavnet (example.com) kan det ikke ligge en CNAME. Der setter du A og AAAA.
Vertsnavnet til selve systemet setter du på serveren:
anna@web1:~$ sudo hostnamectl set-hostname web1.example.com
anna@web1:~$ hostname -f
web1.example.comKontroller også at /etc/hosts ikke inneholder et gammelt navn. Et riktig vertsnavn er særlig viktig hvis serveren noen gang sender e-post.
TTL: hvor raskt en endring er synlig overalt
TTL (time to live) er antall sekunder resolvere kan huske et svar. Med 3600 kan det ta opptil en time før alle ser en ny adresse. Skal du flytte et nettsted til VPS-en din, setter du TTL til 300 (fem minutter) dagen før, venter minst like lenge som den gamle TTL-en, endrer adressen og setter TTL høyere igjen etterpå. Dette er nøyaktig trinnplanen fra DNS-kurset, leksjon 6.3.
Kontroller med dig (DNS-kurset leksjon 8.2) hva resten av internett ser, og spør en offentlig resolver i stedet for din egen datamaskin:
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.
Fallgruven: en AAAA-post uten fungerende IPv6
Setter du en AAAA-post, må tjenesten også faktisk kunne nås via IPv6. En vanlig feil: posten finnes, men webserveren lytter bare på IPv4, eller brannmuren slipper ikke gjennom IPv6 (leksjon 5.2), eller IPv6 er ikke satt opp på VPS-en. Besøkende med IPv6 ser da et tregt eller utilgjengelig nettsted, mens det "bare fungerer" hos deg fordi du kanskje bare har IPv4 hjemme. Også Let's Encrypt prøver IPv6 først når det finnes en AAAA-post (leksjon 7.3). Gir serveren din et annet svar via IPv6 enn via IPv4, mislykkes sertifikatforespørselen.
Test derfor IPv6 separat, fra en annen maskin med IPv6: curl -6 -I https://example.com. Har du ikke IPv6 selv, bruker du en nettbasert test som internet.nl.
Reverse DNS: fra adresse tilbake til navn
Reverse DNS kobler en IP-adresse tilbake til et navn, med en PTR-post (DNS-kurset leksjon 4.6). Den posten ligger ikke i sonen til domenet ditt, men i sonen til IP-adressen, og den tilhører den som administrerer adressen: VPS-leverandøren din. Du setter altså PTR i leverandørens panel, ikke i din egen DNS.
Hvorfor skal du gjøre det?
- E-post. Mottakende e-postservere avviser eller mistror e-post fra en adresse uten riktig reverse DNS. Sender VPS-en din e-post (selv om det bare er et varsel fra et skjema), er dette et krav (se kurset E-post i orden, leksjon 5.1).
- Gjenkjennelighet. I logger og traceroutes ser andre
web1.example.comi stedet for et generisk navn fra leverandøren. - Ryddighet. Noen tjenester og spamfiltre gir minuspoeng til adresser med en generisk eller manglende PTR.
Regelen er forward-confirmed reverse DNS (FCrDNS): adressen peker med PTR til et navn, og det navnet peker med A eller AAAA tilbake til den samme adressen. Lag altså først A- og AAAA-posten, og be deretter om PTR, for både IPv4 og 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 det forventede svaret på alle fire, stemmer det begge veier.
CAA: hvem kan lage sertifikater?
Med en CAA-post (DNS-kurset leksjon 5.2) angir du hvilke sertifikatutstedere som kan lage sertifikater for domenet ditt. Bruker du bare Let's Encrypt:
example.com. 3600 IN CAA 0 issue "letsencrypt.org"Det er ikke påkrevd, men et ryddig ekstra lag. Merk: har du allerede en CAA-post med en annen utsteder, avviser Let's Encrypt forespørselen din. Sjekk derfor først med dig CAA example.com.
I praksis: reverse DNS i VPS-skjermbildet
Hos WebOké setter du reverse DNS i VPS-skjermbildet, på fanen "ISO og rDNS". Ligger domenet ditt også i DNS-en hos WebOké, kan panelet opprette A- og AAAA-posten for deg med en gang. Ligger DNS-en et annet sted, lager du først disse postene selv og fyller deretter inn det fullstendige navnet. Hos andre leverandører heter dette "Reverse DNS", "rDNS" eller "PTR" i kundepanelet. Hos noen må du be om det via en sak til kundestøtten. Det fungerer likt overalt: først navnet til adressen, deretter adressen til navnet.
Oppsummering
- Du kobler et navn til VPS-en din med en A-post (IPv4) og en AAAA-post (IPv6), i DNS-en til domenet ditt.
- Gi serveren sitt eget navn (
web1.example.com) og hver tjeneste sitt eget underdomene. CNAME-er til servernavnet gjør det enkelt å flytte. - Senk TTL før en flytting og kontroller med
digmot en offentlig resolver. - Ikke sett en AAAA-post hvis tjenesten ikke faktisk fungerer via IPv6. Test IPv6 separat.
- PTR setter du hos VPS-leverandøren din. Det må stemme begge veier (FCrDNS), for både IPv4 og IPv6.
Quiz
Oppgave
Oppgave Z7.1: A, AAAA og PTR for serveren din. Gi serveren din et eget navn (for eksempel web1.<jouwdomein>), lag A- og AAAA-posten og sett reverse DNS hos leverandøren din. Fyll inn navnet på serveren din, IPv4- og IPv6-adressen og navnet du fikk med dig -x for begge adressene i oppgaven. Programmet slår opp A- og AAAA-postene og PTR for begge adressene direkte og kontrollerer at alt stemmer begge veier. Har serveren din ikke IPv6, kontrolleres bare IPv4, og det meldes i oransje.
