app armor и se linux или cgroups, это правильный но сложный вариант, гуглится даже проект
соответствующий там в описании ссылки на подробнее информацию
И да, это сложно.
Но есть ОЧЕНЬ простое решение - виртуализация/контейнеризация!
OpenVPN запускаешь внутри виртуальной машины (мышевозекательно libvirt + lxc, не требует ресурсов для работы), внутри этой песочницы поднимаешь ssh сервер (чтобы на его основе работал socks прокси, так как это встроенная фича, нужно на машине где нужен интернет подключиться к ssh серверу с ключом -D1080 и получишь socks proxy с портом 1080) либо какой-нибудь http прокси, и вот браузер запускаешь с настройкой этой прокси, при необходимости хост машину вообще можно от интернета отключить.
Так же можно и firefox в lxc запустить (сложно настраивать графику, но можно пользоваться графически сервером хост машины, настроив DISPLAY и права доступа xhost)
Этот способ очень хорошо изолирует приложение и очень прост в настройке, заметно проще чем фаервол