कठपुतली सुरक्षा और नेटवर्क टोपोलॉजी


26

पृष्ठभूमि:

मैं आखिरकार 21 वीं शताब्दी में शामिल होने और कठपुतली को देखने के लिए कुछ समय निर्धारित कर रहा हूं।

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

इसलिए मुझे उम्मीद है कि कठपुतली हमारे पास पहले से ही एक सरल लेकिन अद्भुत विस्तार होने जा रहा है।

अब मैं उस प्रक्रिया पर विचार करता हूं जिसे हमें वर्तमान में यथोचित रूप से सुरक्षित करना है। इस धारणा पर कि हमारे डेटा नेटवर्क हमारे डेटाट्रेस में सार्वजनिक नेटवर्क की तुलना में हमेशा अधिक सुरक्षित रहेंगे।

  • प्रक्रिया हमेशा एक ही रास्ता है। एक सुरक्षित वातावरण से असुरक्षित होने के लिए परिवर्तन और कभी दूसरे रास्ते पर नहीं।

  • मास्टर स्टोर सबसे सुरक्षित जगह पर है। समझौता करने का जोखिम, या तो कॉन्फ़िगरेशन को चुराने या दुर्भावनापूर्ण संशोधनों को भेजने से बहुत कम हो जाता है।

सवाल:

कठपुतली सर्वर / क्लाइंट मॉडल के बारे में मुझे जो समझ में आता है, वह यह है कि क्लाइंट सीधे सर्वर से पोल और अपडेट को नीचे खींचते हैं। ट्रैफ़िक एसएसएल लिपटे हुए है इसलिए इसे इंटरसेप्ट या स्पूफ नहीं किया जा सकता है। लेकिन यह इस बात से अलग है कि वर्तमान में हम क्या करते हैं क्योंकि कठपुतली सर्वर [s] को सार्वजनिक स्थान पर होस्ट करना होगा। या तो केंद्रीय रूप से, या हमारे द्वारा बनाए गए प्रत्येक डाटासेंटर साइट के लिए।

तो मैं सोच रहा हूँ:

  • क्या मैं पुश से पुल में बदलाव के बारे में अनावश्यक रूप से पागल हूं?

  • क्या मैं अनावश्यक रूप से एक सार्वजनिक नेटवर्क पर उस जानकारी के सभी भंडारण के बारे में पागल हो रहा हूं?

  • अन्य लोग कई नेटवर्क कैसे बनाए रख रहे हैं - प्रत्येक साइट के लिए अलग सर्वर?


अद्यतन 30/07/09:

मुझे लगता है कि मेरी एक और बड़ी चिंता यह है कि एक मशीन पर भरोसा करना चाहिए। कठपुतली (फायर), फ़ायरवॉल, सुरक्षित और ऐसे होगा। लेकिन फिर भी सुनने की सेवाओं के साथ किसी भी सार्वजनिक मशीन में एक निश्चित आकार की हमला सतह होती है।

संभवत: यदि मास्टर को कठपुतली ग्राहकों में से किसी एक पर किसी भी फाइल को अपडेट करने की अनुमति है, तो यह समझौता है जिसके परिणामस्वरूप यह सभी ग्राहकों का समझौता होगा। "राज्य के राजाओं" को बोलने के लिए।

  • क्या वह परिकल्पना सही है?

  • क्या कोई तरीका है जिससे इसे कम किया जा सकता है?


आपकी परिकल्पना सही है; कठपुतली पर समझौता सभी ग्राहकों पर समझौता है। हालाँकि, एकल मशीन की सुरक्षा के बारे में अच्छा महसूस करना आसान है कि आप अपना ध्यान मशीनों के पूरे नेटवर्क की तुलना में सुरक्षित करने पर लगा सकते हैं, है न? शमन आपके वातावरण पर निर्भर करता है, लेकिन कठपुतली को प्लंबिंग लिखा जाता है, इसमें उचित मात्रा में "हुक" होते हैं, जहाँ आप आवश्यकतानुसार कुछ ऑडिटिंग या अतिरिक्त जाँच जोड़ सकते हैं।
पॉल लेथ्रोप

1
@ पाओल - "एक बहुत अच्छी टोकरी है" यह सुनिश्चित करने के बाद "एक टोकरी में अपने सभी अंडे डालें?"
मैट सिमंस

