I noticed that after loss/re-establish of network connection (or suspend/resume cycle) the DNS settings were NOT restored by nordvpnd, leading to a DNS leak to whatever DNS servers are configured/used in non-VPN state. I investigated, and found:
nordvpn set technology openvpn
If openresolv is being used on the machine, then DNS settings are NOT restored on auto-reconnect. It is necessary to do 'nordvpn disconnect' and 'nordvpn connect' again to restore them.
If systemd-resolved is enabled (see https://wiki.archlinux.org/index.php/Systemd-resolved) and configured to use the stub resolver (ln -s /run/systemd/resolve/stub-resolv.conf) then DNS settings are correctly restored. nordvpnd is aware of the network connection status and performs an automatic reconnect.
The reason for the above behaviour I guess is because the .deb file used is designed for/tested on Ubuntu, which uses systemd-resolved by default.
nordvpn set technology nordlynx
If the nordlynx/wiregard technology is used the DNS settings are NOT restored after suspend/resume or network disconnect/reconnect. In nordlynx mode, nordvpnd seems not aware of network status and does not perform a reconnect. This applies both on Arch and an Ubuntu VM I used for testing.
In short if using nordvpn-bin, best use openvpn and systemd-resolved, otherwise if you forget to manually disconnect/reconnect nordvpn (for example after a suspend/resume) all DNS queries will be leaked outside the tunnel.
Pinned Comments
Mxzcabel commented on 2023-03-23 20:37 (UTC) (edited on 2024-11-21 01:57 (UTC) by Mxzcabel)
"Please, do not flag this package as out-of-date until there's the official release on Github page."
"Maybe the announcement is delayed, but wait for some other possible forward release, which is patching the previous one before the actual publishing."
Note from 3.19.1:
The repository's hierarchy has been updated and a slightly divergence comes with it. It was from:
/debian/pool/main
To now as:
/debian/pool/main/n/nordvpn
Any previous commits you may like to try in the future will need a manual mediation to replace old links in favor of the new ones.
Note from 3.19.0:
This version introduces new libraries being used by NordVPN. I have created symbolic links and committed a patch for it not interposing with already existing libraries (like sqlite3). Although this is not a big deal, If you, however, upgraded nordvpn-bin before the fix and noticed some library-related issue from sqlite lately, I suggest reinstalling the affected package.
Note from 3.17.4v:
The previous bug exposing DNS servers is fixed.
Note from 3.17.3v:
Caution! This version needs heed while using it and should be avoided. I strongly advice downgrading to 3.17.2 and wait for a new version or patching. Some big problems are:
There's DNS leak present. Your original ISP servers can be exposed, as reported already on #343 issue.
Unable to connect on nordvpn servers. Your journal might show the follow output:
networker setting dns: setting dns with resolvectl: setting dns with resolvectl: Failed to set DNS configuration: Could not activate remote peer: activation request failed: unknown unit.: exit status 1
Also huge thanks for the community warnings in prior comments before I could've noticed all.
Note from 3.16.2v:
As the published note from the version above has mentioned on Github's page:
Please, consider using a token to logging in from now on.
Note from 3.16.0v:
The 'countries.dat' may differ between versions. Be aware to remove the file before upgrading the package.
martoko commented on 2020-12-20 09:10 (UTC) (edited on 2020-12-20 09:12 (UTC) by martoko)
If you're seeing the message "Daemon is unreachable, is systemd running?", then one of two things is probably happening.
The nordvpn daemon might not be started
Start it using:
sudo systemctl enable --now nordvpnd
You might not have been added to the nordvpn group
Add yourself:
sudo gpasswd -a USERNAME nordvpn
And then restart in order for the group to be created:
reboot