सुपरसुअर गतिविधियों को कैसे ट्रैक करें


21

मैं जानना चाहूंगा कि लिनक्स वातावरण पर सुपरसुअर गतिविधियों पर नज़र रखने के लिए सबसे अच्छा तरीका क्या है।

विशेष रूप से, मैं इन सुविधाओं की तलाश कर रहा हूं:

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

इस बारे में सुरक्षा / ऑडिटिंग के नजरिए से सोचें, ऐसे वातावरण में जहां अलग-अलग sysadmins (या यहां तक ​​कि तीसरे पक्ष) को सर्वर पर विशेषाधिकार प्राप्त संचालन करने की अनुमति दी जानी चाहिए।

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

अतिरिक्त नोट :

  1. जैसा कि वोमबल ने बताया है, सबसे अच्छा विकल्प हो सकता है कि लोग सर्वर पर परिवर्तन करने के लिए रूट विशेषाधिकार के साथ लॉग इन नहीं कर रहे हों, बल्कि एक कॉन्फ़िगरेशन प्रबंधन प्रणाली के माध्यम से ऐसा कर रहे हों। तो चलिए एक ऐसी स्थिति मान लेते हैं, जहां हमारे पास ऐसी कोई प्रणाली नहीं है और हमें एक ही सर्वर पर विभिन्न लोगों को रूट लेवल एक्सेस देने की आवश्यकता है
  2. मुझे यह पूरी तरह से करने में कोई दिलचस्पी नहीं है: रूट विशेषाधिकारों वाले सर्वर में लॉग इन करने वाला प्रत्येक व्यक्ति पूरी तरह से अवगत होगा कि सत्र रिकॉर्ड किया जाएगा (उसी तरह, उदाहरण के लिए, कॉल सेंटर ऑपरेटरों को पता है कि उनकी बातचीत है) दर्ज किया जा रहा है)
  3. कोई भी सामान्य सुपरसकर खाता ("रूट") का उपयोग नहीं करेगा
  4. मुझे टाइट्रप्लड के बारे में पता है और ऐसा लगता है कि मैं क्या देख रहा हूं। लेकिन इस तरह से जाने से पहले, मैं यह जानना चाहूंगा कि क्या यह अनमॉडिफाइड कर्नेल का उपयोग करके हल किया जा सकता है। मैं यह जानना चाहता हूं कि क्या विशेष रूप से डेबियन (या सामान्य रूप से लिनक्स) के लिए कोई उपकरण हैं जो शेल या कर्नेल को पैच किए बिना सुपरयूज़र खातों की पूर्ण ऑडिटिंग की अनुमति देते हैं।

2
(ग्रेब्स चेयर और पॉपकॉर्न) यह अच्छा होना चाहिए ...
एवरी पायने

+1 ... ठीक यही बात सोच रहा था। LOL
KPWINC

इस संबंधित प्रश्न पर भी ध्यान दें: serverfault.com/questions/46614/…
sleske

मुझे अभी भी लगता है कि आपको एक विन्यास प्रबंधन प्रणाली का उपयोग करना चाहिए। (कठपुतली / कफ़न / रसोइया / सिस्टमिमेजर / रसोइया / आदि ...)
केविन राए

केविन, मैं आपसे सहमत हूं। उदाहरण के लिए मेरी टिप्पणी वोमबल के जवाब के लिए देखें: serverfault.com/questions/50710/… । दुर्भाग्य से, यह इस पर्यावरण पर एक विकल्प नहीं है, और यही कारण है कि मैंने एक परिदृश्य को ग्रहण करने के लिए कहा जहां एक कॉन्फ़िगरेशन प्रबंधन प्रणाली avaible नहीं है। फिर भी, मैं इस विषय पर आपकी प्रतिक्रिया के लिए धन्यवाद देना चाहूंगा।
mfriedman

जवाबों:


8

बहु-प्रवेश वाले वातावरण के लिए बस रूट का उपयोग न करें - यदि संभव हो तो कभी भी।

सब कुछ के लिए sudo का उपयोग करें - sudo बेहद कंफर्टेबल और आसानी से लॉग करने योग्य है।

किसी भी / सभी लॉगिन या रों को रूट करें और उनकी जांच करें क्योंकि कोई व्यक्ति आपके स्थापित नियमों के आसपास जा रहा है।


3
हाँ, सूदो को बढ़िया लॉगिंग मिली है - वे सभी "वूमबल रन / बिन / श ऐस रूट" प्रविष्टियाँ असली मददगार हैं। कॉन्फ़िगर प्रबंधन के बिना, लोग हमेशा व्यवस्थापक कार्यों को करने के लिए रूट होने जा रहे हैं, और कोई व्यक्ति जो कुछ नापाक काम करना चाहता था, वह एक वैध कार्य करने के रूप में उसी रूट सत्र में अपनी बात कर सकता है। सही कवर।
Womble

