Δρομολόγηση μεταξύ ιδιωτικών LAN πριν προσθέσετε άλλο NAT
Επικαλυπτόμενος χώρος διευθύνσεων, μια διαδρομή επιστροφής που λείπει ή ένα αναξιόπιστο τράνζιτ καθορίζουν την επιλογή μεταξύ δρομολόγησης, NAT και τούνελ. Ελέγξτε αυτά τα τρία πριν επεξεργαστείτε το τείχος προστασίας.
Δύο εσωτερικά τείχη προστασίας, ένα ιδιωτικό τμήμα τράνζιτ και ένα αίτημα να μπορούν λίγοι υπολογιστές σε κάθε LAN να μιλούν με αυτούς της άλλης. Η αντανακλαστική αντίδραση είναι να στηθεί VPN ή να προστεθεί δεύτερο επίπεδο NAT, και οι δύο αντιδράσεις κοστίζουν περισσότερο από όσο αξίζει το πρόβλημα. Η συνηθισμένη δρομολόγηση αρκεί όταν ισχύουν τρεις προϋποθέσεις: οι περιοχές διευθύνσεων δεν επικαλύπτονται, και οι δύο πλευρές μπορούν να επιστρέφουν κίνηση στην άλλη LAN, και το τμήμα τράνζιτ είναι ήδη αρκετά αξιόπιστο για τα δεδομένα. Ελέγξτε αυτά τα τρία πριν σχεδιάσετε οτιδήποτε, γιατί καθένα αλλάζει την απάντηση.
Τρεις προϋποθέσεις που καθορίζουν τον σχεδιασμό
Η πρώτη προϋπόθεση είναι ο χώρος διευθύνσεων. Αν και οι δύο LAN χρησιμοποιούν το ίδιο μπλοκ RFC 1918, η δρομολόγηση δεν μπορεί να τις ξεχωρίσει και η μετάφραση γίνεται αναπόφευκτη αντί προαιρετική. Η δεύτερη είναι μια διαδρομή επιστροφής: μια διαδρομή από το A στο B είναι άχρηστη αν το B δεν ξέρει επίσης πώς να φτάσει στη LAN του A, και η ασύμμετρη γνώση είναι ο συνηθέστερος λόγος που ένας σχεδιασμός με δρομολόγηση πετά σιωπηλά τις απαντήσεις.
Η τρίτη είναι η εμπιστοσύνη. Η δρομολόγηση μετακινεί πακέτα· δεν τα προστατεύει. Ένα ιδιωτικό τμήμα τράνζιτ μέσα σε ένα κτίριο είναι διαφορετική υπόθεση από μια παράδοση σε πάροχο ή έναν σύνδεσμο που διασχίζει ένα κοινόχρηστο backbone πανεπιστημιούπολης. Αν το τμήμα δεν είναι αξιόπιστο, η απάντηση είναι τούνελ μεταξύ των δύο τειχών προστασίας, και το σχέδιο δρομολόγησης παρακάτω ισχύει ακόμη μέσα σε αυτό.
Μόνο όταν και τα τρία δείχνουν προς την ίδια κατεύθυνση κερδίζει ο απλός σχεδιασμός. Όταν ένα από αυτά αποτυγχάνει, διορθώστε ρητά εκείνη την προϋπόθεση αντί να τη συγκαλύψετε με μετάφραση, γιατί το NAT κρύβει την αποτυχία αντί να τη λύνει.
Χτίστε το σχέδιο διαδρομών στο δίκτυο τράνζιτ
Δώστε σε κάθε τείχος προστασίας μια διεύθυνση στο κοινόχρηστο τμήμα και προσθέστε μία συγκεκριμένη διαδρομή για κάθε απομακρυσμένη LAN. Τίποτα άλλο στην υπάρχουσα διαμόρφωση δεν χρειάζεται να μετακινηθεί, και ειδικά η προεπιλεγμένη διαδρομή του διαδικτύου πρέπει να μείνει ακριβώς εκεί που είναι. Η αντικατάσταση μιας προεπιλεγμένης διαδρομής με το γειτονικό τείχος προστασίας θα έστελνε κάθε άσχετο προορισμό μέσα από το τράνζιτ, που είναι πολύ μεγαλύτερη αλλαγή από αυτή που ζητείται. Η τεκμηρίωση του pfSense για στατική δρομολόγηση περιγράφει το ίδιο μοντέλο διαδρομής συν πύλης για εκείνη την πλατφόρμα, και ο αντίστοιχος έλεγχος υπάρχει σε όποιο τείχος προστασίας κι αν τρέχετε.
| Firewall | Remote LAN | Next hop on the transit |
|---|---|---|
| A | 10.40.0.0/24 | 192.0.2.20 |
| B | 10.30.0.0/24 | 192.0.2.10 |
Το τείχος προστασίας A εξυπηρετεί το 10.30.0.0/24 και το τείχος προστασίας B εξυπηρετεί το 10.40.0.0/24, με τις δύο διευθύνσεις τράνζιτ στο 192.0.2.0/24. Κάθε υπολογιστής της LAN κρατά το τοπικό τείχος προστασίας ως πύλη του, άρα η μόνη νέα κατάσταση είναι μία διαδρομή σε κάθε πλευρά. Σε τείχος προστασίας βασισμένο σε Linux το ίδιο σχέδιο μοιάζει έτσι, και η προώθηση πρέπει να είναι ενεργοποιημένη αλλιώς η διαδρομή θα επιλυθεί ενώ το πακέτο θα απορριφθεί.
sysctl -w net.ipv4.ip_forward=1 ip route add 10.40.0.0/24 via 192.0.2.20 dev eth1 ip route get 10.40.0.15 traceroute -n 10.40.0.15
Κρατήστε το φιλτράρισμα χωριστά από τη μετάφραση
Η δρομολόγηση και η πολιτική είναι διαφορετικοί έλεγχοι, και στη δεύτερη αποτυγχάνουν πραγματικά οι περισσότεροι σχεδιασμοί με δρομολόγηση. Να επιτρέπετε τις συγκεκριμένες πηγές, προορισμούς και υπηρεσίες στο όριο εισόδου που τα πακέτα πραγματικά διασχίζουν, και θυμηθείτε ότι μια ετικέτα διασύνδεσης όπως WAN είναι όνομα και όχι δήλωση για την εμπιστοσύνη. Μια θύρα τράνζιτ που μεταφέρει ιδιωτική κίνηση μπορεί να έχει ακόμη ενεργό από προεπιλογή τον αποκλεισμό ιδιωτικών διευθύνσεων.
Μετά κοιτάξτε τη μετάφραση εξόδου πριν συμπεράνετε ότι δεν συμβαίνει NAT. Αυτόματοι κανόνες εξόδου μπορούν να ξαναγράψουν κίνηση που ποτέ δεν προοριζόταν για μετάφραση, και αυτό καταστρέφει τις διευθύνσεις πηγής που η άλλη πλευρά χρειάζεται για τη δική της πολιτική και τα αρχεία της. Επιβεβαιώστε ότι οι επιλεγμένες ροές κρατούν τις αρχικές διευθύνσεις και αφήστε τους κανόνες μετάφρασης διαδικτύου ήσυχους για την κίνηση που τους χρειάζεται ακόμη.
iptables -t nat -S POSTROUTING iptables -t nat -L POSTROUTING -n -v tcpdump -ni eth1 -c 5 host 10.40.0.15
Όταν το NAT είναι η ειλικρινής απάντηση
Η μετάφραση κερδίζει τη θέση της όταν οι περιοχές διευθύνσεων πραγματικά επικαλύπτονται και η αναρίθμηση δεν είναι διαθέσιμη, ή όταν μια πολιτική απαιτεί η μία πλευρά να βλέπει μία διεύθυνση αντί για υποδίκτυο. Σε αυτές τις περιπτώσεις μια σκόπιμη αντιστοίχιση ένα προς ένα ή περιορισμένη σε θύρες είναι σχεδιαστική απόφαση με γνωστές συνέπειες, όχι λύση ανάγκης.
Η συνέπεια που πρέπει να ειπωθεί δυνατά είναι ότι η άλλη πλευρά δεν μπορεί πια να δει ή να φιλτράρει μεμονωμένες πηγές. Τα αρχεία καταγραφής καταρρέουν στη διεύθυνση μετάφρασης, η πολιτική ανά υπολογιστή σταματά να λειτουργεί και η αντιμετώπιση προβλημάτων γίνεται κυνήγι του ποιος εσωτερικός υπολογιστής είχε μια ροή σε δεδομένη στιγμή. Αν τίποτα από αυτά δεν έχει σημασία για την κίνηση που εξετάζετε, το NAT είναι εντάξει.
Όταν το ίδιο το τράνζιτ είναι η λάθος υπόθεση
Αν το κοινόχρηστο τμήμα διασχίζει πάροχο, κοινόχρηστο switch fabric ή οποιαδήποτε διαδρομή όπου ένα τρίτο μέρος θα μπορούσε να διαβάσει την κίνηση, η δρομολόγηση μόνη της δεν είναι πλήρης απάντηση. Ένα τούνελ μεταξύ των δύο τειχών προστασίας σας δίνει εμπιστευτικότητα και έλεγχο ταυτότητας του ομολόγου, και ο πίνακας δρομολόγησης μέσα του είναι ο ίδιος πίνακας που θα γράφατε στο τράνζιτ.
Αποφασίστε το από το ερώτημα εμπιστοσύνης στην πρώτη ενότητα, όχι από μια συνήθεια ότι τα VPN είναι ασφαλέστερα. Ένα τούνελ πάνω από τμήμα που είναι ήδη ιδιωτικό προσθέτει λειτουργικό κόστος και ακόμη έναν τρόπο αποτυχίας χωρίς όφελος, ενώ η δρομολόγηση πάνω από αναξιόπιστο τμήμα ανταλλάσσει την εμπιστευτικότητα με απλότητα που δεν μπορείτε να αντέξετε. Γράψτε ποια από τις τρεις προϋποθέσεις οδήγησε την επιλογή, και ο επόμενος μηχανικός δεν θα χρειαστεί να το ξανασυζητήσει.