SFTPGO 整合minio AD群组 测试 |sftpgo with minio and ldap group test

2024-05-15 11:44

本文主要是介绍SFTPGO 整合minio AD群组 测试 |sftpgo with minio and ldap group test,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

SFTP-GO 研究
最近在测试sftpgo,发现中文的资料比较少,在企业中很多存储开始支持S3,比如netapp
于是想尝试把文件服务器换成sftpgo+S3的存储,sftp go和AD 群组的搭配测试比较少
自己测试了一把,觉得还是没有server-u的AD群组方便,但是比filezilla server强太多,记录下面供各位参考

文章目录

    • 1.安装-docker方式
    • 2.增加存储
      • 2.1 本地存储
      • 2.2 Miniio 存储
    • 3.IP过滤测试
    • 4.AD整合测试
    • 5.群组测试
      • 5.1 在组里面挂载存储
      • 5.2 在组里面挂载虚拟目录
    • 6.使用顺序
      • 6.1 先新建文件夹
      • 6.2 再新建组
      • 6.3 新建用户
      • 6.4 将用户加入组
    • 7.文件权限设置

1.安装-docker方式

实际配置

需要对文件目录授权,生产环境权限不要这么粗暴


mkdir -p /docker/sftpgo/sftpgodata
mkdir -p /docker/sftpgo/sftpgohome
chmod -R 777 /docker/sftpgo
version: '3.8'
services:mariadb:image: "mariadb:10.7"container_name: "mariadb"hostname: "mariadb"restart: unless-stoppedports:- '3306:3306'volumes:- "./mariadb_data:/var/lib/mysql"- "/etc/localtime:/etc/localtime:ro"environment:- "MARIADB_ROOT_PASSWORD=密码"- "MARIADB_USER=npi"- "MARIADB_PASSWORD=密码"- "MARIADB_DATABASE=sftpgo"networks:- npisftpgo:image: "drakkan/sftpgo:2.5.x-plugins"container_name: "sftpgo"hostname: "sftpgo"restart: unless-stoppedports:- '8080:8080'- '2022:2022'volumes:- "./sftpgohome:/var/lib/sftpgo"- "./sftpgodata:/srv/sftpgo"environment:# These are the settings to access your dbSFTPGO_WEBDAVD__BINDINGS__0__PORT: 5007SFTPGO_DATA_PROVIDER__DRIVER: "mysql"SFTPGO_DATA_PROVIDER__NAME: "sftpgo"SFTPGO_DATA_PROVIDER__HOST: "mariadb"SFTPGO_DATA_PROVIDER__PORT: 3306SFTPGO_DATA_PROVIDER__USERNAME: "用户"SFTPGO_DATA_PROVIDER__PASSWORD: "密码"SFTPGO_COMMON_DEFENDER__ENABLED: "true"SFTPGO_COMMON_DEFENDER__BAN_TIME: 15SFTPGO_COMMON_DEFENDER__BAN_TIME_INCREMENT: 100SFTPGO_COMMON_DEFENDER__THRESHOLD: 5SFTPGO_COMMON_DEFENDER__OBSERVATION_TIME: 15networks:- npiminio:image: "minio"container_name: "minio"hostname: "minio"restart: unless-stoppedports:- '9000:9000'- '9002:9001'volumes:- "./minio_data:/data"- "/etc/localtime:/etc/localtime:ro"environment:- "MINIO_ROOT_USER=admin"- "MINIO_ROOT_PASSWORD=密码"networks:- npicommand: server /data --console-address ":9001"networks:npi:internal: false

2.增加存储

2.1 本地存储

实际配置

在这里插入图片描述

用户配置
在这里插入图片描述

2.2 Miniio 存储

建议在组里面挂载miniio
在这里插入图片描述

3.IP过滤测试

ACL中
在这里插入图片描述

在这里插入图片描述

4.AD整合测试

在docker的环境变量里面设置后直接用AD登陆,会自动创建账户
也可以先新建账户,拖组,再直接登陆

