Ενότητα 7 · 7.1
DNS προς το VPS σας και reverse DNS
Ενότητα 7: Domain, web server και https · Χρόνος ανάγνωσης: 10 λεπτά
Στόχος μαθήματος: Μετά από αυτό το μάθημα μπορείτε να κατευθύνετε ένα domain ή subdomain στο VPS σας με εγγραφές A και AAAA, να ρυθμίσετε σωστά το reverse DNS του server σας και να ελέγξετε ότι όνομα και διεύθυνση ταιριάζουν και προς τις δύο κατευθύνσεις.
Βασικές έννοιες: εγγραφή A, εγγραφή AAAA, TTL, ένα subdomain ανά υπηρεσία, www, όνομα host του server, PTR, reverse DNS, forward-confirmed reverse DNS (FCrDNS), CAA, ξεχασμένο IPv6
Από διεύθυνση IP σε όνομα
Μέχρι τώρα συνδεόσασταν στον server σας με τη διεύθυνση IP του, για παράδειγμα ssh anna@192.0.2.10. Για έναν ιστότοπο, ένα πιστοποιητικό (μάθημα 7.3) και τις υπηρεσίες της ενότητας 9 χρειάζεστε ένα όνομα. Αυτή τη σύνδεση τη δημιουργείτε στο DNS του domain σας, στον πάροχο που διαχειρίζεται το DNS σας: τον registrar σας, την εταιρεία hosting σας ή μια υπηρεσία DNS. Το ίδιο το VPS δεν έχει καμία σχέση με αυτό· ο server σας δεν «ξέρει» ποια ονόματα δείχνουν προς αυτόν.
Τα βασικά του DNS τα μάθατε στη σειρά μαθημάτων DNS. Για ένα VPS χρειάζεστε κυρίως δύο εγγραφές:
| Εγγραφή | Τι κάνει | Παράδειγμα |
|---|---|---|
| A | όνομα προς διεύθυνση IPv4 | web1.example.com. 3600 IN A 192.0.2.10 |
| AAAA | όνομα προς διεύθυνση IPv6 | web1.example.com. 3600 IN AAAA 2001:db8::10 |
Το VPS σας έχει συνήθως σταθερή διεύθυνση IPv4 και σταθερή διεύθυνση IPv6. Ρυθμίστε τότε και τις δύο εγγραφές. Οι επισκέπτες με IPv6 (στην Ολλανδία ένα μεγάλο μέρος των οικιακών συνδέσεων και των δικτύων κινητής) χρησιμοποιούν τότε IPv6 και οι υπόλοιποι IPv4.
Ποια ονόματα δημιουργείτε;
Μια συνηθισμένη διάταξη για ένα VPS με έναν ιστότοπο και μερικές υπηρεσίες:
web1.example.com. A 192.0.2.10 ; ο ίδιος ο server (hostname, PTR)
web1.example.com. AAAA 2001:db8::10
example.com. A 192.0.2.10 ; η ιστοσελίδα
example.com. AAAA 2001:db8::10
www.example.com. CNAME example.com.
status.example.com. CNAME web1.example.com. ; Uptime Kuma (μάθημα 9.4)
kluis.example.com. CNAME web1.example.com. ; Vaultwarden (μάθημα 9.4)Σε αυτήν υπάρχουν μερικές επιλογές:
- Ο server έχει δικό του όνομα (
web1), ανεξάρτητα από τον ιστότοπο. Αυτό το όνομα το χρησιμοποιείτε για SSH, για το reverse DNS και ως όνομα host του συστήματος. Αν ο ιστότοπος μεταφερθεί αργότερα σε άλλον server, τοweb1εξακολουθεί να είναι σωστό. - Ένα subdomain ανά υπηρεσία. Το Uptime Kuma και το Vaultwarden παίρνουν το καθένα δικό του όνομα. Αυτό είναι πολύ πιο απλό (και ασφαλέστερο) από το να τοποθετείτε υπηρεσίες κάτω από μια διαδρομή όπως
example.com/kluis: κάθε υπηρεσία έχει το δικό της πιστοποιητικό, τα cookies δεν ανακατεύονται και μπορείτε αργότερα να μεταφέρετε μια υπηρεσία σε άλλον server αλλάζοντας μία μόνο εγγραφή. - CNAME για τα subdomains. Ένα CNAME προς το
web1σημαίνει ότι, αν αλλάξει η διεύθυνση IP του server, προσαρμόζετε μόνο τις εγγραφές τουweb1. Στο σκέτο όνομα domain (example.com) δεν επιτρέπεται CNAME· εκεί ορίζετε A και AAAA.
Το όνομα host του ίδιου του συστήματος το ορίζετε στον server:
anna@web1:~$ sudo hostnamectl set-hostname web1.example.com
anna@web1:~$ hostname -f
web1.example.comΕλέγξτε επίσης ότι το /etc/hosts δεν περιέχει κάποιο παλιό όνομα. Ένα σωστό όνομα host είναι ιδιαίτερα σημαντικό αν ο server στείλει ποτέ email.
TTL: πόσο γρήγορα μια αλλαγή φαίνεται παντού
Το TTL (time to live) είναι ο αριθμός των δευτερολέπτων για τα οποία οι resolvers επιτρέπεται να θυμούνται μια απάντηση. Με τιμή 3600 μπορεί να χρειαστεί έως μία ώρα μέχρι να δουν όλοι μια νέα διεύθυνση. Αν πρόκειται να μεταφέρετε έναν ιστότοπο στο VPS σας, ορίστε το TTL μία ημέρα νωρίτερα στο 300 (πέντε λεπτά), περιμένετε τουλάχιστον όσο ήταν το παλιό TTL, αλλάξτε τη διεύθυνση και στη συνέχεια αυξήστε ξανά το TTL. Αυτό είναι ακριβώς το σχέδιο βημάτων από τη σειρά μαθημάτων DNS, μάθημα 6.3.
Ελέγξτε με το dig (σειρά μαθημάτων DNS, μάθημα 8.2) τι βλέπει το υπόλοιπο internet, και ρωτήστε έναν δημόσιο resolver αντί για τον δικό σας υπολογιστή:
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::10Σε Windows: Resolve-DnsName example.com -Type AAAA -Server 1.1.1.1.
Η παγίδα: μια εγγραφή AAAA χωρίς λειτουργικό IPv6
Αν ορίσετε μια εγγραφή AAAA, η υπηρεσία πρέπει πραγματικά να είναι προσβάσιμη μέσω IPv6. Ένα συχνό λάθος: η εγγραφή υπάρχει, αλλά ο web server ακούει μόνο σε IPv4, ή το firewall δεν αφήνει το IPv6 να περάσει (μάθημα 5.2), ή το IPv6 δεν έχει ρυθμιστεί στο VPS. Οι επισκέπτες με IPv6 βλέπουν τότε έναν αργό ή αποτυχημένο ιστότοπο, ενώ σε εσάς «απλώς λειτουργεί», επειδή στο σπίτι ίσως έχετε μόνο IPv4. Επίσης το Let's Encrypt δοκιμάζει πρώτα το IPv6 όταν υπάρχει εγγραφή AAAA (μάθημα 7.3). Αν ο server σας δίνει διαφορετική απάντηση μέσω IPv6 από ό,τι μέσω IPv4, η αίτηση για πιστοποιητικό αποτυγχάνει.
Γι' αυτό δοκιμάστε το IPv6 ξεχωριστά, από άλλο μηχάνημα με IPv6: curl -6 -I https://example.com. Αν δεν έχετε οι ίδιοι IPv6, χρησιμοποιήστε μια διαδικτυακή δοκιμή όπως το internet.nl.
Reverse DNS: από τη διεύθυνση πίσω στο όνομα
Το reverse DNS συνδέει μια διεύθυνση IP πίσω με ένα όνομα, μέσω μιας εγγραφής PTR (σειρά μαθημάτων DNS, μάθημα 4.6). Αυτή η εγγραφή δεν βρίσκεται στη zone του δικού σας domain, αλλά στη zone της διεύθυνσης IP, η οποία ανήκει στον πάροχο που διαχειρίζεται τη διεύθυνση: τον πάροχο του VPS σας. Επομένως ορίζετε το PTR στον πίνακα ελέγχου του παρόχου και όχι στο δικό σας DNS.
Γιατί να το κάνετε αυτό;
- Email. Οι mail servers παραλήπτη απορρίπτουν ή αντιμετωπίζουν με καχυποψία email από μια διεύθυνση χωρίς σωστό reverse DNS. Αν το VPS σας στέλνει email (έστω και μόνο μια ειδοποίηση από μια φόρμα), αυτό είναι υποχρεωτικό (δείτε τη σειρά μαθημάτων «Email σε τάξη», μάθημα 5.1).
- Αναγνωρισιμότητα. Σε αρχεία καταγραφής και σε traceroutes οι άλλοι βλέπουν
web1.example.comαντί για ένα γενικό όνομα του παρόχου. - Τάξη. Ορισμένες υπηρεσίες και φίλτρα spam βαθμολογούν αρνητικά τις διευθύνσεις με γενικό ή ελλιπές PTR.
Ο κανόνας είναι το forward-confirmed reverse DNS (FCrDNS): η διεύθυνση δείχνει με PTR σε ένα όνομα και αυτό το όνομα δείχνει με A ή AAAA πίσω στην ίδια διεύθυνση. Άρα δημιουργείτε πρώτα τις εγγραφές A και AAAA και μετά ζητάτε το PTR, τόσο για IPv4 όσο και για 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::10Αν και στους τέσσερις ελέγχους επιστρέφει η αναμενόμενη απάντηση, τότε όλα ταιριάζουν και προς τις δύο κατευθύνσεις.
CAA: ποιος επιτρέπεται να εκδίδει πιστοποιητικά;
Με μια εγγραφή CAA (σειρά μαθημάτων DNS, μάθημα 5.2) δηλώνετε ποιοι εκδότες πιστοποιητικών επιτρέπεται να εκδίδουν πιστοποιητικά για το domain σας. Αν χρησιμοποιείτε μόνο Let's Encrypt:
example.com. 3600 IN CAA 0 issue "letsencrypt.org"Δεν είναι υποχρεωτικό, αλλά αποτελεί ένα καλό επιπλέον επίπεδο προστασίας. Προσοχή: αν έχετε ήδη μια εγγραφή CAA με άλλον εκδότη, το Let's Encrypt απορρίπτει την αίτησή σας. Ελέγξτε λοιπόν πρώτα με το dig CAA example.com.
Στην πράξη: reverse DNS στην οθόνη του VPS
Στη WebOké ορίζετε το reverse DNS στην οθόνη του VPS, στην καρτέλα «ISO και rDNS». Αν το DNS του domain σας βρίσκεται επίσης στη WebOké, ο πίνακας ελέγχου μπορεί να δημιουργήσει αμέσως για εσάς τις εγγραφές A και AAAA· αν το DNS βρίσκεται αλλού, δημιουργείτε πρώτα οι ίδιοι αυτές τις εγγραφές και μετά συμπληρώνετε το πλήρες όνομα. Σε άλλους παρόχους αυτό ονομάζεται «Reverse DNS», «rDNS» ή «PTR» στον πίνακα ελέγχου πελάτη· σε ορισμένους πρέπει να το ζητήσετε μέσω ticket. Παντού λειτουργεί με τον ίδιο τρόπο: πρώτα το όνομα προς τη διεύθυνση, μετά η διεύθυνση προς το όνομα.
Σύνοψη
- Συνδέετε ένα όνομα με το VPS σας με μια εγγραφή A (IPv4) και μια εγγραφή AAAA (IPv6), στο DNS του domain σας.
- Δώστε στον server δικό του όνομα (
web1.example.com) και σε κάθε υπηρεσία δικό της subdomain· τα CNAME προς το όνομα του server διευκολύνουν τις μεταφορές. - Μειώστε το TTL πριν από μια μεταφορά και ελέγξτε με το
digσε έναν δημόσιο resolver. - Μην ορίζετε εγγραφή AAAA αν η υπηρεσία δεν λειτουργεί πραγματικά μέσω IPv6· δοκιμάστε το IPv6 ξεχωριστά.
- Το PTR το ορίζετε στον πάροχο του VPS σας· όνομα και διεύθυνση πρέπει να ταιριάζουν αμφίδρομα (FCrDNS), για IPv4 και IPv6.
Κουίζ
Άσκηση
Άσκηση Z7.1: A, AAAA και PTR του server σας. Δώστε στον server σας δικό του όνομα (για παράδειγμα web1.<jouwdomein>), δημιουργήστε τις εγγραφές A και AAAA και ορίστε το reverse DNS στον πάροχό σας. Συμπληρώστε στην άσκηση το όνομα του server σας, τη διεύθυνση IPv4 και τη διεύθυνση IPv6, καθώς και το όνομα που λάβατε με το dig -x για τις δύο διευθύνσεις. Το πρόγραμμα ελέγχει σε πραγματικό χρόνο τις εγγραφές A και AAAA και το PTR των δύο διευθύνσεων και επιβεβαιώνει ότι όλα ταιριάζουν αμφίδρομα. Αν ο server σας δεν έχει IPv6, ελέγχει μόνο το IPv4 και το επισημαίνει με πορτοκαλί χρώμα.
Για περαιτέρω μελέτη
- Αποστολή email από το VPS σας και ρύθμιση reverse DNS
- IPv6 στη WebOké
- Δωρεάν μάθημα DNS 3.1: A- και AAAA-records
- Δωρεάν μάθημα DNS 4.6: Reverse DNS (PTR): από τον αριθμό πίσω στο όνομα
- Δωρεάν μάθημα DNS 5.2: CAA: ποιος επιτρέπεται να εκδίδει πιστοποιητικά;
- Δωρεάν μάθημα DNS 8.2: DNS opvragen met dig en nslookup
