单个目录/文件是否可以同时由两个独立的samba守护进程安全地运行?

情况是这样的:

  • 我有一个Debian服务器,作为一个Web /邮件服务器以及一个小型办公室的Internet网关。 所有可用的外部服务都在OpenVZ虚拟环境中运行。
  • 我有一个要求,提供外部访问与办公室内的员工共享的目录(devise师)。 这个目录必须可以通过SMB访问,所以我设置了OpenVPN来通过互联网提供对Samba的安全访问。
  • 为了提高安全性,我不希望OpenVPN远程用户(将来可能会有更多的用户)能够完全访问公司networking,所以我打算在一个虚拟环境中设置一个Samba守护进程,只监听OpenVPN虚拟接口以及单独的Samba守护进程,仅在内部networking接口上侦听。 守护进程将服务于位于VE根目录树内的相同目录(并且可以访问物理机器的操作系统)。

主要问题是:从内部networking和外部同时访问文件时(这可能是因为此设置用于Adobe InDesign / InCopy协作),不会出现冲突(文件locking问题等)吗? 如果是这样的话,那么在这种情况下更好的设置是什么? 我想到的另一种select是通过端口转发在OpenVPN接口上访问内部Samba后台进程。 同样,我不希望OpenVPN客户端能够实际访问公司networking,我只想让Samba共享在互联网上工作(计划的工作stream程需要这样做)。

如果有人有类似的设置的经验,如果你分享你的见解,我将非常感激。

编辑 – 澄清:我使用OpenVPN的桥接VPN(一个tap接口),据我所知,这是Samba的正确select(它甚至可以在路由VPN上工作吗?是否需要精心devise的转发/路由设置?)但是,我不想将VPN与物理服务器的接口连接起来,原因有三:避免干扰公司networking,同时使接口向上和向下; 避免授予外部客户访问整个内部networking; 作为策略规则,避免在物理机器上运行公共服务。

目前,我打算使用选项1:

  • 选项1:在VE上为外部客户端运行OpenVPN和Samba,在主服务器上为员工(不需要VPN)运行第二个Samba实例。 然而,我担心两个Samba服务相同的文件和冲突(因此原来的问题表述)的实例。
  • 选项2将只在VE上运行OpenVPN,并将Samba端口转发到物理机(或OpenVZ术语中的硬件节点)。
  • 选项3将不会为这项服务的虚拟企业服务而烦恼(因为它本质上是非公开的),只需在硬件节点上用Tap(桥接)接口运行OpenVPN,但实际上并没有用物理接口桥接它,然后使单个Samba实例监听内部networking接口和Tap接口(用于VPN客户端),而不是侦听外部接口。

所以,最新的问题是:选项3会比前两项安全吗? 如果没有,我会执行它,因为它似乎是最简单和最强大的。

对不起,我不能用更less的话来expression:)感谢阅读和答案。

我只是使用防火墙来控制访问。 为了使这个工作,你将不得不让OpenVPN安装使用tun接口,并通过防火墙路由stream量。 一旦你完成了,你有几个选项来限制访问。 您可以使用client-config-dir指令为承包商分配静态IP地址,然后限制该IP地址可以访问的内容。 如果将静态分配的IP地址保留在一个可以使用OpenVPN DHCP用户(员工)的不同CIDR描述的IP块中,则可以轻松编写防火墙规则来定位每种types的用户。 我倾向于select的其他选项是pipe理更清洁的方法是在不同的端口上为客户端设置两个不同的OpenVPN服务器,使用不同的子网,使用一个用于员工访问,另一个用于承包商访问。 然后,您可以根据子网在任一组上应用任何限制,而无需处理单个IP地址。

在SAMBA方面,你可以简单地依靠文件的权限来限制他所看到的内容。 但是,如果您不想或不能将所有正常股份公开给承包商b / c,他们可能会披露客户/项目清单等信息,那么您可以在您的股票上使用invalid users = <username>选项希望他们不要看到。 然后使用valid users = <username>指令为承包商添加一个共享。 另一个select是使用include = /somepath/%G.smb.confinclude = /somepath/%u.smb.conf指令为每个主要组或每个用户configuration指令执行。