আমি এই ধরণের তথ্য পাওয়ার দুটি ভাল উপায় দেখছি। একটি হ'ল sshd থেকে লগিং বৃদ্ধি করে এবং অন্যটি ডিস্কে গিট সংগ্রহস্থলের গভীর নিরীক্ষণ করে। যেহেতু উভয়ই স্বতন্ত্রভাবে আপনাকে যে তথ্য চান তা আপনাকে দেয় না, আপনি উভয়ই করতে পারেন এবং কোনও বহিরাগত লগ বিশ্লেষণ ইঞ্জিন ব্যবহার করে বা মানুষের চোখ এবং টাইমস্ট্যাম্পগুলি ব্যবহার করে চাহিদার ভিত্তিতে লগ ডেটা সংযুক্ত করতে পারেন।
sshd পরিবর্তনসমূহ
ডিফল্টরূপে, আপনি যেমন কোনও সন্দেহ দেখেছেন, কোনও ব্যবহারকারী কখন লগ ইন করেছিলেন এবং কোথা থেকে, এসএসএস প্রমাণীকরণ লগগুলি ব্যবহার করে তা আপনি দেখতে পাবেন। আপনি যা করতে চান তা হল আপনি sshd থেকে লগ আউট করার সাথে স্তরটি পরিবর্তন করা। সুতরাং আপনার সম্পাদনা করুন /etc/ssh/sshd_config
এবং দেখতে দেখতে লাইনের সন্ধান করুন
#LogLevel INFO
এবং এটি পরিবর্তন করুন
LogLevel VERBOSE
তারপরে sshd পরিষেবাটি পুনরায় চালু করুন। এটি sshd এর লগিং স্তরকে 1 ধাপে বাড়িয়ে দেয় যা আরও অনেক তথ্য দেয়। এই পরিবর্তন করার পরে আমার দূরবর্তী অ্যাক্সেসের এই লগ স্নিপেটটি দেখুন।
Nov 2 08:37:09 node1 sshd[4859]: Connection from 10.10.10.5 port 50445
Nov 2 08:37:10 node1 sshd[4859]: Found matching RSA key: f2:9e:a1:ca:0c:33:02:37:9b:de:e7:63:d5:f4:25:06
Nov 2 08:37:10 node1 sshd[4860]: Postponed publickey for scott from 10.10.10.5 port 50445 ssh2
Nov 2 08:37:10 node1 sshd[4859]: Found matching RSA key: f2:9e:a1:ca:0c:33:02:37:9b:de:e7:63:d5:f4:25:06
Nov 2 08:37:10 node1 sshd[4859]: Accepted publickey for scott from 10.10.10.5 port 50445 ssh2
Nov 2 08:37:10 node1 sshd[4859]: pam_unix(sshd:session): session opened for user scott by (uid=0)
Nov 2 08:37:10 node1 sshd[4859]: User child is on pid 4862
Nov 2 08:40:27 node1 sshd[4862]: Connection closed by 10.10.10.5
Nov 2 08:40:27 node1 sshd[4862]: Transferred: sent 30632, received 7024 bytes
Nov 2 08:40:27 node1 sshd[4862]: Closing connection to 10.10.10.5 port 50445
Nov 2 08:40:27 node1 sshd[4859]: pam_unix(sshd:session): session closed for user scott
এখানে গুরুত্বপূর্ণ বিষয়গুলি লক্ষ্য করার জন্য হ'ল দ্বিগুণ
- আমাকে প্রমাণীকরণের জন্য ব্যবহৃত পাবলিক কীটির ফিঙ্গারপ্রিন্ট আমরা দেখতে পাই
- আমরা আমার লগ অফের টাইমস্ট্যাম্পটি দেখি
ডিফল্ট লগলভিল (আইএনএফও) sshd ব্যবহার করে those আইটেমগুলির মধ্যে একটিও নেই। কীটির ফিঙ্গারপ্রিন্ট পাওয়া একটি অতিরিক্ত পদক্ষেপ। আপনাকে উপযুক্ত authorized_keys
ফাইলটি এসএসএস-কীজেন সহ প্রসেস করতে হবে।
[root@node1 ssh]# ssh-keygen -l -f /home/scott/.ssh/authorized_keys
4096 f2:9e:a1:ca:0c:33:02:37:9b:de:e7:63:d5:f4:25:06 /home/scott/.ssh/authorized_keys (RSA)
সুতরাং এখন আপনি নিম্নলিখিত তথ্য টুকরা জানেন:
- লগইন করা হয়েছে এমন ব্যবহারকারীর নাম
- ব্যবহারকারী যে সময় লগ ইন করেছেন
- প্রমাণীকরণের জন্য কোন সর্বজনীন কী ব্যবহৃত হয়েছিল
- ব্যবহারকারী যে সময় লগ অফ করেছেন
উভয় ব্যবহারকারী একই সময়ে লগইন হয়নি বলে ধরে নিয়ে আমরা একটি নির্দিষ্ট সময়ে ব্যবহারকারীর ক্রিয়াকে বিশিষ্ট করার একটি উপায় রেখেছি, আমরা সংগ্রহস্থলের পরিবর্তনগুলি দেখতে শুরু করতে পারি।
নিরীক্ষণ সহ ডিরেক্টরি নিরীক্ষণ
যেমন sysadmin1138 বলেছেন, এটি নিরীক্ষণকারী সাবসিস্টেমের জন্য দুর্দান্ত ব্যবহারের ক্ষেত্রে হতে পারে। আপনি যদি রেডহ্যাট ভিত্তিক ডিস্ট্রো ব্যবহার না করে থাকেন তবে সম্ভবত একটি অ্যানালগ রয়েছে তবে আপনাকে এটি সন্ধান করতে হবে। নিরীক্ষণের জন্য কনফিগারেশনটি বেশ তীব্র এবং কনফিগারেশন অপশনের একটি অলস সংখ্যা। কয়েকটি বিকল্পের ধারণা পেতে, দয়া করে তথ্য সুরক্ষা পেশাদারদের জন্য আমাদের বোন সাইটে এই প্রশ্নটি দেখুন ।
ন্যূনতমভাবে, আমি ডিস্কের ডিরেক্টরিতে "ঘড়ি" বলে সেট আপ করার পরামর্শ দেব যা আপনার গিট রিপোজিটরিতে প্রশ্ন রয়েছে। এটি যা করে তা হ'ল ফাইল অ্যাক্সেস কলগুলি সম্পাদনা করার প্রচেষ্টা সম্পর্কে যেমন কার্নেল মডিউলকে নির্দেশ দেওয়া হয়, যেমন open()
বা creat()
আমরা তালিকাভুক্ত ফাইল বা ডিরেক্টরিগুলি ফাইল হ্যান্ডলগুলিতে নির্দেশ করি।
এখানে একটি নমুনা কনফিগারেশন রয়েছে যা এটি করবে এবং কেবল এটিই। সুতরাং /etc/audit/audit.rules
পরিবর্তনগুলি যথাযথভাবে সংহত করার জন্য আপনার বিদ্যমানটি পড়ে বোঝার এবং বোঝার জন্য সতর্ক হন ।
# This file contains the auditctl rules that are loaded
# whenever the audit daemon is started via the initscripts.
# The rules are simply the parameters that would be passed
# to auditctl.
# First rule - delete all
-D
# Increase the buffers to survive stress events.
# Make this bigger for busy systems
-b 1024
-w /path/to/git/repos-p wa
# Disable adding any additional rules - note that adding *new* rules will require a reboot
-e 2