मशीन में कौन लॉगिन हुआ: लॉगिन लॉग
सफल और असफल लॉगिन कहाँ देखें, last, lastb, और journalctl कैसे पढ़ें, sudo से गतिविधि कैसे ट्रैक करें, और लॉग रिटेंशन कैसे सेट करें।
23 अगस्त 2026 को अपडेट किया गया
हर लॉगिन मशीन पर एक निशान छोड़ता है। उन निशानों को पाँच मिनट में पढ़ पाना ही एक शांत इंसिडेंट रिव्यू और अंदाज़े के बीच का फ़र्क़ है।
त्वरित अवलोकन
last -a -n 20
lastb -a -n 20
lastlog
who
w
last सफल लॉगिन और उनके पते दिखाता है, lastb — असफल कोशिशें, lastlog — हर यूज़र ने आख़िरी बार कब लॉगिन किया। who और w दिखाते हैं कि इस वक़्त मशीन पर कौन है।
अगर lastlog में www-data जैसे सिस्टम यूज़र के लिए लॉगिन की तारीख़ दिखे, तो यह जाँच करने की गंभीर वजह है।
systemd journal
journalctl -u ssh -n 100
journalctl -u ssh --since "2026-08-20" --until "2026-08-21"
journalctl _COMM=sshd | grep "Accepted"
journalctl _COMM=sshd | grep "Failed password" | tail -50
अहम लाइनें:
| लाइन | मतलब |
|---|---|
Accepted publickey for artem | की से सफल लॉगिन |
Accepted password for root | पासवर्ड से सफल लॉगिन — चिंता की बात |
Failed password for invalid user admin | न होने वाले नामों पर ब्रूट-फ़ोर्स, बैकग्राउंड शोर |
Disconnected from authenticating user | कोशिश बीच में रद्द हुई |
Debian और Ubuntu पर यही इवेंट /var/log/auth.log में भी दर्ज होते हैं; AlmaLinux पर /var/log/secure में।
grep "Accepted" /var/log/auth.log
grep -c "Failed password" /var/log/auth.log
पब्लिक पते पर रोज़ सैकड़ों असफल कोशिशें आम बात हैं। असामान्य कुछ और होता है: किसी ऐसे पते से सफल लॉगिन जिसे आप नहीं पहचानते। शोर के ख़िलाफ़ fail2ban मदद करता है।
लॉगिन के बाद क्या किया गया
journalctl -t sudo -n 100
grep sudo /var/log/auth.log
cat /home/artem/.bash_history
कमांड हिस्ट्री भरोसेमंद नहीं है: उसे मिटाना आसान है, और नॉन-इंटरैक्टिव सेशन के दौरान वह दर्ज ही नहीं होती। sudo का लॉग कहीं ज़्यादा ईमानदार है — उसे शेल नहीं, सिस्टम बनाए रखता है। यह "सामान्य यूज़र प्लस sudo" वाली स्कीम के पक्ष में एक और दलील है, जिसका ज़िक्र यूज़र और sudo लेख में है।
कर्नेल-लेवल की पूरी ऑडिटिंग:
apt install -y auditd
auditctl -w /etc/passwd -p wa -k passwd_changes
ausearch -k passwd_changes
स्टोरेज
डिफ़ॉल्ट रूप से systemd journal मेमोरी में रह सकता है और रीबूट पर खो सकता है। इंसिडेंट रिव्यू के लिए यह बुरा है। फ़ाइल /etc/systemd/journald.conf:
[Journal]
Storage=persistent
SystemMaxUse=500M
MaxRetentionSec=1month
systemctl restart systemd-journald
journalctl --disk-usage
साइज़ की लिमिट ज़रूरी है: डिस्क खा चुका journal सर्विसेज़ को रोक देता है।
आम गलतियाँ
| गलती | नतीजा | समाधान |
|---|---|---|
| रीबूट के बीच journal सेव नहीं होता | निशान खो जाते हैं | Storage=persistent |
सिर्फ़ .bash_history पर भरोसा | डेटा आसानी से बदला जा सकता है | sudo और auditd के लॉग देखें |
| journal का साइज़ लिमिट नहीं किया | डिस्क भर गई | SystemMaxUse |
| ब्रूट-फ़ोर्स शोर को हैक समझना | झूठा अलार्म | Failed नहीं, Accepted देखें |
अगर आपको किसी और के पते से सफल लॉगिन मिले, तो मशीन के ख़ुद के लॉग अब भरोसेमंद नहीं माने जा सकते: जिसने लॉगिन किया, वह उन्हें बदल भी सकता था। संक्रमण के संकेत लेख पर चलें और मान लें कि मशीन को दोबारा इंस्टॉल करना पड़ेगा।