Το προφίλ μας στο Google Plus
5

Το OpenVPN στο pfSense

Ο θαυμασμός μας για το pfSense δεν κρύβεται, το ίδιο και η αγάπη μας για το OpenVPN. Ο οικιακός router του γράφοντα εδώ και μήνες έχει αντικατασταθεί από ένα box που τρέχει pfSense. Κάτι που, αδικαιολόγητα, δεν είχε ρυθμιστεί στο εν λόγω box, ήταν το OpenVPN. Πριν λίγες μέρες ο γράφων βρήκε επιτέλους το χρόνο και διευθέτησε τη σοβαρή αυτή εκκρεμότητα…

Για το pfSense δεν έχουμε να πούμε πολλά. Αν το αγνοείτε (λέμε τώρα) ή κάτι έχετε ακούσει γι’ αυτό αλλά δεν έχετε ακόμα βρει το χρόνο για να το δοκιμάσετε, σας προτρέπουμε να παρακολουθήσετε με την ησυχία σας το deltaCast s01e07. Εξάλλου, σε σχετικό άρθρο που δημοσιεύουμε στο deltaHacker 029, δείχνουμε πώς ρυθμίζουμε το pfSense ώστε να χρησιμοποιεί δύο ή περισσότερες συνδέσεις προς το Internet, ταυτόχρονα. Πρόκειται για την τεχνική του multi-WAN και, σωστά το σκεφτήκατε, δεν έχει καμία απολύτως σχέση με το θέμα του παρόντος άρθρου. Αν όμως αυτή η παρενθετική αναφορά έχει μία –έστω πολύ μικρή– πιθανότητα να κεντρίσει το ενδιαφέρον σας για το pfSense, δεν πειράζει, ας χαρακτηριστούμε ως φλύαροι ;)

Ένα από τα πολλά χαρακτηριστικά του pfSense που το κάνουν να ξεχωρίζει –και μάλιστα αμέσως μετά τη βασική του εγκατάσταση–, είναι ότι συνοδεύεται από το OpenVPN. Έχουμε καλύψει το OpenVPN αρκετές φορές στο παρελθόν, τόσο στο περιοδικό όσο και στο site. Για να μην επαναλαμβανόμαστε, θα πούμε εν τάχει ότι από τη στιγμή που στήνουμε έναν OpenVPN server σε κάποιο box/VM/VPS, τότε είμαστε σε θέση…

  • να συνδεόμαστε στον OpenVPN server μέσω ενός κρυπτογραφημένου καναλιού επικοινωνίας, ακόμη κι όταν βρισκόμαστε σε ένα δίκτυο διαφορετικό από εκείνο του server
  • να αποκτούμε πρόσβαση στο τοπικό δίκτυο όπου βρίσκεται ο OpenVPN server, ακόμη κι αν το δίκτυο είναι κάπου στην Καλαμαριά κι εμείς καθόμαστε με το laptop μας έξω από το Μουσείο Ιστορίας της Ulan Bator, στη Μογγολία
  • να σερφάρουμε με ασφάλεια στo web ή/και να χρησιμοποιούμε οποιαδήποτε ιντερνετική υπηρεσία, ακόμη κι αν έχουμε βγει online από ένα ανοικτό ασύρματο δίκτυο στην πλατεία κι άνετα θα στοιχηματίζαμε ότι, δύο παγκάκια παραπέρα, ο νεαρός που εδώ και ώρα είναι σκυμμένος πάνω από το laptop του και πληκτρολογεί μανιωδώς, τρέχει Kali Linux.

