क्या पासवर्ड-रहित sudo के साथ एक असुरक्षित उपयोगकर्ता होना असुरक्षित है?


10

मैं नई हूं। अधिकांश VPS प्रावधान मार्गदर्शिकाएँ जिन्हें मैंने अब तक देखा है वे ऐसा करते हैं:

  1. लॉग इन करने से रूट अक्षम करें
  2. एक नया उपयोगकर्ता बनाएं जो केवल लॉग इन कर सकता है ssh(पासवर्ड नहीं)
  3. पासवर्ड रहित sudo अनुमति के wheelसाथ समूह में नया उपयोगकर्ता जोड़ें

मैं समझता हूं (1) और (2), लेकिन (3) नहीं।

निश्चित रूप से पासवर्डलेस sudoलॉग इन के समान है root? मैं लाभ (सुविधा) को समझता हूं, लेकिन क्या यह अत्यधिक असुरक्षित नहीं है?

मुझे लगता है कि व्यवस्थापक अपने नेटवर्क को विभिन्न तरीकों से चलाते हैं, और इसलिए इसे "व्यक्तिपरक" कहा जा सकता है, लेकिन यह एक बहुत ही सामान्य अभ्यास है, यह विभिन्न आधिकारिक ansible डॉक्स के साथ-साथ होस्टिंग कंपनियों द्वारा प्रकाशित गाइडों में भी दिखाया गया है। यह सामान्य ज्ञान के खिलाफ जाता है। इसके पीछे क्या तर्क है?


1
प्रशासनिक कार्यों को स्वचालित करने के लिए उत्तर देने योग्य है, इसलिए आमतौर पर शीर्ष-स्तरीय (रूट) स्तर की पहुंच की आवश्यकता होती है, इसलिए "पासवर्ड रहित सूडो"। यदि आपको केवल अपने सिस्टम पर उपलब्ध आदेशों के एक उपसमूह को चलाने के लिए इसकी आवश्यकता है, तो आप इसे केवल उन्हीं आदेशों पर लॉक कर सकते हैं जिनमें अधिक विस्तृत sudo कॉन्फ़िगरेशन है। पासवर्ड रहित sudo का मतलब यह नहीं है कि सब कुछ रूट तक पहुंच सकता है (हालांकि यह लागू करना मुश्किल हो जाता है जब आपको एहसास होता है कि उपयोगकर्ता संभावित रूप से अपने आप को अधिक नियंत्रण देने के लिए sudo के माध्यम से अपने sudo कॉन्फिगर को संशोधित कर सकता है ...)।
डेविड स्पिललेट

@DavidSpillett मैं इस बारे में सोच रहा था - यानी कि सूडो फाइल में अनुमति देने के लिए कौन से सूडो को परिभाषित करता है ... लेकिन मैंने कहीं पढ़ा कि ansible जटिल अजगर आदेशों के माध्यम से व्याख्या करके सब कुछ करता है, और उस दृष्टिकोण को तेजी से गड़बड़ हो जाएगा।
lonix

जवाबों:


18

यदि सेवा खाता पासवर्ड रहित sudo कर सकता है, तो आपको उस खाते तक पहुँच की रक्षा करनी होगी।

खाते में पासवर्ड नहीं है, और इसमें लॉग इन करने के लिए केवल ssh कुंजियों का उपयोग करते हुए, इसे पूरा करता है, बशर्ते आप ssh निजी कुंजी को सुरक्षित रख सकते हैं।


इसलिए मैं इस अधिवेशन से हैरान महसूस करने के अधिकार में "एक प्रकार का" हूँ - और फिर भी, यह आवश्यक / व्यावहारिकता से बाहर, योग्य के लिए सम्मेलन है।
lonix

तो आप कह रहे हैं कि मैं अनिवार्य रूप से "सुरक्षा" को VPS से अपने स्थानीय सिस्टम में स्थानांतरित करता हूं, जिसमें ansible खाता ssh कुंजी है? किस मामले में, कमजोर बिंदु खुद वीपीएस नहीं है, बल्कि, यह मैं हूं! और मुझे उस ssh कुंजी की सुरक्षा में अतिरिक्त सतर्कता बरतने की ज़रूरत है, जो उस सुविधा के बदले में है जो मुझे देने योग्य स्वचालन देता है।
18

