CentOS / RHEL पर ऑडिट टूल के साथ लिनक्स सिस्टम ऑडिटिंग सीखें


सिस्टम ऑडिटिंग केवल एक विशिष्ट लक्षित प्रणाली के गहन विश्लेषण को संदर्भित करता है: एक ऑडिट विभिन्न भागों की एक परीक्षा से बना होता है जिसमें उस प्रणाली को शामिल किया जाता है, जिसमें ब्याज के विभिन्न क्षेत्रों में महत्वपूर्ण मूल्यांकन (और यदि आवश्यक हो तो परीक्षण) होता है।

RHEL/CentOS पर महत्वपूर्ण उप-प्रणालियों में से एक लिनक्स ऑडिट सिस्टम जिसे आमतौर पर ऑडिट के रूप में जाना जाता है। यह एक सिस्टम पर सुरक्षा-प्रासंगिक जानकारी को ट्रैक करने के लिए एक साधन को लागू करता है: यह सिस्टम पर होने वाली घटनाओं के बारे में बड़ी मात्रा में जानकारी एकत्र करने के लिए पूर्व-कॉन्फ़िगर किए गए नियमों का उपयोग करता है, और उन्हें लॉग फ़ाइल में रिकॉर्ड करता है, इस प्रकार एक ऑडिट परीक्षण बनाता है।

यह किसी घटना की तारीख और समय, प्रकार और परिणाम जैसी जानकारी रिकॉर्ड कर सकता है; उपयोगकर्ता जो इस घटना का कारण बने, फाइलों/डेटाबेस में किए गए किसी भी संशोधन; सिस्टम प्रमाणीकरण तंत्र का उपयोग, जैसे PAM, LDAP, SSH, और अन्य।

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

  1. It doesn’t require any external programs or processes to run on a system making it self-reliant.
  2. It is highly configurable therefore enables you to view any system operation(s) you want.
  3. It helps in detecting or analyzing potential compromises of a system.
  4. It is capable of working as an independent detection system.
  5. It can work with Intrusion Detection Systems to enable intrusion detection.
  6. It is a vital tool for auditing forensics investigations.

लेखापरीक्षा प्रणाली के दो मुख्य घटक हैं, अर्थात्:

  • user-space applications and utilities/tools, and
  • kernel-side system call processing – this accepts system calls from user-space applications and passes them through three types of filters, namely: user, task, exit, or exclude.

सबसे महत्वपूर्ण हिस्सा उपयोगकर्ता-स्थान ऑडिट डेमॉन ( ऑडिट ) है जो कर्नेल से पूर्व-कॉन्फ़िगर नियमों के आधार पर जानकारी इकट्ठा करता है और एक लॉग फ़ाइल में प्रविष्टियां उत्पन्न करता है: डिफ़ॉल्ट लॉग /var/log/audit/audit.log है।

इसके अतिरिक्त, ऑडिस्पीड ( ऑडिट डिस्पैचर डेमोन ) एक इवेंट मल्टीप्लेक्स है जो ऑडिट के साथ इंटरैक्ट करता है और अन्य कार्यक्रमों में इवेंट भेजता है जो वास्तविक समय में प्रदर्शन करना चाहते हैं। घटना प्रसंस्करण।

लेखापरीक्षा प्रणाली से जानकारी प्राप्त करने और पुनः प्राप्त करने के लिए कई उपयोगकर्ता-स्थान उपकरण हैं:

  • auditctl – a utility for controlling the kernel’s audit system.
  • ausearch – a utility for searching audit log files for specific events.
  • aureport – a utility for creating reports of recorded events.

आरएचईएल / सेंटोस / फेडोरा में ऑडिट टूल को कैसे स्थापित और कॉन्फ़िगर करें

पहले सुनिश्चित करें कि आपके सिस्टम पर rpm कमांड और grep यूटिलिटी का उपयोग करके ऑडिट टूल स्थापित किया गया है:

# rpm -qa | grep audit

यदि आपके पास उपरोक्त पैकेज स्थापित नहीं हैं, तो उन्हें स्थापित करने के लिए इस कमांड को रूट उपयोगकर्ता के रूप में चलाएं।

# yum install audit

अगला, जांचें कि ऑडिट सक्षम और चल रहा है, टर्मिनल पर नीचे दिए गए systemctl कमांड जारी करें।

--------------- On CentOS/RHEL 7 --------------- 
# systemctl is-enabled auditd
# systemctl status auditd
# systemctl start auditd   [Start]
# systemctl enable auditd  [Enable]

--------------- On CentOS/RHEL 6 --------------- 
# service auditd status
# service auditd start     [Start]
# chkconfig auditd on      [Enable]

अब हम देखेंगे कि मुख्य कॉन्फ़िगरेशन फ़ाइल /etc/audit/auditd.conf का उपयोग करके ऑडिट कॉन्फ़िगर कैसे करें। यहां पैरामीटर आपको यह नियंत्रित करने की अनुमति देते हैं कि सेवा कैसे चलती है, जैसे लॉग फ़ाइल का स्थान निर्धारित करना, लॉग फ़ाइल की अधिकतम संख्या, लॉग प्रारूप, पूर्ण डिस्क से निपटने के लिए, लॉग रोटेशन और कई और विकल्प।

# vi /etc/audit/auditd.conf

नीचे दिए गए नमूना आउटपुट से, पैरामीटर स्व-व्याख्यात्मक हैं।

ऑडिट नियमों को समझना

जैसा कि हमने पहले बताया था, ऑडिट कर्नेल से विशिष्ट जानकारी एकत्र करने के लिए नियमों का उपयोग करता है। ये नियम मूल रूप से लेखा परीक्षा विकल्प (मैन पेज देखें) है कि आप /etc/audit/rules.d/audit.rules फ़ाइल में नियमों को पूर्व-कॉन्फ़िगर कर सकते हैं (CentOS पर) 6, /etc/audit/audit.rules फ़ाइल) का उपयोग करें, ताकि वे स्टार्टअप पर लोड हो जाएं।

तीन प्रकार के लेखापरीक्षा नियम हैं जिन्हें आप परिभाषित कर सकते हैं:

  • Control rules – these enable modification of the audit system’s behavior and a few of its configurations.
  • File system rules (also referred to as file watches) – enable auditing of access to a certain file or a directory.
  • System call rules – permits logging of system calls made by any program.

अब संपादन के लिए मुख्य विन्यास फाइल खोलें:

# vi /etc/audit/rules.d/audit.rules

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

-D		#removes all previous rules
-b  3074	#define buffer size
-f 4		#panic on failure 
-r 120		#create at most 120 audit messages per second

आप इस सिंटैक्स का उपयोग करके फ़ाइल घड़ियों को परिभाषित कर सकते हैं:

-w /path/to/file/or/directory -p permissions -k key_name

जहां विकल्प:

  • w – is used to specify a file or directory to watch over.
  • p – permissions to be logged, r – for read access, w – for write access, x – for execute access and a – for change of file or director attribute.
  • -k – allows you to set an optional string for identifying which rule (or a set of rules) created a specific log entry.

ये नियम इन महत्वपूर्ण सिस्टम फ़ाइलों में परिवर्तन करने वाली घटनाओं को देखने के लिए ऑडिटिंग की अनुमति देते हैं।

-w /etc/passwd -p wa -k passwd_changes
-w /etc/group -p wa -k group_changes
-w /etc/shadow -p wa -k shadow_changes
-w /etc/sudoers -p wa -k sudoers_changes

आप नीचे दिए गए फॉर्म का उपयोग करके एक सिस्टम कॉल नियम सेट कर सकते हैं:

-a action,filter -S system_call -F field=value -k key_name

कहा पे:

  • action – has two possible values: always or never.
  • filter – specifies kernel rule-matching filter (task, exit, user and exclude) is applied to the event.
  • system call – system call name.
  • field – specifies additional options such as architecture, PID, GID etc to modify rule.

