Work has been done to make VPN-Firewall [1] work with Qubes. (Currently
in the development branch [2].)
It does defeat the 'shared VPN/Tor server leak bug' [1], which to my
knowledge no other Free Software traffic fail closed mechanism for
OpenVPN based VPNs does.
> __problem description__:
>
> If a Tor entry guard is running on the same server (same IP) as the
> VPN server (same IP), and if VPN breaks down, Tor may connect
> directly to the VPN if it happened to choose that Tor relay (same IP)
> as entry guard. This is not that unlikely, because a lot VPN
> providers support VPN port forwarding, use public IPs and people host
> Tor servers behind VPN's.
>
> __(partial solution)__:
>
> (A partial solution for this to set the VPN VM's firewall rules to
> allow connections only to the VPN server. Specifying destination port
> in that firewall rule should help a lot. Some cases will not be
> solved (like VPN running on 443).)
>
> __full solution__:
>
> A full solution is to allow only user tunnel to connect to the open
> internet. All other users not.
VPN-Firewall implements the full solution.
It should currently work in Qubes Standalone AppVMs. Ready to be tested
by advanced users.
Qubes ProxyVM support is not done yet.
Support for Qubes TemplateBasedVMs is not avaialbe yet, due to some
bind-dirs.sh limitations. [5]
The instructions are quite lengthy and difficult. The complexity is
derived from the requirement to run OpenVPN as user "tunnel" so only
that user is allowed to connect to the internet. Everything else blocked.
Feedback welcome. Perhaps you have any ideas how the documentation
and/or implementation could be simplified.
If there is any interest, pre-build Debian packages of VPN-Firewall
could be created and added a (the Whonix) deb repository. That would
simplify the instructions a bit.
Related ticket:
Qubes VPN documentation limitations [4]
Cheers,
Patrick
[1]
https://www.whonix.org/wiki/VPN-Firewall
[2]
https://github.com/adrelanos/VPN-Firewall/tree/development
[3]
https://github.com/adrelanos/vpn-firewall/issues/12
[4]
https://github.com/QubesOS/qubes-issues/issues/1941
[5] TemplateBasedVMs: make selected files and folders located in the
root image persistent- review bind-dirs.sh [6]
[6]
https://groups.google.com/forum/#!topic/qubes-devel/tcYQ4eV-XX4