Мое решение (работеает уже давно). Работает на всем, что шевелится - Андроиды, Windows, Макинтоши.
SSH тоннель с ключами, защищенными пасскодами.
-ставим сервер с выходом в инет на белом IP
-отрубаем вход под рутом
-отрубаем шелл
-вешаем ssh на рандомный порт
-всем юзерам делаем персональные учетки, генерим ключи
На машине клиента (домашней):
нужен батник из одной строчки, программа plink.exe и закрытая часть ключа.
plink -P ПОРТ -l ЛОГИН -i КЛЮЧ_ЗАКРЫТЫЙ.PPH -N -L 23389:МАШИНА_КЛИЕНТА_В_ОФИСЕ:3389 АДРЕС_ШЛЮЗА_В_ИНЕТЕ
pause
Клиент у себя врубает батник, вводит пасскод от ключа и подключается на адрес типа 127.0.0.1:23389, а SSH его уже туннелит куда надо.
Есть процедуры, позволяющие сгенерить ключи без визита сотрудников в офис.