यहां कुछ नियम दिए गए हैं जिन्हें आप परिभाषित कर सकते हैं।

-a always,exit -F arch=b64 -S adjtimex -S settimeofday -k time_change
-a always,exit -S sethostname -S setdomainname -k system_locale

फिर अंत में फ़ाइल के अंत में अपरिवर्तनीयता सेटिंग्स जोड़ें, उदाहरण के लिए:

-e 1	#enable auditing
-e 2	#make the configuration immutable -- reboot is required to change audit rules

लेखा परीक्षा उपयोगिता का उपयोग करके ऑडिट नियम कैसे सेट करें

वैकल्पिक रूप से, निम्न उदाहरणों के अनुसार ऑडिट के विकल्प भेजें, जैसा कि चल रहा है, ऑडिटक्टल का उपयोग करते हुए। ये आदेश कॉन्फ़िगरेशन फ़ाइल में नियमों को ओवरराइड कर सकते हैं।

वर्तमान में लोड किए गए सभी ऑडिट नियमों को सूचीबद्ध करने के लिए, -l ध्वज पास करें:

# auditctl -l

अगला, कुछ नियम जोड़ने का प्रयास करें:

# auditctl -w /etc/passwd -p wa -k passwd_changes
# auditctl -w /etc/group -p wa -k group_changes
# auditctl -w /etc/sudoers -p wa -k sudoers_changes
# auditctl -l

सभी ऑडिट संदेश डिफ़ॉल्ट रूप से /var/log/audit/audit.log फ़ाइल में दर्ज किए जाते हैं। लॉग प्रविष्टि प्रारूप को समझने के लिए, हम एक नियम को लोड करेंगे और नियम से मेल खाने वाली घटना के बाद उत्पन्न लॉग प्रविष्टि की जांच करेंगे।

यह मानते हुए कि हमारे पास एक गुप्त बैकअप निर्देशिका है, यह ऑडिट नियम इस निर्देशिका को एक्सेस या संशोधित करने के लिए कोई भी प्रयास करेगा:

# auditctl -w /backups/secret_files/ -p rwa -k secret_backup

अब, किसी अन्य सिस्टम खाते का उपयोग करके, ऊपर दी गई निर्देशिका में जाने और ls कमांड चलाने का प्रयास करें:

$ cd /backups/secret_files/
$ ls

लॉग प्रविष्टि ऐसा लगेगा।

उपरोक्त घटना तीन प्रकार के ऑडिट रिकॉर्ड से बनी है। पहला है प्रकार = SYSCALL :

type=SYSCALL msg=audit(1505784331.849:444): arch=c000003e syscall=257 success=yes exit=3 a0=ffffffffffffff9c a1=8ad5c0 a2=90800 a3=0 items=1 ppid=2191 pid=2680 auid=1000 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts1 ses=3 comm="ls" exe="/usr/bin/ls" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key="secret_backup"

दूसरा है प्रकार = CWD

type=CWD msg=audit(1505784331.849:444):  cwd="/backups/secret_files"

और अंतिम एक प्रकार = पथ है:

type=PATH msg=audit(1505784331.849:444): item=0 name="." inode=261635 dev=08:01 mode=040755 ouid=0 ogid=0 rdev=00:00 obj=unconfined_u:object_r:default_t:s0 objtype=NORMAL

आप ऑडिट सिस्टम रेफरेंस में सभी ईवेंट फ़ील्ड (जैसे कि संदेश, आर्क, सीस आदि) की पूरी सूची और उनके अर्थ पा सकते हैं।

अभी के लिए इतना ही। अगले लेख में, हम ऑडिट लॉग फ़ाइलों की क्वेरी का उपयोग करने के तरीके के बारे में देखेंगे: हम बताएंगे कि ऑडिट लॉग से विशिष्ट जानकारी कैसे खोजें। यदि आपके कोई प्रश्न हैं, तो कृपया नीचे टिप्पणी अनुभाग के माध्यम से हम तक पहुंचें।