যদিও এই প্রশ্নটি কোনও ব্যক্তি নিজের সেশনগুলি রেকর্ড করতে ইচ্ছুক দ্বারা জিজ্ঞাসা করা হয়েছিল, তবে একটি বিকল্প ব্যবহারের ক্ষেত্রে সিস্টেম প্রশাসক হতে পারেন যিনি বিভিন্ন ব্যবহারকারী কী করছেন তার উপর নজর রাখতে চায়।
আমি আশঙ্কা করি যে মেশিনের ব্যবহারকারীরা তাদের সেশনগুলির রেকর্ডিং তৈরি করতে অনিচ্ছুক হলে script
সিস্টেম- ওয়াইডের অভ্যন্তরে চালানো bashrc
ক্ষেত্রে উপযুক্ত নাও হতে পারে।
যেসব ব্যবহারকারী ছদ্মবেশী থাকতে চান তারা লগিংকে বাইশ করতে পারেন sshd কে একটি আলাদা শেল (উদাঃ zsh
) খুলতে বা লোড bash --rcfile ___
হওয়া /etc/bash.bashrc
থেকে রোধ করতে চালাতে ।
একটি বিকল্প পদ্ধতির
২০০৮-এর এই গাইড ( সংরক্ষণাগারভুক্ত ) কোনও ব্যবহারকারী যখন এসএসএস দিয়ে লগ ইন করে তখন চালানোর জন্য বাধ্য করার জন্য একটি পৃথক পদ্ধতি ব্যবহার করে script
, যার জন্য ব্যবহারকারীদের পাবলিক / প্রাইভেট কী দিয়ে লগ ইন করতে হবে।
এটি .ssh/authorized_keys
কী এর সামনে ব্যবহারকারীর ফাইলে স্ক্রিপ্ট যুক্ত করে করা হয় :
command="/usr/local/sbin/log-session" ssh-dss AAAAB3NzaC1kc3MAAAEBAMKr1HxJz.....
log-session
( সংরক্ষন ) স্ক্রিপ্ট তারপর সিদ্ধান্ত নেয় হোক বা না হোক চালানোর জন্য /usr/bin/script
এই ব্যবহারকারীর অধিবেশন লগইন করুন।
exec script -a -f -q -c "$SSH_ORIGINAL_COMMAND" $LOGFILE
ব্যবহারকারীকে যুক্ত করা কমান্ড অপসারণ থেকে বিরত রাখতে প্রশাসকের ব্যবহারকারীর authorized_keys
ফাইলটির মালিকানা গ্রহণ করতে হবে।
chown root:root ~user/.ssh/authorized_keys
দুর্ভাগ্যক্রমে, এর অর্থ এই যে ব্যবহারকারী কোনও অতিরিক্ত কীগুলি নিজেকে যোগ করতে সক্ষম হবেন না বা বিদ্যমান কীটি আপোস করা থাকলে আরও গুরুত্বপূর্ণভাবে তা প্রত্যাহার করতে পারবেন না, এটি আদর্শ থেকে দূরে।
আদেশ সহকারে
Sshd- র ডিফল্ট কনফিগারেশনের ক্ষেত্রে ব্যবহারকারীরা তাদের ssh লগইনে SFTP সম্পাদন করতে দেয়। এটি ব্যবহারকারীদের জন্য পরিবর্তনগুলি লগ করা ছাড়াই ফাইল সম্পাদনা করার একটি উপায় সরবরাহ করে। প্রশাসক যদি ব্যবহারকারীরা এটি করতে সক্ষম না হন তবে তার উচিত হয় এসএফটিপি-র জন্য কিছু লগিং সক্ষম করতে হবে, বা পরিষেবাটি অক্ষম করতে হবে। তারপরেও, ব্যবহারকারীরা এখনও তাদের টার্মিনালে এ জাতীয় কিছু চালিয়ে ফাইলগুলিতে অদৃশ্য পরিবর্তন করতে পারে:
curl "http://users.own.server/server/new_data" > existing_file
সমস্ত ফাইলের ইতিহাস রেকর্ড করে এমন অনুলিপি ফাইল সিস্টেম ব্যবহার করে এমন পরিবর্তনগুলি নিরীক্ষণ করা সম্ভব।
তবে অনুরূপ কৌশলটি কোনও ব্যবহারকারীর লগ না করে কমান্ড কার্যকর করতে অনুমতি দেয়:
curl "http://users.own.server/server/secret_commands_824" | sh
আমি এর কোনও সহজ সমাধান জানি না। সম্ভাবনাগুলি হতে পারে:
- সমস্ত নেটওয়ার্ক ডেটা লগইন করা (এবং এটি পরে আঁকানো)।
- সমস্ত সিস্টেম কল লগ করা হচ্ছে।
এই ধরণের জিনিসটি নিরীক্ষণের মাধ্যমে সম্ভব হতে পারে ।
তবে যাইহোক ...
ব্যবহারকারী সেশনগুলিতে লগিং করা প্রশাসকদের জন্য কোনও আসল সুরক্ষা সরবরাহ করে এমনটি অসম্ভব। ডিফল্টরূপে কোনও ব্যবহারকারী কেবল তাদের নিজস্ব ফাইলগুলি চালিত করতে পারে এবং সিস্টেমকে ক্ষতি করতে পারে না। যদি কোনও দূষিত ব্যবহারকারীর সুবিধাগুলি বাড়ানোর ব্যবস্থা করে, তবে তিনি লগিং অক্ষম করতে এবং লগগুলি মুছে ফেলতে পারবেন (যদি না প্রশাসক লগগুলি একটি পৃথক মেশিনে কেবলমাত্র একটি অ্যাপ্লিকেশন ফ্যাশনে সংরক্ষণের জন্য কনফিগার না করে)।
প্রশাসকরা যারা স্বয়ংক্রিয়ভাবে ব্যবহারকারী সেশনগুলিতে লগ করেন তাদের সম্ভবত ব্যবহারকারীদের অবহিত করা উচিত যে এটি করা হচ্ছে । কিছু বিচার বিভাগে, তথ্য সংগ্রহের এই ফর্মটি ডেটা বা গোপনীয়তা আইন লঙ্ঘন করতে পারে । এবং খুব কমপক্ষে, তাদের সচেতন করা ব্যবহারকারীদের কাছে সম্মানজনক হবে।
এটি সম্ভবত সম্ভবত প্রশাসক sudo
ব্যবহারকারীদের সেশনগুলি লগ করতে আগ্রহী হবে । সম্ভবত এটি একটি ভিন্ন উত্তর, বা সত্যই একটি ভিন্ন প্রশ্ন মোকাবেলা করা যেতে পারে।
exec
তবে লাইনের শুরুতে প্রিপেন্ড করুন । এটিscript -f
একই শেল পিআইডি-তে শুরু করা উচিত ।