انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => شبکه و سرویس‌ دهنده‌ها => نویسنده: esmaeelE در 17 اسفند 1402، 02:32 ب‌ظ

عنوان: محدود کردن تعداد دفعات ورود به سامانه با یک کاربر روی شیوه نامهٔ ssh
ارسال شده توسط: esmaeelE در 17 اسفند 1402، 02:32 ب‌ظ
یک کاربر مخصوص sftp روی سامانه ساخته شده است.
adduser user

تنظیمات زیر برای sshd اعمال شدند.

/etc/ssh/sshd_config

Match User user
X11Forwarding no
AllowTcpForwarding no
PermitTTY no
        ChrootDirectory /home/user/archive
        ForceCommand internal-sftp

کارکرد این کاربر به شکل طبیعی و بدون مشکل انجام می‌شود و می‌توان با کارخواه sftp به آن متصل شد و عملیات خواندن و نوشتن را انجام داد.

برای نمونه

sftp user@IP

پرسش
چطور می‌توان تعداد نشست‌هایی که به طور همزمان با این کاربر فعال هستند را محدود به یک عدد کرد؟

به عبارتی هیچ‌گاه تا پایان اتصال یک نفر و انجام عملیات با این کاربر خاص (user) شخص دیگری نتواند با این نام کاربری به سامانه ورود کند.


در تنظیمات sshd گزینه‌های MaxSessions و MaxStartups را اعمال کردم و موفقیتی حاصل نشد.

اطلاعات سامانه

# ssh -V
OpenSSH_8.2p1 Ubuntu-4ubuntu0.11, OpenSSL 1.1.1f  31 Mar 2020

# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.6 LTS
Release: 20.04
Codename: focal

عنوان: پاسخ : محدود کردن تعداد دفعات ورود به سامانه با یک کاربر روی شیوه نامهٔ ssh
ارسال شده توسط: nixoeen در 18 اسفند 1402، 01:48 ق‌ظ
شاید بهتر باشه پایه‌ای‌تر مساله رو بررسی کنیم. چرا نیاز دارید که بیش از یک نفر نتونه وصل بشه؟ بخصوص که ممکنه بعد از دریافت یا ارسال یک پرونده، نرم‌افزار شما ارتباط شما رو قطع کنه و با دستور بعدی، دوباره وصل بشه.
عنوان: پاسخ : محدود کردن تعداد دفعات ورود به سامانه با یک کاربر روی شیوه نامهٔ ssh
ارسال شده توسط: esmaeelE در 20 اسفند 1402، 04:15 ب‌ظ
از زمانی که برای پاسخ‌گویی اختصاص دادید سپاسگزارم.

در روز ۷ مارس حدود ساعت ۱۰ دسترسی به خدمت وب آپاچی روی یک ماشین بسیار کند شده بود.
دسترسی ssh با کندی به این ماشین برقرار شد.

# uptime
10:10:16 up 16 days,  1:13,  8 users,  load average: 1375.25, 404.68, 144.44
تا کنون چنین عددی را برای load average ندیده بودم.

htop پرشدن و فعال شدن swap را نشان نمی‌داد. حافظه هم کمتر از نصف پر بود.
دسترسی‌های سایر کاربران را به این ماشین با تغییر رمز ورود متوقف کردم.

لاگ‌های چند ساعت اخیر را برای بررسی بیشتر ذخیره کردم. تنها چیز مشکوک تعداد نشست‌ها ایجاد شده برای این کاربر(store) بود.
از این کاربر برای کپی کردن یکسری فایل روی سرور استفاده می‌شود و دسترسی محدودی تنها برای کپی کردن و خواندن از یک آدرس خاص دارد.

شمار نشست‌های ایجاد شده برای آن حدود 6200 عدد برای ساعت‌های منتهی به ایجاد مشکل است.
در اینجا چند خط نخست را قرار دادم.

# head new_session
Mar 07 08:41:33 server systemd-logind[930]: New session 1027 of user store.
Mar 07 08:41:55 server systemd-logind[930]: New session 1028 of user store.
Mar 07 08:46:10 server systemd-logind[930]: New session 1029 of user store.
Mar 07 08:58:36 server systemd-logind[930]: New session 1030 of user root.
Mar 07 08:59:54 server systemd-logind[930]: New session 1031 of user store.
Mar 07 08:59:55 server systemd-logind[930]: New session 1032 of user store.
Mar 07 08:59:55 server systemd-logind[930]: New session 1033 of user store.
Mar 07 08:59:56 server systemd-logind[930]: New session 1034 of user store.
Mar 07 08:59:56 server systemd-logind[930]: New session 1035 of user store.
Mar 07 08:59:57 server systemd-logind[930]: New session 1036 of user store.

به نظرم رسید که شاید این دو مسئله به هم مرتبط باشند یا اینکه باید به روشی از افزایش شمار نشست‌های یک کاربر جلوگیری کرد.

حال دو پرسش

* ارتباطی بین تعداد نشست‌های کاربر که با ssh کارمی‌کند با کندشدن سامانه می‌توان متصور بود. و اینکه محدودسازی آن مزیتی دارد یا خیر؟

*‌ به طور کلی در مورد مسئلهٔ کند شدن سرور به این شکل چه نکاتی را باید بررسی کنم تا از تکرار این مورد جلوگیری شود؟


عنوان: پاسخ : محدود کردن تعداد دفعات ورود به سامانه با یک کاربر روی شیوه نامهٔ ssh
ارسال شده توسط: nixnix در 20 اسفند 1402، 05:15 ب‌ظ
تعیین تعداد نشست‌های SSH همزمان؛ برای یک یا گروهی از کاربران در یک سیستم.

نکته: روش زیر باعث محدودیت برای همه‌ی ورود-نشست‌های چندگانه به ازای هر کاربر/گروهی
در سیستم می‌شود. یعنی هر برنامه/سرویسی که از نشست‌های همزمان پشتیبانی می‌کند؛ و البته
با فرض اینکه قواعد امنیتی pam برای آن فعال باشد.

اکنون لازم است تا تنظیم درون فایل /etc/security/limits.conf را به صورت اضافه کنید(بسته به نیازتان
هر خط را بیافزایید):

## محدود کردن یک کاربر خاص
@MyUserName        hard       maxlogins       1
## محدود کردن یک گروه خاص
@MyGroupName        hard       maxlogins       1
## محدود کردن همه کاربران سیستم
*        hard       maxlogins       1

همچنین ضروری است تا در فایل /etc/pam.d/sshd این خط فعال باشد:
session    required     pam_limits.so
عنوان: پاسخ : محدود کردن تعداد دفعات ورود به سامانه با یک کاربر روی شیوه نامهٔ ssh
ارسال شده توسط: nixoeen در 20 اسفند 1402، 09:15 ب‌ظ
اگر کاربرد این کاربر تنها انتقال فایل است، پیشنهاد می‌کنم برای اون کاربر، تنها سرویس SFTP را فعال کنید. احتمالا این مشکل رو حل بکنه.
Match User store
        X11Forwarding no
        AllowTcpForwarding no
        PermitTTY no
        ForceCommand internal-sftp