Τώρα, σε περίπτωση που θέλετε να στήσετε τον δικό σας OpenVPN server σε κάποιο box/VM/VPS, θέλουμε να πιστεύουμε ότι αυτό το άρθρο θα σας φανεί χρήσιμο. Πάντως μια φυσική, θα λέγαμε, κατοικία για έναν OpenVPN server, είναι στο box ή στη συσκευή που εκτελεί χρέη router για το τοπικό μας δίκτυο. Για τη συνέχεια, υποθέτουμε κατ’ αρχάς ότι έχετε ήδη εγκατεστημένο και ρυθμισμένο το pfSense για το δίκτυό σας. Σκέφτεστε μάλιστα ότι είναι πραγματικά κρίμα που το OpenVPN είναι ακόμη ανενεργό. Αν μη τι άλλο, ρυθμίζοντάς το θα σερφάρετε στο web με απόλυτη ασφάλεια όταν είστε εκτός τοπικού δικτύου, χωρίς να νοιάζεστε για το τι γίνεται στο ασύρματο δίκτυο της καφετέριας, της πλατείας, του αεροδρομίου κ.ο.κ. Ελάτε λοιπόν να δούμε, αναλυτικά και βήμα προς βήμα, πώς ρυθμίζουμε το OpenVPN στο pfSense, ώστε να λειτουργεί ως remote access server.

Ο οικιακός μας router είναι ένα box που τρέχει την πλέον πρόσφατη, για τη στιγμή που πληκτρολογούνται αυτές οι γραμμές, 64μπιτη εκδοχή του pfSense.


Αρχή Πιστοποίησης και κλειδιά
Ρύθμιση OpenVPN server
Δημιουργία πιστοποιητικού πελάτη
Εξαγωγή πιστοποιητικού πελάτη
Έλεγχοι ορθής λειτουργίας

Αρχή Πιστοποίησης και κλειδιά
Η μέθοδος πιστοποίησης των πελατών (clients) που θα χρησιμοποιεί ο OpenVPN server, θα βασίζεται στο πρωτόκολλο SSL/TLS και θα επιτυγχάνεται παρουσιάζοντας τα κατάλληλα πιστοποιητικά (certificates) που πρέπει να διαθέτουν όλοι οι εμπλεκόμενοι, δηλαδή ο server και οι clients. Τα εν λόγω πιστοποιητικά υπογράφονται από το ιδιωτικό κλειδί (ή απλά κλειδί) της Αρχής Πιστοποίησης (Certificate Authority ή απλά CA), και πρώτο μας μέλημα είναι να την εγκαθιδρύσουμε.

Από τον browser της προτίμησής μας συνδεόμαστε στο web panel του pfSense, αμέσως δίνουμε System –> Cert Manager και πηγαίνουμε στο πρώτο tab από αριστερά, ονόματι CAs. Κάνουμε ένα κλικ στο εικονίδιο με το “συν”. Στη νέα σελίδα που εμφανίζεται, στη θυρίδα Descriptive name πληκτρολογούμε μια περιγραφή για την Αρχή Πιστοποίησης. Ακριβώς από κάτω, φροντίζουμε ώστε να ισχύει Method = Create an internal Certificate Authority. Τα περιεχόμενα της σελίδας θ’ αλλάξουν, και τώρα εστιάζουμε την προσοχή μας σε ό,τι βρίσκεται κάτω από την περιγραφή Internal Certificate Authority. Δείτε το ακόλουθο screenshot για τις επιλογές που εμείς κάναμε.

Οι επιλογές μας πριν από τη δημιουργία της Αρχής Πιστοποίησης. Σημειώστε ότι στην ενότητα Distinguished name μπορείτε να πληκτρολογήσετε ό,τι θέλετε. Καλό είναι, βέβαια, ό,τι δώσετε εκεί να έχει κάποια σχέση με το setup σας.

Για τη δημιουργία της CA αρκεί ένα κλικ στο κουμπάκι Save.

Η Αρχή Πιστοποίησης είναι έτοιμη. Με το ιδιωτικό της κλειδί (ή απλά κλειδί) υπογράφονται το δημόσιο κλειδί ή αλλιώς πιστοποιητικό του OpenVPN server, καθώς και τα πιστοποιητικά όλων των πελατών του.

