क्या हमें रूट उपयोगकर्ता को अक्षम करना चाहिए?


21

क्या हमें रूट पासवर्ड को हटाना चाहिए, दूरस्थ लॉगिन को अक्षम करना चाहिए और मूल रूप से प्रशासकों को प्रशासनिक कार्रवाई करने के लिए सुडो का उपयोग करना होगा?

वैकल्पिक शब्द

जवाबों:


16

मेरे सभी सर्वर रूट अकाउंट डिसेबल ( sp_pwdpसेट टू *) हैं। यह sudoसभी रूट एक्सेस के लिए आवश्यक है । [१] इसका उद्देश्य सभी सुपरयूजर गतिविधियों का ऑडिट करना है, इसलिए लोग देख सकते हैं कि सिस्टम को क्या किया गया है।

अधिक कट्टर विकल्प के लिए, आप sudoएक लॉग फ़ाइल को लिख सकते हैं (जैसा कि विरोध किया जाता है syslog), और फ़ाइल को केवल एपेंड ( chattrलिनक्स पर, या chflagsबीएसडी पर उपयोग करके ) बना सकते हैं। इस तरह, कोई भी बाद में ऑडिट संपादित नहीं कर सकता है।

[१] मेरे पास रूट शेल नहीं चलाने की नीति है, या शेल करना रूट प्रक्रिया से बच जाता है। ( sudo sh -c '...'हालांकि, पाइपलाइन या पुनर्निर्देशन करने के लिए उपयोग करना ठीक है , हालांकि)


3
"नहीं चल रहा है, या तो गोले!" उह, क्या आप जानते हैं कि कितने कार्यक्रमों में "ड्रॉप टू शेल" कमांड है? यहां तक कि इससे पहले कि आप खोल काम पर नियंत्रण को देख शुरू ...
Womble

मैं एक नीति के रूप में "नो शैल" के बारे में बात कर रहा हूं, न कि सुडोल विकल्प के रूप में। (sudo के पास एक noexec विकल्प है, लेकिन जाहिर है कि यह वॉटरटाइट नहीं है जब तक कि आप उन विशिष्ट कार्यक्रमों को प्रतिबंधित नहीं करते हैं जो एक उपयोगकर्ता चलाने में सक्षम है।)
क्रिस जस्टर-यंग

क्या सूडो को कॉन्फ़िगर करना संभव है ताकि "सुडो-एस" का उपयोग न किया जा सके? मैंने केवल व्यक्तिगत आदेशों को कॉन्फ़िगर करने के लिए sudoers का उपयोग किया है।

@ ग्राहम: आप कर सकते हैं। हालाँकि, जैसा कि आप ऊपर दी गई टिप्पणियों से देख सकते हैं, कि कुछ भी बंद नहीं होता है, अगर आपके उपयोगकर्ता अन्यथा कुछ भी चला सकते हैं। एकमात्र वॉटरटाइट समाधान एक श्वेतसूची दृष्टिकोण है, जहां आप विशिष्ट कार्यक्रम सूचीबद्ध करते हैं जो उपयोगकर्ता चला सकते हैं, और उन्हें सभी को गतिशील रूप से जोड़ा जाना चाहिए (ताकि "नॉटेसेक" विकल्प अपना काम कर सके)।
क्रिस जस्टर-यंग

एक नीति के रूप में जहां आप मानते हैं कि यह अच्छा है। आप देख सकते हैं कि लोग क्या कमांड चलाते हैं जो वास्तव में मददगार हो सकते हैं जब वे बदल गए हैं।
हामिश डाउनर

15

