scponly(8) System Manager's Manual scponly(8)

scponly

scponly — پوسته محدود برای انتقال امن فایل

scponly یک «پوسته» جایگزین (به نوعی) برای مدیران سیستمی است که می‌خواهند امکان خواندن و نوشتن فایل‌های محلی را بدون اعطای هرگونه امتیاز اجرای دستورات از راه دور، برای کاربران راه‌دور فراهم کنند. از نظر عملکردی، بهترین توصیف برای آن یک پوشش (wrapper) بر روی مجموعه برنامه‌های مورد اعتماد ssh است.

یک کاربرد متداول scponly ایجاد یک حساب کاربری نیمه‌عمومی است که شباهت زیادی به مفهوم ورود ناشناس (anonymous login) در ftp دارد. این قابلیت به مدیر سیستم اجازه می‌دهد فایل‌ها را به همان روشی که در یک راه‌اندازی ftp ناشناس وجود دارد به اشتراک بگذارد، با این تفاوت که از تمام لایه‌های حفاظتی ارائه‌شده توسط ssh بهره می‌برد. این ویژگی به‌ویژه با توجه به اینکه فرایند احراز هویت در ftp بر روی شبکه‌های عمومی با قالب متن ساده (plaintext) انجام می‌شود، بسیار حائز اهمیت است.

به جای فقط یک کاربر ناشناس، scponly از پیکربندی کاربران متعددی پشتیبانی می‌کند که هر یک از آنها می‌توانند برای دسترسی به ساختارهای دایرکتوری (درخت پوشه‌ها) مجزا تنظیم شوند. جدا از جزئیات نصب، پوسته پیش‌فرض هر یک از این کاربران در /etc/passwd روی "/usr/local/bin/scponly" (یا هر مکانی که برای نصب آن انتخاب می‌کنید) تنظیم می‌شود. این بدان معناست که کاربران دارای این پوسته، نه می‌توانند به صورت تعاملی وارد سیستم شوند و نه می‌توانند دستورات را از راه دور اجرا کنند. با این وجود، آنها می‌توانند با رعایت دسترسی‌های معمول فایل در یونیکس، فایل‌ها را با scp دریافت و ارسال کنند.

  • ثبت وقایع (Logging): scponly زمان، نشانی IP کلاینت، نام کاربری و درخواست واقعی را در syslog ثبت می‌کند.
  • ایزوله‌سازی ریشه (chroot): scponly می‌تواند به دایرکتوری خانگی کاربر (یا هر دایرکتوری دیگری که کاربر دسترسی‌های لازم برای آن را دارد) chroot انجام دهد و دسترسی به سایر بخش‌های سیستم‌فایل را مسدود کند.
  • سازگاری با sftp: آزمایش‌های من با sftp برای یک کاربر scponly بسیار عالی عمل کرد. این روش احتمالاً تمیزترین و کاربردی‌ترین راه برای یک کاربر scponly جهت دسترسی به فایل‌ها است.
  • بررسی‌های امنیتی: ورود کاربر root مجاز نیست (اگرچه کاربر root هرگز نباید طوری پیکربندی شود که از scponly به عنوان پوسته پیش‌فرض استفاده کند).
  • سازگاری با WinSCP 2.0: scponly می‌تواند در حالت سازگاری با WinSCP کامپایل شود که امکان استفاده از یک پوسته «نیمه‌تعاملی» را برای WinSCP فراهم می‌کند.
  • سازگاری با gftp: scponly در صورتی که گزینه "use ssh2 sftp subsys" را در تنظیمات gftp فعال کنید، با gftp سازگار است.