Παραμένουμε στον Certificate Authority Manager του pfSense αλλά πηγαίνουμε ένα tab δεξιά, στο Certificates. Αν για τη σύνδεση στο web panel του pfSense χρησιμοποιούμε HTTPS, τώρα θα βλέπουμε τουλάχιστον ένα (self-signed) πιστοποιητικό. Δημιουργούμε κι ένα για τον OpenVPN server, ξεκινώντας με κλικ στο εικονίδιο με το “συν” (κάτω δεξιά).

Χρειαζόμαστε ένα πιστοποιητικό για τον OpenVPN server, το οποίο, παρεμπιπτόντως, θα υπογραφεί από το ιδιωτικό κλειδί της CA που εγκαθιδρύσαμε πριν λίγο. Η δημιουργία του νέου πιστοποιητικού γίνεται από την καρτέλα ονόματι Certificates.

Κατά τη δημιουργία του νέου πιστοποιητικού είναι σημαντικό να θέσουμε Method = Create an internal Certificate και στην ενότητα Internal Certificate, λίγο πιο κάτω, να επιλέξουμε τη σωστή τιμή για την παράμετρο Certificate authority (για εμάς, η τιμή ήταν η “VPNsRUS”). Επίσης, πρέπει οπωσδήποτε να ισχύει Certificate Type = Server Certificate και οι τιμές για τις παραμέτρους Key length και Digest Algorithm να ‘ναι ίδιες μ’ εκείνες που θέσαμε στις ομώνυμες παραμέτρους πριν λίγο, όταν φτιάχναμε τη CA. Δείτε και το ακόλουθο screenshot.

Δημιουργία πιστοποιητικού για τον OpenVPN server. Χρειάζεται προσοχή κατά την ανάθεση τιμών στις παραμέτρους Method, Certificate authority, Certificate Type, Key length και Digest Algorithm.

Αφού κάνουμε τις απαραίτητες αναθέσεις τιμών και συμπληρώσουμε όποια πεδία είναι να συμπληρώσουμε, δημιουργούμε το πιστοποιητικό του server μας μ’ ένα κλικ στο κουμπάκι Save.

Το πιστοποιητικό για τον OpenVPN server είναι έτοιμο και υπογεγραμμένο από την Αρχή Πιστοποίησης ονόματι VPNsRUS.

[ λίστα με τις ενότητες ]

Ρύθμιση OpenVPN server
Παραμένοντας στο web panel του pfSense, από το πάνω οριζόντιο μενού επιλέγουμε VPN –> OpenVPN. Στη νέα σελίδα που εμφανίζεται, κάνουμε ένα κλικ στην καρτέλα με όνομα Wizards. Αμέσως ξεκινά ο οδηγός ρύθμισης νέου OpenVPN server. Έχετε υπόψη ότι η χρήση του οδηγού δεν είναι υποχρεωτική, αφού κάλλιστα μπορούμε να προχωρήσουμε σε χειροκίνητη ρύθμιση νέου server. Κάτι τέτοιο πάντως δεν το προτείνουμε — εκτός βέβαια κι αν έχετε προηγούμενη εμπειρία με το OpenVPN και ξέρετε πολύ καλά τι κάνετε. Για τη συνέχεια, λοιπόν, προχωράμε με τον οδηγό. Δείτε τα ακόλουθα screenshots κι οπωσδήποτε διαβάστε τις αντίστοιχες περιγραφές.

Στην πρώτη ερώτηση του οδηγού δημιουργίας νέου OpenVPN server, αφήνουμε την προεπιλεγμένη απάντηση. Φροντίζουμε, μ' άλλα λόγια, ώστε να ισχύει Type of Server = Local User Access.

Επιλέγουμε την κατάλληλη Αρχή Πιστοποίσης (CA) για την υποδομή δημοσίου κλειδιού (Public Key Infrastructure, PKI) στην οποία βασίζεται ο server μας. Στο παράδειγμά μας έχουμε μία CA: Αυτή που εγκαθιδρύσαμε προηγουμένως κι ονομάσαμε VPNsRUS.

