लॉगिंग SSH पहुँच प्रयास


60

मैंने इसे कनेक्ट करने और फोन या लैपटॉप जैसे रिमोट सिस्टम से कमांड निष्पादित करने के लिए ओपनश के साथ एक ubuntu सर्वर कॉन्फ़िगर किया है। समस्या यह है ... मैं शायद अकेला नहीं हूं।

क्या सर्वर पर किए गए सभी लॉगिन प्रयासों को जानने का एक तरीका है?


आपको गैर-मानक पोर्ट पर sshd चलाने पर भी विचार करना चाहिए। इसके अलावा, यदि एक ही आईपी एक मिनट में एक बार नए ssh कनेक्शन का प्रयास करता है, तो नए कनेक्शन के प्रयासों से इनकार करने के लिए iptables स्थापित करना संभव है।
ivanivan

मेरे लिए यह मुद्दा असफल नहीं था, लेकिन शशगार्ड, कुछ ऐसा जो मैंने कभी नहीं सुना था
रे फॉस

जवाबों:


55

उबंटू सर्वर पर, आप पा सकते हैं कि फाइल में कब (और कहाँ से) लॉग इन किया /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)

2
जिज्ञासा से बाहर, क्या उबंटू की lastbकमान है ?
ब्राचली

1
@JoelDavis मेरा Ubuntu 12.04 करता है, लेकिन आउटपुट एक एकल पंक्ति है जो आपके आउटपुट की तरह बिल्कुल नहीं दिखता है। शायद इसे कॉन्फ़िगर करने की आवश्यकता है।
एंथन


उबंटू सर्वर 14.04 और इसके बाद के संस्करण पर, यह पढ़ा जाना चाहिए/var/log/auth.log
सर्ज स्ट्रोबोबांट

29

Red Hat आधारित डिस्ट्रोस जैसे Fedora / CentOS / RHEL पर आप फ़ाइल के अंदर लॉग इन किए गए उपयोगकर्ताओं के लिए जाँच कर सकते हैं /var/log/secure

यदि आप अधिक जानकारी चाहते हैं तो इस SuperUser Q & A शीर्षक को पढ़ें: मैं SSH पहुंच के प्रयासों को कैसे लॉग कर सकता हूं और SSH उपयोगकर्ता मेरे सर्वर पर क्या कर रहा है, इसका ट्रैक रख सकते हैं?


1
/var/log/secureमेरे उबंटू सिस्टम में से कोई भी नहीं है ।
एंथन

@ एंथन, आश्चर्यजनक रूप /var/log/authसे मेरे सिस्टम में नहीं है । इसीलिए जवाब पोस्ट करने से पहले, मैंने जाँच की कि क्या मैं /var/log/secureअपने सिस्टम में था , जो उबंटू सर्वर भी है :)
रमेश

मैंने 14.04, 12.04 और पुरानी मशीन की जाँच 8.04 के तहत की थी। आप कौन सा संस्करण चला रहे हैं? उस फाइल को पाने के लिए कुछ खास किया?
एंथन

@ एंथन, उस सर्वर को चालू करता है जिसमें मैंने परीक्षण किया था आरएचईएल। हालांकि, मैंने जो लिंक प्रदान किया था, उसमें उत्तर उबंटू के लिए था जो अजीब लगता है, क्योंकि आपने उबंटू के 3 रूपों की जांच की थी और कोई नहीं है /var/log/secure
रमेश

6
/var/log/secureFedora / CentOS / RHEL ism है।
SLM

8

उबंटू पर आप एसएसएच के माध्यम से लॉग इन कर सकते हैं और अपनी /var/log/auth.logफ़ाइल की अंतिम x संख्या प्रदर्शित करने के लिए लिनक्स टेल कमांड का उपयोग कर सकते हैं। जब आप SSH के माध्यम से लॉग इन होते हैं, तो अपने SSH लॉग की 100 अंतिम लाइनें देखने के लिए निम्न कमांड का उपयोग करें:

tail /var/log/auth.log -n 100

या यहां तक ​​कि क्लीनर

tail -100 /var/log/auth.log | grep 'sshd'

7

ध्यान दें कि उबंटू पर डिफ़ॉल्ट कॉन्फ़िगरेशन /var/log/authफ़ाइल में ssh लॉगिन लॉग नहीं है । यह INFOलॉगिंग स्तर है।

यदि आप इसे लॉग फ़ाइल में लॉगिन प्रयास शामिल करना चाहते हैं, तो आपको /etc/ssh/sshd_configफ़ाइल को संपादित करना होगा (रूट के रूप में या sudo के साथ) और LogLevelसे INFOको बदलना होगा VERBOSE

