ฉันกำลังพยายามตั้งค่าการเชื่อมต่อ IPSec VPN ระหว่างเครือข่ายองค์กรของเราและ Virtual Private Cloud ของ Amazon โดยใช้ระบบ VPN และเซิร์ฟเวอร์ Linux น่าเสียดายที่คำแนะนำเดียวที่ฉันพบกล่าวถึงวิธีการตั้งค่าอุโมงค์โดยใช้เครื่องโฮสต์ Linux และรับเครื่อง Linux ที่เข้าถึงอินสแตนซ์ VPC แต่ไม่มีการสนทนาฉันสามารถค้นหาออนไลน์เกี่ยวกับวิธีรับอินสแตนซ์ในการเข้าถึงเครือข่ายองค์กร (หรือส่วนที่เหลือของอินเทอร์เน็ตผ่านเครือข่ายนั้น)
ข้อมูลเครือข่าย
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
นี่คือ /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;
นี่คือ /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 ทำงานได้ดีดังนั้นฉันจะไม่โพสต์การกำหนดค่าเหล่านั้น
นี่คือสิ่งที่ใช้งานได้
- จากกล่อง Linux ฉันสามารถ ping จุดปลายเฉพาะที่ (169.254.249.2/169.254.249.6) และรายการเทียบเท่าระยะไกล (169.254.249.1/169.254.249.5)
- ฉันยังสามารถ ping อินสแตนซ์ใน VPC, SSH ให้กับพวกเขา ฯลฯ
- จากอินสแตนซ์ระยะไกลใน VPC ฉันสามารถ ping อุปกรณ์ปลายทางและรีโมทปลายทางได้เช่นกัน
- ฉันไม่สามารถ ping เซิร์ฟเวอร์ภายในบนซับเน็ต 10.3.0.0/25
ฉันคิดว่าฉันขาดอะไรง่ายๆไปแล้ว แต่ฉันได้ลองเพิ่มรายการใน ipsec-tools.conf เพื่อทำหน้าที่สะท้อน {local endpoint} <-> {remote subnet} โดยใช้ {local subnet} <-> {remote endpoint}, แต่ดูเหมือนจะไม่ทำงาน
เมื่อฉัน ping จาก {remote instance} ถึง {local server} เวลาในการส่ง Ping จะหมดไป แพ็กเก็ตสามารถมองเห็นได้บนอินเตอร์เฟส eth0 (แม้ว่าเครือข่ายโลคัลอยู่บน eth1)
Google ได้รับความช่วยเหลือเล็กน้อย มันแสดงเฉพาะคนที่พยายามใช้ OpenSwan หรือมีปัญหาที่คล้ายกัน แต่กับเราเตอร์ฮาร์ดแวร์หรือใช้เครื่องมือรุ่นเก่า