การเปิดตัวเซิร์ฟเวอร์ SFTP SFTPGo 1.0

การเปิดตัวเซิร์ฟเวอร์ที่สำคัญครั้งแรกเกิดขึ้น SFTPGo 1.0ซึ่งช่วยให้คุณจัดระเบียบการเข้าถึงไฟล์จากระยะไกลโดยใช้โปรโตคอล SFTP, SCP/SSH และ Rsync เหนือสิ่งอื่นใด SFTPGo สามารถใช้เพื่อให้การเข้าถึงที่เก็บ Git โดยใช้โปรโตคอล SSH สามารถถ่ายโอนข้อมูลได้ทั้งจากระบบไฟล์ในเครื่องและจากที่จัดเก็บข้อมูลภายนอกที่เข้ากันได้กับ Amazon S3 และ Google Cloud Storage ในการจัดเก็บฐานข้อมูลผู้ใช้และข้อมูลเมตา จะใช้ DBMS ที่รองรับ SQL หรือรูปแบบคีย์/ค่า เช่น PostgreSQL 9.4+, MySQL 5.6+, SQLite 3.x หรือ โบลท์ 1.3.x. นอกจากนี้ยังมีโหมดจัดเก็บข้อมูลเมตาใน RAM ซึ่งไม่จำเป็นต้องเชื่อมต่อกับฐานข้อมูลภายนอก รหัสโครงการเขียนด้วยภาษา Go และ จัดจำหน่ายโดย ได้รับอนุญาตภายใต้ GPLv3

คุณสมบัติที่สำคัญ:

  • แต่ละบัญชีถูก chrooted ซึ่งจำกัดการเข้าถึงโฮมไดเร็กตอรี่ของผู้ใช้ เป็นไปได้ที่จะสร้างไดเร็กทอรีเสมือนที่อ้างอิงข้อมูลภายนอกโฮมไดเร็กทอรีของผู้ใช้
  • บัญชีจะถูกจัดเก็บไว้ในฐานข้อมูลผู้ใช้เสมือนที่ไม่ทับซ้อนกับฐานข้อมูลผู้ใช้ระบบ สามารถใช้ SQLite, MySQL, PostgreSQL, bbolt และพื้นที่จัดเก็บในหน่วยความจำเพื่อจัดเก็บฐานข้อมูลผู้ใช้ สิ่งอำนวยความสะดวกมีไว้สำหรับการแมปบัญชีเสมือนและระบบ - ทั้งการแมปโดยตรงหรือแบบสุ่มสามารถทำได้ (ผู้ใช้ระบบหนึ่งสามารถแมปกับผู้ใช้เสมือนอื่นได้)
  • รองรับการตรวจสอบสิทธิ์โดยใช้คีย์สาธารณะ คีย์ SSH และรหัสผ่าน (รวมถึงการตรวจสอบสิทธิ์แบบโต้ตอบด้วยรหัสผ่านที่ป้อนจากแป้นพิมพ์) สามารถผูกหลายคีย์สำหรับผู้ใช้แต่ละคนได้ เช่นเดียวกับการตั้งค่าการรับรองความถูกต้องแบบหลายปัจจัยและหลายขั้นตอน (เช่น ในกรณีที่การตรวจสอบความถูกต้องของคีย์สำเร็จ อาจมีขอรหัสผ่านเพิ่มเติม)
  • สำหรับผู้ใช้แต่ละราย คุณสามารถกำหนดค่าวิธีการตรวจสอบสิทธิ์ที่แตกต่างกันได้ รวมถึงกำหนดวิธีการของคุณเอง ซึ่งนำไปใช้โดยการเรียกโปรแกรมตรวจสอบความถูกต้องภายนอก (เช่น สำหรับการตรวจสอบสิทธิ์ผ่าน LDAP) หรือส่งคำขอผ่าน HTTP API
  • คุณสามารถเชื่อมต่อตัวจัดการภายนอกหรือการเรียก HTTP API เพื่อเปลี่ยนพารามิเตอร์ผู้ใช้แบบไดนามิก ซึ่งถูกเรียกก่อนที่ผู้ใช้จะเข้าสู่ระบบ ได้รับการสนับสนุน พลวัต การสร้างผู้ใช้เมื่อมีการเชื่อมต่อ
  • รองรับโควต้าแต่ละรายการสำหรับขนาดข้อมูลและจำนวนไฟล์
  • รองรับการจำกัดแบนด์วิธด้วยการกำหนดค่าข้อจำกัดแยกต่างหากสำหรับการรับส่งข้อมูลขาเข้าและขาออก รวมถึงข้อจำกัดเกี่ยวกับจำนวนการเชื่อมต่อพร้อมกัน
  • เครื่องมือควบคุมการเข้าถึงที่ทำงานเกี่ยวกับผู้ใช้หรือไดเร็กทอรี (คุณสามารถจำกัดการดูรายการไฟล์ ห้ามการอัพโหลด ดาวน์โหลด เขียนทับ ลบ เปลี่ยนชื่อหรือเปลี่ยนสิทธิ์การเข้าถึง ห้ามการสร้างไดเร็กทอรีหรือลิงก์สัญลักษณ์ ฯลฯ)
  • สำหรับผู้ใช้แต่ละคน คุณสามารถกำหนดข้อจำกัดเครือข่ายแต่ละรายการได้ เช่น คุณสามารถอนุญาตการเข้าสู่ระบบจาก IP หรือเครือข่ายย่อยที่แน่นอนเท่านั้น
  • รองรับการเชื่อมต่อตัวกรองสำหรับเนื้อหาที่ดาวน์โหลดโดยสัมพันธ์กับผู้ใช้และไดเร็กทอรีแต่ละราย (เช่น คุณสามารถบล็อกการดาวน์โหลดไฟล์ที่มีนามสกุลบางอย่างได้)
  • เป็นไปได้ที่จะผูกตัวจัดการที่เรียกใช้ระหว่างการดำเนินการต่างๆ กับไฟล์ (ดาวน์โหลด ลบ เปลี่ยนชื่อ ฯลฯ ) นอกจากตัวจัดการการโทรแล้ว ยังรองรับการส่งการแจ้งเตือนในรูปแบบของคำขอ HTTP อีกด้วย
  • การยกเลิกการเชื่อมต่อที่ไม่ได้ใช้งานโดยอัตโนมัติ
  • อัพเดตการกำหนดค่าอะตอมมิกโดยไม่ทำลายการเชื่อมต่อ
  • ให้ ตัวชี้วัดสำหรับการตรวจสอบใน Prometheus
  • รองรับโปรโตคอล 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 , cd, pwd, sftpgo-copy และ sftpgo-remove)
  • ระบบการปกครอง แบบพกพา เพื่อแชร์ไดเร็กทอรีทั่วไปหนึ่งไดเร็กทอรีด้วยการสร้างข้อมูลรับรองการเชื่อมต่อโดยอัตโนมัติที่โฆษณาผ่าน multicast DNS
  • ระบบสมองกลฝังตัว การทำโปรไฟล์ เพื่อการวิเคราะห์ประสิทธิภาพ
  • ตัวย่อ กระบวนการ การโยกย้ายบัญชีระบบ Linux
  • การเก็บรักษา บันทึกในรูปแบบ JSON

ที่มา: opennet.ru

เพิ่มความคิดเห็น