मैं मूल उपयोगकर्ता को अक्षम करने के खिलाफ सशक्त रूप से अनुशंसा करता हूं । रूट लॉगइन को अक्षम या प्रतिबंधित करें (सिक्योरिटी के माध्यम से और sshd_config के माध्यम से और PAM के माध्यम से और आपके पास क्या है) यदि आपका सिस्टम इसे अनुमति देता है, तो रूट के विशेषाधिकारों को सीमित करें या रूट भूमिका को विभाजित करें ( RSBAC इसे कैसे करता है।) लेकिन कृपया, कृपया , करें। पासवर्ड को हटाकर रूट खाते को अक्षम न करें, अन्यथा सिस्टम के माध्यम से लॉग इन करना असंभव हो जाएगा suloginsuloginfsck द्वारा रिपोर्ट की गई गंभीर त्रुटियों के मामले में मेरे द्वारा ज्ञात सभी इनस्क्रिप्ट्स द्वारा उपयोग किया जाता है - और इसका मतलब है कि रूट फाइल सिस्टम के दूषित होने पर आपको सिस्टम से बाहर कर दिया जाएगा।

स्पष्ट करने के लिए: "पासवर्ड को हटाकर रूट खाते को अक्षम करने से" मेरा मतलब है कि विभिन्न तंत्र जो एक के साथ समाप्त होते हैं! या * / etc / छाया के पासवर्ड फ़ील्ड में, या इसी तरह का। मेरा मतलब यह नहीं है "रूट लॉगिन तंत्र बदलें ताकि आपको पासवर्ड के लिए संकेत न मिले।"


क्या यह उबंटू जैसे सिस्टम में एक समस्या है जो कभी रूट पासवर्ड सेट नहीं करता है? मैं "sudo sulogin" निष्पादित करने में सक्षम होने के लिए लगता है, लेकिन शायद मैं एक महत्वपूर्ण पहलू को समझ नहीं पाता।
jldugger

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

1
Ubuntu sulogin का उपयोग नहीं करता है। यदि आप एकल-उपयोगकर्ता मोड में जाते हैं तो आपको सीधे एक रूट शेल मिलता है। हालांकि, ज्यादातर मामलों में यह देखने के लिए मेरी टिप्पणी (मेरी पोस्ट में) पढ़ें कि यह समस्या क्यों नहीं है।
क्रिस जस्टर-यंग

इसके अलावा, ऐसे दावे हैं कि उपयोगकर्ताओं के लिए उपलब्ध suया sudoआपके सिस्टम में होने का अर्थ है कि यदि आप केवल समर्पित उपयोगकर्ता हैं तो आप अधिक सुरक्षा जोखिम से बच सकते हैं। यह उल्लू सुरक्षित वितरण (और उनके बीच सौर डिजाइनर) के लेखकों द्वारा वकालत की गई स्थिति है - unix.stackexchange.com/questions/8581/… संदर्भों के साथ अपनी स्थिति पेश करने की कोशिश करता है।
इम्ज़ - इवान ज़खरीशेव

मुझे बस यह बहुत समस्या थी: मैंने अपने रूट उपयोगकर्ता को बंद कर दिया था और हार्ड रीसेट के कारण एक fsck को मजबूर किया गया था। सौभाग्य से मैं fastbootविकल्प के साथ अपने दोषपूर्ण लिनक्स को बूट कर सकता हूं , रूट खाता अनलॉक कर सकता हूं और अंत में fsckमैन्युअल रूप से चला सकता हूं ।
टोमिड

3

मेरे पास अपने सभी सर्वरों पर रूट खाता सक्षम है। सभी व्यवस्थापकों के पास अपना उपयोगकर्ता है और उसी के माध्यम से लॉग इन करना है। वहां से वे रूट पर जाते हैं। (रूट ssh अक्षम है)

प्रशासक की गिनती कम रखें। केवल उस सर्वर पर रूट एक्सेस की आवश्यकता वाले लोगों के पास पासवर्ड है।

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

नोट: मैं एक काफी छोटी कंपनी में काम करता हूं (50-कुछ कर्मचारी) और हम केवल 2 अंशकालिक प्रवेशकों (1 खिड़कियां / 1 लिनक्स) के साथ आसपास आते हैं। चीजों को करने का यह तरीका सबसे अच्छा नहीं हो सकता है जब आपके पास अधिक उपयोगकर्ताओं के परिमाण के आदेश हों। मैं व्यक्तिगत रूप से अभी भी sudo का उपयोग नहीं करूँगा। रूट गतिविधि को लॉग करने के अन्य तरीके हैं।


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

