Χρήστης MikroTik VPN που φτάνει πολύ μακριά: περιορίστε σε έναν κεντρικό υπολογιστή και μία θύρα
Ένα προφίλ PPP μπορεί να βάλει τη διευθετημένη διεύθυνση σήραγγας σε λίστα διευθύνσεων, και μία αλυσίδα jump μπορεί να επιτρέψει έναν μόνο κεντρικό υπολογιστή και θύρα πριν την απόρριψη.
Η σήραγγα σηκώνεται, η σύνδεση πετυχαίνει και κάθε κεντρικός υπολογιστής στο δίκτυο απαντά. Αυτό δεν είναι χαλασμένο VPN· είναι VPN χωρίς μοντέλο αδειών. Το RouterOS επαληθεύει τον λογαριασμό και μετά δρομολογεί τα πακέτα του όπως όλων των άλλων, άρα το τείχος προστασίας πρέπει να παρέχει το όριο. Το να προσθέσετε αυτό το όριο χωρίς να σπάσετε τη σύνδεση είναι όλη η δουλειά.
Η επαλήθευση τελειώνει εκεί που αρχίζει η άδεια
Μόλις σηκωθεί μια συνεδρία PPP, τα πακέτα του πελάτη μπαίνουν στην αλυσίδα forward όπως η κίνηση από οποιαδήποτε άλλη διεπαφή. Αν η πολιτική forward του δρομολογητή είναι επιτρεπτική, ο σύμβουλος κληρονομεί αυτή την επιτρεπτικότητα κατά τη σύνδεση. Ο λογαριασμός δεν έφερε ποτέ εύρος, άρα δεν υπάρχει τίποτα στον λογαριασμό να αλλάξει. Το σύνολο κανόνων γράφτηκε για υπαλλήλους και η νέα συνεδρία απλώς εντάχθηκε σε αυτό.
Ελέγξτε σε ποια διαδρομή αναφέρεται το αίτημα πριν γράψετε οτιδήποτε. Η κίνηση προς κεντρικούς υπολογιστές πίσω από τον δρομολογητή περνά από το forward, ενώ η κίνηση προς τον ίδιο τον δρομολογητή, μαζί με το winbox και το SSH, περνά από το input. Ένα εύρος που καλύπτει μόνο το forward αφήνει τη συσκευή ανοιχτή στον ίδιο πελάτη.
Και οι δύο αλυσίδες χρειάζονται απόφαση, ακόμα κι αν η απόφαση είναι να μείνει κλειστό το input. Αυτή η επιλογή ανήκει στο αίτημα πρόσβασης, όχι σε μια υστερόσκέψη.
Συνδέστε τη συνεδρία σε μια ονομασμένη λίστα
Ένα προφίλ PPP μπορεί να βάλει τη διεύθυνση που παραχωρεί σε μια ονομασμένη λίστα διευθύνσεων όταν ξεκινά η συνεδρία. Αυτό μετατρέπει μια παροδική διεύθυνση σήραγγας σε κάτι που το τείχος προστασίας μπορεί να ταιριάσει με όνομα, και η εγγραφή εξαφανίζεται όταν τελειώσει η συνεδρία. Ο λογαριασμός τότε κληρονομεί το εύρος από το προφίλ του αντί από κανόνα που καρφιτσώνει τη διεύθυνση.
Δημιουργήστε πρώτα το προφίλ και μετά δεσμεύστε το secret σε αυτό ρητά. Ένα secret που δείχνει ακόμα στο προεπιλεγμένο προφίλ αναπαράγει το αρχικό πρόβλημα.
Ονομάστε το προφίλ και τη λίστα ώστε οι δουλειές τους να είναι προφανείς και σχολιάστε και τα δύο με την αναφορά του αιτήματος. Ένα προφίλ μπορεί να εξυπηρετήσει πολλά άτομα με το ίδιο εύρος, ενώ η λίστα εξακολουθεί να αναγνωρίζει κάθε ζωντανή συνεδρία. Αυτό είναι φθηνότερο στην ανασκόπηση από έναν κανόνα ανά άτομο.
/ppp profile add name=scoped-consultant remote-address=consultant-pool address-list=vpn-scoped-clients
/ppp secret add name=consultant password=... service=ovpn profile=scoped-consultant
Καταγράψτε την επιτρεπόμενη υπηρεσία σε μία λίστα
Βάλτε τον επιτρεπόμενο διακομιστή στη δική του λίστα διευθύνσεων αντί να ενσωματώσετε τη διεύθυνση σε κανόνα φίλτρου. Η λίστα μπορεί να ελεγχθεί, να επεκταθεί και να σχολιαστεί, και ο κανόνας που τη χρησιμοποιεί δεν αλλάζει όταν μετακινείται ο διακομιστής. Μία μόνο εγγραφή φαίνεται υπερβολή μέχρι να φτάσει ο δεύτερος κεντρικός υπολογιστής, κάτι που συνήθως γίνεται.
Ταιριάξτε λίστα όταν η διεύθυνση είναι δυναμική ή κατανεμημένη, και ταιριάξτε τη διεύθυνση απευθείας όταν είναι δεσμευμένη και σταθερή. Οποιαδήποτε επιλογή διαβάζεται καθαρά αν το σχόλιο ονομάζει την υπηρεσία και τον ιδιοκτήτη.
Περιορίστε το πρωτόκολλο και τη θύρα μαζί με τον κεντρικό υπολογιστή. Ένα accept για κεντρικό υπολογιστή χωρίς περιορισμό θύρας ανοίγει κάθε υπηρεσία που εκτελεί, κάτι ευρύτερο απ' ό,τι σκοπεύουν τα περισσότερα αιτήματα πρόσβασης. Η θύρα είναι μέρος της άδειας, όχι λεπτομέρεια που προστίθεται αργότερα.
/ip firewall address-list add list=vpn-targets address=10.0.0.10 comment="consultant RDP target"
Ταξινομήστε το jump πριν από κάθε ευρύ accept
Ένας κανόνας jump στέλνει την προωθούμενη κίνηση από τη στενή λίστα σε μια ιδιωτική αλυσίδα όπου ολόκληρη η πολιτική χωρά σε τρεις γραμμές. Ο πρώτος κανόνας δέχεται τον επιτρεπόμενο προορισμό και τη θύρα, και ο τελευταίος απορρίπτει όλα τα άλλα. Το jump πρέπει να βρίσκεται πάνω από κάθε ευρύ accept στο forward, γιατί ένα προγενέστερο accept σημαίνει ότι το jump δεν εκτελείται ποτέ. Κρατήστε το accept για established και related πριν από το jump ώστε η κίνηση επιστροφής να συνεχίσει να ρέει.
Ελέγξτε ότι κανένας κανόνας fasttrack δεν μπορεί να περάσει αυτή την κίνηση πέρα από τη στενή αλυσίδα. Το fasttrack παρακάμπτει το υπόλοιπο μονοπάτι φιλτραρίσματος, και μια στενή συνεδρία που γίνεται fasttrack δεν είναι καθόλου στενή.
Επαναλάβετε την απόφαση για την αλυσίδα input αν οι υπηρεσίες του ίδιου του δρομολογητή πρέπει να είναι απρόσιτες. Ένα εύρος που μπλοκάρει την προωθούμενη κίνηση και αφήνει το winbox ανοιχτό είναι μόνο μισοτελειωμένο.
/ip firewall filter
add chain=forward action=jump jump-target=scoped-vpn src-address-list=vpn-scoped-clients
add chain=scoped-vpn action=accept protocol=tcp dst-address-list=vpn-targets dst-port=3389
add chain=scoped-vpn action=drop
Επαληθεύστε με μετρητές και ιδιότητα μέλους λίστας
Από τον πελάτη, δοκιμάστε την επιτρεπόμενη υπηρεσία και μία που πρέπει να αποτύχει, και μετά διαβάστε τα στατιστικά κανόνων στον δρομολογητή. Οι μετρητές accept και drop δείχνουν ποια διαδρομή πήρε κάθε πακέτο, κάτι που ο πελάτης δεν βλέπει. Επιβεβαιώστε επίσης ότι η διεύθυνση της ζωντανής συνεδρίας εμφανίστηκε στη στενή λίστα.
Μια κενή λίστα σημαίνει ότι ο λογαριασμός είναι σε άλλο προφίλ ή ότι το προφίλ έχασε τη ρύθμιση λίστας διευθύνσεων. Ένας μετρητής drop που ανεβαίνει με αποτυχημένη επιτρεπόμενη υπηρεσία σημαίνει ότι ο προορισμός ή η θύρα δεν ταιριάζουν με αυτό που στέλνει ο πελάτης.
Δοκιμάστε την ίδια υπηρεσία με όνομα και με διεύθυνση πριν καταλήξετε σε κάτι. Μια αποτυχία επίλυσης ονόματος μοιάζει ακριβώς με φραγμένη θύρα από την πλευρά του πελάτη. Μετά καταγράψτε το προφίλ, τις δύο λίστες και τη μοναδική επιτρεπόμενη υπηρεσία στο αίτημα πρόσβασης ώστε η επόμενη ανασκόπηση να συγκρίνει αντί να ανακατασκευάζει.
/ip firewall filter print stats where chain=scoped-vpn
/ip firewall address-list print where list=vpn-scoped-clients