ProtonVPN App 4.2 setup guide

Original forum link
https://forum.qubes-os.org/t/23694
Original poster
Solène R
Created at
2024-01-12 19:02:03
Last wiki edit
2025-01-20 10:07:39
Revisions
4 revisions
Posts count
66
Likes count
64

Intro

This guide explains how to setup a a VPN with ProtonVPN app on Qubes OS 4.2 using a Fedora template.

A cool thing with ProtonVPN is that they have a Free offer, although it comes with limitations it's nice. They seem also a legit service to use as per the trustable source https://www.privacyguides.org/en/vpn/

If you want to set up a ProtonVPN using WireGuard without the App, see https://forum.qubes-os.org/t/wireguard-vpn-setup/19141

Setup

Qube creation

Qube configuration

ProtonVPN App

Killswitch configuration

ℹ️ You may want to force all qubes traffic to go through the VPN and block non-VPN traffic. ProtonVPN app offers a killswitch. However, if the app crash, the killswitch wouldn't be guaranteed to work. Here is how to make it more secure.

Add the rules below in /rw/config/qubes-firewall-user-script in the qube:

# Prevent the qube to forward traffic outside of the VPN
nft add rule qubes custom-forward oifname eth0 counter drop
nft add rule ip6 qubes custom-forward oifname eth0 counter drop

Optional hardening: Avoid DNS leaks when no killswitch.

ℹ️ If you did not setup the killswitch, you may want to redirect all DNS queries to a custom server (9.9.9.9 in the current example) and blocking all other DNS servers.

# Redirect all the DNS traffic to the preferred DNS server
DNS=9.9.9.9
nft add chain qubes nat { type nat hook prerouting priority dstnat\; }
nft add rule qubes nat iifname == "vif*" tcp dport 53 dnat "$DNS"
nft add rule qubes nat iifname == "vif*" udp dport 53 dnat "$DNS"