কোন আইপি ssh ব্যবহার করে লিনাক্সে একটি নির্দিষ্ট কমান্ড কার্যকর করেছিল তা জানতে


10

এমন একটি সার্ভার রয়েছে যা বহু ব্যবহারকারী ssh ব্যবহার করে অ্যাক্সেস করে। আমি কোন ব্যবহারকারী কোন নির্দিষ্ট কমান্ড কার্যকর করেছে তা নির্ধারণ করার চেষ্টা করছি।

বর্তমানে সার্ভার অ্যাক্সেস করা ব্যবহারকারীদের তালিকাটি ব্যবহার করে who আমি জানতে পারি এছাড়াও এটি ব্যবহার করে নির্বাহ করা কমান্ডের তালিকাটিও জানব history

কিন্তু cp file1.sh file2.shকোন সার্ভারের মতো কোন কমান্ড কার্যকর করেছে তা কীভাবে জানবেন ? ব্যবহারকারী ইতিমধ্যে কমান্ডটি কার্যকর করেছে এবং লগ আউট করেছে

উত্তর:


4

সংযুক্ত প্রতিটি নতুন ব্যবহারকারী sshdএকটি নির্দিষ্ট পিআইডি দিয়ে একটি নতুন সেশন তৈরি করে। আপনি pstreeকোন sshdঅধিবেশনটি কোন অধিবেশন থেকে উত্তরাধিকারসূত্রে প্রিন্ট করতে ব্যবহার করতে পারেন এবং তারপরে এই পিআইডিটি চেক করুন /var/log/auth.log

উদাহরণ (নামবিহীন): আমি একই দূরবর্তী ব্যবহারকারীর সাথে 3 একযোগে অধিবেশন সহ একটি রিমোট সার্ভারে লগ ইন করেছি। আমি এখন জানতে চাই যে ক্লায়েন্টটি কোন আইপি থেকে কমান্ডটি চালিয়েছিল watch date

$ pstree -p | grep watch
        |           |-sshd(15243)---sshd(15342)---bash(15343)---watch(15450)
$ sudo grep 15243 /var/log/auth.log
Mar  7 15:37:29 XXXXXXXXXX sshd[15243]: Accepted publickey for XXXXXXXXXX from 12.34.56.78 port 48218 ssh2
Mar  7 15:37:29 XXXXXXXXXX sshd[15243]: pam_unix(sshd:session): session opened for user XXXXXXXXXX by (uid=0)
Mar  7 15:37:44 XXXXXXXXXX sudo: XXXXXXXXXX : TTY=pts/7 ; PWD=/home/XXXXXXXXXX ; USER=root ; COMMAND=/bin/grep 15243 /var/log/auth.log

pstree -pঅনুষ্ঠান watchহুকুম থেকে উত্তরাধিকারসূত্রে হয় sshdPID, 15243. সঙ্গে grepএই PID, জন্য ING /var/auth/auth.logদেখায় যে এটা আইপি 12.34.56.78 এই সেশন শুরু হয়েছে। সুতরাং এটি ব্যবহারকারী যে শুরু watch

historyবিশেষত এই ব্যবহারকারীর সন্ধানের জন্য, যখন সমস্ত দূরবর্তী ব্যবহারকারীরা একই স্থানীয় এসএসএইচ ব্যবহারকারীকে ব্যবহার করছেন তখন আমি যা দেখতে পাচ্ছি তা থেকে এটি করা যাবে না। এছাড়াও, এটি সহজেই ছদ্মবেশী / নিষ্ক্রিয় / ইত্যাদি হতে পারে, সুতরাং এটি সত্যই নির্ভরযোগ্য নয়। এটি যদি ইতিহাসের ফাইলে সংরক্ষণ করা হয় তবে আপনি কেবল cpকমান্ডটি সন্ধান করতে পারেন এবং ফাইলটিতে পিছনের দিকে তাকিয়ে থাকতে পারেন, তবে এটি যদি না থাকে, তবে করার মতো অনেক কিছুই নেই।


