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

news2024/11/13 10:08:11

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-stopped
    ports:
      - '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:
      - npi

  sftpgo:
    image: "drakkan/sftpgo:2.5.x-plugins"
    container_name: "sftpgo"
    hostname: "sftpgo"
    restart: unless-stopped
    ports:
      - '8080:8080'
      - '2022:2022'
    volumes:
      - "./sftpgohome:/var/lib/sftpgo"
      - "./sftpgodata:/srv/sftpgo"
    environment:
      # These are the settings to access your db
      SFTPGO_WEBDAVD__BINDINGS__0__PORT: 5007
      SFTPGO_DATA_PROVIDER__DRIVER: "mysql"
      SFTPGO_DATA_PROVIDER__NAME: "sftpgo"
      SFTPGO_DATA_PROVIDER__HOST: "mariadb"
      SFTPGO_DATA_PROVIDER__PORT: 3306
      SFTPGO_DATA_PROVIDER__USERNAME: "用户"
      SFTPGO_DATA_PROVIDER__PASSWORD: "密码"
      SFTPGO_COMMON_DEFENDER__ENABLED: "true"
      SFTPGO_COMMON_DEFENDER__BAN_TIME: 15
      SFTPGO_COMMON_DEFENDER__BAN_TIME_INCREMENT: 100
      SFTPGO_COMMON_DEFENDER__THRESHOLD: 5
      SFTPGO_COMMON_DEFENDER__OBSERVATION_TIME: 15
    networks:
      - npi
      
  minio:
    image: "minio"
    container_name: "minio"
    hostname: "minio"
    restart: unless-stopped
    ports:
      - '9000:9000'
      - '9002:9001'
    volumes:
      - "./minio_data:/data"
      - "/etc/localtime:/etc/localtime:ro"
    environment:
      - "MINIO_ROOT_USER=admin"
      - "MINIO_ROOT_PASSWORD=密码"
    networks:
      - npi
    command: 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: 5007
      SFTPGO_DATA_PROVIDER__DRIVER: "mysql"
      SFTPGO_DATA_PROVIDER__NAME: "sftpgo"
      SFTPGO_DATA_PROVIDER__HOST: "mariadb"
      SFTPGO_DATA_PROVIDER__PORT: 3306
      SFTPGO_DATA_PROVIDER__USERNAME: "用户"
      SFTPGO_DATA_PROVIDER__PASSWORD: "密码"
      SFTPGO_COMMON_DEFENDER__ENABLED: "true"
      SFTPGO_COMMON_DEFENDER__BAN_TIME: 15
      SFTPGO_COMMON_DEFENDER__BAN_TIME_INCREMENT: 100
      SFTPGO_COMMON_DEFENDER__THRESHOLD: 5
      SFTPGO_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: 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
      SFTPGO_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中设置,类似下图

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1680501.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

三类银行互联网贷款迎新规!速看菊风信贷智能双录解决方案

​​继2020年《商业银行互联网贷款管理暂行办法》(下称《办法》)和2021年《关于进一步规范商业银行互联网贷款业务的通知》之后,时隔三年,股份制银行、城商行、民营银行(简称“三类银行”)互联网贷款业务再…

shell脚本实现linux系统自动化配置免密互信

目录 背景脚本功能脚本内容及使用方法 1.背景 进行linux自动化运维时需要先配置免密,但某些特定场景下,做了互信的节点需要取消免密,若集群庞大节点数量多时,节点两两之间做互信操作非常麻烦,比如有五个节点&#x…

C++二叉搜索树搜索二叉树二叉排序树

C二叉搜索树 1. 二叉搜索树的概念 二叉搜索树(BST,Binary Search Tree),也称为二叉排序树或二叉查找树。它与一般二叉树的区别在于:每个结点必须满足“左孩子大于自己,右孩子小于自己”的规则。在这种规则的约束下,二…

海外云手机的运作原理和适用场景

海外云手机是一种基于云计算技术的虚拟手机服务,通过将手机操作系统和应用程序托管在远程服务器上,实现用户可以通过互联网连接来使用和管理手机功能,而无需实际拥有物理手机。以下是有关海外云手机的相关信息: 海外云手机的运作原…

【Linux】-Linux的实用操作:快捷键与软件安装操作、构建软连接、日期时区的设置[4]

目录 一、各类小技巧(快捷键) 1、ctrl c 强制停止 2、ctrl d 退出或登出 3、历史命令搜索 4、光标移动快捷键 5、清屏 二、软件安装 1、yum命令 2、apt命令 - 扩展(ubuntu) 三、systemctl命令 四、软连接 1、ln命令…

【PG数据库】PostgreSQL 日志归档详细操作流程

1.1 日志归档的目的 pg数据库日志归档是将PostgreSQL数据库的日志文件进行归档的过程。 归档的主要目的是为了保留历史数据,确保数据的一致性和完整性,同时为数据恢复提供必要的支持。 pg数据库日志归档的目的包括: 1.数据恢复&#xff1…

【MySQL】SQL基本知识点DDL(1)