Ποιο είναι το πιστοποιητικό του OpenVPN server που τώρα ρυθμίζουμε; Είναι αυτό που φτιάξαμε πριν λίγο κι ονομάσαμε 'oVPN pfSense @ Home'.

Φτάνουμε στις επιλογές που αφορούν στην ίδια τη λειτουργία του server. Από ποιο network interface του pfSense θα περιμένει αιτήσεις πελατών; Για το δικό μας setup το εν λόγω interface είναι το OPT3. Στη δική σας περίπτωση κατά πάσα πιθανότητα θα 'ναι το WAN. Αν πάντως *δεν* είναι, τότε μάλλον δεν χρειαζόσαστε εμάς για να σας το υποδείξουμε :) Το προτεινόμενο πρωτόκολλο μεταφοράς, εξάλλου, είναι το UDP, ενώ το προκαθορισμένο port είναι το 1194. Στο πεδίο Description καλό είναι να πληκτρολογήσετε μια χαρακτηριστική περιγραφή για τον OpenVPN server.

Τις επιλογές κρυπτογράφησης μπορείτε να τις έχετε όπως φαίνονται στο screenshot. Ιδιαίτερη προσοχή χρειάζεται στις παραμέτρους Diffie-Hellman (DH Parameters Length), όπου το μήκος των κλειδιών *δεν* πρέπει να είναι 1024 αλλά τουλάχιστον 2048bit.

Ποιο είναι το τοπικό δίκτυο στο οποίο ανήκουν οι clients του OpenVPN server; Καλό είναι να μην ορίσουμε κάποιο κοινό private network εδώ, όπως, π.χ., είναι το 192.168.0.0/24, αφού τότε θα 'ναι πολύ πιθανό να 'χουμε προβλήματα σύνδεσης με τον server. Εμείς, π.χ., ορίσαμε το δίκτυο 10.20.30.0/24 (βλ. παράμετρο Tunnel Network). Άλλο ερώτημα: Σε ποιο τοπικό δίκτυο θα έχουν πρόσβαση οι clients *αφού* συνδεθούν στον server; Μιλάμε ουσιαστικά για το δίκτυο πίσω από το pfSense, το οποίο πιθανότατα είναι το δίκτυο πίσω από το LAN interface του router. Για το δικό μας setup, το εν λόγω δίκτυο ήταν το 10.10.10.0/24 (βλ. παράμετρο Local Network). Και μια σημαντική σημείωση: Φροντίστε ώστε η επιλογή Redirect Gateway να 'ναι οπωσδήποτε τσεκαρισμένη, διαφορετικά οι clients δεν θα βγαίνουν στο Internet μέσω του ασφαλούς καναλιού που δημιουργεί ο OpenVPN server!

Για ν' αποφύγουμε το φαινόμενο των DNS leaks, ο OpenVPN server αναλαμβάνει και χρέη DNS για τους clients. Μπορείτε να υποδείξετε εσείς τη διεύθυνση ή τις διευθύνσεις IP των DNS servers που θέλετε να χρησιμοποιούν οι πελάτες. Κλασικές επιλογές αποτελούν οι DNS servers της Google (8.8.8.8, 8.8.4.4), καθώς κι εκείνοι της OpenDNS (208.67.222.222, 208.67.220.220). Εναλλακτικά, μια και έχουμε το pfSense εδώ, είναι πολύ πιθανό να χρησιμοποιούμε τον DNS forwarder που το συνοδεύει. Μπορούμε, λοιπόν, ως DNS server για τους OpenVPN clients να ορίσουμε τη διεύθυνση IP του forwarder, αυτή δηλαδή που χρησιμοποιούν τα μηχανήματα και οι συσκευές πίσω από το pfSense. Για το δικό μας setup, η εν λόγω διεύθυνση είναι η 10.10.10.254.

