मैं एक उपयोगकर्ता द्वारा निष्पादित प्रत्येक कमांड को कैसे लॉग कर सकता हूं?


32

मैं अपने सर्वर में सभी उपयोगकर्ता की गतिविधि की निगरानी करना चाहता हूं।

यहां तक ​​कि जब उपयोगकर्ता कुछ संपादक से शेल कमांड निष्पादित करता है जैसे विम मैं उन्हें लॉग फ़ाइल में देखना चाहता हूं।

मैंने टूल एक्ट की जाँच की है लेकिन यह पूरी कमांड को सूचीबद्ध नहीं कर रहा है। (कृपया मुझे सही करें अगर मैंने कुछ विकल्प खो दिए हैं जो पहले से ही है)।

इस समस्या को हल करने के लिए मुझे कौन सा लिनक्स टूल देखना चाहिए?


1
। मैन स्क्रिप्ट (1)
एडाप्ट्र


एक अच्छा संदर्भ 8gwifi.org/docs/linux-monitor-commands.jsp
अनीश

जवाबों:


32

लॉगिन के लिए ज़िम्मेदार अपने pam config में इस पंक्ति को जोड़ें (इसके सिस्टम पर स्थित redhat आधारित डिस्ट्रोस)

session    required     pam_tty_audit.so enable=*

यह पता लगाने के लिए कि क्या किया गया था, आप उपयोग कर सकते हैं।

ausearch -ts <some_timestamp> -m tty -i

यह इस तरह एक उत्पादन का उत्पादन करता है:

 type=TTY msg=audit(11/30/2011 15:38:39.178:12763684) : tty pid=32377 uid=root
 auid=matthew major=136 minor=2 comm=bash data=<up>,<ret>

इसके लिए केवल नकारात्मक पक्ष यह है कि इसे पढ़ना थोड़ा मुश्किल हो सकता है, लेकिन यह सबसे प्रस्तावित समाधानों की तुलना में बहुत बेहतर है क्योंकि सिद्धांत रूप में इसका उपयोग पूरे सत्र को रिकॉर्ड करने के लिए किया जा सकता है, मौसा एन सभी।

संपादित करें: ओह और आप aureport का उपयोग सूची बनाने के लिए कर सकते हैं जो अधिक सहायक हो सकती है।

# aureport --tty
...
12. 11/30/2011 15:50:54 12764042 501 ? 4294967295 bash "d",<^D>
13. 11/30/2011 15:52:30 12764112 501 ? 4294967295 bash "aureport --ty",<ret>
14. 11/30/2011 15:52:31 12764114 501 ? 4294967295 bash <up>,<left>,<left>,"t",<ret>

विवरण के लिए धन्यवाद। मैं उबंटू 10.04 एलटीएस का उपयोग कर रहा हूं जब मैं फ़ोल्डर / लीबी / सुरक्षा / मॉड्यूल की जांच करता हूं तो मॉड्यूल मौजूद नहीं होता है लेकिन उस मॉड्यूल पर एक आदमी पृष्ठ मौजूद होता है। मुझे लगता है कि मैंने इस बग को मारा है। बग़लचैप्ड.नेट/ubuntu/+source/pam /+bug/ 588547 क्या कोई अन्य तरीका है जिससे मैं उस मॉड्यूल को स्थापित कर सकता हूं?
सुप्रतीक

बग रिपोर्ट से पता चलता है कि एक फ़िक्स और अपडेट वितरित किया गया था।
मैथ्यू इफ

@ मैं ने PAM स्रोत कोड संकलित किया और .so फ़ाइल को / lib / सुरक्षा / में कॉपी किया और यह काम कर गया। एक बार फिर धन्यवाद।
सुप्रतीक

1
@CameronKerr: पासवर्ड समस्या तय हो गई है: redhat.com/archives/linux-audit/2013-May/msg00007.html
Yohann

3
ध्यान दें, यह ध्यान देने योग्य है कि ऊपर काम के लिए auditdडेमॉन को पहले सक्षम करने की आवश्यकता है (यह डिफ़ॉल्ट रूप से मेरे CentOS 6.7 इंस्टॉल पर नहीं था)। डेमॉन शुरू करने के लिए, का उपयोग करें: service auditd startऔर इस परिवर्तन को लगातार (रिबूट के बाद) बनाने के लिए, chkconfig auditd on स्रोत का उपयोग करें : access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/… और एक्सेस
जॉनी

8

आपकी समस्या का सबसे अच्छा समाधान लिनक्स का अंतर्निहित ऑडिट सिस्टम होगा। का प्रयोग करें man 8 auditdया अधिक जानकारी के लिए इस पेज की जाँच करें: http://linux.die.net/man/8/auditd

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


2

आप स्नूपि का उपयोग कर सकते हैं ।

यह एक साधारण कमांड लॉगिंग लाइब्रेरी है, और एक उचित ऑडिट समाधान नहीं है (आसानी से परिवृत्त)। प्रकटीकरण: मैं वर्तमान स्नूपी मेंटेनर हूं।


2

एक कम ज्ञात चाल, लेकिन आसानी से सबसे भयानक सिर्फ अंतर्निहित ऑडिट क्षमताओं का उपयोग करना है sudo। एक sudoreplayकमांड के साथ सूडो जहाज, जो सत्र को फिर से शुरू करने को आसान बनाता है। यह भी रिले vimसत्र (जैसा कि आप सुझाव देते हैं)।

यहाँ कुछ आसान चरणों में इसका उपयोग करने का तरीका बताया गया है:

  1. sudoshअपने सिस्टम पर स्थापित करें ; यह sudoकमांड के चारों ओर एक शेल रैपर है जो एक उपयोगकर्ता sudoको स्वयं बनाता है (नहीं root) और सिस्टम लॉगिन शेल के रूप में उपयोग किया जा सकता है
  2. sudoलॉगिंग सक्षम करें । संपादित करें /etc/sudoers.d/sudosh: Defaults log_output Defaults!/usr/bin/sudoreplay !log_output Defaults!/sbin/reboot !log_output

  3. /etc/shellsलॉगिन का उपयोग करने की अनुमति के लिए इस कमांड को जोड़ें : /usr/bin/sudosh

    युक्ति : उपयोगकर्ताओं को लॉगिन करने के लिए अन्य गोले का उपयोग करने से रोकने के लिए, उन अन्य गोले को हटा दें /etc/shells

  4. शेल foobarका उपयोग करने के लिए उपयोगकर्ता को अपडेट करें sudosh chsh -s /usr/bin/sudosh foobar

अधिक विस्तृत जानकारी के लिए देखें: https://github.com/cloudposse/sudosh/


1

यहाँ एक जादुई समाधान है: http://www.cyberciti.biz/tips/howto-log-user-activity-using-process-accounting.html

  • yum install psacct (redhat)
  • sudo apt-get install एक्ट

आप उपयोगकर्ता आदेश / कनेक्शन आदि के बारे में आँकड़ा प्रदर्शित करते हैं।

किसी उपयोगकर्ता द्वारा आह्वान किए गए सभी आदेशों की सूची बनाएं ...

कमांड नाम से लेखांकन लॉग खोजें: $ lastcomm rm $ lastcomm passwd

और इतने पर, अधिक informations के लिए कृपया उपरोक्त लिंक पर जाएँ ..


3
सवाल में कहा गया था: 'एसक्टक्ट यह पूरी कमांड को सूचीबद्ध नहीं कर रहा है।'
पुटनिक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.