1.5 σχήματα σε εγχώριο IPsec VPN. Δοκιμές επιδείξεων

1.5 σχήματα σε εγχώριο IPsec VPN. Δοκιμές επιδείξεων

Η κατάσταση

Έλαβα μια δοκιμαστική έκδοση των προϊόντων C-Terra VPN έκδοση 4.3 για τρεις μήνες. Θέλω να μάθω αν η μηχανική μου ζωή θα γίνει ευκολότερη μετά τη μετάβαση στη νέα έκδοση.

Σήμερα δεν είναι δύσκολο, ένα σακουλάκι στιγμιαίο καφέ 3 σε 1 θα πρέπει να είναι αρκετό. Θα σας πω πώς να αποκτήσετε επιδείξεις. Θα προσπαθήσω να δημιουργήσω τα σχήματα GRE-over-IPsec και IPsec-over-GRE.

Πώς να αποκτήσετε ένα demo

1.5 σχήματα σε εγχώριο IPsec VPN. Δοκιμές επιδείξεων

Από το σχήμα προκύπτει ότι για να αποκτήσετε ένα demo πρέπει:

  • Γράψτε ένα γράμμα σε [προστασία μέσω email] από εταιρική διεύθυνση·
  • Στην επιστολή, αναφέρετε τον ΑΦΜ του οργανισμού σας.
  • Αναφέρετε τα προϊόντα και την ποσότητα τους.

Οι επιδείξεις ισχύουν για τρεις μήνες. Ο πωλητής δεν περιορίζει τη λειτουργικότητά τους.

Επέκταση της εικόνας

Η επίδειξη της πύλης ασφαλείας είναι μια εικόνα εικονικής μηχανής. Χρησιμοποιώ το VMWare Workstation. Μια πλήρης λίστα των υποστηριζόμενων hypervisors και των περιβαλλόντων εικονικοποίησης είναι διαθέσιμη στον ιστότοπο του προμηθευτή.

Πριν ξεκινήσετε, σημειώστε ότι δεν υπάρχουν διεπαφές δικτύου στην προεπιλεγμένη εικόνα εικονικής μηχανής:

1.5 σχήματα σε εγχώριο IPsec VPN. Δοκιμές επιδείξεων

Η λογική είναι ξεκάθαρη, ο χρήστης πρέπει να προσθέσει όσες διεπαφές χρειάζεται. Θα προσθέσω τέσσερα ταυτόχρονα:

1.5 σχήματα σε εγχώριο IPsec VPN. Δοκιμές επιδείξεων

Τώρα ξεκινάω την εικονική μηχανή. Αμέσως μετά την εκκίνηση, η πύλη απαιτεί όνομα χρήστη και κωδικό πρόσβασης.

Υπάρχουν αρκετές κονσόλες στο S-Terra Gateway με διαφορετικούς λογαριασμούς. Θα μετρήσω τον αριθμό τους σε ξεχωριστό άρθρο. Προς το παρόν:
Login as: administrator
Password: s-terra

Αρχικοποιώ την πύλη. Η εκκίνηση είναι μια ακολουθία ενεργειών: εισαγωγή μιας άδειας, ρύθμιση μιας βιολογικής γεννήτριας τυχαίων αριθμών (προσομοιωτής πληκτρολογίου - το ρεκόρ μου είναι 27 δευτερόλεπτα) και δημιουργία χάρτη διεπαφής δικτύου.

Χάρτης διεπαφών δικτύου. Έγινε πιο εύκολο

Η έκδοση 4.2 υποδέχτηκε τον ενεργό χρήστη με μηνύματα:

Starting IPsec daemon….. failed
ERROR: Could not establish connection with daemon

Ενεργός χρήστης (σύμφωνα με έναν ανώνυμο μηχανικό) είναι ένας χρήστης που μπορεί να ρυθμίσει οτιδήποτε γρήγορα και χωρίς τεκμηρίωση.

Κάτι δεν πήγαινε καλά πριν προσπαθήσετε να ρυθμίσετε μια διεύθυνση IP στη διεπαφή. Είναι όλα σχετικά με τον χάρτη διεπαφής δικτύου. Ήταν απαραίτητο να γίνει:

/bin/netifcfg enum > /home/map
/bin/netifcfg map /home/map
service networking restart

Ως αποτέλεσμα, δημιουργείται ένας χάρτης διεπαφής δικτύου που περιέχει την αντιστοίχιση των ονομάτων φυσικών διεπαφών (0000:02:03.0) και τους λογικούς χαρακτηρισμούς τους στο λειτουργικό σύστημα (eth0) και στην κονσόλα τύπου Cisco (FastEthernet0/0):

#Unique ID iface type OS name Cisco-like name

0000:02:03.0 phye eth0 FastEthernet0/0

Οι λογικοί προσδιορισμοί των διεπαφών ονομάζονται ψευδώνυμα. Τα ψευδώνυμα αποθηκεύονται στο αρχείο /etc/ifaliases.cf.
Στην έκδοση 4.3, κατά την πρώτη εκκίνηση της εικονικής μηχανής, δημιουργείται αυτόματα ένας χάρτης διεπαφής. Εάν αλλάξετε τον αριθμό των διεπαφών δικτύου στην εικονική μηχανή, τότε δημιουργήστε ξανά τον χάρτη διεπαφής:

/bin/netifcfg enum > /home/map
/bin/netifcfg map /home/map
systemctl restart networking

Σχήμα 1: GRE-over-IPsec

Αναπτύσσω δύο εικονικές πύλες, αλλάζω όπως φαίνεται στο σχήμα:

1.5 σχήματα σε εγχώριο IPsec VPN. Δοκιμές επιδείξεων

Βήμα 1. Ρυθμίστε διευθύνσεις IP και διαδρομές

VG1(config) #
interface fa0/0
ip address 172.16.1.253 255.255.255.0
no shutdown
interface fa0/1
ip address 192.168.1.253 255.255.255.0
no shutdown
ip route 0.0.0.0 0.0.0.0 172.16.1.254

VG2(config) #
interface fa0/0
ip address 172.16.1.254 255.255.255.0
no shutdown
interface fa0/1
ip address 192.168.2.254 255.255.255.0
no shutdown
ip route 0.0.0.0 0.0.0.0 172.16.1.253

Έλεγχος συνδεσιμότητας IP:

root@VG1:~# ping 172.16.1.254 -c 4
PING 172.16.1.254 (172.16.1.254) 56(84) bytes of data.
64 bytes from 172.16.1.254: icmp_seq=1 ttl=64 time=0.545 ms
64 bytes from 172.16.1.254: icmp_seq=2 ttl=64 time=0.657 ms
64 bytes from 172.16.1.254: icmp_seq=3 ttl=64 time=0.687 ms
64 bytes from 172.16.1.254: icmp_seq=4 ttl=64 time=0.273 ms

--- 172.16.1.254 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 0.273/0.540/0.687/0.164 ms

Βήμα 2: Ρυθμίστε το GRE

Παίρνω ένα παράδειγμα ρύθμισης του GRE από επίσημα σενάρια. Δημιουργώ ένα αρχείο gre1 στον κατάλογο /etc/network/interfaces.d με τα περιεχόμενα.

Για VG1:

auto gre1
iface gre1 inet static
address 1.1.1.1
netmask 255.255.255.252
pre-up ip tunnel add gre1 mode gre remote 172.16.1.254 local 172.16.1.253 key 1 ttl 64 tos inherit
pre-up ethtool -K gre1 tx off > /dev/null
pre-up ip link set gre1 mtu 1400
post-down ip link del gre1

Για VG2:

auto gre1
iface gre1 inet static
address 1.1.1.2
netmask 255.255.255.252
pre-up ip tunnel add gre1 mode gre remote 172.16.1.253 local 172.16.1.254 key 1 ttl 64 tos inherit
pre-up ethtool -K gre1 tx off > /dev/null
pre-up ip link set gre1 mtu 1400
post-down ip link del gre1

Ανεβάζω τη διεπαφή στο σύστημα:

root@VG1:~# ifup gre1
root@VG2:~# ifup gre1

Ελεγχος:

root@VG1:~# ip address show
8: gre1@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1400 qdisc noqueue state UNKNOWN group default qlen 1
    link/gre 172.16.1.253 peer 172.16.1.254
    inet 1.1.1.1/30 brd 1.1.1.3 scope global gre1
       valid_lft forever preferred_lft forever

root@VG1:~# ip tunnel show
gre0: gre/ip remote any local any ttl inherit nopmtudisc
gre1: gre/ip remote 172.16.1.254 local 172.16.1.253 ttl 64 tos inherit key 1

Το C-Terra Gateway διαθέτει ενσωματωμένο packet sniffer - tcpdump. Θα γράψω μια ένδειξη κυκλοφορίας σε ένα αρχείο pcap:

root@VG2:~# tcpdump -i eth0 -w /home/dump.pcap

Αρχίζω να κάνω ping μεταξύ διεπαφών GRE:

root@VG1:~# ping 1.1.1.2 -c 4
PING 1.1.1.2 (1.1.1.2) 56(84) bytes of data.
64 bytes from 1.1.1.2: icmp_seq=1 ttl=64 time=0.918 ms
64 bytes from 1.1.1.2: icmp_seq=2 ttl=64 time=0.850 ms
64 bytes from 1.1.1.2: icmp_seq=3 ttl=64 time=0.918 ms
64 bytes from 1.1.1.2: icmp_seq=4 ttl=64 time=0.974 ms

--- 1.1.1.2 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3006ms
rtt min/avg/max/mdev = 0.850/0.915/0.974/0.043 ms

Η σήραγγα GRE είναι σε λειτουργία:

1.5 σχήματα σε εγχώριο IPsec VPN. Δοκιμές επιδείξεων

Βήμα 3. Κρυπτογράφηση με GOST GRE

Ορίζω τον τύπο αναγνώρισης - κατά διεύθυνση. Έλεγχος ταυτότητας με προκαθορισμένο κλειδί (σύμφωνα με τους Όρους Χρήσης, πρέπει να χρησιμοποιούνται ψηφιακά πιστοποιητικά):

VG1(config)#
crypto isakmp identity address
crypto isakmp key KEY address 172.16.1.254

Ορίζω τις παραμέτρους IPsec Phase I:

VG1(config)#
crypto isakmp policy 1
encr gost
hash gost3411-256-tc26
auth pre-share
group vko2

Ρύθμισα τις παραμέτρους IPsec Phase II:

VG1(config)#
crypto ipsec transform-set TSET esp-gost28147-4m-imit
mode tunnel

Δημιουργώ μια λίστα πρόσβασης για κρυπτογράφηση. Στοχευμένη κίνηση - GRE:

VG1(config)#
ip access-list extended LIST
permit gre host 172.16.1.253 host 172.16.1.254

Δημιουργώ έναν χάρτη κρυπτογράφησης και τον συνδέω στη διεπαφή WAN:

VG1(config)#
crypto map CMAP 1 ipsec-isakmp
match address LIST
set transform-set TSET
set peer 172.16.1.253
interface fa0/0
  crypto map CMAP

Για το VG2, η διαμόρφωση αντικατοπτρίζεται, οι διαφορές είναι:

VG2(config)#
crypto isakmp key KEY address 172.16.1.253
ip access-list extended LIST
permit gre host 172.16.1.254 host 172.16.1.253
crypto map CMAP 1 ipsec-isakmp
set peer 172.16.1.254

Ελεγχος:

root@VG2:~# tcpdump -i eth0 -w /home/dump2.pcap
root@VG1:~# ping 1.1.1.2 -c 4
PING 1.1.1.2 (1.1.1.2) 56(84) bytes of data.
64 bytes from 1.1.1.2: icmp_seq=1 ttl=64 time=1128 ms
64 bytes from 1.1.1.2: icmp_seq=2 ttl=64 time=126 ms
64 bytes from 1.1.1.2: icmp_seq=3 ttl=64 time=1.07 ms
64 bytes from 1.1.1.2: icmp_seq=4 ttl=64 time=1.12 ms

--- 1.1.1.2 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3006ms
rtt min/avg/max/mdev = 1.077/314.271/1128.419/472.826 ms, pipe 2

Στατιστικά στοιχεία ISAKMP/IPsec:

root@VG1:~# sa_mgr show
ISAKMP sessions: 0 initiated, 0 responded

ISAKMP connections:
Num Conn-id (Local Addr,Port)-(Remote Addr,Port) State Sent Rcvd
1 1 (172.16.1.253,500)-(172.16.1.254,500) active 1086 1014

IPsec connections:
Num Conn-id (Local Addr,Port)-(Remote Addr,Port) Protocol Action Type Sent Rcvd
1 1 (172.16.1.253,*)-(172.16.1.254,*) 47 ESP tunn 480 480

Δεν υπάρχουν πακέτα στην ένδειξη κυκλοφορίας GRE:

1.5 σχήματα σε εγχώριο IPsec VPN. Δοκιμές επιδείξεων

Συμπέρασμα: το σχήμα GRE-over-IPsec λειτουργεί σωστά.

Εικόνα 1.5: IPsec-over-GRE

Δεν σκοπεύω να χρησιμοποιήσω IPsec-over-GRE στο δίκτυο. Μαζεύω γιατί το θέλω.

1.5 σχήματα σε εγχώριο IPsec VPN. Δοκιμές επιδείξεων