6
ssh कुंजी, ssh- एजेंट के साथ पासफ़्रेज़ संरक्षित है, जो एक उचित रूप से अच्छा क्रेडेंशियल है।
जॉन महोवाल्ड

@lonix सभी सुरक्षित सिस्टम को क्रेडेंशियल की आवश्यकता है। सुरक्षित सिस्टम इन क्रेडेंशियल्स को हासिल करने में आपके द्वारा डाले गए उपायों के रूप में अधिक से अधिक सुरक्षित हैं, क्योंकि होने के बाद उन पर 100% पहुंच प्राप्त होती है। यदि आप अपने SSH कुंजी (या रूट पासवर्ड या जो भी) को ठीक से सुरक्षित नहीं करते हैं, तो हाँ, आप अपने VPS को सुरक्षित करने की उम्मीद नहीं कर सकते। तथ्य यह है कि आप पासवर्ड रहित sudo कॉन्फ़िगर करते हैं, इस दृष्टिकोण से कुछ भी नहीं है, sudo को पासवर्ड के साथ सक्षम करने से इस तथ्य को नहीं बदला जाता है कि यह आवश्यक है कि आप SSH कुंजी को सुरक्षित करें।
जियाकोमो अल्जेटा

@GiacomoAlzetta मुझे पता है कि, मेरे कहने का मतलब यह है कि जिम्मेदारी को रिमोट से स्थानीय मशीन में स्थानांतरित किया जा रहा है। चूंकि sudo वृद्धि पासवर्ड के बिना की जाती है, इसलिए कमजोर बिंदु स्थानीय हो जाता है।
lonix

4

(2) में बनाया गया नया उपयोगकर्ता केवल SSH कुंजी, कोई पासवर्ड के साथ लॉग इन कर सकता है। SSH कुंजी अप्रत्यक्ष रूट एक्सेस देती है। तो यह एक कुंजी के साथ रूट लॉगिन की अनुमति देने के बराबर है।

चूंकि खाते में पासवर्ड नहीं है, इसलिए sudoपासवर्ड के लिए पूछना संभव नहीं है । इसके अलावा, आदेशों को निष्पादित करने में सक्षम होने की आवश्यकता है। कुंजी के रूप में एक ही स्थान पर उपलब्ध कराने के लिए एक अतिरिक्त पासवर्ड होने से सुरक्षा में वृद्धि नहीं होगी।


2

समस्या यह है कि व्यवस्थापक और स्वचालन के लिए ansible है, इसलिए यदि आपको स्क्रिप्ट चलाने के लिए पासवर्ड दर्ज करने की आवश्यकता है तो वास्तव में सबसे अच्छा तरीका नहीं है। इसके अलावा किसी फ़ाइल या डेटाबेस में sudo के लिए पासवर्ड स्टोर करना सुरक्षित नहीं है और इसे हर बार प्लेबुक चलाने के बाद प्राप्त किया जा सकता है। तो पासवर्ड रहित sudo का संयोजन और ssh कीज़ के साथ प्रमाणीकरण प्लेबुक चलाने से सुरक्षा और सही समस्याओं को सुनिश्चित करने का सबसे अच्छा तरीका है। इसके अलावा आप एक प्रशासक हैं और जानते हैं कि आप प्लेबुक में क्या प्रोग्रामिंग करते हैं। तो playbook आपके सर्वर को नष्ट नहीं कर सकता है।


Playbooks आपके सिस्टम को नष्ट कर सकता है, लेकिन यदि आप अलग-अलग परीक्षण वातावरण का उपयोग करते हैं केवल चाबियाँ, जो उत्पादन मेजबानों को नष्ट नहीं करेगा।
जॉन महोवाल्ड

वास्तव में, यह उत्पादक प्रणालियों पर काम करते समय उम्मीद के अनुरूप है।
निकोक्लास

1
Ansible में 'ansible-वॉल्ट', और प्लगइन्स / मॉड्यूल्स / लाइब्रेरीज़ हैं जो कई 3rd पार्टी सीक्रेट स्टोरेज सिस्टम जैसे कि bitwarden, hashicorp वॉल्ट, कीपस, आदि में सीक्रेट को स्टोर करने की अनुमति देते हैं।
ज़ॉडेचेस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.