नीति को केवल इस बात के लिए जड़ से उखाड़ फेंकना है कि किसी भी चीज का भला हो, और आप यह नहीं जान पाएंगे कि उन्होंने एक बार आरक्षण के बाद क्या किया, लेकिन यह संदिग्धों की सूची को बताता है ...
dmckee

2
नीति: "सुडो / बिन / श" = निकाल दिया / जांच की। बहुत स्पष्ट, बहुत आसान समाधान।
कार्ल काट्ज़के

5
कार्यक्रमों से एक शेल प्राप्त करने के बहुत सारे तरीके हैं जो लोगों को वैध रूप से चलाने की आवश्यकता होगी (जैसे कि sudo vi से) कि वहाँ केवल 'sudo /bin/sh'..' को अवरुद्ध करने के लिए बहुत कम बिंदु है। यदि आप निश्चित हो सकते हैं कि आप हर संभव विधि को अवरुद्ध कर दिया, आप अभी और अधिक अस्पष्ट तरीके खोजने के लिए एक चुनौती जारी करेंगे। किसी भी मामले में: क) कभी-कभी सुडो / बिन / श आवश्यक है, और ख) यह एक प्रबंधन समस्या है, न कि तकनीक।
कैस

क्रिस एक महान बिंदु बनाता है: प्रबंधन की समस्या, तकनीकी समस्या नहीं।
कार्ल काट्ज़के

2

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

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


+1 sudoshell का सुझाव देने के लिए धन्यवाद, और विशेष रूप से लिनक्स कर्नेल के ऑडिट सिस्टम के लिए धन्यवाद - जो मैं प्राप्त करने की कोशिश कर रहा हूं उसके लिए एक उत्कृष्ट पूरक हो सकता है।
एमफ्रीडमैन

2

हो सकता है आप सूडो के लिए इस लाइब्रेरी का उपयोग कर सकें , हर किसी को अपना खुद का उपयोगकर्ता नाम दें और sudo -i को हर प्रोफाइल में डालें। इस तरह उनके पास तत्काल रूट एक्सेस है और उनके द्वारा उपयोग की जाने वाली प्रत्येक कमांड लॉग की जा रही है।


+1 मैं उस लाइब्रेरी के बारे में नहीं जानता था। साझा करने के लिए धन्यवाद!
mfriedman

1

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

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

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


मुझे आपसे सहमत होना होगा। सबसे अच्छा विकल्प लोगों को सर्वर पर परिवर्तन करने के लिए रूट विशेषाधिकार के साथ लॉग इन नहीं करना होगा, बल्कि एक कॉन्फ़िगरेशन प्रबंधन प्रणाली के माध्यम से ऐसा करना होगा। मुझे आपके प्रश्नों को परिष्कृत करने और मेरे प्रश्न को स्पष्ट करने के लिए उपयोगी लगता है।
mfriedman

1

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

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


आपको जवाब के लिए धन्यवाद। क्या यह कीस्ट्रोक लॉगिंग या केवल कमांड लॉगिंग का समर्थन करता है?
एमफ्रेडमैन 3

0

मैं सब कुछ के लिए sudo का उपयोग करने के बारे में विकलांगों की टिप्पणियों से सहमत हूं। यह निश्चित रूप से चीजों को लॉग इन करना थोड़ा आसान बनाता है।

मैं समय-समय पर बैश इतिहास फ़ाइल का बैकअप लेना चाहता हूं। लगता है अक्सर अनदेखी की गई लेकिन कभी-कभी सूचना का एक बड़ा स्रोत हो सकता है ... बस गोल्डमैन सैक्स से पूछें। ;-)

http://www.guardian.co.uk/business/2009/jul/12/goldman-sachs-sergey-aleynikov


2
मेरे पास एक .bash_logout स्क्रिप्ट है जो इतिहास की टाइम-स्टैम्पेड कॉपी को /var/lib/history/$user.$tty-or-IP.osyymmddhhss पर बनाती है अगर मुझे अधिक परवाह है, तो मैं प्रक्रिया का लेखा या उचित सेट करूँगा उपकरण का ऑडिटिंग ... लेकिन यह वास्तव में सुरक्षा के लिए नहीं है, इसलिए यह पता लगा सकता है कि किसने कुछ गूंगा किया और उन्हें यह नहीं बताया कि इसे फिर से नहीं करना है, और बी) इसे ठीक से कैसे करना है। न्यासियों की तुलना में जूनियर्स का सुराग स्तर बढ़ाना यहाँ एक मुद्दे की तुलना में कहीं अधिक है।
कैस

1
मुझे उस कहानी की याद दिलाता है जहां एक जूनियर सेल्स पर्सन ने मिलियन डॉलर का सौदा किया। वह उम्मीद करता है कि बॉस उसे आग लगाएगा और बॉस कहता है, "हेल नो! इसने मुझे एक मिलियन डॉलर खर्च करके आपको प्रशिक्षित किया है!" जैसा कि हम बोलते हैं, मैं जूनियर्स के "सुराग स्तर" को महसूस कर सकता हूं। ;-)
KPWINC

0

यह मुश्किल होगा ...

रूट सावधानी से अच्छी तरह से जांच की गई स्क्रिप्ट को चला सकता है जो सभी सुरक्षा उपायों को तोड़ सकता है (निगरानी प्रक्रियाओं को मार सकता है), लॉग फ़ाइलों को काट / उन्हें ट्रिम कर सकता है ... लेकिन वे ...

मान लिया गया है कि कई विशेषाधिकार प्राप्त रूट विशेषाधिकार एक टीम के रूप में काम कर रहे हैं। और रूट किसी भी निगरानी प्रक्रिया को भी मार सकता है। और दुर्भाग्य से, वह लॉगिन / पासवर्ड सार्वजनिक हो जाता है। या उन्हें अवांछित कंपनी मिले।

यूआईडी 0 के साथ कई रूट खाते बनाना हालांकि अनुशंसित नहीं है, यहां लागू हो सकता है।

में / etc / ssh / sshd_config को लाइन बदलना: PermitRootLogin no

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

और रूट के रूप में डायरेक्ट लॉगिंग को इस तरह रोका जाता है।

हमें यह सोचना होगा कि यहां कौन सा रूट कैंट कर सकता है।

सुडोल अच्छा होना चाहिए। बैक अप / आदि डायरेक्टरी कॉन्फिगरेशन फाइल्स अच्छी होनी चाहिए। / var / निर्देशिका लॉग फ़ाइलों को समय-समय पर ईमेल किया जाना चाहिए या अलग NFS पर संग्रहीत किया जाना चाहिए।

कैसे राइटिंग लिपियों के बारे में जो मोबाइल गेटवे कंपनियों से एपीआई को एकीकृत करता है जो समूह को सभी रूट उपयोगकर्ता के मोबाइल पर एसएमएस करता है, कि उनमें से एक काम करने के लिए घर से बाहर है। मुझे पता है कि चिढ़ होगी, लेकिन फिर भी।

SSH को तोड़ना ज्यादातर सवाल से बाहर है।


0

हमारे पास ग्राहक की साइट पर निम्नलिखित सेटअप है:

  • इसी तरह से (व्यक्तिगत खातों) पर kerberos के साथ प्रमाणित करने के लिए खुला
  • केवल यूनिक्स के कुछ समूहों के प्राधिकृत व्यापारी
  • sudoers group == AD group
  • हर सर्वर पर OSSEC HIDS एजेंट और कड़े सर्वर पर एक प्रबंधक
  • OSSEC वेब UI
  • Splunk के साथ 3 Splunk-OSSEC के लिए

यह सर्वरों पर हर सूडो उपयोग को लॉग करेगा और फाइलों में बदलाव, पैकेजों की स्थापना, संदिग्ध प्रक्रिया आदि को भी ट्रैक करेगा।


0

हमारे पास हमारे सभी उपकरणों तक पहुंचने के लिए कई टर्मिनल सर्वर हैं, जिसका अर्थ है कि टर्मिनल सर्वर से कोई भी चीज लॉग इन कर सकती है या यदि किसी के पास भौतिक पहुंच है।

टर्मिनल सर्वर पर Sshd को http://www.kdvelectronics.eu/ssh-logging/ssh-log.html के साथ पैच किया जाता है , ठीक काम करता है, लेकिन लंबे समय तक अपडेट नहीं किया गया था। मैंने इसे ओपनशैट 4.7 पर काम करने के लिए थोड़ा संशोधित किया है, लेकिन 5.1 के साथ ऐसा करने में विफल रहा। पैच sshd segfaults, और जब तक मेरे पास इसे ठीक करने के लिए पर्याप्त समय नहीं है, तब तक मैं लगभग ttypld को बदल चुका हूं।


0

अब तक, मेरे पास यही है:

  • sudosh : ए और बी का समर्थन करने लगता है (हालांकि ए के बारे में पूरी तरह से निश्चित नहीं)
  • Sudoscript : B का समर्थन करने लगता है (Sudoscript में sudoshell नामक एक घटक होता है, और यदि वह रोमान्स सुझाया गया है, तो टिप के लिए धन्यवाद)
  • स्नूपी लकड़हारा या sudo_exetrace : बिल्कुल नहीं जो मैं देख रहा हूं, लेकिन एक अच्छा पूरक हो सकता है (उन लिंक के लिए थियोथेरेसिव और ब्लौवब्लटेज का धन्यवाद)

क्या आप किसी अन्य समान उपकरण को जानते हैं जिसमें कर्नेल या अन्य सिस्टम घटकों को पैच करना शामिल नहीं है?

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