Προς το τέλος του οδηγού, καλό είναι να τον αφήσουμε να προσθέσει αυτόματα δύο κανόνες στο firewall, οι οποίοι είναι απαραίτητοι για την απρόσκοπτη λειτουργία του OpenVPN. Ο πρώτος κανόνας επιτρέπει στους clients να φτάνουν στον server. Ο δεύτερος κανόνας καθιστά δυνατή την κυκλοφορία πακέτων των πελατών μέσω του κρυπτογραφημένου καναλιού (tunnel) που δημιουργεί ο OpenVPN server.

Στο τελευταίο βήμα, ο οδηγός μάς ενημερώνει ότι έχει ολοκληρώσει τη διαμόρφωση του νέου OpenVPN server. Για την ενεργοποίησή του αρκεί ένα κλικ στο κουμπάκι Finish.

Ιδού η λίστα με τους OpenVPN servers του pfSense. Υπάρχει ακριβώς ένας: Αυτός που μόλις ρυθμίσαμε!

Ο OpenVPN server που μόλις στήσαμε φιγουράρει στη λίστα με τις ενεργές υπηρεσίες του pfSense.

λίστα με τις ενότητες ]

Δημιουργία πιστοποιητικού πελάτη
Τώρα που έχουμε τον OpenVPN server ρυθμισμένο κι ενεργοποιημένο, μπορούμε να φτιάξουμε ένα πιστοποιητικό για τον πρώτο του πελάτη. Πρώτα όμως ας εγκαταστήσουμε στο pfSense ένα βολικό εργαλείο που διευκολύνει σημαντικά την εξαγωγή (export) πακέτων ρυθμίσεων, μαζί με τα απαραίτητα πιστοποιητικά και κλειδιά, για τους πελάτες του OpenVPN. Στο web panel του pfSense ακολουθούμε τη διαδρομή System –> Packages –> Available Packages. Από τη λίστα με τα διαθέσιμα πακέτα επιλέγουμε κι εγκαθιστούμε το OpenVPN Client Export Utility.

Χάρη στο OpenVPN Client Export Utility που διατίθεται για το pfSense, μπορούμε εύκολα να εξάγουμε πακέτα ρυθμίσεων για διάφορους OpenVPN clients (για Windows, OS X, Linux, Android, iOS κ.ά.).

Επικυρώνουμε την εγκατάσταση του OpenVPN Client Export Utility.

Η εγκατάσταση του OpenVPN Client Export Utility μόλις ολοκληρώθηκε επιτυχώς.

Πάμε τώρα να φτιάξουμε κι εκείνο το πιστοποιητικό που λέγαμε, για τον πρώτο πελάτη. Πάντα από το web panel του pfSense, επιλέγουμε System –> Cert Manager –> Certificates και κάνουμε κλικ στο κουμπάκι με το “συν”, κάτω δεξιά. Δείτε τα δύο screenshots που ακολουθούν.

Κατά τη δημιουργία πιστοποιητικού για έναν client, ιδιαίτερη προσοχή χρειάζεται στην ανάθεση τιμών για τις παραμέτρους Method, Certificate authority και Certificate Type. Για το δικό μας setup, το Certificate authority είναι το VPNsRUS. Για τις δύο άλλες παραμέτρους, σε κάθε περίπτωση πρέπει να είναι Method = Create an internal Certificate και Certificate Type = User Certificate. Προσέξτε λίγο και τις τιμές για τις παραμέτρους Key length και Digest Algorithm: Στο πλαίσιο του παρόντος άρθρου, τους αναθέτουμε πάντα τις τιμές 4096 και SHA512 αντίστοιχα.

Το πιστοποιητικό για τον πρώτο μας πελάτη είναι έτοιμο!

[ λίστα με τις ενότητες ]

