Objavljen je izdanak SFTPGo poslužitelja 2.5.0, koji omogućuje organizaciju udaljenog pristupa datotekama koristeći protokole SFTP, SCP/SSH, Rsync, HTTP i WebDav, kao i pružanje pristupa Git repozitorijima koristeći protokol SSH. Podaci se mogu davati s lokalnog datotečnog sustava ili iz vanjskih spremišta kompatibilnih s Amazon S3, Google Cloud Storage i Azure Blob Storage. Moguće je pohranjivanje podataka u šifriranom obliku. Za pohranu korisničke baze i metapodataka koriste se DBMS-ovi koji podržavaju SQL ili format ključ/vrijednost, kao što su PostgreSQL, MySQL, SQLite, CockroachDB ili bbolt, ali postoji i mogućnost pohrane metapodataka u radnoj memoriji, koja ne zahtijeva povezivanje s vanjskom DB. Kod projekta napisan je na jeziku Go i distribuira se pod GPLv3 licencom.
U novoj verziji:
- U web sučelju dodana je mogućnost zatvaranja poruka o pogreškama. U web sučelju za administratore dodana je podrška za pretraživanje u zapisniku revizije i izvoz podataka iz njega, implementirano upravljanje popisima. IP adresa i mreža, omogućena je konfiguracija SMTP i tipičnih parametara ACME i SFTP. U klijentskom web sučelju implementiran je vlastiti obrazac za prijavu (umjesto osnovne autentifikacije), dodane su operacije kopiranja i uklonjeno ograničenje na veličinu prijenosa.