发现bug,先建账户,再登陆后会删除账户并重建用户

示例配置:

SFTPGO_PLUGIN_AUTH_LDAP_URL="ldap://192.168.1.5:389"
SFTPGO_PLUGIN_AUTH_LDAP_BASE_DN="dc=mylab,dc=local"
SFTPGO_PLUGIN_AUTH_LDAP_BIND_DN="cn=Administrator,cn=users,dc=mylab,dc=local"
SFTPGO_PLUGIN_AUTH_LDAP_PASSWORD="Password.123456"
SFTPGO_PLUGIN_AUTH_LDAP_SEARCH_QUERY="(&(objectClass=user)(sAMAccountType=805306368)(sAMAccountName=%username%))"
SFTPGO_PLUGIN_AUTH_CACHE_TIME=60
SFTPGO_PLUGINS__0__TYPE=auth
SFTPGO_PLUGINS__0__AUTH_OPTIONS__SCOPE=5
SFTPGO_PLUGINS__0__CMD="/usr/local/bin/sftpgo-plugin-auth"
SFTPGO_PLUGINS__0__ARGS="serve"
SFTPGO_PLUGINS__0__AUTO_MTLS=1

AD组配置

实际配置,设置AD组限制后,发现AD账户要登陆2次才能成功,原因不明

