انتشار سرور SFTP SFTPGo 2.2.0

Опубликован выпуск сервера SFTPGo 2.2, позволяющего организовать удалённый доступ к файлам при помощи протоколов SFTP, SCP/SSH, Rsync, HTTP и WebDav. В том числе SFTPGo может использоваться для предоставления доступа к Git-репозиториям, используя протокол SSH. Данные могут отдаваться как с локальной файловой системы, так и из внешних хранилищ, совместимых с Amazon S3, Google Cloud Storage и Azure Blob Storage. Возможно хранение данных в зашифрованном виде. Для хранения пользовательской базы и метаданных используются СУБД с поддержкой SQL или формата ключ/значение, такие как PostgreSQL, MySQL, SQLite, CockroachDB или bbolt, но имеется и возможность хранения метаданных в оперативной памяти, не требующая подключения внешней БД. Код проекта написан на языке Go и распространяется под лицензией GPLv3.

در نسخه های جدید:

  • Добавлена поддержка двухфакторной аутентификации с использованием одноразовых паролей с ограниченным временем жизни (TOTP, RFC 6238). В качестве аутентификаторов могут использоваться такие приложения, как Authy и Google Authenticator.
  • Реализована возможность расширения функциональности через плагины. Среди уже доступных плагинов: поддержка дополнительных сервисов обмена ключами, интеграция схемы Publish/Subscribe, хранение и поиск информации о событиях в СУБД.
  • В REST API добавлена поддержка аутентификации по ключам, помимо токенов JWT, а также обеспечена возможность задания политик хранения данных (ограничение времени жизни данных) в привязке к отдельным каталогам и пользователям. По умолчанию активирован интерфейс Swagger UI для навигации по ресурсам API без применения внешних утилит.
  • В web-интерфейс добавлена поддержка операций записи (загрузка файлов, создание каталогов, переименование и удаление), реализована возможность сброса пароля с подтверждением по email, интегрированы редактор текстовых файлов и просмотрщик PDF-документов. Добавлена возможность создания HTTP-ссылок для предоставления внешним пользователям доступа к отдельным файлам и каталогам, с возможностью задания отдельного пароля доступа, ограничения по IP-адресам, задания времени жизни ссылки и лимитирования числа загрузок.

