AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 991829
Accepted
Gnudiff
Gnudiff
Asked: 2019-11-15 05:35:38 +0800 CST2019-11-15 05:35:38 +0800 CST 2019-11-15 05:35:38 +0800 CST

将 vsftpd 主页放在 Windows AD 共享上

  • 772

我有外部客户端通过 Ubuntu 18.04 上的 vsftpd FTP 上传/下载文件。他们使用 linux 帐户(不是虚拟帐户),被 chroot 并且只需要(并且确实)在他们自己的目录下查看。

现在,他们的家需要以某种方式从 Windows 访问,以便我们的应用管理员和特定的应用操作员(他们是 Windows AD 的常规用户)查看和可能编辑上传的内容。

我想将他们的整个 /home 从我们文件服务器上的 Windows AD 共享中移动,并让特定的 AD 安全组可以访问,但我不确定这是否适用于 linux 权限?我明确希望避免通过网络共享 Ubuntu 文件夹。

想法:

  • 从 AD 文件服务器挂载 /home 作为 CIFS 共享。

  • vsftpd -- FTP 用户 chroot 到挂载 /home -- 每个人都可以读/写他们自己的目录

  • Windows AD 用户 - 可以在其现有共享上查看 Windows 下的目录,具有适当的 AD 安全组可以读取/写入任何主子目录下的任何文件

这行得通吗?如果没有,我还能做什么?也许我需要转移到虚拟 vsftpd 用户?

我已经在 Ubuntu 上安装了几个 CIFS 共享,但它们都映射到单个 uid/gid,我不确定 vsftpd 将/如何与上述设置一起使用。

ubuntu
  • 2 2 个回答
  • 611 Views

2 个回答

  • Voted
  1. JucaPirama
    2019-11-15T08:43:14+08:002019-11-15T08:43:14+08:00

    在这里猜测,但我会尝试 3 种方法:

    1. 在 Linux 上使用 AD 用户(可能使用 SSSD)
    2. 在 vsftpd 上使用虚拟用户(我认为您需要确保 CIFS 挂载的文件系统文件归 vsftpd 用户所有)
    3. 做相反的事情:安装 Samba 并让管理员和操作员通过它访问文件(更简单的解决方案恕我直言)
    • 0
  2. Best Answer
    Gnudiff
    2019-12-05T05:30:47+08:002019-12-05T05:30:47+08:00

    事实证明,即使是虚拟用户和实际用户的混合也有效!该指南适用于 Ubuntu 18.04 LTS,但也应适用于其他 Linux,尽管文件位置可能会更改。

    因此,一种方法是:

    1. 在您的 CIFS 服务器上创建一个适当的目录并设置一个具有适当权限的 AD 用户(例如 unix_server_user@domain)。
    2. 使用 unix_server_user 的 AD 权限和映射到 VSFTPD 服务器用户的本地用户挂载 CIFS 共享。/etc/fstab:

    //Your_CIFS_Server/share /mnt/cifs_homes cifs credentials=/etc/your_AD_password_data_file,uid=ftpuser,gid=ftpusers,file_mode=0770,dir_mode=0770 0 0

    显然不要忘记将密码文件设置为只有 root 可以访问以获得一些小的安全奖励。

    1. /etc/vsftpd.conf至少应该有以下几行:

    local_enable=YES nopriv_user=ftpuser chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd user_config_dir=/etc/vsftpd.userconf

    1. 您需要修改/etc/pam.d/vsftpd以支持虚拟和本地用户:

    虚拟用户: auth sufficient pam_pwdfile.so pwdfile /etc/vsftpd.passwd account sufficient pam_permit.so

    添加虚拟用户是通过htpasswd -d/etc/vsftpd.passwd 文件上的命令完成的。该文件也可以是 root 访问权限,仅用于一些次要的安全措施。

    请注意,当使用 htpasswd 时 pam_pwdfile 似乎仅支持 vsftpd.passwd 文件的 CRYPT 加密,这是不安全的,因此您应该按照链接中的说明使用 openssl 生成密码,或者另外至少使用 SSL 或 IP 地址限制来进行 FTP 访问。

    本地用户:

    auth required pam_shells.so

    所有这些行都应该与通常的 @include common-* 行以及您在 vsftpd pam 文件中需要的任何其他行一起出现。

    为 /etc/vsftpd.conf/ 中命名为用户的每个本地和虚拟用户添加文件。

    本地用户应该只有 idle_session_timeout 的正常值或您需要的任何值。他的 homedir 将是通常的 /home 或 /etc/passwd 中设置的任何内容。

    除了本地用户所需的任何内容外,虚拟用户还应具有以下几行:

    chroot_local_user=YES local_root=/mnt/cifs_homes/$USER user_sub_token=$USER virtual_use_local_privs=YES guest_enable=YES nopriv_user=ftpuser guest_username=ftpusers

    你最终得到的是:

    1) 从 Windows 端,访问由您为其设置 AD 权限的任何 AD 用户和组控制。请记住 unix_server_user@domain 应该具有对其的写入权限,除非您想要只读 FTP。

    2) 从 Unix 开始,所有虚拟用户访问都映射到 ftpuser.ftpusers。本地用户照常使用 Unix 服务器 /home。

    3) 所有的 FTP 登录都有各自的 homedir 的 chroot 并且可以在其中读取和写入。

    • 0

相关问题

  • 无法通过 Ubuntu VPN 访问外部网络

  • ubuntu apt-get upgrade - 如何在 shell 中单击确定?

  • VirtualBox 上 Ubuntu 的访客优化技巧 [关闭]

  • 外部硬盘上的 virtualbox 虚拟硬盘驱动器(Vista 主机上的 ubuntu 客户机)

  • 如何在 Ubuntu 上挂载 LVM 分区?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve