আমি সম্প্রসারিত এবং পরীক্ষা করার সিদ্ধান্ত নিয়েছে করেছি Ravexina এর ধারণা । এটি কার্যকর হয় এবং আপনি যদি প্রতিষ্ঠিত এসএসএস সংযোগের সংখ্যা একেবারেই সীমাবদ্ধ রাখতে চান তবে এটি কার্যকর।
প্রথমে আমি খুঁজে পেলাম যে যখন কোনও সংযোগ ছাড়াই ssh ডিমন চলমান থাকে তখন একটি sshd
প্রক্রিয়া থাকে। প্রতিটি নতুন সংযোগের জন্য দুটি নতুন sshd
প্রক্রিয়া তৈরি করা হয়। সুতরাং আপনি যদি 20 সংযোগের সীমা চান তবে প্রান্তিকের পরিবর্তে 20 এর পরিবর্তে 41 (1 + 2x20) হওয়া উচিত ।
তারপরে আমি একটি এক্সিকিউটেবল ফাইল তৈরি করেছি, যার নাম দেওয়া আছে , যা নীচের মত দেখাচ্ছে:/usr/local/bin/limit-sshd
#!/bin/sh
if [ "$(pgrep -cx sshd)" -gt 7 ]
then
echo '\nThe limit was reached!\n'
pkill -xn sshd
fi
- এখানে প্রান্তিকতা যথাক্রমে 7, যথাক্রমে কেবল 3 সংযোগ স্থাপন করা যেতে পারে এবং বাকিগুলি বাদ দেওয়া হবে।
অবশেষে আমি নিম্নলিখিত নির্দেশাবলী এতে যুক্ত করেছি /etc/ssh/sshd_config
:
ForceCommand /usr/local/bin/limit-sshd; $SHELL
- ভেরিয়েবলটি
$SHELL
ডিফল্ট ব্যবহারকারীর শেলটি কার্যকর করে।
- একটি অবাঞ্ছিত প্রভাব হ'ল অভিবাদন বার্তা আর উপলভ্য নয়।
- Ssh ডিমন পুনরায় চালু করতে ভুলবেন না:
sudo systemctl restart sshd.service
এটি কীভাবে কাজ করে তা এখানে ( অ্যানিমেটেড ডেমো দেখতে চিত্রটিতে ক্লিক করুন ):
আরও, আমি বুঝতে পেরেছিলাম যে আমাদের স্ক্রিপ্টটি এভাবে পরিবর্তন করা হলে আমাদের কিছু মারার দরকার নেই:
#!/bin/sh
if [ "$(pgrep -cx sshd)" -gt 7 ]
then
echo '\nThe limit was reached!\n'
exit # This line is not mandatory
else
eval "$SHELL"
fi
এবং যথাক্রমে /etc/ssh/sshd_config
এইভাবে:
ForceCommand /usr/local/bin/limit-sshd
MaxSessions
ক্ষেত্রের সার্ভারে