scponly کاری برای مدیریت دسترسی‌های خواندن/نوشتن انجام نمی‌دهد؛ برنامه‌های کاربردی ssh از قبل این کار را به خوبی انجام می‌دهند. اگر از scponly, استفاده می‌کنید، آگاه باشید که همان مجوزهای سنتی فایل در یونیکس همچنان وظیفه محافظت از فایل‌های شما را بر عهده دارند.

  • تا تاریخ ۲۶ ژوئن ۲۰۰۲، آسیب‌پذیری‌هایی در OpenSSH کشف شده است. همچنین یک آسیب‌پذیری در پروتکل SSH1 وجود دارد. اگر قصد استفاده از scponly را دارید، آگاه باشید که امنیت آن فراتر از نسخه نصب‌شده ssh که بر روی آن اجرا می‌شود نیست.
  • از آن زمان متوجه شده‌ام که نسخه تجاری ssh از شرکت ssh.com، هم از «کاربران صوری» (dummy users) و هم از قابلیت‌هایی موازی با scponly پشتیبانی می‌کند. من نتوانسته‌ام یادداشتی درباره این ویژگی‌ها پیدا کنم، اما مطالبی خوانده‌ام که نشان می‌دهد وجود دارند. در آینده اطلاعات بیشتری در این باره ارائه خواهم داد. به نظر می‌رسد OpenSSH هنوز از این ویژگی‌ها پشتیبانی نمی‌کند. در حال حاضر، برنامه‌ای برای توقف توسعه یا پایان عمر scponly, ندارم؛ هرچند در نهایت معتقدم که scponly باید در آینده به قابلیتی درونی برای هر نگارش از sshd تبدیل شود.

/usr/local/bin/scponly
مکان پیش‌فرض برای خود پوسته.
/usr/local/sbin/scponlyc
مکان پیش‌فرض برای نسخه chroot شده از scponly.
/etc/shells
برای اینکه به عنوان یک پوسته معتبر شناخته شود، باید نام آن در این فایل قرار گیرد.

chroot(2), ssh(1), scp(1), sftp(1), shells(5), sshd(8).

Joe Boyle ⟨joe@sublimation.org⟩.

حق نشر (C) 2001, 2002, 2003 Joe Boyle ⟨joe@sublimation.org⟩.

توزیع مجدد و استفاده در اشکال منبع و دودویی، با یا بدون تغییر، به شرط رعایت شرایط زیر مجاز است:

۱. در توزیع مجدد کد منبع، باید اعلان حق نشر فوق، این فهرست شرایط و سلب مسئولیت زیر حفظ شود.

۲. در توزیع مجدد به صورت دودویی، باید اعلان حق نشر فوق، این فهرست شرایط و سلب مسئولیت زیر در مستندات و/یا سایر موارد ارائه‌شده همراه با توزیع درج گردد.

این نرم‌افزار توسط پدیدآورنده «همان‌گونه که هست» (AS IS) ارائه شده است و هرگونه ضمانت صریح یا ضمنی، از جمله ضمانت‌های ضمنی قابلیت فروش تجاری و تناسب برای یک هدف معین، سلب می‌شود. پدیدآورنده تحت هیچ شرایطی در قبال هرگونه خسارت مستقیم، غیرمستقیم، اتفاقی، خاص، جزایی یا تبعی (شامل و نه محدود به تهیه کالاها یا خدمات جایگزین؛ از دست رفتن امکان استفاده، داده‌ها یا سود؛ یا وقفه در کسب‌وکار) ناشی از هر علت و بر اساس هر تئوری مسئولیت، خواه در قرارداد، مسئولیت مدنی یا شبه‌جرم (شامل اهمال یا موارد دیگر) که به هر طریقی بر اثر استفاده از این نرم‌افزار ایجاد شود، حتی در صورت هشدار در مورد احتمال وقوع چنین خسارتی، مسئولیتی نخواهد داشت.

نسخه‌های پیش از 2.4 دارای آسیب‌پذیری خاصی هستند که در آن می‌توان از فایل .ssh/environment برای بازنویسی متغیرهای $PATH و $LD_LIBRARY_PATH استفاده کرد و در نتیجه امنیت پوسته را به خطر انداخت.

Sept 03, 2002