IPSec वीपीएन अमेज़न VPC और लिनक्स सर्वर के बीच


9

मैं अपने कॉर्पोरेट नेटवर्क और अमेज़ॅन के वर्चुअल प्राइवेट क्लाउड के बीच अपने वीपीएन सिस्टम और लिनक्स सर्वर का उपयोग करके IPSec वीपीएन कनेक्शन स्थापित करने का प्रयास कर रहा हूं। दुर्भाग्य से, एकमात्र मार्गदर्शिका मैंने चर्चा की है कि एक मेजबान लिनक्स मशीन का उपयोग करके सुरंग को कैसे स्थापित किया जाए और वीपीसी उदाहरणों तक पहुंचने के लिए उस लिनक्स मशीन को प्राप्त किया जाए, लेकिन कोई चर्चा नहीं है कि कॉर्पोरेट नेटवर्क तक पहुंचने के लिए उदाहरण कैसे प्राप्त करें। (या उस नेटवर्क के माध्यम से बाकी इंटरनेट)।

नेटवर्क की जानकारी

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;
}

बीजीपी ठीक काम कर रहा है, इसलिए मैं उन कॉन्फिग को पोस्ट करने नहीं जा रहा हूं।

यहाँ क्या काम करता है

  • लिनक्स बॉक्स से, मैं स्थानीय एंडपॉइंट्स (169.254.249.2/169.254.249.6), और उनके दूरस्थ समकक्ष (169.254.249.1/169.254.249.5) को पिंग कर सकता हूं।
  • मैं वीपीसी, एसएसएच में इंस्टेंसेस को भी पिंग कर सकता हूं, आदि।
  • VPC में दूरस्थ उदाहरणों से, मैं स्थानीय और दूरस्थ समापन बिंदुओं को भी पिंग कर सकता हूं
  • मैं 10.3.0.0/25 सबनेट पर स्थानीय सर्वर को पिंग नहीं कर सकता

मुझे लगता है कि मैं कुछ सरल याद कर रहा हूं, लेकिन मैंने {स्थानीय एंडपॉइंट} <-> {रिमोट सबनेट} को मिरर करने के लिए ipsec-tools.conf में प्रविष्टियां जोड़ने की कोशिश की है, {स्थानीय सबनेट} <-> {रिमोट एंडपॉइंट} का उपयोग करते हुए, लेकिन यह काम नहीं कर रहा था।

जब मैं {रिमोट इंस्टेंस} से {लोकल सर्वर} तक पिंग करता हूं, तो पिंग्स टाइमआउट हो जाता है। पैकेट eth0 इंटरफ़ेस पर दिखाई दे रहे हैं (भले ही स्थानीय नेटवर्क eth1 पर हो)।

Google को बहुत कम मदद मिली है; यह केवल उन लोगों को दिखाता है जो OpenSwan का उपयोग करने की कोशिश कर रहे हैं, या समान मुद्दों पर हार्डवेयर राउटर के साथ, या पुराने टूल का उपयोग कर रहे हैं।


मैं कोई विशेषज्ञ नहीं हूँ, लेकिन ऐसा लगता है कि यहाँ से wiki.debian.org/IPsec है जिसे आपको ipsec का उपयोग करते समय रिमोट स्थानीय नेटवर्क पर मैन्युअल रूप से जोड़ना होगा, हालांकि मैं गलत हो सकता
हूं

जवाबों:


3

खैर, मैंने धोखा दिया :) मैंने एस्ट्रो गेटवे स्थापित किया जो आधिकारिक तौर पर अमेज़ॅन द्वारा समर्थित है और फिर इसका उपयोग अपने स्वयं के मॉडल के लिए किया गया है। आप बस एस्ट्रो यूनिट में एसएसएच कर सकते हैं और देख सकते हैं कि उन्होंने सब कुछ कैसे सेट किया। यदि आप इसके लिए भुगतान करना चाहते हैं, तो निश्चित रूप से, आप एस्ट्रो यूनिट के साथ रह सकते हैं।


1
क्या आप अपने समाधान के बारे में विस्तार से बता सकते हैं? "मेरे अपने मॉडल" के साथ आपका क्या मतलब है? मैं एक ही समस्या पर अटका हुआ हूं, और इसमें दिलचस्पी होगी कि आपने इसे कैसे हल किया, धन्यवाद!
अधिकतम

3

पता लगा लिया। मेरे ipsec-tools.conf को इसमें बदलना था:

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;

और मेरे दौड़ने को बदल दें। इसे देखें:

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;
}

हालाँकि, यह विन्यास जैसा कि मैं समझता हूं कि यह केवल पहली सुरंग (xxx121 के माध्यम से) पर 10.3.0.0/25 और 10.4.0.0/16 के बीच यातायात को रूट करेगा। जब मुझे पता चलेगा तो मैं जवाब को अपडेट कर दूंगा।


मैं भी कुछ समय के लिए इस मुद्दे पर अटक गया और आपके जवाब से वास्तव में मदद मिली। क्या आप दोनों सुरंगों पर रूटिंग बनाने के लिए एक समाधान के साथ आए थे? मैंने अन्य सुरंग आईपी के साथ 'जेनेरिक रूटिंग' भागों को जोड़ा लेकिन इसका परीक्षण नहीं किया।
विल

मुझे दोनों सुरंगों के मार्ग के लिए कोई अच्छा समाधान नहीं मिला, लेकिन मुझे लगता है कि यह एक संदर्भ में समझ में आता है। यहां विचार अतिरेक प्रदान करना है, और आदर्श रूप से दोनों छोरों पर अतिरेक शामिल होगा। आप दूसरी सुरंग पर एक अलग सर्वर स्थापित कर सकते हैं और अपने वीपीएन को दो मार्ग प्रदान कर सकते हैं (जैसे दो मार्गों के साथ अपने मानक सर्वर प्रदान करके, प्रत्येक बॉक्स पर एक)। या तो वह, या आप किसी प्रकार की निगरानी प्रणाली के साथ मैनुअल फेलओवर को ट्रिगर करते हैं। न तो समाधान वास्तव में 'इष्टतम' है, लेकिन पहला आपके पक्ष में भी अतिरेक प्रदान करता है।
डान उडे

0

क्या आप जानते हैं कि सेटिफ़ कॉन्फ़िगरेशन के लिए "उपयोग" के बजाय "आवश्यकता" का उपयोग करने का कारण है? क्या आपको यह भी पता है कि क्या यह मायने रखता है कि मैं किस क्रम में सुदूर और sainfo वर्गों के भीतर बयान देता हूं और गलती से कुछ बयानों को दोहरा रहा हूं? उदाहरण के लिए:

#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;
}

बनाम

#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
}

क्या आपने यह भी पता लगाया है कि दोनों सुरंगों पर बहने के लिए ट्रैफ़िक कैसे मिलता है?

किसी भी मार्गदर्शन के लिए धन्यवाद।


Serverfault में आपका स्वागत है। ऐसा लगता है कि आप किसी अन्य पोस्टर के प्रश्न के उत्तर अनुभाग में एक प्रश्न पूछने की कोशिश कर रहे हैं। यदि आपके पास एक नया प्रश्न है, तो कृपया इसे serverfault.com पर जाकर एक नया प्रश्न पोस्ट करें और बड़े लाल "प्रश्न पूछें" बटन पर क्लिक करें।
vjones

मैं अनुवर्ती कार्रवाई के लिए धन्यवाद दूंगा।
DPfiler
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.