এটি এই ত্রুটিটি বলে grep: /var/log/auth.log: No such file or directory:-(
মনু কে মোহন

@ মনুকমোহন: আপনি কোন সিস্টেমে আছেন তা আপনি বলেননি। আরএইচইএল / ফেডোরা / বৈজ্ঞানিক লিনাক্স ইত্যাদির অধীনে সম্পর্কিত ফাইলটি /var/log/secure
ড্যানিয়েল অ্যান্ডারসন

অ্যান্ডারসন আমি উবুন্টু ব্যবহার করছি
মানু কে মোহন

@ মানুকমোহন: যদি /var/log/auth.log.1ইত্যাদি থাকে তবে তাদের তথ্য রয়েছে কিনা তা দেখার জন্য তাদের চেষ্টা করুন। এরপরে, পুনরায় চালু করুন rsyslog( sudo service rsyslog restart) এবং দেখুন এটি পপুলিং শুরু হয় auth.log, যা এটি ইতিমধ্যে করা উচিত। উবুন্টুতে এসএসএইচডি /var/log/auth.logডিফল্টরূপে লগইন করে, সুতরাং আপনি যদি স্পষ্টভাবে লগিংয়ের লক্ষ্যগুলি /etc/ssh/ssd_configবা এর মাধ্যমে /etc/syslog.conf( authএখানে কোন স্তরের স্তরটি লগইন করে থাকেন তা পরীক্ষা করতে পারবেন না ) অবধি না হওয়া উচিত should যদি না: কিছু আপ রয়েছে :-)।
ড্যানিয়েল অ্যান্ডারসন

1

বাশ দ্বারা চালিত সমস্ত কমান্ড লগ করার জন্য আপনি এই দুটি লাইন / etc / প্রোফাইল বা / etc / bashrc এ যুক্ত করতে পারেন:

whoami="$(whoami)@$(echo $SSH_CONNECTION | awk '{print $1}')"                                                                                                  
export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local3.debug "$whoami [$$]: $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//" ) [$RETRN_VAL]"'

এটি ব্যবহারকারীর সাথে প্রতিটি কার্যকর করা কমান্ড রেকর্ড করতে সিসলগ ব্যবহার করবে এবং এর আইপি ঠিকানাটি এর মতো বিন্যাসে করবে:

Jan  8 08:43:49 xpto local3.debug root: root@192.168.x.y [29385]: ls -al [0]

অতিরিক্তভাবে আপনি স্থানীয় 3 বার্তাগুলিকে একটি নির্দিষ্ট ফাইলে পুনর্নির্দেশ করতে আপনার সিসলগ কনফিগারেশন (/etc/syslog.conf) এ নীচের লাইনটি যুক্ত করতে পারেন।

local3.*                                                /var/log/prompt.log

এখন এটি syslog-ngহিসাবে উন্নতি হয় এবং কনফিগারেশন ফাইল /etc/syslog-ng/syslog-ng.conf
টিমো

1

আপনি এটির জন্য স্নোপি ব্যবহার করতে পারেন ।

আপনাকে লগ বার্তা বিন্যাসের সংজ্ঞা (./configure পতাকা বা 2.x সংস্করণ থেকে snoopy.ini এ কনফিগারযোগ্য) আইপি =% {env: SSH_CLIENT spec নির্দিষ্ট করে কাস্টম এনভায়রনমেন্টাল ভেরিয়েবল (এসএসএইচ_সিএলআইএনটি) লগ করতে এটি কনফিগার করতে হবে।

প্রকাশ: স্নোপি রক্ষণাবেক্ষণকারী এখানে।


0

ধরে নিই যে আপনি ব্যাশ ব্যবহার করছেন, historyকেবল আপনাকে আপনার কমান্ড লাইনের ইতিহাস দেখাবে । ডিফল্টরূপে, এটি ~/.bash_historyইতিহাসের জন্য পড়ে । মনে রাখবেন যে এরকম কিছু করে (এটি অত্যন্ত সম্ভাবনাময়) পরিবর্তিত হতে পারে HISTFILE=/home/userFoo/.my_alt_history

ধরে নিই যে আপনি বাক্সটির মূলসূত্র, আপনি ব্যবহারকারীর সমস্ত ডিরেক্টরিতে স্ক্যান করতে পারেন এবং এই আদেশটি কে চালাচ্ছেন তা দেখতে তাদের ইতিহাস পড়তে পারেন।


ওহ, এবং যদি তারা ঘৃণ্য হয় তবে তারা সহজেই তাদের ইতিহাস থেকে এই আদেশটি মুছতে পারে। তারা বাক্সে সক্রিয়ভাবে হয় কমান্ড চালানোর করেন তাহলে আপনি এটি দেখতে পারেps -aux | grep "cp file1.sh file2.sh"

সমস্ত ব্যবহারকারী দূরবর্তী অবস্থান থেকে ssh ব্যবহার করে সার্ভারের একই ব্যবহারকারীর নাম অ্যাক্সেস করছে। আমি জানতে চাইছি কোন আইপি এই ব্যবহারকারীর কাছে অ্যাক্সেস করেছে এবং আদেশটি কার্যকর করেছে।
মনু কে মোহন

প্রচুর ব্যবহারকারী ব্যবহারকারীর নাম এবং পাসওয়ার্ড ভাগ করে নেওয়া ভাল নীতি নয়।
pjc50
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.