Πώς να ρυθμίσετε το VPN που βασίζεται σε IPsec με το Strongswan στο CentOS/RHEL 8


Το strongSwan είναι μια μοντέρνα και ολοκληρωμένη λύση VPN ανοιχτού κώδικα, πολλαπλών πλατφορμών, βασισμένη σε IPsec για Linux που παρέχει πλήρη υποστήριξη για το Internet Key Exchange (τόσο το IKEv1 όσο και το IKEv2για τη δημιουργία ενώσεων ασφαλείας (SA) μεταξύ δύο ομοτίμων. Είναι πλήρως εξοπλισμένο, αρθρωτό από τη σχεδίασή του και προσφέρει δεκάδες πρόσθετα που ενισχύουν τη βασική λειτουργικότητα.

Σχετικό άρθρο: Πώς να ρυθμίσετε το VPN που βασίζεται σε IPsec με το Strongswan στο Debian και στο Ubuntu

Σε αυτό το άρθρο, θα μάθετε πώς να ρυθμίζετε πύλες IPsec VPN από ιστότοπο σε ιστότοπο χρησιμοποιώντας strongSwan σε διακομιστές CentOS/RHEL 8. Αυτό δίνει τη δυνατότητα στους ομότιμους να ελέγχουν ο ένας τον άλλον χρησιμοποιώντας ένα ισχυρό προ-κοινόχρηστο κλειδί (PSK). Μια εγκατάσταση από τοποθεσία σε τοποθεσία σημαίνει ότι κάθε πύλη ασφαλείας έχει ένα υποδίκτυο πίσω της.

Περιβάλλον Δοκιμών

Μην ξεχάσετε να χρησιμοποιήσετε τις πραγματικές διευθύνσεις IP σας κατά τη διάρκεια των διαμορφώσεων ακολουθώντας τον οδηγό.

Site 1 Gateway
Public IP: 192.168.56.7
Private IP: 10.10.1.1/24
Private Subnet: 10.10.1.0/24
Site 2 Gateway
Public IP:  192.168.56.6
Private IP: 10.20.1.1/24
Private Subnet: 10.20.1.0/24

Βήμα 1: Ενεργοποίηση της προώθησης IP πυρήνα στο CentOS 8

1. Ξεκινήστε ενεργοποιώντας τη λειτουργία προώθησης IP του πυρήνα στο αρχείο διαμόρφωσης /etc/sysctl.conf και στις δύο πύλες VPN.

vi /etc/sysctl.conf

Προσθέστε αυτές τις γραμμές στο αρχείο.

net.ipv4.ip_forward = 1 
net.ipv6.conf.all.forwarding = 1 
net.ipv4.conf.all.accept_redirects = 0 
net.ipv4.conf.all.send_redirects = 0 

2. Αφού αποθηκεύσετε τις αλλαγές στο αρχείο, εκτελέστε την ακόλουθη εντολή για να φορτώσετε τις νέες παραμέτρους του πυρήνα στο χρόνο εκτέλεσης.

sysctl -p

3. Στη συνέχεια, δημιουργήστε μια μόνιμη στατική διαδρομή στο αρχείο /etc/sysconfig/network-scripts/route-eth0 και στις δύο πύλες ασφαλείας.

vi /etc/sysconfig/network-scripts/route-eth0

Προσθέστε την ακόλουθη γραμμή στο αρχείο.

#Site 1 Gateway
10.20.1.0/24  via 192.168.56.7

#Site 2 Gateway
10.10.1.0/24 via 192.168.56.6

4. Στη συνέχεια, επανεκκινήστε τη διαχείριση δικτύου για να εφαρμόσετε τις νέες αλλαγές.

systemctl restart NetworkManager

Βήμα 2: Εγκατάσταση του strongSwan στο CentOS 8

5. Το πακέτο strongswan παρέχεται στο αποθετήριο EPEL. Για να το εγκαταστήσετε, πρέπει να ενεργοποιήσετε το αποθετήριο EPEL και, στη συνέχεια, να εγκαταστήσετε το strongwan και στις δύο πύλες ασφαλείας.

dnf install epel-release
dnf install strongswan

6. Για να ελέγξετε την έκδοση του strongswan που είναι εγκατεστημένη και στις δύο πύλες, εκτελέστε την ακόλουθη εντολή.

strongswan version

7. Στη συνέχεια, ξεκινήστε την υπηρεσία strongswan και ενεργοποιήστε την αυτόματη εκκίνηση κατά την εκκίνηση του συστήματος. Στη συνέχεια, επαληθεύστε την κατάσταση και στις δύο πύλες ασφαλείας.

systemctl start strongswan 
systemctl enable strongswan
systemctl status strongswan

Σημείωση: Η πιο πρόσφατη έκδοση του strongswan στο CentOS/REHL 8 συνοδεύεται από υποστήριξη και για τα δύο swanctl (ένα νέο, φορητό βοηθητικό πρόγραμμα γραμμής εντολών που παρουσιάστηκε με το strongSwan 5.2.0, που χρησιμοποιείται για τη διαμόρφωση, τον έλεγχο και την παρακολούθηση του δαίμονα IKE Charon χρησιμοποιώντας την προσθήκη vici) και εκκίνησης ισχυρό> (ή ipsec) βοηθητικό πρόγραμμα χρησιμοποιώντας την καταργημένη προσθήκη stroke.

8. Ο κύριος κατάλογος ρυθμίσεων είναι ο /etc/strongswan/ που περιέχει αρχεία διαμόρφωσης και για τις δύο προσθήκες:

ls /etc/strongswan/

Για αυτόν τον οδηγό, θα χρησιμοποιήσουμε το βοηθητικό πρόγραμμα IPsec το οποίο καλείται χρησιμοποιώντας την εντολή strongswan και τη διεπαφή stroke. Θα χρησιμοποιήσουμε λοιπόν τα ακόλουθα αρχεία ρυθμίσεων:

  • /etc/strongswan/ipsec.conf – αρχείο διαμόρφωσης για το υποσύστημα strongSwan IPsec.
  • /etc/strongswan/ipsec.secrets – αρχείο μυστικών.

Βήμα 3: Διαμόρφωση πυλών ασφαλείας

9. Σε αυτό το βήμα, πρέπει να διαμορφώσετε τα προφίλ σύνδεσης σε κάθε πύλη ασφαλείας για κάθε τοποθεσία χρησιμοποιώντας το αρχείο διαμόρφωσης /etc/strongswan/ipsec.conf strongswan.

Διαμόρφωση προφίλ σύνδεσης τοποθεσίας 1

cp /etc/strongswan/ipsec.conf /etc/strongswan/ipsec.conf.orig
vi /etc/strongswan/ipsec.conf

Αντιγράψτε και επικολλήστε την ακόλουθη διαμόρφωση στο αρχείο.

config setup
        charondebug="all"
        uniqueids=yes
conn ateway1-to-gateway2
        type=tunnel
        auto=start
        keyexchange=ikev2
        authby=secret
        left=192.168.56.7
        leftsubnet=10.10.1.1/24
        right=192.168.56.6
        rightsubnet=10.20.1.1/24
        ike=aes256-sha1-modp1024!
        esp=aes256-sha1!
        aggressive=no
        keyingtries=%forever
        ikelifetime=28800s
        lifetime=3600s
        dpddelay=30s
        dpdtimeout=120s
        dpdaction=restart

Διαμόρφωση προφίλ σύνδεσης τοποθεσίας 2

cp /etc/strongswan/ipsec.conf /etc/strongswan/ipsec.conf.orig
vi /etc/strongswan/ipsec.conf

Αντιγράψτε και επικολλήστε την ακόλουθη διαμόρφωση στο αρχείο:

config setup
        charondebug="all"
        uniqueids=yes
conn 2gateway-to-gateway1
        type=tunnel
        auto=start
        keyexchange=ikev2
        authby=secret
        left=192.168.56.6
        leftsubnet=10.20.1.1/24
        right=192.168.56.7
        rightsubnet=10.10.1.1/24
        ike=aes256-sha1-modp1024!
        esp=aes256-sha1!
        aggressive=no
        keyingtries=%forever
        ikelifetime=28800s
        lifetime=3600s
        dpddelay=30s
        dpdtimeout=120s
        dpdaction=restart

Ας περιγράψουμε εν συντομία καθεμία από τις παραμέτρους διαμόρφωσης παραπάνω:

  • ρύθμιση παραμέτρων – ορίζει τις γενικές πληροφορίες διαμόρφωσης για το IPSec που ισχύουν για όλες τις συνδέσεις.
  • charondebug – καθορίζει πόση έξοδος εντοπισμού σφαλμάτων Charon θα πρέπει να καταγράφεται.
  • μοναδικά – καθορίζει εάν ένα συγκεκριμένο αναγνωριστικό συμμετέχοντος θα πρέπει να διατηρείται μοναδικό.
  • conn gateway1-to-gateway2 – χρησιμοποιείται για τον ορισμό του ονόματος της σύνδεσης.
  • τύπος – ορίζει τον τύπο σύνδεσης.
  • Auto – χρησιμοποιείται για να δηλώσει πώς να χειριστείτε τη σύνδεση κατά την εκκίνηση ή την επανεκκίνηση του IPSec.
  • keyexchange – δηλώνει την έκδοση του πρωτοκόλλου IKE που θα χρησιμοποιηθεί.
  • authby – καθορίζει τον τρόπο με τον οποίο οι συνομήλικοι θα πρέπει να πιστοποιούν ο ένας τον άλλον.
  • αριστερά – δηλώνει τη διεύθυνση IP της διεπαφής δημόσιου δικτύου του αριστερού συμμετέχοντος.
  • leftsubnet – δηλώνει το ιδιωτικό υποδίκτυο πίσω από τον αριστερό συμμετέχοντα.
  • δεξιά – δηλώνει τη διεύθυνση IP της διεπαφής δημόσιου δικτύου του σωστού συμμετέχοντα.
  • rightsubnet – δηλώνει το ιδιωτικό υποδίκτυο πίσω από τον αριστερό συμμετέχοντα.
  • ike – χρησιμοποιείται για τη δήλωση μιας λίστας αλγορίθμων κρυπτογράφησης/επαλήθευσης ταυτότητας IKE/ISAKMP SA που θα χρησιμοποιηθούν. Σημειώστε ότι αυτή μπορεί να είναι μια λίστα διαχωρισμένη με κόμματα.
  • esp – καθορίζει μια λίστα αλγορίθμων κρυπτογράφησης/επαλήθευσης ταυτότητας ESP που θα χρησιμοποιηθούν για τη σύνδεση.
  • επιθετικό – δηλώνει εάν θα χρησιμοποιηθεί η επιθετική ή η κύρια λειτουργία.
  • keyingtries – δηλώνει τον αριθμό των προσπαθειών που πρέπει να γίνουν για τη διαπραγμάτευση μιας σύνδεσης.
  • ikelifetime – καθορίζει πόσο χρόνο θα πρέπει να διαρκέσει το κανάλι κλειδώματος μιας σύνδεσης πριν γίνει επαναδιαπραγμάτευση.
  • διάρκεια ζωής – καθορίζει πόσο χρόνο θα πρέπει να διαρκέσει μια συγκεκριμένη παρουσία μιας σύνδεσης, από την επιτυχή διαπραγμάτευση έως τη λήξη.
  • dpddelay – δηλώνει το χρονικό διάστημα με το οποίο αποστέλλονται R_U_THERE μηνύματα/ΠΛΗΡΟΦΟΡΙΕΣ ανταλλαγές στον ομότιμο.
  • dpdtimeout – χρησιμοποιείται για τη δήλωση του διαστήματος χρονικού ορίου λήξης, μετά από το οποίο διαγράφονται όλες οι συνδέσεις σε ένα peer σε περίπτωση αδράνειας.
  • dpdaction – καθορίζει τον τρόπο χρήσης του πρωτοκόλλου Dead Peer Detection (DPD) για τη διαχείριση της σύνδεσης.

Μπορείτε να βρείτε μια περιγραφή όλων των παραμέτρων διαμόρφωσης για το υποσύστημα strongSwan IPsec διαβάζοντας τη σελίδα man ipsec.conf.

man ipsec.conf

Βήμα 4: Διαμόρφωση PSK για Peer-to-Peer έλεγχο ταυτότητας

10. Στη συνέχεια, πρέπει να δημιουργήσετε ένα ισχυρό PSK που θα χρησιμοποιηθεί από τους ομοτίμους για έλεγχο ταυτότητας ως εξής.

head -c 24 /dev/urandom | base64

11. Προσθέστε το PSK στο αρχείο /etc/strongswan/ipsec.conf και στις δύο πύλες ασφαλείας.

vi /etc/strongswan/ipsec.secrets

Εισαγάγετε την ακόλουθη γραμμή στο αρχείο.

#Site 1 Gateway
192.168.56.7  192.168.56.6 : PSK "0GE0dIEA0IOSYS2o22wYdicj/lN4WoCL"

#Site 1 Gateway
192.168.56.6  192.168.56.7 : PSK "0GE0dIEA0IOSYS2o22wYdicj/lN4WoCL"

12. Στη συνέχεια, ξεκινήστε την υπηρεσία strongsan και ελέγξτε την κατάσταση των συνδέσεων.

systemctl restart strongswan
strongswan status

13. Ελέγξτε εάν μπορείτε να αποκτήσετε πρόσβαση στα ιδιωτικά υποδίκτυα από τις δύο πύλες ασφαλείας εκτελώντας μια εντολή ping.

ping 10.20.1.1
ping 10.10.1.1

14. Τελευταίο, αλλά όχι λιγότερο σημαντικό, για να μάθετε περισσότερες εντολές strongswan για μη αυτόματη εμφάνιση/κάτω των συνδέσεων και πολλά άλλα, ανατρέξτε στη σελίδα βοήθειας για το ισχυρό.

strongswan --help

Αυτα για τωρα! Για να μοιραστείτε τις σκέψεις σας μαζί μας ή να κάνετε ερωτήσεις, επικοινωνήστε μαζί μας μέσω της παρακάτω φόρμας σχολίων. Και για να μάθετε περισσότερα σχετικά με το νέο βοηθητικό πρόγραμμα swanctl και τη νέα πιο ευέλικτη δομή διαμόρφωσης, ανατρέξτε στην τεκμηρίωση χρήστη strongSwan.