आप उस के साथ लॉगिंग / ऑडिटिंग खो देते हैं। सभी लोग सुडो का उपयोग करें, और लोगों को कॉरपोरेट नीति के साथ सूडो बैश, या सुडो-आई, या सूडो करने से मना करें। यह आपको एक ऑडिट ट्रेल देता है, और यदि आप अपने सभी लॉग को एक केंद्रीय लॉगहॉस्ट में धकेल रहे हैं, तो यह सत्यापित करना आसान है कि लोग नीतियों का पालन कर रहे हैं।
क्रिस्टोफर काशेल

यह दृष्टिकोण लिया गया है और उल्लू सुरक्षित विकर्षण (और उनके बीच सौर डिजाइनर) के लेखकों द्वारा वकालत की गई है - unix.stackexchange.com/questions/8581/… संदर्भों के साथ अपनी स्थिति पेश करने की कोशिश करता है।
इम्ज़ - इवान ज़खरीशेव

2

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

रूट रिमोट लॉगिन को अक्षम करना प्रासंगिक हो सकता है लेकिन केवल तभी जब आप स्थानीय रूप से लॉग इन करने में सक्षम हों।

और हाँ, sudo को आपके हर एक सर्वर पर इंस्टॉल होना चाहिए। यह उपयोगी और कॉन्फ़िगर करने में आसान है। आप इसका उपयोग क्यों नहीं करना चाहेंगे?


यदि एकल उपयोगकर्ता मोड में बूटिंग एक ग्रब विकल्प है तो क्या होगा?
जूलुगर

मूल खाता अक्षम करने का उद्देश्य क्या है? यदि आपका ब्रेक आपके सुडो बाइनरी या कॉन्फ़िगरेशन (या जो भी उपकरण आप उपयोग करते हैं) आप क्या करेंगे?
बेनोइट

Disabling root remote login might be relevant but only if you are able to log on locally.यह सिर्फ गलत तरीके से गलत है। आप किसी भी खाते से दूरस्थ रूप से लॉग इन कर सकते हैं; रूट रिमोट लॉगिन को अक्षम करने से आप स्थानीय पहुंच तक सीमित नहीं होते हैं।
दान

2

मैं एसएसएच एक्सेस को रूट के लिए अक्षम करता हूं और ssh कीज़ का उपयोग करने के लिए उपयोगकर्ताओं (अक्सर सिर्फ डेवलपर्स) की आवश्यकता होती है। बहुत सारे शब्दकोश हमले हैं और SSH पोर्ट बदलना हमारे लिए कोई विकल्प नहीं है।

इस तरह आपको एक अच्छा पासवर्ड लिखने की किसी की क्षमता पर भरोसा करने की ज़रूरत नहीं है। एक बार बस अंदर प्रवेशकर्ताओं के पास सूडो के लिए अनुमति है।


SSH पोर्ट बदलना वैसे भी व्यर्थ है। एक साधारण पोर्ट्सकैन इसे आसानी से दूर कर देता है। जब मैं अपनी मशीन पर 22 पोर्ट करने के लिए टेलनेट करता हूं, तो मुझे SSH-2.0-OpenSSH_4.7p1 Debian-8ubuntu1.2 मिलता है
मैट सीमन्स

@MattSimmons हाँ, लेकिन अधिकांश शब्दकोश हमले स्वचालित और बहुत प्राथमिक हैं। वे पोर्ट स्कैनिंग के साथ परेशान नहीं करते हैं; वे पोर्ट 22 पर यादृच्छिक आईपी पते से कनेक्ट करने का प्रयास करते हैं और यदि वे समय समाप्त करते हैं तो वे अपनी सूची में अगले आईपी पर आगे बढ़ते हैं। यह एक सुरक्षा उपाय नहीं है, यह सिर्फ स्वचालित बंदरगाह 22 हमलों से छुटकारा पाने में मदद करता है। जाहिर है एक लक्षित हमला एक पूरी तरह से अलग है।
दान

