Сам не делал но....
Разделяем задачу на 3 этапа.
1. VPN сервер. Клиент получает IP адрес с маской /32, те к каждому клиенту придется прописывать сеть из одного IP. Если нужно разделить VPN клиентов.
2. Ставим прокси, например Dante, можно попробовать через Docker, в котором также прописываем пользователей и пароли.
3. Весь трафик Клиента VPN перенаправляем (или как то перехватываем) на наш прокси через iptables. Что возможно не обязательно - в браузерах сразу можно прописать адрес сервера.