Как настроить VPN по такой схеме?
Клиент -- это по определению то, ЧТО подключается. Т. е. является инициатором соединения.
Нет, то что вы хотите -- не реализуемо. Наоборот -- реализумо. А если вам нужно ходить через канал VPN-клиента -- то это тоже реализуемо, но не так, а ровно наоборот:
1) На сервер с белым IP устанавливается VPN-сервер. Насчёт "рандомного", правда, сомневаюсь, придётся всё-таки определиться ;-)
2) На комп с серым IP устанавливается VPN-клиент;
3) Настраивается подключение от VPN-клиента до VPN-сервера;
4) После этого, при грамотной настройке маршрутизации, можно организовать выход с VPN-сервера в интернет через интернет-канал клиента. Читать про policy based routing и multiple routing tables в Linux.
Если правильно понял, что именно вы хотите сделать, то это бэкконнект называется. 
Зависит от того, известен ли заранее IP-адрес, и если нет, технически возможны вариации, но в общем случае реализуется через ICE и STUN/TURN, dynDNS и т.п., т.е. проброс портов за NAT, а как правило использованием промежуточного скажем так "центрального сервера" для в том или ином виде (по сути тот который серый сам коннектится к заранее известному адресу).