Προαπαιτούμενα
Εγκατάσταση λογισμικού από την πλευρά του διακομιστή
Δημιουργία και διαμόρφωση πιστοποιητικού
Διαμόρφωση διακομιστή
Ώρα δοκιμής!
Το AnyConnect είναι μια λύση απομακρυσμένης πρόσβασης που αναπτύχθηκε από τη Cisco. Γνωστό για τη φορητότητα και τη σταθερότητά του, ειδικά για την ικανότητα DTLS, το AnyConnect χρησιμοποιείται από πολλές εταιρείες. Θα χρησιμοποιήσουμε μια έκδοση ανοιχτού κώδικα, ocserv, η οποία είναι συμβατή με το πρωτόκολλο.
Θα αναπτύξουμε επίσης την επαλήθευση πιστοποιητικού. Ο διακομιστής θα αναγνωρίσει τους πελάτες ελέγχοντας ότι εάν το πιστοποιητικό του πελάτη έχει εκδοθεί από τη ρυθμισμένη αρχή έκδοσης πιστοποιητικών. Αυτό απλοποιεί σημαντικά τη διαμόρφωση στους πελάτες, καθώς θα χρειαστεί μόνο να εισαγάγουμε το πιστοποιητικό στον πελάτη (τις περισσότερες φορές ένα αρχείο pkcs12 ( .pfxή .p12)) και δεν απαιτούνται κωδικοί πρόσβασης. Αυτό είναι επίσης πιο ασφαλές, καθώς κανένας κωδικός πρόσβασης δεν ταξιδεύει στο Διαδίκτυο.
Ας αρχίσουμε.
Προαπαιτούμενα
- Ένας πρόσφατα δημιουργημένος διακομιστής CentOS 7 με ενεργοποιημένο το IPv6
- Ένας υπολογιστής που λειτουργεί (μπορεί να είναι ο ίδιος ο διακομιστής, αλλά έχει καταργηθεί (δείτε παρακάτω)) δείτε τη σημείωση 1
- Ορισμένοι πελάτες με εγκατεστημένο λογισμικό πελάτη AnyConnect (ή OpenConnect), δείτε τη σημείωση 2
Σημειώσεις:
Αν και είναι δυνατό (και μάλλον βολικό) να κάνετε τα πάντα στον διακομιστή, η διαδικασία ανάπτυξης αποτελείται από τη δημιουργία ιδιωτικών κλειδιών που χρησιμοποιούνται για την υπογραφή και, λόγω ανησυχιών ασφαλείας, αυτή η διαδικασία θα πρέπει να γίνει στον δικό σας υπολογιστή.
Λόγω προβλημάτων αδειοδότησης, δεν θα παράσχω συνδέσμους για τη λήψη του λογισμικού πελάτη. Ωστόσο, η εύρεση τους για τον πελάτη σας είναι αρκετά εύκολη. Το AnyConnect είναι μια εφαρμογή στα App Stores σε μεγάλες πλατφόρμες για κινητές συσκευές (iOS, Android, BlackBerry OS (v10 ή νεότερη έκδοση), UWP αντίστοιχα και μια απλή αναζήτηση θα σας τις φέρει. Για πλατφόρμες υπολογιστών, κάποιο Googling θα σας παρουσιάσει το κατάλληλο λογισμικό.
Εγκατάσταση λογισμικού από την πλευρά του διακομιστή
Τα μηχανήματα CentOS 7 του Vultr έχουν ρυθμιστεί με το αποθετήριο EPEL. Απλώς εγκαθιστούμε ocservμε yum:
yum update
yum install ocserv
Θα χρειαστούμε ένα πιστοποιητικό διακομιστή για να λειτουργήσουν τα πράγματα. Εάν έχετε όνομα τομέα, το Let's Encrypt θα είναι η πιο εύκολη επιλογή.
yum install certbot
certbot certonly
Επιλέξτε "spin up a temporary web server" για έλεγχο ταυτότητας με το ACME CA. Εάν δεν έχετε domain, θα εκδοθεί αργότερα ένα αυτο-υπογεγραμμένο πιστοποιητικό.
Δημιουργία και διαμόρφωση πιστοποιητικού
Το παραδοσιακό PKI είναι μάλλον άβολο στη χρήση, επομένως θα χρησιμοποιήσουμε το easyrsaβοηθητικό πρόγραμμα από το έργο OpenVPN. Εγκαταστήστε το git στο μηχάνημα εργασίας σας και κλωνοποιήστε το αποθετήριο:
git clone https://github.com/OpenVPN/easy-rsa
cd easy-rsa/easyrsa3
Θα δημιουργήσουμε την ΑΠ και θα εκδίδουμε πιστοποιητικά. Κάντε τα εξής και γράψτε τη φράση πρόσβασης PEM που έχετε ορίσει κάπου:
./easyrsa init-pki
./easyrsa build-ca
Κρατήστε pki/private/ca.keyκάπου ασφαλές. Διαρροή που θα καταστήσει άχρηστη όλη την υποδομή σας.
Εάν επιλέξετε να χρησιμοποιήσετε ένα αυτο-υπογεγραμμένο πιστοποιητικό διακομιστή, κάντε τα εξής:
./easyrsa gen-req server
Και εισαγάγετε τη διεύθυνση IP του διακομιστή σας ως κοινό όνομα.
./easyrsa sign-req server server
Αυτό θα υπογράψει ένα πιστοποιητικό για τον διακομιστή. Μεταφορά pki/issued/server.crtκαι pki/ca.crtπρος /etc/ssl/certsκαι pki/private/server.keyπρος /etc/ssl/privateστον διακομιστή σας.
Στη συνέχεια θα δημιουργήσουμε πιστοποιητικά πελάτη. Κάντε τα εξής:
./easyrsa gen-req client_01
./easyrsa sign-req client client_01
Επιλέξτε ένα όνομα του πελάτη και συμπληρώστε το στο πεδίο κοινού ονόματος. Θυμηθείτε τη φράση πρόσβασης!
Στη συνέχεια θα εξάγουμε το πιστοποιητικό σε μορφή pkcs12 για χρήση σε πλατφόρμες για κινητές συσκευές. Κάνω:
./easyrsa export-p12 client_01
Επιλέξτε έναν κωδικό εξαγωγής τον οποίο θα σας ζητηθεί να εισαγάγετε κατά την εισαγωγή του πιστοποιητικού στο τηλέφωνο. Μεταφέρετε pki/private/client_01.p12στο τηλέφωνό σας και εισαγάγετε το.
Διαμόρφωση διακομιστή
Θα συμπληρώσουμε τα στοιχεία του πιστοποιητικού.
vim /etc/ocserv/ocserv.conf
Εντοπίστε την server-certενότητα και συμπληρώστε τα παρακάτω:
# If you use Let's Encrypt
server-cert = /etc/letsencrypt/live/example.com/fullchain.pem
server-key = /etc/letsencrypt/live/example.com/privkey.pem
# If you use self-signed server certificate
server-cert = /etc/ssl/certs/server.crt
server-key = /etc/ssl/private/server.key
ca-cert = /etc/ssl/certs/ca.crt
Λάβετε υπόψη ότι εάν χρησιμοποιείτε αυτο-υπογεγραμμένο πιστοποιητικό, θυμηθείτε να αφαιρέσετε πρώτα τη φράση πρόσβασης openssl rsa -in server.key -out server-new.keyγια ocservνα μπορέσετε να χρησιμοποιήσετε το ιδιωτικό κλειδί.
Εντοπισμός authενότητας. Ενεργοποιήστε αυτήν τη γραμμή:
auth = "certificate"
Και σχολιάστε όλες τις άλλες authγραμμές.
Καταργήστε το σχόλιο αυτής της γραμμής:
cert-user-oid = 2.5.4.3
Εντοπίστε ipv6-networkκαι συμπληρώστε το μπλοκ ipv6 του διακομιστή σας. Αυτό είναι το μπλοκ από το οποίο ο διακομιστής θα δώσει μισθώσεις.
ipv6-network = 2001:0db8:0123:4567::/64
ipv6-subnet-prefix = 124
Ορισμός διακομιστών DNS.
dns = 8.8.8.8
dns = 8.8.4.4
Ενεργοποιήστε τη συμβατότητα με πελάτες Cisco.
cisco-client-compat = true
Ανοίξτε τις θύρες που έχετε ορίσει στο tcp-portκαι udp-portκαι να ενεργοποιήσετε μασκαράτα τόσο για IPv4 και IPv6 στην firewalld.
Εκκινήστε τον διακομιστή.
systemctl enable ocserv
systemctl start ocserv
Ώρα δοκιμής!
Ο διακομιστής έχει ρυθμιστεί με επιτυχία. Δημιουργήστε μια σύνδεση στον πελάτη σας και συνδεθείτε. Εάν τα πράγματα πάνε στραβά, χρησιμοποιήστε αυτήν την εντολή για εντοπισμό σφαλμάτων:
journalctl -fu ocserv
Επίσης, το IPv6 θα πρέπει να λειτουργεί από την πλευρά του ��ελάτη, εάν το λογισμικό του πελάτη σας υποστηρίζει ipv6, ακόμη και αν το δίκτυο του πελάτη σας δεν σας παρέχει διεύθυνση. Μεταβείτε σε αυτόν τον ιστότοπο για δοκιμή.
Ολα έτοιμα! Απολαύστε τον νέο σας διακομιστή VPN συμβατό με AnyConnect!