2

मुझे पता है कि यह धागा वास्तव में पुराना है, लेकिन लिंक किए गए लेख तर्क में कुछ बड़ी खामियां हैं और मैं "रांटी" महसूस कर रहा हूं - सूदो दोनों को श्वेत सूची और ब्लैक लिस्ट करने की अनुमति देता है। केवल काले रंग से नहीं जैसा कि वे लिंक किए गए लेख में निर्दिष्ट करते हैं - यह एएए (प्रमाणीकरण, प्राधिकरण और लेखा परीक्षा) के विचार पर छोड़ देता है - सुए और सूडो दोनों ग्रेडेड प्रमाणीकरण और जवाबदेही के लिए अनुमति देते हैं।

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

परिदृश्य 2 एक बदमाश व्यवस्थापक जानकारी प्राप्त करना / परिवर्तन करना चाहता है। वे कंसोल (भौतिक कंसोल एक्सेस, HP iLo / समान या vGuest कंसोल एक्सेस) से कनेक्ट होते हैं, रूट के रूप में लॉगिन करते हैं और जो कुछ भी चाहते हैं। जब तक कोई नामांकित खाता / एक्सेस कार्ड का उपयोग कंसोल पहुंच प्राप्त करने के लिए किया जाता है, तब तक शायद ऑडिट ट्रेल का ज्यादा हिस्सा नहीं होता है।

  1. सुनिश्चित करें कि वे वास्तव में वही हैं जो वे कहते हैं कि वे हैं। पहचान की चोरी मुद्दा नहीं है, पहचान सत्यापन है।
  2. उनके प्राधिकरण की जांच करें, केवल उन्हें उस समय दें जो उन्हें चाहिए। क्रमबद्ध प्राधिकरण उन्हें जरूरत पड़ने पर उत्थान करने की अनुमति देता है।
  3. यह सब देखें, एक रिकॉर्ड है ताकि आप जानते हैं कि किसने, क्या किया, कब और कहां किया। अधिमानतः क्यों

1

आपको पॉलिसी के रूप में प्रत्येक रूट कमांड के लिए सभी को sudo का उपयोग करना चाहिए। "सुडो बैश" या इस तरह से चलने का कोई कारण नहीं है, यह केवल सुविधा के लिए है, अज्ञानता के कारण, या किसी के ट्रैक को कवर करने के लिए।

यदि आप लॉगिन को सीधे रूट खाते में अक्षम करते हैं, तो गंभीर समस्या होने पर आप सिस्टम को ठीक करने की अपनी क्षमता को अपंग कर देते हैं।

यदि आप अपने प्रवेशकों को स्वयं के रूप में लॉग इन करने के लिए मना नहीं कर सकते हैं और रूट के रूप में चलने वाले प्रत्येक कमांड के लिए sudo चला सकते हैं, और इसे एक शेल में नहीं तोड़ सकते हैं, तो आपके पास गंभीर समस्याएं हैं जिनके लिए कोई तकनीकी समाधान नहीं है।


1

उल्लू सुरक्षित डिस्ट्रीब्यूशन (और सोलर डिज़ाइनर) के लेखकों के पास एक विपरीत रूप से उचित दृष्टिकोण है; देखते हैं, जैसे, जवाब /unix/8581/which-is-the-safest-way-to-get-root-privileges-sudo-su-or-login/8660#8660 के लिए उनके दावों की एक प्रस्तुति। सुपरसुअर कार्यों (जिस व्यक्ति ने क्या किया) की ऑडिटिंग की समस्या को उनके दृष्टिकोण में भी संबोधित किया जाता है (मूल रूप से, समाधान में विभिन्न नामों के साथ कई रूट उपयोगकर्ता हैं)।

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