मैंने इसे कनेक्ट करने और फोन या लैपटॉप जैसे रिमोट सिस्टम से कमांड निष्पादित करने के लिए ओपनश के साथ एक ubuntu सर्वर कॉन्फ़िगर किया है। समस्या यह है ... मैं शायद अकेला नहीं हूं।
क्या सर्वर पर किए गए सभी लॉगिन प्रयासों को जानने का एक तरीका है?
मैंने इसे कनेक्ट करने और फोन या लैपटॉप जैसे रिमोट सिस्टम से कमांड निष्पादित करने के लिए ओपनश के साथ एक ubuntu सर्वर कॉन्फ़िगर किया है। समस्या यह है ... मैं शायद अकेला नहीं हूं।
क्या सर्वर पर किए गए सभी लॉगिन प्रयासों को जानने का एक तरीका है?
जवाबों:
उबंटू सर्वर पर, आप पा सकते हैं कि फाइल में कब (और कहाँ से) लॉग इन किया /var/log/auth.log
। वहां, आपको प्रविष्टियां मिलती हैं जैसे:
May 1 16:17:02 owl CRON[9019]: pam_unix(cron:session): session closed for user root
May 1 16:17:43 owl sshd[9024]: Accepted publickey for root from 192.168.0.101 port 37384 ssh2
May 1 16:17:43 owl sshd[9024]: pam_unix(sshd:session): session opened for user root by (uid=0)
lastb
कमान है ?
/var/log/auth.log
Red Hat आधारित डिस्ट्रोस जैसे Fedora / CentOS / RHEL पर आप फ़ाइल के अंदर लॉग इन किए गए उपयोगकर्ताओं के लिए जाँच कर सकते हैं /var/log/secure
।
यदि आप अधिक जानकारी चाहते हैं तो इस SuperUser Q & A शीर्षक को पढ़ें: मैं SSH पहुंच के प्रयासों को कैसे लॉग कर सकता हूं और SSH उपयोगकर्ता मेरे सर्वर पर क्या कर रहा है, इसका ट्रैक रख सकते हैं? ।
/var/log/secure
मेरे उबंटू सिस्टम में से कोई भी नहीं है ।
/var/log/auth
से मेरे सिस्टम में नहीं है । इसीलिए जवाब पोस्ट करने से पहले, मैंने जाँच की कि क्या मैं /var/log/secure
अपने सिस्टम में था , जो उबंटू सर्वर भी है :)
/var/log/secure
।
/var/log/secure
Fedora / CentOS / RHEL ism है।
उबंटू पर आप एसएसएच के माध्यम से लॉग इन कर सकते हैं और अपनी /var/log/auth.log
फ़ाइल की अंतिम x संख्या प्रदर्शित करने के लिए लिनक्स टेल कमांड का उपयोग कर सकते हैं। जब आप SSH के माध्यम से लॉग इन होते हैं, तो अपने SSH लॉग की 100 अंतिम लाइनें देखने के लिए निम्न कमांड का उपयोग करें:
tail /var/log/auth.log -n 100
या यहां तक कि क्लीनर
tail -100 /var/log/auth.log | grep 'sshd'
ध्यान दें कि उबंटू पर डिफ़ॉल्ट कॉन्फ़िगरेशन /var/log/auth
फ़ाइल में ssh लॉगिन लॉग नहीं है । यह INFO
लॉगिंग स्तर है।
यदि आप इसे लॉग फ़ाइल में लॉगिन प्रयास शामिल करना चाहते हैं, तो आपको /etc/ssh/sshd_config
फ़ाइल को संपादित करना होगा (रूट के रूप में या sudo के साथ) और LogLevel
से INFO
को बदलना होगा VERBOSE
।
उसके बाद, sshd डेमॉन को पुनः आरंभ करें
sudo service rsyslog restart
उसके बाद, ssh लॉगिन प्रयासों को /var/log/auth.log
फ़ाइल में लॉग इन किया जाएगा ।
मेरी सिफारिश ऑडिट का उपयोग करने की है । यह लिनक्स कर्नेल के ऑडिट सबसिस्टम का उपयोग करके लॉगिंग कर रहा है और मेरी राय में यदि आप गंभीर हैं तो इसे करने का उचित तरीका है। और प्रश्न {सुरक्षा संबंधी} की प्रकृति को देखते हुए आपको PAM का भी उपयोग करना चाहिए । बस ऑडिट और पीएएम स्थापित होने के डिफ़ॉल्ट स्तर पर , आपको स्वचालित रूप से आपकी ऑडिट.लॉग फ़ाइल में लॉग इन सभी सफल और असफल एसएसएच प्रयास होने चाहिए। इसलिए आपको वास्तव में कुछ भी कॉन्फ़िगर करने की आवश्यकता नहीं है, बस ऑडिट और पीएएम स्थापित करना होगा। मैं SLES के लिए यह पहला हाथ जानता हूं। और आरएचईएल को दांव पर लगाएगा और लिनक्स का कोई अन्य उद्यम संस्करण भी इसी तरह काम करेगा।
http://manpages.ubuntu.com/manpages/precise/man8/auditd.8.html
द्वारा उत्पन्न कच्चे ऑडिट लॉग भीतर auditd आप उपयोग कर सकते हैं या तो कुछ का उपयोग पसंद aureport
यह जो वर्णन किया गया है फिल्टर करने के लिए auditd आदमी पृष्ठों, अपना स्वयं का पाठ पार्सर लिखते हैं, या सिर्फ छठी का उपयोग करें और कीवर्ड के लिए खोज।
यहाँ /var/log/audit/audit.log
मेरे लिनक्स सर्वर में ssh'ing के साथ मेरी फ़ाइल को छोड़कर है ।
node=shark type=CRED_DISP msg=audit(1480622612.317:2211277): user pid=117768 uid=0 auid=23456 ses=2201 msg='op=PAM:setcred acct="ron" exe="/usr/sbin/sshd" (hostname=abc415.mycompany.us, addr=172.16.152.5, terminal=ssh res=success)'
date --date @1480622612.317
जिसके परिणामस्वरूप Thu Dec 1 15:03:32 EST 2016
और जब मैं अपने सर्वर में ssh'd हूं।res=failed
जब आप उन आईपी पते और होस्टनाम की जांच करना चाहते हैं, तो यह देखने के लिए कि सिस्टम किस प्रयास कर रहा था, उपयोगकर्ता नाम किस प्रयास के तहत कनेक्ट करने के लिए। और स्पष्ट रूप से सफल ssh यह समझने का प्रयास करता है कि आपके सिस्टम पर क्या हो रहा है - उदाहरण के लिए आपका सहकर्मी बॉब जो होस्टनाम = bobscomputer और ip एड्रेस = 192.168.5.5 के साथ रोज एक ही डेस्क पर बैठता है; यदि आप उदाहरण के लिए आईपी पते 10.10.5.6 से अपने उपयोगकर्ता नाम के तहत कल दोपहर 2 बजे एक सफल ssh प्रयास देखते हैं तो यह जांच करने के लिए बॉब से बात करने के लिए आपके सर्वोत्तम हित में हो सकता है। संभव हैक प्रयास किसी और के द्वारा? और कुछ ही समय बाद बॉब के खाते से ऑडिट लॉग में रूट करने के लिए सु प्रयास हैं?
जब आप बार-बार देखने res=failed
और auid=0
और acct=root
तो है कि किसी को जड़ खाते में अपने बॉक्स में ssh करने की कोशिश कर रहा है, और होता है जब आप को संशोधित /etc/hosts.deny
SSHD के लिए है कि आईपी पते के साथ।
मुझे पता है कि यह पुराना है लेकिन मैंने सफल और असफल ssh कनेक्शन / प्रयासों की निगरानी के लिए कुछ लिखा है। साथ ही अगर आप sshguard का उपयोग कर रहे हैं तो IP पर प्रतिबंध लगा दिया है। सॉफ्टवेयर पायथन में लिखा गया है। यह तब आपको ईमेल करेगा जब कोई व्यक्ति सफलतापूर्वक ssh के माध्यम से जुड़ता है, जब कोई व्यक्ति ssh पासवर्ड गलत हो जाता है या जब किसी को कई असफल प्रयासों के कारण प्रतिबंधित कर दिया जाता है। उम्मीद है कि यह भविष्य में किसी ऐसे व्यक्ति की मदद करेगा जो इस मुद्दे को खोजता है और मेरा कोड पाता है!
https://github.com/amboxer21/SSHMonitor
अजगर की स्क्रिप्ट के लिए, मैंने इस प्रक्रिया की निगरानी के लिए एक बैश स्क्रिप्ट लिखी। यह जांचता है कि यह रूट क्रोन कार्य के माध्यम से हर मिनट चल रहा है या नहीं। यदि यह नहीं चल रहा है, तो यह एक और प्रक्रिया शुरू करता है। जिसे हर मिनट एक रूट क्रोन कार्य कहा जाता है ।
SSH कमांड लॉगिंग के लिए सबसे अच्छी बात जो मुझे कभी भी पता चली है वह है इस टूल की अनुमति देता है प्रशासक को लॉगिंग के व्यापक स्तर के साथ हर सत्र से प्रत्येक कमांड प्राप्त करने की अनुमति देता है।
मैंने ubuntu और CentOS / RHEL में ROOTSH को कॉन्फ़िगर और कॉन्फ़िगर करने के लिए एक स्क्रिप्ट लिखी है
यहाँ github से डाउनलोड लिंक है
https://gist.githubusercontent.com/mansurali901/e1e3acc7dca13aeca25b68a69571c60f/raw/b1b16f73ec9a974486e4c0c0d65a7d41f2eca718/setup_rootssh.sh
chmod +x setup_rootssh.sh ; sudo ./setup_rootssh.sh