ویژگی های اصلی SFTPGo:

  • هر حساب chroot شده است و دسترسی به فهرست اصلی کاربر را محدود می کند. ایجاد دایرکتوری های مجازی که به داده های خارج از فهرست اصلی کاربر ارجاع می دهند، امکان پذیر است.
  • حساب ها در یک پایگاه داده کاربر مجازی ذخیره می شوند که با پایگاه داده کاربران سیستم همپوشانی ندارد. SQLite، MySQL، PostgreSQL، bbolt و ذخیره سازی درون حافظه را می توان برای ذخیره پایگاه داده های کاربران استفاده کرد. امکاناتی برای نگاشت حساب های مجازی و سیستم فراهم شده است - نقشه برداری مستقیم یا تصادفی امکان پذیر است (یک کاربر سیستم را می توان به کاربر مجازی دیگر نگاشت).
  • احراز هویت با استفاده از کلیدهای عمومی، کلیدهای SSH و رمزهای عبور پشتیبانی می شود (از جمله احراز هویت تعاملی با رمز عبور وارد شده از صفحه کلید). امکان اتصال چندین کلید برای هر کاربر و همچنین تنظیم احراز هویت چند مرحله ای و چند مرحله ای وجود دارد (به عنوان مثال، در صورت تأیید موفقیت آمیز کلید، ممکن است یک رمز عبور اضافی نیز درخواست شود).
  • برای هر کاربر، این امکان وجود دارد که روش‌های احراز هویت مختلف را پیکربندی کنید، همچنین روش‌های خود را تعریف کنید، که با فراخوانی برنامه‌های احراز هویت خارجی (مثلاً برای احراز هویت از طریق LDAP) یا ارسال درخواست‌ها از طریق API HTTP اجرا می‌شوند.
  • امکان اتصال کنترل‌کننده‌های خارجی یا تماس‌های HTTP API برای تغییر پویا پارامترهای کاربر، قبل از ورود کاربر وجود دارد. ایجاد پویا از کاربران پس از اتصال پشتیبانی می شود.
  • از سهمیه های فردی برای اندازه داده ها و تعداد فایل ها پشتیبانی می کند.
  • پشتیبانی از محدود کردن پهنای باند با پیکربندی جداگانه محدودیت ها برای ترافیک ورودی و خروجی و همچنین محدودیت در تعداد اتصالات همزمان.
  • ابزارهای کنترل دسترسی که در رابطه با یک کاربر یا دایرکتوری کار می کنند (شما می توانید مشاهده لیست فایل ها را محدود کنید، آپلود، دانلود، بازنویسی، حذف، تغییر نام یا تغییر حقوق دسترسی را ممنوع کنید، ایجاد دایرکتوری ها یا پیوندهای نمادین و غیره را ممنوع کنید).
  • برای هر کاربر، می‌توانید محدودیت‌های شبکه جداگانه تعریف کنید، به عنوان مثال، فقط می‌توانید از IP یا زیرشبکه‌های خاصی اجازه ورود به سیستم را بدهید.
  • از فیلترهای اتصال برای محتوای دانلود شده در رابطه با کاربران و دایرکتوری‌های فردی پشتیبانی می‌کند (به عنوان مثال، می‌توانید دانلود فایل‌های با پسوند خاصی را مسدود کنید).
  • می توان کنترل کننده هایی را که در طی عملیات مختلف راه اندازی می شوند با یک فایل (دانلود، حذف، تغییر نام و غیره) متصل کرد. علاوه بر تماس با کنترل کننده ها، ارسال اعلان ها در قالب درخواست های HTTP پشتیبانی می شود.
  • خاتمه خودکار اتصالات غیر فعال
  • به روز رسانی پیکربندی اتمی بدون قطع اتصالات.
  • ارائه معیارهایی برای نظارت در پرومتئوس.
  • پروتکل HAProxy PROXY برای سازماندهی تعادل بار یا اتصالات پروکسی به سرویس های SFTP/SCP بدون از دست دادن اطلاعات مربوط به آدرس IP منبع کاربر پشتیبانی می شود.
  • REST API برای مدیریت کاربران و دایرکتوری ها، ایجاد پشتیبان گیری و ایجاد گزارش در مورد اتصالات فعال.
  • رابط وب (http://127.0.0.1:8080/web) برای پیکربندی و نظارت (پیکربندی از طریق فایل های پیکربندی معمولی نیز پشتیبانی می شود).
  • امکان تعریف تنظیمات در فرمت های JSON، TOML، YAML، HCL و envfile.
  • پشتیبانی از اتصال از طریق SSH با دسترسی محدود به دستورات سیستم. به عنوان مثال، اجرای دستورات لازم برای Git (git-receive-pack، git-upload-pack، git-upload-archive) و rsync و همچنین چندین دستور داخلی (scp، md5sum، sha*sum) مجاز است. ، سی دی، pwd، sftpgo-copy و sftpgo-remove).
  • حالت قابل حمل برای به اشتراک گذاری یک فهرست مشترک با تولید خودکار اعتبارنامه های اتصال که از طریق DNS چندپخشی تبلیغ می شود.
  • سیستم پروفایل داخلی برای تجزیه و تحلیل عملکرد.
  • فرآیند ساده برای انتقال حساب های سیستم لینوکس.
  • ذخیره لاگ ها با فرمت JSON
  • پشتیبانی از دایرکتوری های مجازی (به عنوان مثال، محتویات یک فهرست خاص را می توان نه از FS محلی، بلکه از یک ذخیره سازی ابری خارجی ارائه کرد).
  • Cryptfs از رمزگذاری شفاف در هنگام پرواز داده ها هنگام ذخیره در FS و رمزگشایی هنگام بازگشت پشتیبانی می کند.
  • پشتیبانی از انتقال اتصالات به سایر سرورهای SFTP.
  • امکان استفاده از SFTPGo به عنوان زیرسیستم SFTP برای OpenSSH.
  • امکان ذخیره اعتبار و داده های محرمانه به صورت رمزگذاری شده با استفاده از سرورهای KMS (سرویس های مدیریت کلید)، مانند Vault، GCP KMS، AWS KMS.

منبع: opennet.ru

اضافه کردن نظر