Я работаю над концентратором VPN для Linux (Debian 7) для различных видов удаленного доступа. Один из предлагаемых протоколов - L2TP / IPsec из-за доступности клиента. Я использую xl2tpd, который, в свою очередь, использует pppd, а pppd аутентифицирует пользователей через сервер RADIUS.
Сейчас мы хотели бы управлять доступом к сети на основе подключения пользователя к VPN. Например, пользователь A должен иметь доступ только к подсети X, в то время как пользователь B должен иметь доступ только к подсети Y. Фактически, это похоже на динамическое назначение VLAN для WLAN. К сожалению, мне не удалось найти (поправьте меня, если я ошибаюсь) готовое решение для L2TP / IPSec VPN под Linux. Мне пришла в голову идея, которая могла бы помочь, но, похоже, это требует значительного объема работы, и поэтому я хотел бы знать, содержит ли она какие-либо очевидные недостатки или есть еще более простой способ.
Идея: использовать атрибуты динамического назначения VLAN от RADIUS (особенно Tunnel-Private-Group-Id) и плагин radattr.so для ppp. xl2tpd назначает каждому подключенному клиенту новый виртуальный интерфейс pppX, и плагин создает файл /var/run/radattr.pppX, содержащий все атрибуты, полученные от сервера RADIUS. Эти атрибуты могут использоваться сценарием ppp-ifup для назначения вновь созданного виртуального интерфейса мосту Linux с соответствующей VLAN.
заранее спасибо