IPSec VPN giữa Amazon VPC và Linux Server


9

Tôi đang cố gắng thiết lập kết nối VPN IPSec giữa mạng công ty của chúng tôi và Đám mây riêng ảo của Amazon, sử dụng hệ thống VPN của họ và máy chủ Linux. Thật không may, hướng dẫn duy nhất tôi tìm thấy thảo luận về cách thiết lập đường hầm bằng máy chủ Linux và đưa máy linux đó truy cập vào các phiên bản VPC, nhưng không có cuộc thảo luận nào tôi có thể tìm thấy trực tuyến về cách lấy ví dụ để truy cập mạng công ty (hoặc phần còn lại của internet thông qua mạng đó).

Thông tin mạng

Local subnet: 10.3.0.0/25
Remote subnet: 10.4.0.0/16

Tunnel 1:
  Outside IP Addresses:
    - Customer Gateway:        : 199.167.xxx.xxx
    - VPN Gateway              : 205.251.233.121

  Inside IP Addresses
    - Customer Gateway         : 169.254.249.2/30
    - VPN Gateway              : 169.254.249.1/30

Tunnel 2:
  Outside IP Addresses:
    - Customer Gateway:        : 199.167.xxx.xxx
    - VPN Gateway              : 205.251.233.122

  Inside IP Addresses
    - Customer Gateway         : 169.254.249.6/30
    - VPN Gateway              : 169.254.249.5/30

Đây là /etc/ipsec-tools.conf:

flush;
spdflush;

spdadd 169.254.249.2/30 169.254.249.1/30 any -P out ipsec
   esp/tunnel/199.167.xxx.xxx-205.251.233.121/require;

spdadd 169.254.249.1/30 169.254.249.2/30 any -P in ipsec
   esp/tunnel/205.251.233.121-199.167.xxx.xxx/require;

spdadd 169.254.249.6/30 169.254.249.5/30 any -P out ipsec
   esp/tunnel/199.167.xxx.xxx-205.251.233.122/require;

spdadd 169.254.249.5/30 169.254.249.6/30 any -P in ipsec
   esp/tunnel/205.251.233.122-199.167.xxx.xxx/require;



spdadd 169.254.249.2/30 10.4.0.0/16 any -P out ipsec
   esp/tunnel/199.167.xxx.xxx-205.251.233.121/require;

spdadd 10.4.0.0/16 169.254.249.2/30 any -P in ipsec
   esp/tunnel/205.251.233.121-199.167.xxx.xxx/require;

spdadd 169.254.249.6/30 10.4.0.0/16 any -P out ipsec
   esp/tunnel/199.167.xxx.xxx-205.251.233.122/require;

spdadd 10.4.0.0/16 169.254.249.6/30 any -P in ipsec
   esp/tunnel/205.251.233.122-199.167.xxx.xxx/require;

Đây là /etc/racoon/racoon.conf:

remote 205.251.233.122 {
        exchange_mode main;
        lifetime time 28800 seconds;
        proposal {
                encryption_algorithm aes128;
                hash_algorithm sha1;
                authentication_method pre_shared_key;
                dh_group 2;
        }
        generate_policy off;
}

remote 205.251.233.121 {
        exchange_mode main;
        lifetime time 28800 seconds;
        proposal {
                encryption_algorithm aes128;
                hash_algorithm sha1;
                authentication_method pre_shared_key;
                dh_group 2;
        }
        generate_policy off;
}

sainfo address 169.254.249.2/30 any address 169.254.249.1/30 any {
    pfs_group 2;
    lifetime time 3600 seconds;
    encryption_algorithm aes128;
    authentication_algorithm hmac_sha1;
    compression_algorithm deflate;
}

sainfo address 169.254.249.6/30 any address 169.254.249.5/30 any {
    pfs_group 2;
    lifetime time 3600 seconds;
    encryption_algorithm aes128;
    authentication_algorithm hmac_sha1;
    compression_algorithm deflate;
}

BGP đang hoạt động tốt, vì vậy tôi sẽ không đăng những cấu hình đó.

Đây là những gì hoạt động

  • Từ hộp Linux, tôi có thể ping các điểm cuối cục bộ (169.254.249.2/169.254.249.6) và các điểm tương đương từ xa của chúng (169.254.249.1/169.254.249.5).
  • Tôi cũng có thể ping các thể hiện trong VPC, SSH cho họ, v.v.
  • Từ các phiên bản từ xa trong VPC, tôi cũng có thể ping các điểm cuối cục bộ và từ xa
  • Tôi không thể ping máy chủ cục bộ trên mạng con 10.3.0.0/25

Tôi cho rằng tôi đang thiếu một cái gì đó đơn giản, nhưng tôi đã thử thêm các mục vào ipsec-tools.conf để phản chiếu {điểm cuối cục bộ} <-> {mạng con từ xa}, sử dụng {mạng con cục bộ} <-> {điểm cuối từ xa}, nhưng nó dường như không hoạt động.

Khi tôi ping từ {thể hiện từ xa} đến {máy chủ cục bộ}, thời gian chờ ping. Các gói được hiển thị trên giao diện eth0 (mặc dù mạng cục bộ nằm trên eth1).

Google đã giúp đỡ rất ít; nó chỉ hiển thị những người đang cố gắng sử dụng OpenSwan hoặc gặp sự cố tương tự nhưng với bộ định tuyến phần cứng hoặc sử dụng các công cụ cũ hơn.


Tôi không phải là chuyên gia nhưng có vẻ như từ đây wiki.debian.org/IPsec rằng bạn phải tự thêm các tuyến vào mạng cục bộ từ xa khi sử dụng ipsec, tôi có thể sai mặc dù ..
user993553

Câu trả lời:


3

Chà, tôi đã lừa dối :) Tôi đã cài đặt cổng Astaro được Amazon hỗ trợ chính thức và sau đó sử dụng nó để tạo mô hình cho riêng tôi. Bạn chỉ có thể SSH vào đơn vị Astaro và xem cách họ thiết lập mọi thứ. Tất nhiên, bạn có thể gắn bó với đơn vị Astaro nếu bạn cảm thấy muốn trả tiền cho nó.


1
Bạn có thể vui lòng giải thích về giải pháp của bạn? Bạn có ý nghĩa gì với "mô hình của riêng tôi"? Tôi bị mắc kẹt trong cùng một vấn đề, và sẽ quan tâm đến cách bạn giải quyết nó, cảm ơn!
Tối đa

3

Tìm ra. Phải thay đổi ipsec-tools.conf của tôi thành thế này:

flush;
spdflush;

# Generic routing
spdadd 10.4.0.0/16 10.3.0.0/25 any -P in  ipsec esp/tunnel/205.251.233.121-199.167.xxx.xxx/require;
spdadd 10.3.0.0/25 10.4.0.0/16 any -P out ipsec esp/tunnel/199.167.xxx.xxx-205.251.233.121/require;

# Tunnel 1
spdadd 169.254.249.1/30 169.254.249.2/30 any -P in  ipsec esp/tunnel/205.251.233.121-199.167.xxx.xxx/require;
spdadd 169.254.249.2/30 169.254.249.1/30 any -P out ipsec esp/tunnel/199.167.xxx.xxx-205.251.233.121/require;

spdadd 10.4.0.0/16 169.254.249.2/30 any -P in  ipsec esp/tunnel/205.251.233.121-199.167.xxx.xxx/require;
spdadd 169.254.249.2/30 10.4.0.0/16 any -P out ipsec esp/tunnel/199.167.xxx.xxx-205.251.233.121/require;

# Tunnel 2
spdadd 169.254.249.5/30 169.254.249.6/30 any -P in  ipsec esp/tunnel/205.251.233.122-199.167.xxx.xxx/require;
spdadd 169.254.249.6/30 169.254.249.5/30 any -P out ipsec esp/tunnel/199.167.xxx.xxx-205.251.233.122/require;

spdadd 10.4.0.0/16 169.254.249.6/30 any -P in  ipsec esp/tunnel/205.251.233.122-199.167.xxx.xxx/require;
spdadd 169.254.249.6/30 10.4.0.0/16 any -P out ipsec esp/tunnel/199.167.xxx.xxx-205.251.233.122/require;

Và thay đổi racoon.conf của tôi thành này:

path pre_shared_key "/etc/racoon/psk.txt";

remote 205.251.233.122 {
        exchange_mode main;
        lifetime time 28800 seconds;
        proposal {
                encryption_algorithm aes128;
                hash_algorithm sha1;
                authentication_method pre_shared_key;
                dh_group 2;
        }
        generate_policy off;
}

