SFTPGo 是两个机能完善,度可实用性化,全力支持自订 HTTP/S、FTP/S、WebDAV 的 SFTP 服务项目。它全力支持邻近地区磁盘、身份验证邻近地区磁盘、S3(相容)第一类储存,Google Cloud 储存,Azure Blob 储存,SFTP 等多种不同储存方式。
责任编辑如前所述 Unraid 控制系统,向听众如是说此服务项目的加装与采用方式。碰巧街道社区里没有关此辅助工具的如是说,因而假如责任编辑叙述不恰当的地方性,Professionel尖萼。NDS宝
一、Docker 加装
步入到 Unraid 的 APP 应用领域零售店,间接搜寻 SFTPgo 方可搜寻出有关联的 Docker 应用领域,优先选择 Install 方可步入 Docker 的实用性加装介面:
.jpeg)
Unraid 零售店中的 SFTPGo 模版早已为他们实用性好绝大多数的模块,通常情况下他们只须要修正这儿的 Share Access 方向态射模块和 Passive Mode IP 表达式模块方可。NDS宝
Share Access:将态射到罐子内的方向增设为他们期望给到 SFTPGo 采用的配置文件方可。
/mnt/user/sftpgo,将其态射到罐子中的 /unraid 方向:
.jpeg)
.jpeg)
二、邻近地区磁盘与采用者的有关实用性
首度加装顺利完成后,登入网页时能手动重定向到 /web/admin/setup 的 URL 前缀网页,并明确要求你建立两个用户端采用者:
.jpeg)
.jpeg)
.jpeg)
从 Status 网页能看见现阶段 SFTPGo 每项服务项目和机能的状况,这儿总共表明了四项,依次是 SFTP/SSH、FTP、WebDAV、Defender、Multi-factor authentication 和 Data provider。其中前三项的 SFTP/SSH、FTP 和 WebDAV 会依次表明当前的开启状况和所监听的端口号等信息,所以当你须要采用某一种文件传输协议的时候就能到此介面去查看有关联的端口号,以便进行访问。 这儿对 Defender、Multi-factor authentication 和 Data provider 做下简单的说明:NDS宝
以下内容在官方的 Github 项目中都有说明,但是由于街道社区不能放链接,请大家自行到项目中去查看和搜寻相应的内容。NDS宝
Defender:Defender 是 SFTPGo 的 SFTP, HTTP, FTP and WebDAV 等服务项目的安全防护辅助工具,能防止 DoS 攻击,并且能根据实用性的策略实现手动封锁(IP、访问内容)。
Multi-factor authenticationNDS宝:这儿指的是 SFTPGo 现阶段开启的认证方式,SFTPGo 全力支持多种不同认证方式,比如说两步认证(Two-factor Authentication,也叫2FA)、键盘交互认证(Keyboard Interactive Authentication)、SSH 的证书密钥认证(certificate authentication)等,并且也提供了相应的方式让采用者去对某些认证方式做自订;
Data providerNDS宝:数据库实用性。SFTPGo 全力支持 PostgreSQL, MySQL and CockroachDB 等外部数据库,假如没对这些数据库做相应的实用性(比如说他们现在的这种方式),那么默认情况下会在内部采用 SQLite 来作为数据库储存数据(罐子启动时能手动建立)。所以假如你不想采用内置的 SQLite 作为数据库,那么你能通过在 Docker 的实用性中添加如下表达式来链接到外部的数据库,比如说你在 Unraid 上加装了 Mariadb ,那么能通过添加如下表达式:
SFTPGO_DATA_PROVIDER__DRIVERNDS宝:数据库类型,这儿的值增设为 mysql;
SFTPGO_DATA_PROVIDER__NAME: 数据库名称,须要你提前在数据库中建立,比如说你在 mysql 中建立了两个名为sftpgo的数据库,那么这儿就填写sftpgo;
SFTPGO_DATA_PROVIDER__PORTNDS宝: 数据库端口;
SFTPGO_DATA_PROVIDER__USERNAME:数据库采用者名;
SFTPGO_DATA_PROVIDER__PASSWORD:数据库采用者密码;
.jpeg)
(一)建立邻近地区后端储存(Local Storage)配置文件(Virtual folders)
.jpeg)
.jpeg)
.jpeg)
有关 Storage (Storage backends)的类型解释:
.jpeg)
Local:即邻近地区储存,这也是采用最多的方式,能指向任意配置文件来作为储存目录;
Local encrypted(Data At Rest Encryption,静态数据身份验证):SFTPGo 通过其 cryptfs 虚拟磁盘全力支持静态数据身份验证,在这种模式下,SFTPGo在上传和/或下载过程中对数据(从邻近地区磁盘)进行透明的身份验证和解密,确保服务项目器端的静态文件总是被身份验证的。NDS宝
须要注意的是,假如你优先选择了这种储存类型,那么你在增设邻近地区配置文件时,这一配置文件里面不能含有文件,也就是说你须要建立两个空配置文件用于采用这种身份验证的储存类型,否则控制系统会试图解密那些首先没被身份验证的现有文件而产生错误(失败);NDS宝
AWS S3/Google Cloud Storage/Azure Blob Storage:亚马逊、Google 和 微软的云储存等有关储存服务项目,这儿就不做如是说了,感兴趣的能去看说明;
SFTP:全力支持连接到其他 SFTP 服务项目器来作为后端储存,这儿也不过多如是说,具体请查阅官方文档。
(二)建立采用者并服务项目有关权限
在 SFTPGo 中对采用者的权限实用性有着丰富的可实用性选项,这一小节会花费比较多的内容去做如是说。NDS宝
后端储存建立好后,他们接下来须要建立相应的采用者,并给到采用者具体的权限来是采用他们构筑的 SFTPGo 服务项目。
.jpeg)
.jpeg)
Public KeysNDS宝:非必填项,但是假如你没填写上面的账户密码,那你就必须填写这儿的 Public Keys,二选一。Public Keys 用于 SSH 登入,可通过 Linux 上的 ssh-keygen 命令来生成相应的公钥和私钥,生成之后将公钥的内容复制粘贴到这儿的 Public Keys 文本框方可,这儿不多做如是说。
采用者组(Groups)和磁盘(Filesystem):
.jpeg)
采用者组(Groups):NDS宝SFTPGo 全力支持采用者组的建立,能通过采用者组来批量管理采用者,给采用者组增设相应的权限后,归属于相应采用者组的采用者就会继承采用者组的权限,这一点相信大家都能理解。其建立方式跟采用者的建立类似,因而责任编辑就不对采用者组的内容做如是说了,大家去尝试方可。
磁盘(Filesystem):这儿用于增设 SFTP/FTP/WebDAV 采用者的家目录(home directory),须要采用绝对方向,留空方可。
在 SFTPGo 中,SFTP/FTP/WebDAV 采用者的家目录储存在控制系统中的 /srv/sftpgo/data/配置文件下,因为他们在建立 Docker 的时候,早已将 /srv/sftpgo/data 这一配置文件进行了态射,所以他们在这儿能不用手动去增设其他的方向,间接留空方可。NDS宝
.jpeg)
虚拟配置文件(Virtual folders)与配额(Quota):
.jpeg)
也就是说同两个采用者下, share 这个邻近地区配置文件不能被多个虚拟配置文件态射。
.jpeg)
因而他们这儿就能优先选择删掉其中两个虚拟配置文件,比如说删掉 share_media 这两个虚拟配置文件:NDS宝
.jpeg)
删除后:
.jpeg)
配额(Quota):配额指的是这个采用者对这两个虚拟配置文件能够采用多少的储存空间(Quota size)和可上传的文件数量(Quota files)。跟群晖上的采用者配额限制是一样的意思,如下图在群晖中对新建立的采用者限制了50G的相册套件采用空间(不过没文件数量的限制):
.jpeg)
有关联到他们这儿,他们对 jackie 这一采用者限制了 10MB 的储存空间,并且最多不能上传超过2个文件:
.jpeg)
储存空间的配额以字节(byte)来作为单位,由于他们通常都习惯采用 MB 来计算大小,所以他们能通过在线网站去进行单位的换算:NDS宝
.jpeg)
Profile(采用者档案信息)NDS宝:此增设可对采用者的激活状况、增设过期时间、API 认证机能和其他有关的采用者文字叙述进行增设,没须要特别注意的地方性。
.jpeg)
ACLs(Access Control Lists,采用者访问控制列表):在此模块他们能通过 SFTPGo 提供的多种不同精细化的权限控制增设,来对两个采用者做到精确的权限范围界定。
.jpeg)
如下图所示,他们能在Permissions(权限)NDS宝的下拉菜单中,能对这个采用者能够采用哪些权限进行勾选(比如说:download-下载权限,upload-上传权限,rename-文件重命名…),你也能保持默认的 * 不变,表示让这一采用者能够采用所有的权限,然后再通过 ACLS 模块中的其余权限增设来覆盖相应的机能权限:
.jpeg)
Per-directory permissions(虚拟配置文件权限)NDS宝:SFTPGo 允许对虚拟配置文件进行权限增设(virtual permissions),以下图为例:
.jpeg)
根据上图,他们对 jackie 这一采用者访问 /read-only 和 /subdir 方向下的内容进行了限制:虽然此采用者拥有默认的全部权限(也就是在 Permissions 权限菜单中优先选择了 * ),但是此采用者只能对 /read-only 方向下的文件进行查看(list,即 Linux 控制系统中的 ls 查看文件命令)和文件下载(download);同时此采用者对 /subdir 下的内容没任何权限(即不拥有查看、下载、重命名、删除…等所有权限),因为他们没在 /subdir 右侧的权限列表中勾选任何的权限。NDS宝
云主机、VPS、NDS宝、游戏服务项目器上永恒云
.jpeg)
Per-directory pattern restrictions(文件限制模版规则):NDS宝假设你期望限制采用者对 /read-only 方向内的 png 和 jpg 图片的权限进行限制(无法下载、修正等),那么你能通过 Per-directory pattern restrictions 机能进行实用性,如下图所示:
.jpeg)
此机能如前所述 shell 模版,能通过通配符、字符集等去匹配有关联的文件,例如上图中对 /read-only 配置文件下的 zip, txt, pdf 文件进行了限制,虽然这些文件能看见的(Visible),采用者无法修正、上传和下载这些文件。
.jpeg)
Disk quota and bandwidth limits(储存空间配额与带宽限制)NDS宝:此增设可限制该采用者可用的储存空间、文件上传数量和带宽大小等一系列权限。
前面他们在增设虚拟配置文件的时候能限制采用者对虚拟配置文件所能采用的储存空间大小和文件数量,但假如虚拟配置文件的配额都增设成了 -1,那么就表示这一虚拟配置文件的配额量就被限制在的配额大小中。
.jpeg)
.jpeg)
Disconnect the user after the updateNDS宝指的是假如你对这一采用者修正了有关增设并勾选了此选项之后,那么假如此采用者在线的话会强制将采用者踢下线,以此来让实用性生效,采用者重新登入之后方可应用领域新的采用者实用性。
.jpeg)
三、文件的上传和下载
在前面的一章内容中,他们早已建立了两个采用者名为 jackie 的采用者,此时他们就能采用 这个采用者登入到 WebUI。
退出当前管理员采用者:
.jpeg)
.jpeg)
.jpeg)
输入采用者的账号密码:NDS宝
.jpeg)
.jpeg)
步入到 share_media 配置文件:
.jpeg)
.jpeg)
.jpeg)
上传 zip 文件时报错
.jpeg)
上传 txt 文件时报错
.jpeg)
.jpeg)
.jpeg)
.jpeg)
链接的类型如是说如下:
.jpeg)
.jpeg)
.jpeg)
.jpeg)
四、采用软件客户端登入并挂载
常见的 FTP、SFTP、WebDAV 软件有 RaiDrive 和 WinSCP 等,这儿以这两个软件做演示。
(一)采用 RaiDrive 挂载 WebDAV 和 SFTP
挂载 WebDAV
.jpeg)
.jpeg)
挂载 SFTP
挂载方式同理:
.jpeg)
.jpeg)
(二)采用 WinSCP 来连接到 SFTPGo
.jpeg)
.jpeg)
.jpeg)
五、结尾
SFTPGo 的大致用法基本上都早已如是说完了,除了责任编辑如是说到的内容之外,仍有不少本值得去学习和研究的机能,包括责任编辑没如是说到的 Defender 安全防护与屏蔽机能、两步 TLS 验证、采用者模版、API 接口等,听众感兴趣的话能到官方的项目中去进一步学习(官方的文档写的很详细)。NDS宝
(完)
永恒云出品