जवाबों:


10

क्योंकि मैं कभी-कभी अपने मॉड्यूल में चर में पासवर्ड संग्रहीत करता हूं, इसलिए मैन्युअल रूप से कॉन्फ़िगरेशन खत्म किए बिना एप्लिकेशन को तैनात करने में सक्षम होने के लिए, इसका मतलब है कि मैं अपने कठपुतली रेपो को सार्वजनिक रूप से सर्वर पर नहीं डाल सकता। ऐसा करने का मतलब होगा कि कठपुतली पर हमला करने से हमारे सभी सर्वरों पर हमारे सभी अलग-अलग अनुप्रयोगों के कुछ ऐप या डीबी पासवर्ड प्राप्त करने की अनुमति होगी।

तो मेरे कठपुतली हमारे कार्यालय निजी नेटवर्क में है, और मैं सर्वर पर कठपुतली डेमॉन नहीं चलाता। जब मुझे तैनात करने की आवश्यकता होती है, तो मैं निजी नेट से सर्वरों के लिए ssh का उपयोग करता हूं, एक सुरंग बना रहा हूं और दूरस्थ रूप से कठपुतली बुला रहा हूं।
कठपुतली को जोड़ने के लिए दूरस्थ सुरंग और कठपुतली ग्राहक को सेट करने के लिए चाल नहीं है, लेकिन एक प्रॉक्सी के लिए जो http कनेक्ट को स्वीकार करता है और निजी नेटवर्क पर कठपुतली सर्वर तक पहुंच सकता है। अन्यथा कठपुतली प्रमाणपत्रों के साथ होस्टनाम संघर्ष के कारण खींचने से इंकार कर देगी

# From a machine inside privatenet.net :
ssh -R 3128:httpconnectproxy.privatenet.net:3128 \
    -t remoteclient.publicnetwork.net \
    sudo /usr/sbin/puppetd --server puppetmaster.privatenet.net \
    --http_proxy_host localhost --http_proxy_port 3128 \
    --waitforcert 60 --test –-verbose

यह मेरे लिए काम करता है, आशा है कि यह आपकी मदद करेगा


प्रतिभाशाली! लेकिन क्या आपको कठपुतली पर एक - आजीवन की आवश्यकता है? अन्यथा कमांड निष्पादित होने के बाद सुरंग का पतन नहीं होगा, लेकिन कठपुतली एक सर्वर के रूप में चलने के लिए डिफ़ॉल्ट होगी?
Purfideas

जो कठपुतली लॉन्च की गई है, वह डीमॉनेटाइज़ नहीं है। मैं जोड़े के स्थान पर - theestest --no-daemonize का उपयोग करना पसंद करता हूं। तो कठपुतली को अग्रभूमि में चलाया जाता है, और ssh एक टर्मिनल (विकल्प -t) को बाध्य करता है। इसका यह भी फायदा है कि आप चल रहे कठपुतली (जैसे स्वच्छ कठपुतली समाप्ति के लिए ctrl ^ c) के साथ बातचीत कर सकते हैं। एक बार कठपुतली ssh सत्र समाप्त करता है और सुरंग बंद हो जाती है।
एलेक्स एफ

मैंने पाया कि यह अभी भी समस्याएं पैदा कर रहा है और इसलिए फ़ायरवॉल मशीन पर एक OpenVPN सर्वर को कॉन्फ़िगर करना समाप्त हो गया है ताकि कठपुतली सर्वर के साथ नेटवर्क दूरस्थ मशीन (ओं) से संपर्क करना संभव हो ...
डेविड गार्डनर

4

हमारे पास दो साइट हैं, हमारा कार्यालय और हमारा कोलो। प्रत्येक साइट का अपना कठपुतली है। हम निम्नलिखित संरचना के साथ एक svn भंडार स्थापित करते हैं:

root/office
root/office/manifests/site.pp
root/office/modules
root/colo
root/colo/manifests/site.pp
root/colo/modules
root/modules

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

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


धन्यवाद। Svn: बाहरी नोक एक अच्छा स्पर्श है। सब कुछ फ़ायरवॉल हो जाएगा। लेकिन, आप जानते हैं, कुछ भी सुनने की सेवा स्वाभाविक रूप से एक बड़ी हमले की सतह होगी।
डेन कार्ली जूल 30'09

2

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

