SFTP серверийн SFTPGo 1.0 хувилбар

Серверийн анхны чухал хувилбар гарсан SFTPGo 1.0, энэ нь SFTP, SCP/SSH болон Rsync протоколуудыг ашиглан файлуудад алсаас хандах боломжийг зохион байгуулах боломжийг олгодог. Бусад зүйлсийн дотор SFTPGo нь SSH протоколыг ашиглан Git репозиторууд руу нэвтрэх боломжийг олгодог. Өгөгдлийг дотоод файлын системээс болон Amazon S3 болон Google Cloud Storage-тэй нийцтэй гадаад сангаас дамжуулах боломжтой. Хэрэглэгчийн мэдээллийн сан болон мета өгөгдлийг хадгалахын тулд PostgreSQL 9.4+, MySQL 5.6+, SQLite 3.x эсвэл SQL эсвэл түлхүүр/утга форматыг дэмждэг DBMS-ийг ашигладаг. bbolt 1.3.x. Мөн RAM-д мета өгөгдлийг хадгалах горим байдаг бөгөөд энэ нь гадаад мэдээллийн баазыг холбох шаардлагагүй юм. Төслийн код нь Go болон дээр бичигдсэн тараасан GPLv3 дагуу лицензтэй.

Үндсэн онцлогууд:

  • Бүртгэл бүр нь хроотлогдсон бөгөөд хэрэглэгчийн гэрийн лавлах руу нэвтрэх эрхийг хязгаарладаг. Хэрэглэгчийн гэрийн лавлахаас гадуур өгөгдлийн лавлагаа өгөх виртуал санг үүсгэх боломжтой.
  • Бүртгэлүүд нь системийн хэрэглэгчийн мэдээллийн сантай давхцдаггүй виртуал хэрэглэгчийн мэдээллийн санд хадгалагддаг. Хэрэглэгчийн мэдээллийн санг хадгалахад SQLite, MySQL, PostgreSQL, bbolt болон санах ойн санах ойг ашиглах боломжтой. Виртуал болон системийн дансны зураглал хийх байгууламжуудаар хангагдсан байдаг - шууд эсвэл санамсаргүй зураглал хийх боломжтой (системийн нэг хэрэглэгчийг өөр виртуал хэрэглэгчтэй холбож болно).
  • Нийтийн түлхүүр, SSH түлхүүр, нууц үг ашиглан баталгаажуулалтыг дэмждэг (гараас оруулсан нууц үгээр интерактив нэвтрэлт танилт орно). Хэрэглэгч бүрт хэд хэдэн түлхүүр холбох, мөн олон хүчин зүйл, олон шатлалт баталгаажуулалтыг тохируулах боломжтой (жишээлбэл, түлхүүрийн баталгаажуулалт амжилттай болсон тохиолдолд нууц үг нэмж шаардаж болно).
  • Хэрэглэгч бүрийн хувьд таниулах өөр өөр аргуудыг тохируулах, мөн гадаад баталгаажуулагч програмуудыг дуудах (жишээлбэл, LDAP-ээр дамжуулан баталгаажуулах) эсвэл HTTP API-ээр дамжуулан хүсэлт илгээх замаар хэрэгжүүлсэн өөрийн аргуудыг тодорхойлох боломжтой.
  • Хэрэглэгч нэвтрэхээс өмнө дуудагдсан хэрэглэгчийн параметрүүдийг динамикаар өөрчлөхийн тулд гадаад зохицуулагч эсвэл HTTP API дуудлагуудыг холбох боломжтой. Дэмжигдсэн динамик холболтын үед хэрэглэгчдийг бий болгох.
  • Өгөгдлийн хэмжээ болон файлын тооны хувьд хувь хүний ​​квотыг дэмждэг.
  • Ирж буй болон гарч буй траффикийн хязгаарлалтыг тусад нь тохируулах, түүнчлэн нэгэн зэрэг холболтын тоог хязгаарлах замаар зурвасын өргөнийг хязгаарлах дэмжлэг.
  • Хэрэглэгч эсвэл лавлахтай холбоотой ажилладаг хандалтын хяналтын хэрэгслүүд (та файлын жагсаалтыг үзэхийг хязгаарлаж, байршуулах, татаж авах, дарж бичих, устгах, нэрийг өөрчлөх, хандах эрхийг өөрчлөх, лавлах эсвэл бэлгэдлийн холбоос үүсгэхийг хориглох гэх мэт).
  • Хэрэглэгч бүрийн хувьд та тусдаа сүлжээний хязгаарлалтыг тодорхойлж болно, жишээлбэл, та зөвхөн тодорхой IP эсвэл дэд сүлжээнээс нэвтрэхийг зөвшөөрөх боломжтой.
  • Энэ нь хувь хүн болон лавлахтай холбоотой татаж авсан контентын шүүлтүүрийг холбохыг дэмждэг (жишээлбэл, та тодорхой өргөтгөлтэй файлуудыг татаж авахыг хориглож болно).
  • Төрөл бүрийн үйлдлүүдийн үед эхлүүлсэн зохицуулагчийг файлаар холбох боломжтой (татаж авах, устгах, нэрийг өөрчлөх гэх мэт). Дуудлагын зохицуулагчаас гадна HTTP хүсэлт хэлбэрээр мэдэгдэл илгээхийг дэмждэг.
  • Идэвхгүй холболтыг автоматаар зогсоох.
  • Холболтыг таслахгүйгээр атомын тохиргоог шинэчлэх.
  • Хангах Prometheus дахь мониторингийн хэмжүүр.
  • HAProxy PROXY протокол нь хэрэглэгчийн эх IP хаягийн талаарх мэдээллийг алдалгүйгээр SFTP/SCP үйлчилгээнд ачаалал тэнцвэржүүлэх эсвэл прокси холболтыг зохион байгуулахад дэмжлэг үзүүлдэг.
  • 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) ажиллуулахыг зөвшөөрдөг. , cd, pwd, sftpgo-copy болон sftpgo-remove).
  • Горим зөөврийн multicast DNS-ээр сурталчилсан холболтын итгэмжлэлүүдийг автоматаар үүсгэх нэг нийтлэг лавлахыг хуваалцах.
  • Суулгасан систем профайл хийх гүйцэтгэлийн шинжилгээнд зориулагдсан.
  • Хялбаршуулсан үйл явц Линукс системийн дансны шилжилт.
  • Хадгалалт JSON форматтай бүртгэлүүд.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх