अपडेट पर वापस जाएँ
New releaseSep 8, 2026

strongswan v6.1.0

strongSwan - IPsec-आधारित VPN

साझा करें

strongSwan कॉन्फ़िगरेशन

अवलोकन

strongSwan एक ओपनसोर्स IPsec-आधारित VPN समाधान है।

यह दस्तावेज़ strongSwan swanctl कमांड का एक संक्षिप्त परिचय मात्र है, जो आधुनिक vici वर्सेटाइल IKE कॉन्फ़िगरेशन इंटरफ़ेस का उपयोग करता है। विरासती stroke कॉन्फ़िगरेशन इंटरफ़ेस का उपयोग करने वाला अप्रचलित ipsec कमांड यहाँ वर्णित है। अधिक विस्तृत जानकारी के लिए man पेज, हमारी नई दस्तावेज़ीकरण साइट और विरासती विकी देखें।

त्वरित आरंभ

उपयोगकर्ताओं, होस्टों और गेटवे के लिए प्रमाणपत्र एक काल्पनिक strongSwan CA द्वारा जारी किए जाते हैं। हमारे उदाहरण परिदृश्यों में, सहकर्मियों को प्रमाणित करने में सक्षम होने के लिए CA प्रमाणपत्र strongswanCert.pem सभी VPN एंडपॉइंट्स पर मौजूद होना चाहिए। आपके विशेष VPN अनुप्रयोग के लिए आप किसी तृतीय-पक्ष CA से प्रमाणपत्रों का उपयोग कर सकते हैं या strongSwan pki टूल के साथ आवश्यक निजी कुंजियाँ और प्रमाणपत्र स्वयं उत्पन्न कर सकते हैं, जिसका उपयोग नीचे दिए गए अनुभागों में से एक में समझाया जाएगा।

साइट-टू-साइट परिदृश्य

इस परिदृश्य में दो सुरक्षा गेटवे moon और sun दोनों गेटवे के बीच स्थापित एक VPN सुरंग के माध्यम से दो सबनेट moon-net और sun-net को एक दूसरे से जोड़ेंगे:

10.1.0.0/16 -- | 192.168.0.1 | === | 192.168.0.2 | -- 10.2.0.0/16
  moon-net          moon                 sun           sun-net

गेटवे moon पर कॉन्फ़िगरेशन:

/etc/swanctl/x509ca/strongswanCert.pem
/etc/swanctl/x509/moonCert.pem
/etc/swanctl/private/moonKey.pem

/etc/swanctl/swanctl.conf:

    connections {
        net-net {
            remote_addrs = 192.168.0.2

            local {
                auth = pubkey
                certs = moonCert.pem
            }
            remote {
                auth = pubkey
                id = "C=CH, O=strongSwan, CN=sun.strongswan.org"
            }
            children {
                net-net {
                    local_ts  = 10.1.0.0/16
                    remote_ts = 10.2.0.0/16
                    start_action = trap
                }
            }
        }
    }

गेटवे sun पर कॉन्फ़िगरेशन:

/etc/swanctl/x509ca/strongswanCert.pem
/etc/swanctl/x509/sunCert.pem
/etc/swanctl/private/sunKey.pem

/etc/swanctl/swanctl.conf:

    connections {
        net-net {
            remote_addrs = 192.168.0.1

            local {
                auth = pubkey
                certs = sunCert.pem
            }
            remote {
                auth = pubkey
                id = "C=CH, O=strongSwan, CN=moon.strongswan.org"
            }
            children {
                net-net {
                    local_ts  = 10.2.0.0/16
                    remote_ts = 10.1.0.0/16
                    start_action = trap
                }
            }
        }
    }

इस परिदृश्य में उपयोग की जाने वाली स्थानीय और दूरस्थ पहचान, अंतिम इकाई प्रमाणपत्रों में निहित subjectDistinguishedNames हैं। प्रमाणपत्र और निजी कुंजियाँ निम्न कमांड के साथ charon डेमॉन में लोड की जाती हैं

swanctl --load-creds

जबकि

swanctl --load-conns

swanctl.conf में परिभाषित कनेक्शनों को लोड करता है। start_action = trap के साथ, IPsec कनेक्शन सुरंग से गुजरने वाले पहले सादे-पाठ पेलोड IP पैकेट के साथ स्वचालित रूप से स्थापित हो जाता है।

होस्ट-टू-होस्ट परिदृश्य

यह दो एकल होस्टों के बीच एक सेटअप है जिनके पीछे कोई सबनेट नहीं होता है। यद्यपि होस्ट-टू-होस्ट कनेक्शनों के लिए IPsec ट्रांसपोर्ट मोड पर्याप्त होगा, हम डिफ़ॉल्ट IPsec टनल मोड का उपयोग करेंगे।

