1.5 về IPsec VPN trong nước. bản demo thử nghiệm

1.5 về IPsec VPN trong nước. bản demo thử nghiệm

Tình hình

Tôi đã nhận được phiên bản demo của các sản phẩm C-Terra VPN phiên bản 4.3 trong ba tháng. Tôi muốn biết liệu cuộc sống kỹ sư của tôi có trở nên dễ dàng hơn sau khi chuyển sang phiên bản mới hay không.

Hôm nay không khó, một túi cà phê hòa tan 3 trong 1 chắc là đủ. Tôi sẽ cho bạn biết làm thế nào để có được bản demo. Tôi sẽ cố gắng xây dựng các sơ đồ GRE-over-IPsec và IPsec-over-GRE.

Làm thế nào để có được một bản demo

1.5 về IPsec VPN trong nước. bản demo thử nghiệm

Theo hình vẽ, để có được bản trình diễn, bạn cần phải:

  • Viết thư cho [email được bảo vệ] từ một địa chỉ công ty;
  • Trong thư, cho biết TIN của tổ chức của bạn;
  • Liệt kê các sản phẩm và số lượng của chúng.

Bản trình diễn có giá trị trong ba tháng. Nhà cung cấp không giới hạn chức năng của họ.

Mở rộng hình ảnh

Bản demo Cổng bảo mật là một hình ảnh máy ảo. Tôi đang sử dụng VMWare Workstation. Danh sách đầy đủ các trình ảo hóa và môi trường ảo hóa được hỗ trợ có sẵn trên trang web của nhà cung cấp.

Trước khi bạn bắt đầu, xin lưu ý rằng không có giao diện mạng nào trong hình ảnh máy ảo mặc định:

1.5 về IPsec VPN trong nước. bản demo thử nghiệm

Logic rất rõ ràng, người dùng nên thêm bao nhiêu giao diện tùy thích. Tôi sẽ thêm bốn cùng một lúc:

1.5 về IPsec VPN trong nước. bản demo thử nghiệm

Bây giờ tôi khởi động máy ảo. Ngay sau khi khởi chạy, cổng yêu cầu tên người dùng và mật khẩu.

Có một số bảng điều khiển trong S-Terra Gateway với các tài khoản khác nhau. Tôi sẽ đếm số lượng của họ trong một bài viết riêng. Hiện tại:
Login as: administrator
Password: s-terra

Tôi đang khởi tạo cổng. Khởi tạo là một chuỗi các hành động: nhập giấy phép, thiết lập trình tạo số ngẫu nhiên sinh học (trình giả lập bàn phím - bản ghi của tôi là 27 giây) và tạo bản đồ giao diện mạng.

Bản đồ các giao diện mạng. Nó trở nên dễ dàng hơn

Phiên bản 4.2 chào đón người dùng đang hoạt động bằng các thông báo:

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

Người dùng tích cực (theo một kỹ sư ẩn danh) là người dùng có thể thiết lập mọi thứ một cách nhanh chóng và không cần tài liệu.

Đã xảy ra sự cố trước khi thử thiết lập địa chỉ IP trên giao diện. Đó là tất cả về bản đồ giao diện mạng. Nó là cần thiết để làm:

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

Do đó, một bản đồ giao diện mạng được tạo có chứa ánh xạ của các tên giao diện vật lý (0000:02:03.0) và các chỉ định logic của chúng trong hệ điều hành (eth0) và bảng điều khiển giống như Cisco (FastEthernet0/0):

#Unique ID iface type OS name Cisco-like name

0000:02:03.0 phye eth0 FastEthernet0/0

Các chỉ định hợp lý của các giao diện được gọi là bí danh. Bí danh được lưu trữ trong tệp /etc/ifaliases.cf.
Trong phiên bản 4.3, khi máy ảo được khởi động lần đầu tiên, bản đồ giao diện sẽ được tạo tự động. Nếu bạn thay đổi số lượng giao diện mạng trong máy ảo, vui lòng tạo lại sơ đồ giao diện:

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

Lược đồ 1: GRE-over-IPsec

Tôi triển khai hai cổng ảo, tôi chuyển đổi như trong hình:

1.5 về IPsec VPN trong nước. bản demo thử nghiệm

Bước 1. Thiết lập địa chỉ IP và định tuyến

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

Kiểm tra kết nối 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

Bước 2: Thiết lập GRE

Tôi lấy một ví dụ về việc thiết lập GRE từ các kịch bản chính thức. Tôi tạo một tệp gre1 trong thư mục /etc/network/interfaces.d với nội dung.

Đối với 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

Đối với 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

Tôi nâng giao diện trong hệ thống:

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

Kiểm tra:

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 có trình nghe lén gói tích hợp - tcpdump. Tôi sẽ viết kết xuất lưu lượng vào tệp pcap:

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

Tôi bắt đầu ping giữa các giao diện 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

Đường hầm GRE đang hoạt động:

1.5 về IPsec VPN trong nước. bản demo thử nghiệm

Bước 3. Mã hóa bằng GOST GRE

Tôi đặt loại nhận dạng - theo địa chỉ. Xác thực bằng khóa xác định trước (theo Điều khoản sử dụng phải sử dụng chứng thư số):

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

Tôi đặt các tham số IPsec Giai đoạn I:

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

Tôi đặt các tham số IPsec Giai đoạn II:

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

Tôi tạo một danh sách truy cập để mã hóa. Lưu lượng truy cập được nhắm mục tiêu - GRE:

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

Tôi tạo một bản đồ tiền điện tử và liên kết nó với giao diện 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

Đối với VG2, cấu hình được nhân đôi, sự khác biệt là:

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

Kiểm tra:

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

Thống kê 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

Không có gói nào trong kết xuất lưu lượng GRE:

1.5 về IPsec VPN trong nước. bản demo thử nghiệm

Kết luận: lược đồ GRE-over-IPsec hoạt động chính xác.

Hình 1.5: IPsec-over-GRE

Tôi không định sử dụng IPsec-over-GRE trên mạng. Tôi thu thập bởi vì tôi muốn.

1.5 về IPsec VPN trong nước. bản demo thử nghiệm

Để triển khai lược đồ GRE-over-IPsec theo cách khác:

  • Khắc phục danh sách truy cập mã hóa - lưu lượng được nhắm mục tiêu từ LAN1 sang LAN2 và ngược lại;
  • Định cấu hình định tuyến thông qua GRE;
  • Treo một cryptomap trên giao diện GRE.

Theo mặc định, không có giao diện GRE trong bảng điều khiển cổng giống như của Cisco. Nó chỉ tồn tại trong hệ điều hành.

Tôi thêm giao diện GRE vào bảng điều khiển giống như của Cisco. Để làm điều này, tôi chỉnh sửa tệp /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="*")

trong đó gre1 là chỉ định giao diện trong hệ điều hành, Tunnel0 là chỉ định giao diện trong bảng điều khiển giống như của Cisco.

Tôi tính toán lại hàm băm của tệp:

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

SUCCESS:  Operation was successful.

Bây giờ giao diện Tunnel0 đã xuất hiện trong bảng điều khiển giống như của Cisco:

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

Sửa danh sách truy cập để mã hóa:

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

Tôi định cấu hình định tuyến thông qua 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

Tôi xóa bản đồ mật khỏi Fa0/0 và liên kết nó với giao diện GRE:

VG1(config)#
interface Tunnel0
crypto map CMAP

Đối với VG2 thì cũng tương tự.

Kiểm tra:

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

Thống kê 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

Trong kết xuất lưu lượng ESP, các gói được gói gọn trong GRE:

1.5 về IPsec VPN trong nước. bản demo thử nghiệm

Kết luận: IPsec-over-GRE hoạt động chính xác.

Kết quả

Một tách cà phê là đủ. Tôi đã phác thảo hướng dẫn để có được phiên bản demo. Đã định cấu hình GRE-over-IPsec và triển khai ngược lại.

Bản đồ giao diện mạng trong phiên bản 4.3 là tự động! Tôi đang thử nghiệm thêm.

kỹ sư ẩn danh
t.me/anonymous_engineer


Nguồn: www.habr.com

Thêm một lời nhận xét