उसके बाद, sshd डेमॉन को पुनः आरंभ करें

sudo service rsyslog restart

उसके बाद, ssh लॉगिन प्रयासों को /var/log/auth.logफ़ाइल में लॉग इन किया जाएगा ।


4

मेरी सिफारिश ऑडिट का उपयोग करने की है । यह लिनक्स कर्नेल के ऑडिट सबसिस्टम का उपयोग करके लॉगिंग कर रहा है और मेरी राय में यदि आप गंभीर हैं तो इसे करने का उचित तरीका है। और प्रश्न {सुरक्षा संबंधी} की प्रकृति को देखते हुए आपको 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)'
  • ऊपर से, मेरे सर्वर का नाम शार्क है
  • इस तरह की कई लाइनें ऑडिट में हैं। मैं चाहता हूं कि यह एक exe = "/ usr / sbin / sdd " पर आधारित हो।
  • इस खाते का uid ssh'd है, auid का मान है, जो इस उदाहरण के लिए 23456 है
  • auid से जुड़े उपयोगकर्ता खाते का नाम acct = "ron" द्वारा निर्दिष्ट है
  • अधिकांश बार ऑडिट सिस्टम कनेक्ट करने की कोशिश कर रहे सिस्टम के dns होस्टनाम को रिकॉर्ड करेगा, लेकिन हमेशा इसका आईपी पता होता है
  • प्रविष्टि की तिथि जो कि समयावधि में है, इसलिए आपको इसे किसी ऐसी चीज़ के माध्यम से परिवर्तित करना होगा 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.denySSHD के लिए है कि आईपी पते के साथ।


2

मुझे पता है कि यह पुराना है लेकिन मैंने सफल और असफल ssh कनेक्शन / प्रयासों की निगरानी के लिए कुछ लिखा है। साथ ही अगर आप sshguard का उपयोग कर रहे हैं तो IP पर प्रतिबंध लगा दिया है। सॉफ्टवेयर पायथन में लिखा गया है। यह तब आपको ईमेल करेगा जब कोई व्यक्ति सफलतापूर्वक ssh के माध्यम से जुड़ता है, जब कोई व्यक्ति ssh पासवर्ड गलत हो जाता है या जब किसी को कई असफल प्रयासों के कारण प्रतिबंधित कर दिया जाता है। उम्मीद है कि यह भविष्य में किसी ऐसे व्यक्ति की मदद करेगा जो इस मुद्दे को खोजता है और मेरा कोड पाता है!

https://github.com/amboxer21/SSHMonitor

अजगर की स्क्रिप्ट के लिए, मैंने इस प्रक्रिया की निगरानी के लिए एक बैश स्क्रिप्ट लिखी। यह जांचता है कि यह रूट क्रोन कार्य के माध्यम से हर मिनट चल रहा है या नहीं। यदि यह नहीं चल रहा है, तो यह एक और प्रक्रिया शुरू करता है। जिसे हर मिनट एक रूट क्रोन कार्य कहा जाता है ।


-2

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

मुझे लगता है कि यह आपके गिट प्रोफाइल को बढ़ावा देने का एक बुरा तरीका है ... मूल रूप से आप वेब से एक स्क्रिप्ट डाउनलोड करने और रूट का उपयोग करके निष्पादित करने के लिए कह रहे हैं। डाउनवोट
23

मैं अपने गिथब प्रोफाइल का प्रचार नहीं कर रहा हूं, मैंने सिर्फ चीजों को सरल बनाने की कोशिश की है क्योंकि लोग ऊपर करते हैं यदि आप मुझे वोट देने के लिए नीचे प्रोफाइल को बढ़ावा देने के लिए वोट देते हैं। स्टाॅक एक्सचेंज के नियमों के अतिरिक्त कुछ भी नहीं लिखा है कि हम व्यक्तिगत रिपॉजिटरी से कोड फाइल साझा नहीं कर सकते हैं।
मंसूर अली

कृपया मेरी बुरी भावना को क्षमा करें। सबसे पहले जवाब के लिए धन्यवाद मंसूर। डाउनवोट इस तथ्य से आता है कि आप अज्ञात कमांड के एक गुच्छा को रूट उपयोगकर्ता के रूप में निष्पादित करने के लिए कह रहे हैं। पिछली बार मैंने ऐसा किया था कि अंदर एक 'आरएम -आर स्लैश' था।
यूजर

1
ठीक है, जिस तरह से स्टैक-एक्सचेंज मुझे इतने लंबे कोड की अनुमति नहीं देगा, यही कारण है कि मैंने उस स्क्रिप्ट को अपने उत्तर में डाल दिया है। लिनक्स बहुत सरल है।
मंसूर अली
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.