environment:# 以下是数据库配置SFTPGO_WEBDAVD__BINDINGS__0__PORT: 5007SFTPGO_DATA_PROVIDER__DRIVER: "mysql"SFTPGO_DATA_PROVIDER__NAME: "sftpgo"SFTPGO_DATA_PROVIDER__HOST: "mariadb"SFTPGO_DATA_PROVIDER__PORT: 3306SFTPGO_DATA_PROVIDER__USERNAME: "用户"SFTPGO_DATA_PROVIDER__PASSWORD: "密码"SFTPGO_COMMON_DEFENDER__ENABLED: "true"SFTPGO_COMMON_DEFENDER__BAN_TIME: 15SFTPGO_COMMON_DEFENDER__BAN_TIME_INCREMENT: 100SFTPGO_COMMON_DEFENDER__THRESHOLD: 5SFTPGO_COMMON_DEFENDER__OBSERVATION_TIME: 15# 以下是LDAP配置SFTPGO_PLUGIN_AUTH_LDAP_URL: "ldap://IP"SFTPGO_PLUGIN_AUTH_LDAP_BASE_DN: "DN"SFTPGO_PLUGIN_AUTH_LDAP_BIND_DN: "OU"SFTPGO_PLUGIN_AUTH_LDAP_PASSWORD: "密码"SFTPGO_PLUGIN_AUTH_LDAP_SEARCH_QUERY: "(&(objectClass=user)(sAMAccountType=805306368)(sAMAccountName=%username%))"SFTPGO_PLUGIN_AUTH_CACHE_TIME: 60SFTPGO_PLUGINS__0__TYPE: authSFTPGO_PLUGINS__0__AUTH_OPTIONS__SCOPE: 5SFTPGO_PLUGINS__0__CMD: "/usr/local/bin/sftpgo-plugin-auth"SFTPGO_PLUGINS__0__ARGS: "serve"SFTPGO_PLUGINS__0__AUTO_MTLS: 1SFTPGO_PLUGIN_AUTH_PRIMARY_GROUP_PREFIX: "mini2"  #映射sftpgo 到主要群组SFTPGO_PLUGIN_AUTH_REQUIRE_GROUPS: "TRUE" #不设置群组不让登陆,防止用户自动创建
姓名:sftpgo-plugin-authserve - 启动 SFTPGo 插件,必须从 SFTPGo 实例调用它用法:sftpgo-plugin-auth 服务 [命令选项] [参数...]选项:--ldap-url 值 LDAP url,例如 ldap://192.168.1.5:389 或 ldaps://192.168.1.5:636 [$SFTPGO_PLUGIN_AUTH_LDAP_URL]--ldap-base-dn value 基本 DN 定义 LDAP 目录中根对象的地址,例如 dc=mylab,dc=local [$SFTPGO_PLUGIN_AUTH_LDAP_BASE_DN]--ldap-bind-dn value 用于登录 LDAP 服务器以执行搜索的绑定 DN,例如 cn=Administrator,cn=users,dc=mylab,dc=local。 这应该是只读用户 [$SFTPGO_PLUGIN_AUTH_LDAP_USERNAME, $SFTPGO_PLUGIN_AUTH_LDAP_BIND_DN]--ldap-password value 定义的 ldap-bind-dn 的密码。 如果为空,将尝试匿名绑定 [$SFTPGO_PLUGIN_AUTH_LDAP_PASSWORD]--ldap-search-query value 用于查找尝试登录的用户的 ldap 查询。 %username% 占位符将替换为尝试登录的用户名(默认值:(&(objectClass=user)(sAMAccountType=805306368)(sAMAccountName=%username%))) [$SFTPGO_PLUGIN_AUTH_LDAP_SEARCH_QUERY]--ldap-group-attributes value [ --ldap-group-attributes value ] 包含用户所属组的 ldap 属性(默认值:memberOf) [$SFTPGO_PLUGIN_AUTH_LDAP_GROUP_ATTRIBUTES]--primary-group-prefix value LDAP 组的前缀,映射到 SFTPGo 用户的主要组。 SFTPGo 用户只能拥有一个主要组 [$SFTPGO_PLUGIN_AUTH_PRIMARY_GROUP_PREFIX]--secondary-group-prefix value LDAP 组映射到 SFTPGo 用户辅助组的前缀 [$SFTPGO_PLUGIN_AUTH_SECONDARY_GROUP_PREFIX]--membership-group-prefix value 用于映射到 SFTPGo 用户的成员资格组的 LDAP 组的前缀 [$SFTPGO_PLUGIN_AUTH_MEMBERSHIP_GROUP_PREFIX]--require-groups 要求经过身份验证的用户至少是一个 SFTPGo 组的成员(默认值: false) [$SFTPGO_PLUGIN_AUTH_REQUIRE_GROUPS]--starttls value STARTTLS 是加密 LDAP 连接的首选方法。 使用它而不是使用 ldaps:// URL 架构(默认值:0)[$SFTPGO_PLUGIN_AUTH_STARTTLS]--users-base-dir 值 用户默认基目录。 如果已在 SFTPGo 中设置,则保留为空。 如果设置,它必须是绝对路径 [$SFTPGO_PLUGIN_AUTH_USERS_BASE_DIR]--cache-time value 定义经过身份验证的用户的缓存时间(以秒为单位)。 0 表示没有缓存(默认值:0) [$SFTPGO_PLUGIN_AUTH_CACHE_TIME]--skip-tls-verify value 如果设置为 1,则插件接受服务器提供的任何 TLS 证书以及该证书中的任何主机名。 在这种模式下,TLS 容易受到中间人攻击。 这应该仅用于测试(默认值:0)[$SFTPGO_PLUGIN_AUTH_SKIP_TLS_VERIFY]--ca-certificates value [ --ca-certificates value ] 要信任的额外 CA 证书的绝对路径列表 [$SFTPGO_PLUGIN_AUTH_CA_CERTIFICATES]--help, -h 显示帮助

5.群组测试

5.1 在组里面挂载存储

在这里插入图片描述

5.2 在组里面挂载虚拟目录

在这里插入图片描述


6.使用顺序

6.1 先新建文件夹

6.2 再新建组

把6.1文件夹关联到组
在这里插入图片描述

6.3 新建用户

6.4 将用户加入组

不用设置用户目录和权限,全部集成组的
在这里插入图片描述

7.文件权限设置

在用户或者组ACL中设置,类似下图

在这里插入图片描述

