আমি দায়িত্বে থাকা একটি নির্দিষ্ট ভিএমটিতে রুট অ্যাক্সেস সহ বেশ কয়েকটি ব্যক্তি রয়েছেন। রুটে লগ ইন করতে কোন আইপি ঠিকানা ব্যবহার করা হয়েছিল তা আমি জানতে চাই।
আমি দায়িত্বে থাকা একটি নির্দিষ্ট ভিএমটিতে রুট অ্যাক্সেস সহ বেশ কয়েকটি ব্যক্তি রয়েছেন। রুটে লগ ইন করতে কোন আইপি ঠিকানা ব্যবহার করা হয়েছিল তা আমি জানতে চাই।
উত্তর:
আপনি 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ফাইলটি ব্যবহার করে , সুতরাং এই পদ্ধতিটি জি ম্যান এর উত্তরের অনুরূপ (আপনার ফাইলটির পথ নির্দিষ্ট করতে হবে না বলে কিছুটা সহজ)।
এটি আপনার বিতরণ বা ওএসের উপর নির্ভর করে। 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)।
বিকল্পভাবে এবং icallyতিহাসিকভাবে, বার্তাগুলি কোথাও কোথাও (সাধারণত) লগইন হবে /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আমি এখনও এটি নিয়ে গবেষণা করার চেষ্টা করছি, সত্যিই খুব ভাল প্রশ্নের মতো মনে হচ্ছে :)