- Dodana je podrška za politike korištenja lozinki, na primjer, moguće je definirati zahtjeve za sigurnost lozinke i postaviti vrijeme trajanja lozinke.
- U EventManageru dodana je mogućnost prikaza obavijesti o isteklim lozinkama, implementirana je operacija kopiranja, dodana je podrška za prethodno pozvane akcije (pre-*) i obrađivače koji se aktiviraju prilikom određenih akcija (na primjer, dodan je obrađivač koji se aktivira prilikom ulaska korisnika).
- Dodana je mogućnost davanja administrativnih prava korisnicima.
- U sučelje naredbenog retka dodane su naredbe za resetiranje lozinke administratora i provjeru funkcionalnosti usluge.
- Dodana je podrška za uvjetne operatore prilikom izvođenja masovnog preimanjivanja datoteka na strani oblaka provajdera.
- Dodana je podrška za praćenje i automatsko ponovno pokretanje. TLS certifikata.
- Dodana je mogućnost definiranja vlastitih MIME tipova za WebDAV.
- Za SSH je po defaultu uključena interaktivna autentifikacija pomoću tipkovnice.
- U prenosivom načinu dodana je mogućnost učitavanja lozinki iz datoteke.
- Dodana eksperimentalna podrška za Terraform uslugu.
Osnovne mogućnosti SFTPGo:
- Za svaki korisnički račun primjenjuje se chroot izolacija, koja ograničava pristup korisničkom home direktoriju. Moguće je stvaranje virtualnih direktorija koji upućuju na podatke izvan korisničkog home direktorija.
- Korisnički računi se pohranjuju u virtualnoj bazi korisnika, koja se ne preklapa s sistemskom bazom korisnika. Za pohranu baze korisnika mogu se koristiti SQLite, MySQL, PostgreSQL, bbolt i pohrana u memoriji. Pružaju se alati za mapiranje virtualnih i sistemskih računa — moguće je izravno ili proizvoljno mapiranje (jedan sistemski korisnik može biti mapiran na drugog virtualnog korisnika).
- Podržava se autentifikacija putem javnih ključeva, SSH ključeva i lozinki (uključujući interaktivnu autentifikaciju sa unosom lozinke sa tipkovnice). Moguće je vezati više ključeva za svakog korisnika, kao i postaviti više faktorsku i višestepenu autentifikaciju (na primjer, u slučaju uspješne autentifikacije putem ključa, može se dodatno zatražiti lozinka).
- Za svakog korisnika moguće je postaviti različite metode autentifikacije, kao i definisati vlastite metode, implementirane pozivom vanjskih programa za autentifikaciju (na primjer, za autentifikaciju putem LDAP-a) ili slanjem zahtjeva putem HTTP API-ja.
- Moguće je povezivanje vanjskih obrada ili poziva HTTP API-a za dinamičko mijenjanje korisničkih parametara, koji se pozivaju prije korisničkog prijavljivanja. Podržano je dinamičko kreiranje korisnika prilikom povezivanja.
- Podrška za individualne kvote za veličinu podataka i broj datoteka.
- Podrška za ograničenje propusnosti s odvojenim postavkama ograničenja za ulazni i izlazni promet, kao i ograničenja za broj istovremenih veza.
- Sredstva za kontrolu pristupa koja djeluju vezano uz korisnika ili direktorij (moguće je ograničiti pregled popisa datoteka, zabraniti prijenos, preuzimanje, preimenovanje, brisanje ili promjenu prava pristupa, zabraniti stvaranje direktorija ili simboličkih linkova itd.).
- Za svakog korisnika mogu se definirati individualna mrežna ograničenja, primjerice, može se dopustiti pristup samo s određenih IP adresa ili podmreža.
- Podržava se povezivanje filtara za učitavanje sadržaja vezano uz pojedinačne korisnike i direktorije (na primjer, moguće je blokirati učitavanje datoteka s određenim ekstenzijama).
- Moguća je veza handlera koji se pokreću pri različitim operacijama s datotekom (učitavanje, brisanje, preimenovanje itd.). Osim pozivanja handlera, podržava se slanje obavijesti u obliku HTTP zahtjeva.
- Automatsko zatvaranje neaktivnih veza.
- Atomsko ažuriranje konfiguracije bez prekida veza.
- Pružanje metrika za praćenje u Prometheusu.
- Podržan je HAProxy PROXY protokol za organizaciju opterećenja ili proksiranje veza do SFTP/SCP usluga bez gubitka informacija o izvornoj IP adresi korisnika.
- REST API za upravljanje korisnicima i katalogima, stvaranje rezervnih kopija i generiranje izvještaja o aktivnim vezama.
- Web sučelje (http://127.0.0.1:8080/web) za konfiguraciju i praćenje (podrška i za postavke putem običnih datoteka s konfiguracijom).

- Mogućnost definiranja postavki u formatima JSON, TOML, YAML, HCL i envfile.
- Podrška za povezivanje putem SSH sa ograničenim pristupom sistemskim naredbama. Na primjer, dopušteno je izvršavanje naredbi potrebnih za rad Git-a (git-receive-pack, git-upload-pack, git-upload-archive) i rsync, kao i nekoliko ugrađenih naredbi (scp, md5sum, sha*sum, cd, pwd, sftpgo-copy i sftpgo-remove).
- Portable način za zajedničko korištenje jednog zajedničkog kataloga s automatskim generiranjem vjerodajnica za povezivanje, najavljenih putem multicast DNS-a.
- Ugrađeni sustav profiliranja za analizu performansi.
- P pojednostavljeni proces migracije sistemskih korisničkih računa Linux-a.
- Skladištenje logova u JSON formatu.
- Podrška za virtualne kataloge (na primjer, sadržaj određenog kataloga može se isporučiti ne iz lokalnog FS-a, već iz vanjskog oblaka).
- Podrška za cryptfs za transparentno šifriranje podataka u hodu pri spremanju u FS i dešifriranje prilikom isporuke.
- Podrška za preusmjeravanje veza na druge SFTP poslužitelje.
- Mogućnost korištenja SFTPGo kao SFTP podsustava za OpenSSH.
- Mogućnost pohranjivanja korisničkih i povjerljivih podataka u šifriranom obliku korištenjem KMS poslužitelja (usluge upravljanja ključevima), kao što su Vault, GCP KMS, AWS KMS.
- Podrška za dvostruku autentifikaciju koristeći jednokratne lozinke s ograničenim rokom trajanja (TOTP, RFC 6238). Kao autentifikatori mogu se koristiti aplikacije poput Authy i Google Authenticator.
- Proširenje funkcionalnosti putem dodataka. Na primjer, dostupni su dodaci s podrškom za dodatne usluge razmjene ključeva, integraciju sheme Publikacija/Abonement, pohranu i pretraživanje informacija o događajima u DBMS-u.
Izvor: opennet.ru


