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

相关文章

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL

SpringBoot整合DeepSeek实现AI对话功能

《SpringBoot整合DeepSeek实现AI对话功能》本文介绍了如何在SpringBoot项目中整合DeepSeekAPI和本地私有化部署DeepSeekR1模型,通过SpringAI框架简化了... 目录Spring AI版本依赖整合DeepSeek API key整合本地化部署的DeepSeek

Ollama整合open-webui的步骤及访问

《Ollama整合open-webui的步骤及访问》:本文主要介绍如何通过源码方式安装OpenWebUI,并详细说明了安装步骤、环境要求以及第一次使用时的账号注册和模型选择过程,需要的朋友可以参考... 目录安装环境要求步骤访问选择PjrIUE模型开始对话总结 安装官方安装地址:https://docs.

MySQL报错sql_mode=only_full_group_by的问题解决

《MySQL报错sql_mode=only_full_group_by的问题解决》本文主要介绍了MySQL报错sql_mode=only_full_group_by的问题解决,文中通过示例代码介绍的非... 目录报错信息DataGrip 报错还原Navicat 报错还原报错原因解决方案查看当前 sql mo

Spring Boot 整合 ShedLock 处理定时任务重复执行的问题小结

《SpringBoot整合ShedLock处理定时任务重复执行的问题小结》ShedLock是解决分布式系统中定时任务重复执行问题的Java库,通过在数据库中加锁,确保只有一个节点在指定时间执行... 目录前言什么是 ShedLock?ShedLock 的工作原理:定时任务重复执行China编程的问题使用 Shed

Window Server2016加入AD域的方法步骤

《WindowServer2016加入AD域的方法步骤》:本文主要介绍WindowServer2016加入AD域的方法步骤,包括配置DNS、检测ping通、更改计算机域、输入账号密码、重启服务... 目录一、 准备条件二、配置ServerB加入ServerA的AD域(test.ly)三、查看加入AD域后的变

Window Server2016 AD域的创建的方法步骤

《WindowServer2016AD域的创建的方法步骤》本文主要介绍了WindowServer2016AD域的创建的方法步骤,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一、准备条件二、在ServerA服务器中常见AD域管理器:三、创建AD域,域地址为“test.ly”

SpringBoot 整合 Grizzly的过程

《SpringBoot整合Grizzly的过程》Grizzly是一个高性能的、异步的、非阻塞的HTTP服务器框架,它可以与SpringBoot一起提供比传统的Tomcat或Jet... 目录为什么选择 Grizzly?Spring Boot + Grizzly 整合的优势添加依赖自定义 Grizzly 作为

Linux(Centos7)安装Mysql/Redis/MinIO方式

《Linux(Centos7)安装Mysql/Redis/MinIO方式》文章总结:介绍了如何安装MySQL和Redis,以及如何配置它们为开机自启,还详细讲解了如何安装MinIO,包括配置Syste... 目录安装mysql安装Redis安装MinIO总结安装Mysql安装Redis搜索Red