这篇关于SFTPGO 整合minio AD群组 测试 |sftpgo with minio and ldap group test的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/991746

相关文章

SpringBoot整合OpenFeign的完整指南

《SpringBoot整合OpenFeign的完整指南》OpenFeign是由Netflix开发的一个声明式Web服务客户端,它使得编写HTTP客户端变得更加简单,本文为大家介绍了SpringBoot... 目录什么是OpenFeign环境准备创建 Spring Boot 项目添加依赖启用 OpenFeig

SpringBoot整合mybatisPlus实现批量插入并获取ID详解

《SpringBoot整合mybatisPlus实现批量插入并获取ID详解》这篇文章主要为大家详细介绍了SpringBoot如何整合mybatisPlus实现批量插入并获取ID,文中的示例代码讲解详细... 目录【1】saveBATch(一万条数据总耗时:2478ms)【2】集合方式foreach(一万条数

Spring Boot 整合 SSE的高级实践(Server-Sent Events)

《SpringBoot整合SSE的高级实践(Server-SentEvents)》SSE(Server-SentEvents)是一种基于HTTP协议的单向通信机制,允许服务器向浏览器持续发送实... 目录1、简述2、Spring Boot 中的SSE实现2.1 添加依赖2.2 实现后端接口2.3 配置超时时

mysql中的group by高级用法

《mysql中的groupby高级用法》MySQL中的GROUPBY是数据聚合分析的核心功能,主要用于将结果集按指定列分组,并结合聚合函数进行统计计算,下面给大家介绍mysql中的groupby用法... 目录一、基本语法与核心功能二、基础用法示例1. 单列分组统计2. 多列组合分组3. 与WHERE结合使

springboot整合阿里云百炼DeepSeek实现sse流式打印的操作方法

《springboot整合阿里云百炼DeepSeek实现sse流式打印的操作方法》:本文主要介绍springboot整合阿里云百炼DeepSeek实现sse流式打印,本文给大家介绍的非常详细,对大... 目录1.开通阿里云百炼,获取到key2.新建SpringBoot项目3.工具类4.启动类5.测试类6.测

Spring LDAP目录服务的使用示例

《SpringLDAP目录服务的使用示例》本文主要介绍了SpringLDAP目录服务的使用示例... 目录引言一、Spring LDAP基础二、LdapTemplate详解三、LDAP对象映射四、基本LDAP操作4.1 查询操作4.2 添加操作4.3 修改操作4.4 删除操作五、认证与授权六、高级特性与最佳

一文详解如何从零构建Spring Boot Starter并实现整合

《一文详解如何从零构建SpringBootStarter并实现整合》SpringBoot是一个开源的Java基础框架,用于创建独立、生产级的基于Spring框架的应用程序,:本文主要介绍如何从... 目录一、Spring Boot Starter的核心价值二、Starter项目创建全流程2.1 项目初始化(

Spring Boot 整合 MyBatis 连接数据库及常见问题

《SpringBoot整合MyBatis连接数据库及常见问题》MyBatis是一个优秀的持久层框架,支持定制化SQL、存储过程以及高级映射,下面详细介绍如何在SpringBoot项目中整合My... 目录一、基本配置1. 添加依赖2. 配置数据库连接二、项目结构三、核心组件实现(示例)1. 实体类2. Ma

SpringBoot整合jasypt实现重要数据加密

《SpringBoot整合jasypt实现重要数据加密》Jasypt是一个专注于简化Java加密操作的开源工具,:本文主要介绍详细介绍了如何使用jasypt实现重要数据加密,感兴趣的小伙伴可... 目录jasypt简介 jasypt的优点SpringBoot使用jasypt创建mapper接口配置文件加密

SpringBoot整合MybatisPlus的基本应用指南

《SpringBoot整合MybatisPlus的基本应用指南》MyBatis-Plus,简称MP,是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,下面小编就来和大家介绍一下... 目录一、MyBATisPlus简介二、SpringBoot整合MybatisPlus1、创建数据库和