एक विशेष वीएम I के प्रभारी के रूट एक्सेस वाले कई लोग हैं। मैं यह पता लगाना चाहूंगा कि रूट में लॉग करने के लिए किस आईपी पते का उपयोग किया गया था।
एक विशेष वीएम I के प्रभारी के रूट एक्सेस वाले कई लोग हैं। मैं यह पता लगाना चाहूंगा कि रूट में लॉग करने के लिए किस आईपी पते का उपयोग किया गया था।
जवाबों:
last
यह जानकारी प्राप्त करने के लिए आप कमांड का उपयोग कर सकते हैं
# last|head
phemmer ssh 192.168.0.24 Wed Aug 20 21:08 - 21:08 (00:00)
phemmer pts/13 192.168.0.2 Wed Aug 20 14:00 - 18:43 (04:43)
phemmer ssh 192.168.0.2 Wed Aug 20 14:00 - 18:43 (04:43)
phemmer ssh ::1 Wed Aug 13 23:08 - 23:08 (00:00)
phemmer ssh ::1 Wed Aug 13 23:08 - 23:08 (00:00)
phemmer ssh ::1 Wed Aug 13 23:07 - 23:07 (00:00)
phemmer pts/15 192.168.0.20 Thu Aug 7 19:00 - 19:00 (00:00)
phemmer ssh 192.168.0.20 Thu Aug 7 19:00 - 19:00 (00:00)
phemmer :0 Wed Jul 30 20:06 still logged in
reboot system boot 3.13.2-gentoo Wed Jul 30 20:05 still running
जैसा कि आप कोई संदेह नहीं देख सकते हैं, तीसरा कॉलम एसएसएच लॉगिन की स्थिति में दूरस्थ आईपी पते को दिखाएगा।
last
/var/log/wtmp
फ़ाइल का उपयोग करता है , इसलिए यह विधि G-Man के उत्तर के समान है (बस थोड़ा सरल है क्योंकि आपको फ़ाइल का पथ निर्दिष्ट नहीं करना है)।
यह आपके वितरण या OS पर निर्भर करता है। sshd
प्रत्येक लॉगिन को कहीं लॉग करेगा, और लॉगिन में संबंधित आईपी पते को इस तरह से प्रारूप में शामिल करेगा:
Aug 20 15:56:53 machine sshd[2728]: Accepted publickey for root from 192.168.1.2 port 49297
वह हिस्सा सुसंगत है, लेकिन आप वहां कैसे पहुंच सकते हैं, यह अलग-अलग हो सकता है। सिस्टम के आधार पर systemd
, उपयोग journalctl
:
journalctl /usr/bin/sshd
sshd
निष्पादन योग्य से सभी लॉग संदेशों को सूचीबद्ध करने के लिए । आप रूट लॉगिन या अन्य मानदंडों के लिए इसे बाहर निकाल सकते हैं, और इसे तारीख तक सीमित कर सकते हैं --since
और --until
(देखें man journalctl
)।
वैकल्पिक रूप से और ऐतिहासिक रूप से, संदेश कहीं (आमतौर पर) में लॉग इन किया जाएगा /var/log
। आम तौर पर sshd
संदेश जाते हैं /var/log/auth.log
, लेकिन सटीक फ़ाइल काफी हद तक भिन्न हो सकती है। चाहे वह कोई भी हो:
grep sshd /var/log/auth.log
आपको मोटे तौर पर journalctl
संस्करण के बराबर आउटपुट देगा ।
आदेश
who /var/log/wtmp
क्या दिखाता है जैसे जानकारी दिखाना चाहिए who
, लेकिन समय में वापस जा रहा है।
last
यदि आप रूट के रूप में लॉग इन करना चाहते हैं, तो आपको लोगों को ssh
सीधे रूट (रूट पासवर्ड या एक प्रमाणपत्र का उपयोग करके) में लॉग इन करके उपयोग करने की अनुमति नहीं देनी चाहिए /root/.ssh/authorized_keys
। इसके बजाय, प्रत्येक व्यक्ति के लिए एक खाते का उपयोग करें और उन्हें sudo
रूट अनुमतियाँ प्राप्त करने के लिए उपयोग करने दें । इस तरह आप उपयुक्त लॉग में पाएंगे (लॉग फ़ाइल की स्थिति इस बात पर निर्भर करती है कि आपके पास कौन सा वितरण है, आप संदेश को किसी अन्य मशीन पर भेजने के लिए लॉग डेमॉन को भी कॉन्फ़िगर कर सकते हैं) संदेश user john ran the command 'sudo rm -rf /'
। ठीक है, हो सकता है कि आपको लॉग में एक कमांड हालांकि आसानी से न मिले।
sudo
शक्ति। दो लोगों के बीच खाता साझा करने का कोई वास्तविक कारण नहीं है, लेकिन जरूरत पड़ने पर एक व्यक्ति के पास दो खाते हो सकते हैं।
root
खाते को साझा करने में सुधार होता है ।
आपके द्वारा प्रदान किए गए संक्षिप्त विवरण से ऐसा लगता है कि यदि आप लॉग मॉनिटरिंग सिस्टम सेट करते हैं तो यह बेहतर होगा। यह आपको लॉगिन की निगरानी करने, अलर्ट बनाने, कई दिनों के डेटा की तुलना करने और हां-सभी के लिए निश्चित रूप से ग्राफ़ की मदद करने में मदद करेगा।
लेकिन अगर आपको इसे अस्थायी रूप से मॉनिटर करने की आवश्यकता है , तो आप last
कमांड का उपयोग कर सकते हैं ।
last | grep root | grep -v tty | awk '{print $3}'
यह आपको सूची देगा IPs
या Hostnames
कहां से, रूट उपयोगकर्ता ने लॉग-इन किया है।
sudo less /root/.bash_history
मैं अभी भी इस पर शोध करने की कोशिश कर रहा हूं, एक बहुत अच्छा सवाल लगता है :)