Εξαγωγή πιστοποιητικού πελάτη
Έχουμε έτοιμο το πιστοποιητικό του πρώτου πελάτη και τώρα θέλουμε να το εξαγάγουμε, μαζί με το κατάλληλο configuration file για το αντίστοιχο πρόγραμμα σύνδεσης που διαθέτει ο εν λόγω πελάτης. Πριν την εξαγωγή –και για μία φορά μόνο–, είναι απαραίτητο να κάνουμε μια ελαφρά τροποποίηση στον OpenVPN server. Εξ ορισμού, η ταυτοποίηση των πελατών που επιτρέπεται να συνδέονται στον server επιτυγχάνεται μέσω SSL/TLS, με την παρουσία των κατάλληλων πιστοποιητικών αλλά και με την πληκτρολόγηση username και password ενός χρήστη του συστήματος (του pfSense), στην κατοχή του οποίου βρίσκεται το σωστό πιστοποιητικό. Όλα καλά, μόνο που στο δικό μας box δεν θέλουμε να φτιάξουμε νέους λογαριασμούς χρηστών. Ευτυχώς, το OpenVPN είναι ικανό να κάνει ταυτοποίηση και χωρίς την εισαγωγή στοιχείων λογαριασμού χρήστη. Πρέπει όμως να του ζητήσουμε να υιοθετήσει αυτή τη συμπεριφορά, οπότε από το web panel του pfSense δίνουμε VPN –> OpenVPN και κάνουμε ένα κλικ στο κουμπάκι [e], ακριβώς στα δεξιά του instance που μας ενδιαφέρει (στο παράδειγμά μας έχουμε ακριβώς ένα).

Σ' αυτό το σημείο επιθυμούμε να τροποποιήσουμε ελαφρώς τη συμπεριφορά του μοναδικού OpenVPN instance που τρέχει στο pfSense box...

Κατά την ταυτοποίηση ενός πελάτη δεν θέλουμε πληκτρολόγηση username και password ενός υπάρχοντα λογαριασμού. Μας αρκεί η ταυτοποίηση να γίνεται με τα κατάλληλα πιστοποιητικά -- και πάντα μέσω SSL/TLS. Ακριβώς γι' αυτό, φροντίζουμε ώστε να ισχύει Server Mode = Remote Access (SSL/TLS) κι επικυρώνουμε την αλλαγή με κλικ στο κουμπάκι Save, στο κάτω μέρος της σελίδας (δεν φαίνεται στο screenshot).

Πάμε τώρα να δούμε πώς εξάγουμε το πιστοποιητικό του πελάτη, μαζί με το configuration file για το εκάστοτε πρόγραμμα σύνδεσης που χρησιμοποιείται. Εδώ είναι που θα φανεί χρήσιμο αυτό το OpenVPN Client Export Utility, το οποίο ήδη εγκαταστήσαμε στην προηγούμενη ενότητα. Από το web panel του pfSense, δίνουμε VPN –> OpenVPN –> Client Export. Δείτε τα τρία ακόλουθα screenshots.

Λίγο πιο κάτω στη σελίδα εξαγωγής, υπάρχει η ενότητα Client Install Packages. Εκεί παρατίθενται όλα τα πιστοποιητικά πελατών που έχουμε δημιουργήσει, μαζί με επιλογές εξαγωγής σε διάφορα formats κατάλληλα για διάφορα προγράμματα σύνδεσης. Τις πρώτες μας δοκιμές τις κάναμε από laptop με OS X, κι ένας αγαπημένος client για το συγκεκριμένο λειτουργικό είναι το Viscosity (διατίθεται και για Windows). Ακριβώς γι' αυτό, κάναμε κλικ στο link ονόματι Viscosity Bundle.

Ιδού το πακετάκι σύνδεσης που κατεβάσαμε για το Viscosity. Το όνομά του είναι αρκετά διαφωτιστικό, αφού περιλαμβάνει και το λεγόμενο common name του αντίστοιχου client certificate.

[ λίστα με τις ενότητες ]