remote 205.251.233.121 {
        exchange_mode main;
        lifetime time 28800 seconds;
        proposal {
                encryption_algorithm aes128;
                hash_algorithm sha1;
                authentication_method pre_shared_key;
                dh_group 2;
        }
        generate_policy off;
}

sainfo address 169.254.249.2/30 any address 169.254.249.1/30 any {
    pfs_group 2;
    lifetime time 3600 seconds;
    encryption_algorithm aes128;
    authentication_algorithm hmac_sha1;
    compression_algorithm deflate;
}

sainfo address 169.254.249.6/30 any address 169.254.249.5/30 any {
    pfs_group 2;
    lifetime time 3600 seconds;
    encryption_algorithm aes128;
    authentication_algorithm hmac_sha1;
    compression_algorithm deflate;
}

sainfo address 10.3.0.0/25 any address 10.4.0.0/16 any {
    pfs_group 2;
    lifetime time 3600 seconds;
    encryption_algorithm aes128;
    authentication_algorithm hmac_sha1;
    compression_algorithm deflate;
}

Tuy nhiên, cấu hình này theo tôi hiểu, nó sẽ chỉ định tuyến lưu lượng trong khoảng thời gian từ 10.3.0.0/25 đến 10.4.0.0/16 qua đường hầm đầu tiên (thông qua xxx121). Tôi sẽ cập nhật câu trả lời khi tôi tìm ra điều đó.


Tôi cũng đã bị mắc kẹt với vấn đề này trong một thời gian và câu trả lời của bạn thực sự có ích. Bạn đã đưa ra một giải pháp để thực hiện định tuyến trên cả hai đường hầm? Tôi đã thêm các phần 'Định tuyến chung' với IP đường hầm khác nhưng chưa kiểm tra nó.
Sẽ

Tôi đã không tìm thấy bất kỳ giải pháp tốt nào để định tuyến trên cả hai đường hầm, nhưng tôi nghĩ điều đó có ý nghĩa trong một bối cảnh. Ý tưởng ở đây là cung cấp dự phòng, và lý tưởng nhất là bao gồm dự phòng ở cả hai đầu. Bạn có thể thiết lập một máy chủ riêng trên đường hầm thứ hai và cung cấp hai tuyến cho VPN của mình (ví dụ: bằng cách cung cấp cho các máy chủ tiêu chuẩn của bạn hai tuyến, một tuyến cho mỗi hộp). Hoặc là, hoặc bạn kích hoạt chuyển đổi dự phòng thủ công với một số loại hệ thống giám sát. Không có giải pháp nào thực sự là 'tối ưu', nhưng giải pháp đầu tiên cũng cung cấp dự phòng cho bạn.
Dan Udey

0

Bạn có biết lý do để sử dụng "yêu cầu" thay vì "sử dụng" cho cấu hình setkey không? Bạn có biết nếu nó quan trọng theo thứ tự tôi đặt các câu lệnh trong các phần từ xa và sainfo và sao chép nhầm các câu lệnh nhất định? Ví dụ:

#original
remote 205.251.233.121 {
        exchange_mode main;
        lifetime time 28800 seconds;
        proposal {
                encryption_algorithm aes128;
                hash_algorithm sha1;
                authentication_method pre_shared_key;
                dh_group 2;
        }
        generate_policy off;
}

đấu với

#edited
remote 205.251.233.121 {
        generate_policy off;                           #moved/duplicated
        lifetime time 28800 seconds;
        proposal {
                dh_group 2;                           #moved
                encryption_algorithm aes128;
                hash_algorithm sha1;
                authentication_method pre_shared_key;
        }
         exchange_mode main;                      #moved
        generate_policy off;                   #duplicated/moved
}

Bạn cũng đã tìm ra làm thế nào để lưu lượng truy cập chảy trên cả hai đường hầm?

Cảm ơn bạn đã hướng dẫn.


Chào mừng bạn đến với Serverfault. Có vẻ như bạn đang cố gắng đặt câu hỏi trong phần trả lời câu hỏi của người đăng khác. Nếu bạn có câu hỏi mới, vui lòng gửi câu hỏi dưới dạng câu hỏi mới bằng cách truy cập serverfault.com và nhấp vào nút "Đặt câu hỏi" màu đỏ lớn.
vjones

Tôi sẽ, cảm ơn bạn đã theo dõi.
DPfiler
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.