目录 1.SQL分类: 2.DDL-数据库操作 3.DDL-表操作-创建 4.DDL-表操作-查询 5.DDL-表操作-数据类型 6.DDL-表操作-修改 1.SQL分类: 2.DDL-数据库操作 3.DDL-表操作-创建 注意:里面的符号全部要切换为英文状态 4.DDL-表操作-查询 5.DDL…

html基础(全)

html简介 目录 什么是网页 什么是 HTML 常用浏览器 WebE标准的构成 基本语法概述 第一个HTML页面 文档类型声明标签 lang 语言种类 字符集 标题标签 段落和换行标签 文本格式化标签 div和span标签 图像标签和路径 超链接标签 表格的主要作用 表头单元格标签 列…

【汇编语言】多文件组织

【汇编语言】多文件组织 文章目录 【汇编语言】多文件组织前言一、8086拓展1.子程序的另外一种写法2.程序的多文件组织 总结 前言 本篇文章将讲到子程序的另一种写法,以及程序的多文件组织。 一、8086拓展 1.子程序的另外一种写法 初始的程序 在这里我们对比一下…

战网国际服加速器哪个好用 暴雪战网免费加速器分享

战网国际服(Battle.net International或Battle.net Global)是由暴雪娱乐公司(Blizzard Entertainment)运营的面向全球玩家的多人在线游戏平台。与专注于特定地区的版本不同,国际服允许玩家不受地域限制地访问暴雪的多款…

一键修复所有dll缺失,教大家解决丢失的dll文件

修复所有DLL(动态链接库)文件缺失的问题通常不可能通过单一的"一键修复"按钮来实现,因为DLL文件缺失可能由各种不同的原因导致,比如应用程序安装不正确、病毒感染、或系统文件损坏等。 使用内置的系统文件检查器&#x…

AtomicInteger 详细解读

AtomicInteger 详细解读 一、原始数据并发写引发的问题 对于共享变量整数的加减操作,当出现并发的情况时,很容易造成线程不安全。 1、代码示例 public class Demo {static int num 0;public static void main(String[] args) throws InterruptedExc…

【Redis】Redis面试和工作中十有八九会遇到的问题

1. 数据类型 常用的Redis数据类型有5种,分别是: String、List、Set、SortedSet、Hash 还有一些高级数据类型,比如Bitmap、HyperLogLog、GEO等,其底层都是基于上述5种基本数据类型。因此在Redis的源码中,其实只有5种数…

2000-2001年中国净生态系统生产力产品(Net ecosystem productivity, NEP)

简介 中国净生态系统生产力产品(Net ecosystem productivity, NEP)是总初级生产力GPP(单位时间内生物通过光合作用所固定的有机碳量)扣除自养生物呼吸消耗的部分和异养生物呼吸消耗(土壤呼吸)光合产物之后的部分,是生…

连锁收银系统如何助力实体门店私域运营

作为实体门店,私域运营是提升客户黏性和增加复购率的重要策略之一。而连锁收银系统在私域运营中扮演了关键的角色,它不仅可以帮助门店管理客户信息和消费记录,还能够通过数据分析和营销功能提供个性化的服务和推广活动。下面看看连锁收银系统…

TypeScript中的泛型(Generics)

TypeScript中的泛型(Generics) 在前面的几篇文章中,我们了解了TypeScript的类、接口和基本的数据类型系统。本文将重点介绍TypeScript中的泛型,这是一种强大的工具,它允许我们创建可重用的组件,同时保持类…

信创电脑|暴雨新增兆芯KX-7000处理器版本

IT世界 5 月 15 日消息,暴雨公司信创家族新上架了一款搭载兆芯KX-7000系列处理器、摩尔线程8GB 显卡、16G DDR5 内存以及 512G SSD 的新配置台式电脑主机。 兆芯 KX-7000 处理器采用开先的 8 核 Chiplet互联架构,最高频率3.7 GHz,拥有 32MB 的…

11种最常见的网络安全攻击类型!

常见的网络安全攻击类型有很多,其中包括DOS和DDOS攻击、中间人攻击、SQL注入攻击、勒索攻击、网络攻击、蛮力攻击等,接下来这篇文章为大家介绍一下{BANNED}最佳常见的11种网络安全攻击类型,快来看看吧。 1、DOS和DDOS攻击 拒绝服务攻击旨在使…

IDEA 使用Alibaba Cloud Toolkit 实现远程 自动部署

安装插件 maven方式部署 配置服务器主机信息 配置发布到主机 单击Select 单击run 就可以将选择module的jar文件上传到服务器的指定位置了 Alibaba Cloud Toolkit 上传文件的方式部署

网工内推 | 测试工程师,NA认证以上,15薪,补充医疗险

01 天视通 招聘岗位:测试工程师 职责描述:1、网络视频监控相关软件产品测试,及行测试记录和相应各种文档资料/手册编写;2、负责编写测试计划、测试用例、搭建测试环境、执行测试;3、进行BUG验证根据测试结果&#xff…