Ζώνες Shorewall για τις δύο διαδρομές πακέτων OpenVPN
Διαχωρίστε τη κρυπτογραφημένη μεταφορά OpenVPN από την αποκρυπτογραφημένη κίνηση πελατών, δώστε στο τούνελ τη δική του ζώνη και επιτρέψτε μόνο την υπηρεσία που χρειάζεται ο πελάτης.
Δύο ροές πακέτων διασχίζουν μια πύλη Shorewall που τερματίζει το OpenVPN, και μόνο η μία από αυτές είναι κρυπτογραφημένη. Η πρώτη είναι η μεταφορά του πελάτη προς τον ακροατή VPN στη διεπαφή που βλέπει στο διαδίκτυο. Η δεύτερη είναι το αποκρυπτογραφημένο αίτημα που φεύγει από τη διεπαφή του τούνελ προς έναν διακομιστή γραφείου ή μια υπηρεσία στην πύλη. Σχεδιάστε και τις δύο πριν επεξεργαστείτε την πολιτική, γιατί ένας κανόνας που ικανοποιεί την πρώτη δεν κάνει τίποτα για τη δεύτερη.
Σχεδιάστε τις δύο ροές πριν επεξεργαστείτε την πολιτική
Γράψτε τις ροές ως γραμμές με πηγή, προορισμό, πρωτόκολλο και θύρα. Στην εξωτερική διαδρομή, η πηγή είναι η δημόσια διεύθυνση του πελάτη και ο προορισμός είναι η θύρα ακροατή της πύλης· το Shorewall το αντιμετωπίζει ως κίνηση από το διαδίκτυο προς το τείχος προστασίας. Στην εσωτερική διαδρομή, η πηγή είναι το εύρος διευθύνσεων του τούνελ και ο προορισμός η εγκεκριμένη υπηρεσία. Οι δύο γραμμές έχουν διαφορετικούς ιδιοκτήτες ακόμη και όταν ένας διαχειριστής συντηρεί και τις δύο.
| Flow | Zone relationship | What to constrain |
|---|---|---|
| Encrypted OpenVPN transport | Internet to the firewall host | The listener's actual protocol and port |
| Decrypted request to a LAN service | VPN clients to the LAN zone | One approved server and service |
| Decrypted request to the gateway | VPN clients to the firewall host | Only the local services required |
| Request to another VPN client | VPN clients to VPN clients | Denied unless deliberately required |
Προσθέστε γραμμή μόνο αν το αίτημα τερματίζεται στην ίδια την πύλη, όπως πρόσβαση στον επιλυτή ή στη διαχείριση. Μια υπηρεσία στον κεντρικό υπολογιστή ακολουθεί την πολιτική εισόδου του κεντρικού υπολογιστή, όχι τη διαδρομή προώθησης. Η ανάμειξη των δύο είναι ο τρόπος με τον οποίο ένας στενός κανόνας τούνελ εκθέτει μια διεπαφή διαχείρισης.
Αναθέστε τη ζώνη του τούνελ και το εύρος της διεπαφής
Η ζώνη του ταξιδιώτη δηλώνεται στο /etc/shorewall/zones, η διεπαφή του τούνελ προσαρτάται στο /etc/shorewall/interfaces και η εξωτερική σύνδεση περιγράφεται στο /etc/shorewall/tunnels. Προσαρμοστείτε στη σύνταξη της εγκατεστημένης έκδοσης, γιατί η σειρά στηλών και τα ονόματα επιλογών άλλαξαν μεταξύ κύριων εκδόσεων. Η θύρα του παραδείγματος στον οδηγό δεν είναι λόγος να επιτρέψετε θύρα διαφορετική από αυτή στην οποία ακούει πραγματικά ο δαίμονας. Τα TCP και UDP δεν είναι εναλλάξιμα μόνο επειδή συμπίπτουν οι αριθμοί.
Ο οδηγός ομαδοποιεί τις διεπαφές με tun+. Σε κεντρικό υπολογιστή με περισσότερα από ένα τούνελ, αυτός ο χαρακτήρας μπαλαντέρ μπορεί να τοποθετήσει ένα δεύτερο VPN διαφορετικού επιπέδου εμπιστοσύνης στην ίδια ζώνη. Ελέγξτε το εύρος έναντι των διεπαφών που υπάρχουν πραγματικά και κρατήστε την ονομασία στον κύκλο ζωής του διαχειριστή συνδέσεων αντί να επεξεργάζεστε ονόματα διεπαφών με το χέρι.
Ο ιστορικός οδηγός περιέχει πολύ παλαιότερα δείγματα διαμόρφωσης OpenVPN και οι συμβουλές κρυπτογράφησης δεν πρέπει να αντιγραφούν σε τρέχουσα εγκατάσταση. Δανειστείτε αντ’ αυτού το μοντέλο ζωνών και ροών. Πάρτε τη κρυπτογραφική βάση από τη συντηρούμενη πολιτική OpenVPN της πύλης.
Επιτρέψτε μόνο τη διαδρομή που ταξινομήσατε
Μια ευρεία αποδοχή από τη ζώνη VPN προς το LAN είναι αρχικό διάγραμμα, όχι ολοκληρωμένη πολιτική. Γράψτε την επιτρεπόμενη πηγή πελάτη, την πραγματική διεύθυνση υπηρεσίας, το πρωτόκολλο και τη θύρα. Έπειτα διαβάστε τους κανόνες πάνω από αυτήν και την προεπιλογή της ζώνης, γιατί μια στενή προσθήκη δεν ακυρώνει μια ευρεία άδεια που ταιριάζει ήδη. Η κίνηση προς τον κεντρικό υπολογιστή της πύλης είναι ξεχωριστή σχέση από την κίνηση που προωθείται μέσω αυτού.
Η κίνηση μεταξύ πελατών χρειάζεται δική της απόφαση. Το client-to-client του OpenVPN και το routeback του Shorewall επηρεάζουν και τα δύο αν οι πελάτες μπορούν να φτάνουν ο ένας τον άλλον, και κανένα δεν πρέπει να ενεργοποιηθεί μόνο για να δουλέψει μια εφαρμογή LAN. Αποφασίστε πού επιβάλλεται η απομόνωση πριν τη δοκιμάσετε.
Κρατήστε τη διαδρομή απάντησης στο ίδιο σχέδιο. Η υπηρεσία ή ο δρομολογητής της πρέπει να ξέρει πώς να επιστρέφει την κίνηση στο εύρος του τούνελ, ή ο σχεδιασμός πρέπει να μεταφράζει την πηγή σκόπιμα και εντός του προβλεπόμενου εύρους.
Επικυρώστε και μετά αποδείξτε και τις δύο διαδρομές
Επικυρώστε τη διαμόρφωση πριν επανεκκινήσετε οτιδήποτε και κρατήστε ανοιχτή μια ανεξάρτητη διοικητική συνεδρία σε περίπτωση που η νέα πολιτική είναι λάθος.
shorewall check
Μετά από έναν καθαρό έλεγχο, εφαρμόστε τη διαμόρφωση και διαβάστε τι φόρτωσε το Shorewall. Αυτές οι αναγνώσεις περιγράφουν την πολιτική που εκτελείται, όχι αυτό που φαίνεται να λέει ένα αρχείο.
shorewall show zones
ip route get 192.168.10.20
Δοκιμάστε ένα νέο επιτρεπόμενο αίτημα και ένα σκόπιμα απορριφθέν αίτημα από τον ίδιο πελάτη. Μια επιτυχής χειραψία OpenVPN αποδεικνύει μόνο την εξωτερική ανταλλαγή· η επιτρεπόμενη υπηρεσία και ο απορριφθείς πόρος αποδεικνύουν την εσωτερική πολιτική που σκοπεύατε. Έπειτα επανασυνδέστε τον πελάτη και επαναλάβετε, γιατί το όνομα και η διεύθυνση της διεπαφής του τούνελ μπορούν να αλλάξουν μεταξύ συνεδριών. Αν το αποτέλεσμα διαφέρει, διορθώστε το εύρος της ζώνης αντί να διευρύνετε τον κανόνα.