मेरा मानना ​​है कि पुश या पुल अन्य मॉडल की तुलना में स्वाभाविक रूप से सुरक्षित हैं। कठपुतली पारगमन में विन्यास हासिल करने का एक बड़ा काम करता है, साथ ही यह सुनिश्चित करने के लिए क्लाइंट और सर्वर दोनों को प्रमाणित करता है कि दो-तरफा भरोसा है।

कई नेटवर्कों के लिए - हम इसे केंद्रीय "मास्टर" कठपुतली के साथ प्रत्येक स्थान पर सिटेलिट पपेटेटमास्टर के साथ संभालते हैं जो केंद्रीय मास्टर के ग्राहकों के रूप में कार्य करते हैं।


उपग्रह दृष्टिकोण दिलचस्प लगता है। क्या किसी विशेष विन्यास की आवश्यकता है? क्या आप मुझे किसी दस्तावेज की दिशा में इंगित कर सकते हैं?
डेन कार्ली जूल 30'09

वास्तव में किसी विशेष कॉन्फ़िगरेशन की आवश्यकता नहीं है। आप सिर्फ उपग्रहों पर कठपुतली चलाते हैं। कठपुतली.संफ के पास खुद को इंगित करने के बजाय "मास्टर" के लिए सर्वर सेटिंग सेट होनी चाहिए (जो कि अधिक विशिष्ट कॉन्फ़िगरेशन है)
पॉल लैथ्रॉप

1

एक डिजाइन दृष्टिकोण है कि प्रत्येक साइट के लिए एक कठपुतली को स्थानीय किया जाए और कठपुतली को बदलावों को धकेलने के लिए एक परिनियोजन उपकरण का उपयोग किया जाए। (गिट हुक के साथ गिट का उपयोग करना भी काम कर सकता है)।

यह सार्वजनिक नेटवर्क पर सेवाओं को सुनने के बारे में आपकी चिंता को बनाए रखेगा क्योंकि कठपुतली नेटवर्क यातायात केवल आंतरिक होगा।

प्रत्येक सर्वर से मैनिफ़ेस्ट को बाहर धकेलना और कठपुतली ग्राहक को मैनिफ़ेस्ट को पार्स करना और संबंधित कॉन्फिगरेशन लागू करना भी संभव है।


0

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


0

मार्क बर्गेस, के लेखक cigerine और एक विश्वविद्यालय के प्रोफेसर (कि कठपुतली को अपनी विरासत का एहसान लगता है) ने पुश और पुल के बारे में बहुत कुछ लिखा है। वह दावा करता है कि पुल स्वाभाविक रूप से अधिक सुरक्षित है। यदि आप cigerine वेबसाइट को देखते हैं, तो उनके पास 17 वर्षों में केवल 1 नेटवर्क सुरक्षा घटना थी। बर्गेस का दावा है कि पुल डिजाइन की वजह से है। मुझे लगता है कि समझौता का एक बिंदु अपरिहार्य है। मुझे उस बिंदु पर हमले के मार्गों के बारे में अधिक चिंता होगी।


0

आप कठपुतली को बिना किसी केंद्रीय मास्टर के चला सकते हैं। एक विधि जो मैंने देखी है वह एक git रिपॉजिटरी का उपयोग कर रही है और ऐसी स्क्रिप्ट्स का उपयोग कर रही है जो केवल तभी मर्ज करेंगी और अपडेट अपडेट करेंगी जब टैग gpg कुंजियों की एक पूर्व-निर्धारित सूची में से एक पर हस्ताक्षर किए जाएंगे। लोगों ने यह भी काम किया कि कैसे संग्रहीत कॉन्फ़िगरेशन प्राप्त करें (उदाहरण के लिए उपयोग किया जाता है कि एक केंद्रीय सर्वर पर नगियोस मॉनिटरिंग को अपने सर्वर पर संसाधित संसाधन से स्थापित करें)।

इसलिए यदि केंद्रीय git सर्वर से समझौता किया गया तो अन्य सर्वर इससे कोई और अपडेट लागू नहीं करेंगे। जीएसपी कीज़ sys के एडमिन लैपटॉप या किसी चीज़ पर होगी, साथ में चाबी को रिवाइज़ करने के कुछ तरीके भी।

Http://current.workingdirectory.net/posts/2011/puppet-without-masters/ पर और पढ़ें

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