| 192.168.0.1 | === | 192.168.0.2 |
     moon                sun

होस्ट moon पर कॉन्फ़िगरेशन:

/etc/swanctl/x509ca/strongswanCert.pem
/etc/swanctl/x509/moonCert.pem
/etc/swanctl/private/moonKey.pem

/etc/swanctl/swanctl.conf:

    connections {
        host-host {
            remote_addrs = 192.168.0.2

            local {
                auth=pubkey
                certs = moonCert.pem
            }
            remote {
                auth = pubkey
                id = "C=CH, O=strongSwan, CN=sun.strongswan.org"
            }
            children {
                net-net {
                    start_action = trap
                }
            }
        }
    }

होस्ट sun पर कॉन्फ़िगरेशन:

/etc/swanctl/x509ca/strongswanCert.pem
/etc/swanctl/x509/sunCert.pem
/etc/swanctl/private/sunKey.pem

/etc/swanctl/swanctl.conf:

    connections {
        host-host {
            remote_addrs = 192.168.0.1

            local {
                auth = pubkey
                certs = sunCert.pem
            }
            remote {
                auth = pubkey
                id = "C=CH, O=strongSwan, CN=moon.strongswan.org"
            }
            children {
                host-host {
                    start_action = trap
                }
            }
        }
    }

रोडवॉरियर परिदृश्य

यह एक बहुत ही सामान्य मामला है जहाँ एक strongSwan गेटवे सामान्यतः गतिशील IP पते वाले कितने भी दूरस्थ VPN क्लाइंटों को सेवा प्रदान करता है।

10.1.0.0/16 -- | 192.168.0.1 | === | x.x.x.x |
  moon-net          moon              carol

गेटवे moon पर कॉन्फ़िगरेशन:

/etc/swanctl/x509ca/strongswanCert.pem
/etc/swanctl/x509/moonCert.pem
/etc/swanctl/private/moonKey.pem

/etc/swanctl/swanctl.conf:

    connections {
        rw {
            local {
                auth = pubkey
                certs = moonCert.pem
                id = moon.strongswan.org
            }
            remote {
                auth = pubkey
            }
            children {
                net-net {
                    local_ts  = 10.1.0.0/16
                }
            }
        }
    }

रोडवॉरियर carol पर कॉन्फ़िगरेशन:

/etc/swanctl/x509ca/strongswanCert.pem
/etc/swanctl/x509/carolCert.pem
/etc/swanctl/private/carolKey.pem

/etc/swanctl/swanctl.conf:

    connections {
        home {
            remote_addrs = moon.strongswan.org

            local {
                auth = pubkey
                certs = carolCert.pem
                id = [email protected]
            }
            remote {
                auth = pubkey
                id = moon.strongswan.org
            }
            children {
                home {
                    local_ts  = 10.1.0.0/16
                    start_action = start
                }
            }
        }
    }

remote_addrs के लिए होस्टनाम moon.strongswan.org चुना गया, जिसे DNS द्वारा रनटाइम पर संबंधित IP गंतव्य पते में हल किया जाएगा। इस परिदृश्य में, रोडवॉरियर carol की पहचान ईमेल पता [email protected] है, जिसे रोडवॉरियर प्रमाणपत्र carolCert.pem में subjectAlternativeName के रूप में शामिल किया जाना चाहिए।

वर्चुअल IP के साथ रोडवॉरियर परिदृश्य

रोडवॉरियरों के पास सामान्यतः उनके वर्तमान ISP द्वारा निर्दिष्ट गतिशील IP पते होते हैं। moon-net से दूरस्थ एक्सेस क्लाइंट carol तक रूटिंग को सरल बनाने के लिए, यह वांछनीय होगा यदि रोडवॉरियर के पास पूर्व-परिभाषित पूल से चुना गया आंतरिक IP पता हो।

10.1.0.0/16 -- | 192.168.0.1 | === | x.x.x.x | -- 10.3.0.1
  moon-net          moon              carol       virtual IP

हमारे उदाहरण में, वर्चुअल IP पता एड्रेस पूल 10.3.0.0/16 से चुना गया है, जिसे निम्न अनुभाग जोड़कर कॉन्फ़िगर किया जा सकता है

pools {
    rw_pool {
        addrs = 10.3.0.0/16
    }
}

गेटवे के swanctl.conf में, जहाँ से उन्हें निम्न कमांड का उपयोग करके charon डेमॉन में लोड किया जाता है

श्रेणियाँ