Modulul 7 · 7.1
DNS către VPS-ul dumneavoastră și reverse DNS
Modulul 7: Domeniu, server web și https · Timp de citire: 10 minute
Obiectivul lecției: După această lecție veți putea direcționa un domeniu sau un subdomeniu către VPS-ul dumneavoastră cu înregistrări A și AAAA, veți putea configura corect reverse DNS pentru serverul dumneavoastră și veți putea verifica dacă numele și adresa corespund în ambele sensuri.
Noțiuni cheie: înregistrare A, înregistrare AAAA, TTL, câte un subdomeniu pentru fiecare serviciu, www, numele de gazdă al serverului, PTR, reverse DNS, forward-confirmed reverse DNS (FCrDNS), CAA, IPv6 uitat
De la adresa IP la nume
Până acum ați accesat serverul prin adresa sa IP, de exemplu ssh anna@192.0.2.10. Pentru un site web, un certificat (lecția 7.3) și serviciile din modulul 9 aveți nevoie de un nume. Această legătură o creați în DNS-ul domeniului dumneavoastră, la furnizorul care vă administrează DNS-ul: registrarul, firma de hosting sau un serviciu DNS. VPS-ul în sine nu are niciun rol aici; serverul dumneavoastră nu "știe" ce nume indică spre el.
Bazele DNS le-ați învățat în cursul DNS. Pentru un VPS aveți nevoie în principal de două tipuri de înregistrări:
| Înregistrare | Ce face | Exemplu |
|---|---|---|
| A | nume către adresă IPv4 | web1.example.com. 3600 IN A 192.0.2.10 |
| AAAA | nume către adresă IPv6 | web1.example.com. 3600 IN AAAA 2001:db8::10 |
De obicei, VPS-ul dumneavoastră are o adresă IPv4 fixă și o adresă IPv6 fixă. Configurați atunci ambele înregistrări. Vizitatorii cu IPv6 (în Țările de Jos, de exemplu, o mare parte din conexiunile casnice și din rețelele mobile) vor folosi atunci IPv6, iar ceilalți IPv4.
Ce nume creați?
O structură obișnuită pentru un VPS cu un site web și câteva servicii:
web1.example.com. A 192.0.2.10 ; serverul propriu-zis (hostname, PTR)
web1.example.com. AAAA 2001:db8::10
example.com. A 192.0.2.10 ; site-ul web
example.com. AAAA 2001:db8::10
www.example.com. CNAME example.com.
status.example.com. CNAME web1.example.com. ; Uptime Kuma (lecția 9.4)
kluis.example.com. CNAME web1.example.com. ; Vaultwarden (lecția 9.4)Această structură conține câteva alegeri:
- Serverul are un nume propriu (
web1), separat de site. Acest nume îl folosiți pentru SSH, pentru reverse DNS și ca nume de gazdă al sistemului. Dacă mai târziu site-ul se mută pe alt server,web1rămâne în continuare corect. - Câte un subdomeniu pentru fiecare serviciu. Uptime Kuma și Vaultwarden primesc fiecare un nume propriu. Este mult mai simplu (și mai sigur) decât să plasați serviciile sub o cale precum
example.com/kluis: fiecare serviciu primește propriul certificat, cookie-urile nu se amestecă, iar mai târziu puteți muta un serviciu pe alt server modificând o singură înregistrare. - CNAME pentru subdomenii. Un CNAME către
web1înseamnă că, dacă se schimbă adresa IP a serverului, modificați doar înregistrările pentruweb1. Pe numele de domeniu simplu (example.com) nu este permis un CNAME; acolo configurați A și AAAA.
Numele de gazdă al sistemului îl setați pe server:
anna@web1:~$ sudo hostnamectl set-hostname web1.example.com
anna@web1:~$ hostname -f
web1.example.comVerificați și ca /etc/hosts să nu conțină un nume vechi. Un nume de gazdă corect este important mai ales dacă serverul va trimite vreodată e-mail.
TTL: cât de repede ajunge o modificare peste tot
TTL (time to live) este numărul de secunde în care resolverele au voie să rețină un răspuns. La 3600 poate dura până la o oră până când toată lumea vede o adresă nouă. Dacă urmează să mutați un site pe VPS-ul dumneavoastră, setați TTL-ul la 300 (cinci minute) cu o zi înainte, așteptați cel puțin cât vechiul TTL, modificați adresa și apoi măriți din nou TTL-ul. Acesta este exact planul pas cu pas din cursul DNS, lecția 6.3.
Verificați cu dig (cursul DNS, lecția 8.2) ce vede restul internetului și interogați un resolver public, nu propriul calculator:
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::10Pe Windows: Resolve-DnsName example.com -Type AAAA -Server 1.1.1.1.
Capcana: o înregistrare AAAA fără IPv6 funcțional
Dacă setați o înregistrare AAAA, serviciul trebuie să fie într-adevăr accesibil prin IPv6. O greșeală frecventă: înregistrarea există, dar serverul web ascultă doar pe IPv4, sau firewall-ul nu lasă să treacă IPv6 (lecția 5.2), sau IPv6 nu este configurat în VPS. Vizitatorii cu IPv6 văd atunci un site lent sau care nu se încarcă, în timp ce la dumneavoastră "merge foarte bine", pentru că acasă poate aveți doar IPv4. Și Let's Encrypt încearcă mai întâi IPv6 dacă există o înregistrare AAAA (lecția 7.3). Dacă serverul dumneavoastră dă prin IPv6 un alt răspuns decât prin IPv4, cererea de certificat eșuează.
De aceea, testați IPv6 separat, de pe o altă mașină cu IPv6: curl -6 -I https://example.com. Dacă nu aveți IPv6, folosiți un test online precum internet.nl.
Reverse DNS: de la adresă înapoi la nume
Reverse DNS leagă o adresă IP înapoi de un nume, printr-o înregistrare PTR (cursul DNS, lecția 4.6). Această înregistrare nu se află în zona domeniului dumneavoastră, ci în zona adresei IP, care aparține celui care administrează adresa: furnizorul VPS-ului. Prin urmare, setați PTR-ul în panoul furnizorului, nu în propriul DNS.
De ce ați face asta?
- E-mail. Serverele de e-mail destinatare refuză sau tratează cu suspiciune mesajele de la o adresă fără reverse DNS corect. Dacă VPS-ul dumneavoastră trimite e-mail (chiar și doar o notificare de la un formular), acest lucru este obligatoriu (vedeți cursul „E-mail în ordine”, lecția 5.1).
- Recunoaștere. În jurnale și în traceroute-uri, ceilalți văd
web1.example.comîn loc de un nume generic al furnizorului. - Ordine. Unele servicii și filtre antispam acordă puncte negative adreselor cu un PTR generic sau lipsă.
Regula este forward-confirmed reverse DNS (FCrDNS): adresa indică prin PTR spre un nume, iar acel nume indică prin A sau AAAA înapoi spre aceeași adresă. Așadar, creați mai întâi înregistrările A și AAAA, apoi solicitați PTR-ul, atât pentru IPv4, cât și pentru 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::10Dacă la toate cele patru interogări primiți răspunsul așteptat, totul corespunde în ambele sensuri.
CAA: cine are voie să emită certificate?
Cu o înregistrare CAA (cursul DNS, lecția 5.2) indicați ce autorități de certificare au voie să emită certificate pentru domeniul dumneavoastră. Dacă folosiți doar Let's Encrypt:
example.com. 3600 IN CAA 0 issue "letsencrypt.org"Nu este obligatoriu, dar este un strat suplimentar de protecție binevenit. Atenție: dacă aveți deja o înregistrare CAA cu o altă autoritate, Let's Encrypt vă va refuza cererea. Verificați deci mai întâi cu dig CAA example.com.
În practică: reverse DNS în ecranul VPS
La WebOké setați reverse DNS în ecranul VPS, în fila "ISO și rDNS". Dacă și DNS-ul domeniului dumneavoastră este la WebOké, panoul poate crea imediat înregistrările A și AAAA pentru dumneavoastră; dacă DNS-ul este în altă parte, creați mai întâi singur aceste înregistrări și apoi completați numele complet. La alți furnizori, această funcție se numește "Reverse DNS", "rDNS" sau "PTR" în panoul de client; la unii trebuie să o solicitați printr-un tichet. Peste tot funcționează la fel: mai întâi numele către adresă, apoi adresa către nume.
Rezumat
- Un nume îl legați de VPS-ul dumneavoastră cu o înregistrare A (IPv4) și o înregistrare AAAA (IPv6), în DNS-ul domeniului.
- Dați serverului un nume propriu (
web1.example.com) și fiecărui serviciu un subdomeniu propriu; înregistrările CNAME către numele serverului ușurează mutările. - Reduceți TTL-ul înainte de o mutare și verificați cu
digla un resolver public. - Nu setați o înregistrare AAAA dacă serviciul nu funcționează cu adevărat prin IPv6; testați IPv6 separat.
- PTR-ul îl setați la furnizorul VPS-ului; numele și adresa trebuie să corespundă în ambele sensuri (FCrDNS), pentru IPv4 și pentru IPv6.
Test (quiz)
Exercițiu
Exercițiul Z7.1: A, AAAA și PTR pentru serverul dumneavoastră. Dați serverului un nume propriu (de exemplu web1.<jouwdomein>), creați înregistrările A și AAAA și setați reverse DNS la furnizorul dumneavoastră. Completați în exercițiu numele serverului, adresa IPv4 și adresa IPv6, precum și numele pe care l-ați obținut cu dig -x pentru ambele adrese. Programul interoghează în timp real înregistrările A și AAAA și PTR-ul ambelor adrese și verifică dacă totul corespunde în ambele sensuri. Dacă serverul dumneavoastră nu are IPv6, verifică doar IPv4 și semnalează acest lucru cu portocaliu.
Lecturi suplimentare
- Trimiterea de e-mailuri de pe VPS-ul dumneavoastră și configurarea DNS-ului invers
- IPv6 la WebOké
- Curs gratuit de DNS 3.1: Înregistrări A și AAAA
- Curs gratuit de DNS 4.6: Reverse DNS (PTR): de la număr înapoi la nume
- Curs gratuit de DNS 5.2: CAA: cine are voie să emită certificate?
- Curs gratuit de DNS 8.2: Interogarea DNS cu dig și nslookup