Για να αναπτύξετε το σχήμα GRE-over-IPsec αντίστροφα:

  • Διόρθωση λίστας πρόσβασης κρυπτογράφησης - στοχευμένη κίνηση από το LAN1 στο LAN2 και αντίστροφα.
  • Διαμόρφωση δρομολόγησης μέσω GRE.
  • Κρεμάστε έναν cryptomap στη διεπαφή GRE.

Από προεπιλογή, δεν υπάρχει διεπαφή GRE στην κονσόλα πύλης που μοιάζει με Cisco. Υπάρχει μόνο στο λειτουργικό σύστημα.

Προσθέτω τη διεπαφή GRE στην κονσόλα που μοιάζει με Cisco. Για να το κάνω αυτό, επεξεργάζομαι το αρχείο /etc/ifaliases.cf:

interface (name="FastEthernet0/0" pattern="eth0")
interface (name="FastEthernet0/1" pattern="eth1")
interface (name="FastEthernet0/2" pattern="eth2")
interface (name="FastEthernet0/3" pattern="eth3")
interface (name="Tunnel0" pattern="gre1")
interface (name="default" pattern="*")

όπου gre1 είναι η ονομασία διεπαφής στο λειτουργικό σύστημα, Tunnel0 είναι η ονομασία διεπαφής στην κονσόλα που μοιάζει με Cisco.

Υπολογίζω ξανά τον κατακερματισμό του αρχείου:

root@VG1:~# integr_mgr calc -f /etc/ifaliases.cf

SUCCESS:  Operation was successful.

Τώρα η διεπαφή Tunnel0 εμφανίστηκε στην κονσόλα που μοιάζει με Cisco:

VG1# show run
interface Tunnel0
ip address 1.1.1.1 255.255.255.252
mtu 1400

Διόρθωση της λίστας πρόσβασης για κρυπτογράφηση:

VG1(config)#
ip access-list extended LIST
permit ip 192.168.1.0 0.0.0.255 192.168.3.0 0.0.0.255

Διαμορφώνω τη δρομολόγηση μέσω του GRE:

VG1(config)#
no ip route 0.0.0.0 0.0.0.0 172.16.1.254
ip route 192.168.3.0 255.255.255.0 1.1.1.2

Αφαιρώ το cryptomap από το Fa0 / 0 και το συνδέω στη διεπαφή GRE:

VG1(config)#
interface Tunnel0
crypto map CMAP

Για το VG2 είναι παρόμοια.

Ελεγχος:

root@VG2:~# tcpdump -i eth0 -w /home/dump3.pcap

root@VG1:~# ping 192.168.2.254 -I 192.168.1.253 -c 4
PING 192.168.2.254 (192.168.2.254) from 192.168.1.253 : 56(84) bytes of data.
64 bytes from 192.168.2.254: icmp_seq=1 ttl=64 time=492 ms
64 bytes from 192.168.2.254: icmp_seq=2 ttl=64 time=1.08 ms
64 bytes from 192.168.2.254: icmp_seq=3 ttl=64 time=1.06 ms
64 bytes from 192.168.2.254: icmp_seq=4 ttl=64 time=1.07 ms

--- 192.168.2.254 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3006ms
rtt min/avg/max/mdev = 1.064/124.048/492.972/212.998 ms

Στατιστικά στοιχεία ISAKMP/IPsec:

root@VG1:~# sa_mgr show
ISAKMP sessions: 0 initiated, 0 responded

ISAKMP connections:
Num Conn-id (Local Addr,Port)-(Remote Addr,Port) State Sent Rcvd
1 2 (172.16.1.253,500)-(172.16.1.254,500) active 1094 1022

IPsec connections:
Num Conn-id (Local Addr,Port)-(Remote Addr,Port) Protocol Action Type Sent Rcvd
1 2 (192.168.1.0-192.168.1.255,*)-(192.168.2.0-192.168.2.255,*) * ESP tunn 352 352

Στη χωματερή κυκλοφορίας ESP, τα πακέτα ενσωματώνονται σε GRE:

1.5 σχήματα σε εγχώριο IPsec VPN. Δοκιμές επιδείξεων

Συμπέρασμα: Το IPsec-over-GRE λειτουργεί σωστά.

Αποτελέσματα της

Ένα φλιτζάνι καφέ ήταν αρκετό. Σχεδίασα οδηγίες για την απόκτηση μιας δοκιμαστικής έκδοσης. Διαμόρφωση GRE-over-IPsec και ανάπτυξη αντίστροφα.

Ο χάρτης των διεπαφών δικτύου στην έκδοση 4.3 είναι αυτόματος! Δοκιμάζω περαιτέρω.

Ανώνυμος μηχανικός
t.me/anonymous_engineer


Πηγή: www.habr.com

Προσθέστε ένα σχόλιο