通过动态 VLAN 分配实现独立的 L2TP/IPsec VPN

通过动态 VLAN 分配实现独立的 L2TP/IPsec VPN

我正在开发一个 Linux (Debian 7) VPN 集中器,用于不同类型的远程访问。由于客户端可用性,提供的协议之一是 L2TP/IPsec。我正在使用 xl2tpd,它又使用 pppd,而 pppd 通过 RADIUS 服务器对用户进行身份验证。

我们现在想要实现的是根据连接到 VPN 的用户来控制网络访问。例如,用户 A 应该只能访问子网 X,而用户 B 应该只能访问子网 Y。事实上,这类似于 WLAN 的动态 VLAN 分配。不幸的是,我找不到(如果我错了请纠正我)Linux 下 L2TP/IPSec VPN 的开箱即用解决方案。我想到了一个可能有效的主意,但看起来工作量很大,因此我想知道它是否存在任何明显的缺陷,或者是否有更简单的方法。

想法:使用 RADIUS 的动态 VLAN 分配属性(尤其是 Tunnel-Private-Group-Id)和 ppp 的 radattr.so 插件。xl2tpd 为每个连接的客户端分配一个新的虚拟接口 pppX,插件创建一个文件 /var/run/radattr.pppX,其中包含从 RADIUS 服务器收到的所有属性。这些属性可以由 ppp-ifup 脚本使用,将新创建的虚拟接口分配给具有相应 VLAN 的 Linux 桥接端口。

  • 有人已经建立过这样的配置吗?
  • 有什么阻碍其实现吗?
  • 您是否通常会因为某种原因而不鼓励这种配置?

提前致谢

相关内容