Έλεγχοι ορθής λειτουργίας
Το πώς ρυθμίζουμε τον εκάστοτε OpenVPN client ξεφεύγει από τους σκοπούς του παρόντος. Δεν πρόκειται πάντως για περίπλοκη εργασία και θα πούμε μόνο ότι αρκεί να δώσουμε στο πρόγραμμα το κατάλληλο πακέτο σύνδεσης (π.χ., περιπτώσεις Viscosity, OpenVPN Connect κ.ά.) ή το κατάλληλο αρχείο ρύθμισης (περίπτωση του απλού openvp client για Linux, *BSD κ.ά.). Να υπογραμμίσουμε εδώ ότι, ανεξαρτήτως του προγράμματος, προκειμένου να συνδεθούμε επιτυχώς στον OpenVPN server χρειάζεται να είμαστε εκτός του τοπικού δικτύου στο οποίο ανήκει ο προαναφερθείς. Και μετά την πρώτη σύνδεση, δεν βλάπτει να κάνουμε μερικές δοκιμές ώστε να βεβαιωθούμε ότι πράγματι βγαίνουμε στο Internet μέσω του ασφαλούς, κρυπτογραφημένου τούνελ που έχει δημιουργήσει ο OpenVPN server για ‘μας. Δείτε τα ακόλουθα screenshots, διαβάστε τις περιγραφές, χαρείτε το ενισχυμένο σας pfSense box :D

Από το client computer, χωρίς να συνδεθούμε στον απομακρυσμένο OpenVPN server επισκεπτόμαστε ένα από τα γνωστά sites που επιστρέφουν τη δημόσια IP μας, αυτή δηλαδή με την οποία κυκλοφορούμε στο Internet. Παρατηρήστε τον ISP του παραδείγματος.

Συνδεόμαστε τώρα στον OpenVPN server κι επισκεπτόμαστε ξανά το ίδιο site. Δείτε ότι τώρα έχουν αλλάξει τόσο η δημόσια IP, όσο κι ο ISP. Στη συγκεκριμένη περίπτωση, αυτό σημαίνει ότι βγαίνουμε στο Internet μέσω του απομακρυσμένου server!

Έχοντας συνδεθεί στον OpenVPN server του pfSense, από ένα τερματικό παίζουμε με το εργαλείο nslookup για να δούμε ποιος απαντά στα DNS requests που γίνονται από το μηχάνημά μας. Όπως είναι φανερό, τα αιτήματα εξυπηρετεί ο DNS forwarder του pfSense, επομένως δεν υπάρχει κανένας λόγος ν' ανησυχούμε για DNS leaks.

λίστα με τις ενότητες ]

5 Responses to “Το OpenVPN στο pfSense”

  1. sip03ds | 11/08/2014 at 15:45

    Ωραίο άρθρο, μερικές ερωτήσεις:

    1) Αν πίσω από το OpenVPN βρίσκεται ένα L3 switch με 5 VLAN, κανονικά πρέπει να φτιαχτεί ένα VLAN στο L3 switch αφιερωμένο στο VPN και για γίνει το κατάλληλο intervlan-routing για να έχουμε access εκεί που θέλουμε, ή υπάρχει καλύτερος τρόπος υλοποίησης;

    2) Αν έχουμε ένα router, και ξεχωριστό μηχάνημα firewall που τερματίζει (απέξω) το openVPN, και μετά ένα L3 switch και υπάρχει ανάγκη για routing (π.χ. EIGRP) ανάμεσα στο router και στο L3 , τότε τι configuration χρειάζεται το firewall;

    • subZraw | 11/08/2014 at 16:04

      Προσωπικά, δεν έχω την απαραίτητη εμπειρία για ν’ απαντήσω στις ερωτήσεις σου. Τώρα που το σκέφτομαι, μάλιστα, λογικά στη ζωή μου δεν πρέπει να ‘χω βρεθεί κοντά σε κάποιο L3 switch — τουλάχιστον όχι σε απόσταση μικρότερη των 100 μέτρων :D

  2. orestis46 | 01/09/2014 at 15:29

    1) Αν πίσω από το OpenVPN βρίσκεται ένα L3 switch με 5 VLAN, κανονικά πρέπει να φτιαχτεί ένα VLAN στο L3 switch αφιερωμένο στο VPN και για γίνει το κατάλληλο intervlan-routing για να έχουμε access εκεί που θέλουμε, ή υπάρχει καλύτερος τρόπος υλοποίησης;

    — Υπάρχουν διάφορα σενάρια που θα μπορούσαν να εφαρμοστούν (είτε σε pfsense/linux με openvpn device), πχ:
    α) OpenVPN device L3 switch με ένα /30 point-to-point interface (sub-interface on openvpn or new main interface SVI/VLAN interface L3 switch) για connectivity.Το openvpn έχει routing πρός τα subnets/vlans στο L3 switch και το L3 switch έχει static routing πρός το subnet που χρησιμοποιείτε για να τερματίζουν οι vpn clients). Το openvpn μπορεί να έχει profiles με ξεχωριστά access rights (eg routing-information access or firewall settings per client) πρός τα subnets/vlans πίσω απο το L3 switch (και το αντίστροφο επίσης).

    β) OpenVPN device L3 switch με ένα /30 point-to-point interface (sub-interface on openvpn or new main interface SVI/VLAN interface L3 switch) για connectivity. Το openvpn κάνει NAT ή και PAT πρός τα subnets/vlans πίσω απο L3 switch (για τα οποία χρειάζετε routing – eg static). Δεν είναι και τόσο ευέλικτο σε σχέση με τα security policies κάτι τέτοιο όμως (PAT case) για να περιορίσεις ποιός έχει πρόσβαση που.

    Τα ίδια λίγο πολύ χρειάζονται και για το δεύτερο σενάριο:
    2) Αν έχουμε ένα router, και ξεχωριστό μηχάνημα firewall που τερματίζει (απέξω) το openVPN, και μετά ένα L3 switch και υπάρχει ανάγκη για routing (π.χ. EIGRP) ανάμεσα στο router και στο L3 , τότε τι configuration χρειάζεται το firewall;

    — Το firewall που τερματίζει το openvpn θέλει ένα point-to-point interface (eg /30) με τον router. Στατικό routing απο το openvpn πρός τα subnets/vlans μέσω του next-hop point-to-point interface του router. O router θα πρέπει να έχει routing πρός το subnet των openvpn clients με next-hop το openvpn point-to-point interface. Αν υπάρχει δυναμικό protocol μεταξύ router L3 switch (eg EIGRP), ένα απλό redistribution του στατικού route στον router (στο αντίστοιχο protocol) που δείχνει πρός το openvpn sunbet αρκεί. Σχετικά με τα profiles/ACLs ισχύουν τα παραπάνω και εφαρμόζεις ότι θες βάση των traffic flows και του security policy που θες να εφαρμόσεις (ποιός έχει πρόσβαση που)….

    Προφανός χρειάζετε ένα point-to-point interface μεταξύ OpenVPN και L3 switch ή οποιαδήποτε άλλη συσκευή πρός το εσωτερικό του δικτύου (vlan/subnets) και routing (eigrp is cisco proprietary routing protocol….και μιας και δεν είναι για πολλά-πολλά τα dynamic-routing options σε λειτουργικά συστήματα υπολογιστών σαφώς το static routing είναι ψηλο-μονόδρομος) για την μεταξύ τους διασύνδεση. Για να έχεις μεγαλύτερο έλεχγο ποιός έχει πρόσβαση που (και απο ποιές κατευθύνσεις – traffic flows δλδ) μπορείς να το καθορίσεις μέσω openvpn profiles σε clients, firewall acccess-lists και σε L3/router/firewall device όπως και στο openvpn.

    HTH

  3. sxiros | 11/06/2015 at 14:15

    Super το άρθρο !!!

Leave a Reply

You must be logged in to post a comment.

Σύνδεση

Αρχείο δημοσιεύσεων