मैं इस तरह की जानकारी प्राप्त करने के दो अच्छे तरीके देखता हूं। एक sshd से लॉगिंग को बढ़ाकर है, और दूसरा डिस्क पर गिट रिपॉजिटरी की गहरी निगरानी करके है। चूंकि दोनों में से कोई भी आपको व्यक्तिगत रूप से आपके द्वारा दी गई जानकारी नहीं देता है, इसलिए आप बाहरी लॉग विश्लेषण इंजन का उपयोग करके या मानव आंखों और टाइमस्टैम्प का उपयोग करके लॉग डेटा को दोनों करना चाहते हैं और सहसंबंधित कर सकते हैं।
sshd संशोधन
डिफ़ॉल्ट रूप से, जैसा कि आपने देखा है कि कोई संदेह नहीं है, आप देख सकते हैं कि उपयोगकर्ता ने कब और कहाँ से लॉग इन किया और ssh प्रमाणीकरण लॉग का उपयोग किया। आप जो करना चाहते हैं, वह स्तर बदल रहा है और आप sshd से लॉग आउट कर रहे हैं। तो अपने को संपादित करें /etc/ssh/sshd_config
और जो लाइन दिखती है उसे ढूंढें
#LogLevel INFO
और उसे बदल दें
LogLevel VERBOSE
उसके बाद sshd सेवा को फिर से शुरू करें। यह sshd का लॉगिंग स्तर 1 कदम बढ़ाता है, जो बहुत अधिक जानकारी देता है। उस परिवर्तन को करने के बाद मेरे रिमोट एक्सेस के इस लॉग स्निपेट को देखें।
Nov 2 08:37:09 node1 sshd[4859]: Connection from 10.10.10.5 port 50445
Nov 2 08:37:10 node1 sshd[4859]: Found matching RSA key: f2:9e:a1:ca:0c:33:02:37:9b:de:e7:63:d5:f4:25:06
Nov 2 08:37:10 node1 sshd[4860]: Postponed publickey for scott from 10.10.10.5 port 50445 ssh2
Nov 2 08:37:10 node1 sshd[4859]: Found matching RSA key: f2:9e:a1:ca:0c:33:02:37:9b:de:e7:63:d5:f4:25:06
Nov 2 08:37:10 node1 sshd[4859]: Accepted publickey for scott from 10.10.10.5 port 50445 ssh2
Nov 2 08:37:10 node1 sshd[4859]: pam_unix(sshd:session): session opened for user scott by (uid=0)
Nov 2 08:37:10 node1 sshd[4859]: User child is on pid 4862
Nov 2 08:40:27 node1 sshd[4862]: Connection closed by 10.10.10.5
Nov 2 08:40:27 node1 sshd[4862]: Transferred: sent 30632, received 7024 bytes
Nov 2 08:40:27 node1 sshd[4862]: Closing connection to 10.10.10.5 port 50445
Nov 2 08:40:27 node1 sshd[4859]: pam_unix(sshd:session): session closed for user scott
यहां ध्यान देने योग्य महत्वपूर्ण बातें दो गुना हैं
- हम मुझे प्रमाणित करने के लिए उपयोग की जाने वाली सार्वजनिक कुंजी के फ़िंगरप्रिंट को देखते हैं
- हम अपने लॉग ऑफ का टाइमस्टैम्प देखते हैं
डिफ़ॉल्ट LogLevel (INFO) sshd लॉग का उपयोग न तो उन वस्तुओं में से करता है। कुंजी का फिंगरप्रिंट प्राप्त करना एक अतिरिक्त कदम है। आपको authorized_keys
ssh-keygen के साथ उपयुक्त फ़ाइल को संसाधित करना होगा ।
[root@node1 ssh]# ssh-keygen -l -f /home/scott/.ssh/authorized_keys
4096 f2:9e:a1:ca:0c:33:02:37:9b:de:e7:63:d5:f4:25:06 /home/scott/.ssh/authorized_keys (RSA)
तो अब आप निम्न जानकारी जानते हैं:
- उपयोगकर्ता नाम जो लॉग ऑन था
- उपयोगकर्ता द्वारा लॉग ऑन किया गया समय
- प्रमाणीकरण के लिए किस सार्वजनिक कुंजी का उपयोग किया गया था
- उपयोगकर्ता द्वारा लॉग इन किया गया समय
अब जब हमारे पास एक विशिष्ट समय में उपयोगकर्ता कार्रवाई को विशेषता देने का एक तरीका है, यह मानते हुए कि दोनों उपयोगकर्ता एक ही समय में लॉग इन नहीं थे, तो हम रिपॉजिटरी में किए गए परिवर्तनों को देखना शुरू कर सकते हैं।
ऑडिट के साथ निर्देशिका की निगरानी
जैसा कि sysadmin1138 ने कहा, यह ऑडिट सबसिस्टम के लिए एक उत्कृष्ट उपयोग मामला हो सकता है। यदि आप RedHat आधारित डिस्ट्रो का उपयोग नहीं कर रहे हैं तो संभवतः एक एनालॉग है, लेकिन आपको इसे ढूंढना होगा। ऑडिट के लिए कॉन्फ़िगरेशन बहुत तीव्र है और इसमें कॉन्फ़िगरेशन विकल्पों की एक redonkulous संख्या है। कुछ विकल्पों के बारे में जानने के लिए, कृपया हमारी सुरक्षा साइट पर इस प्रश्न को सूचना सुरक्षा पेशेवरों के लिए देखें ।
न्यूनतम रूप से, मैं यह निर्धारित करने की सिफारिश करूंगा कि डिस्क पर निर्देशिका पर "वॉच" कहा जाता है जिसमें आपके गिट रिपॉजिटरी शामिल है। यह क्या करता है कर्नेल मॉड्यूल को फ़ाइल एक्सेस कॉल करने के प्रयासों पर रिपोर्ट करने के लिए निर्देश देता है, जैसे open()
या creat()
, फ़ाइल हैंडल पर वे फाइलें या निर्देशिकाओं की ओर इशारा करते हैं जिन्हें हम सूचीबद्ध करते हैं।
यहाँ एक नमूना विन्यास है जो यह करेगा, और केवल यह। इसलिए /etc/audit/audit.rules
उचित रूप से परिवर्तनों को एकीकृत करने के लिए , अपने मौजूदा के माध्यम से पढ़ने और समझने के लिए सावधान रहें ।
# This file contains the auditctl rules that are loaded
# whenever the audit daemon is started via the initscripts.
# The rules are simply the parameters that would be passed
# to auditctl.
# First rule - delete all
-D
# Increase the buffers to survive stress events.
# Make this bigger for busy systems
-b 1024
-w /path/to/git/repos-p wa
# Disable adding any additional rules - note that adding *new* rules will require a reboot
-e 2