Repository navigation
nordvpn: init at 5.2.0 - #406725
nordvpn: init at 5.2.0#406725different-error wants to merge 1 commit into
Conversation
drupol
left a comment
There was a problem hiding this comment.
Hello,
Thanks for your first PR.
I made some feedback, let me know if you need some help.
|
For such a security relevant package such as a vpn software, we should build from source if possible. This would also allow us to patch out quirks such as relying on /usr |
Your claims about salts are valid and correct! My earlier statement was based on an incorrect misunderstanding, and I've updated the comment accordingly. Another way to address quirks is to make changes directly in the NordVPN repository, which was my implicit assumption for the next release. I could update this to build from scratch, but I don’t see the added security benefit. All other Linux distributions download from |
You are right that most distributions fetch the However, the key issue here is trust and verifiability. At the moment, there's no reliable way to verify that the binaries provided on One of the strengths of Nix is its focus on reproducibility. Building from source allows us (most of the time) to produce reproducible outputs. This enables a verifiable 1-to-1 mapping between the source code and the resulting binaries, which significantly improves the security of the software supply chain. Fortunately, thanks to recent community efforts, we’re getting close to being able to build the client fully from source. That’s why I believe it’s worth pushing in that direction. |
Gotcha. A malicious attacker might somehow tamper with their binaries. Building from source is the secure way to go. Ok, will do, thanks! |
|
Modified the package to build from source instead of extracting the .deb file. Verified that core features function correctly. Thank you all for your time! |
6a79c37 to
30f70e6
Compare
|
I've reduced privileges by using a dedicated Additionally, the One more thing, Thanks again for the review! |
|
Ok, I think the previous build passed because of some cache weirdness. Strangely when I had tested the binary, it spat out that the binary had used version 4.3.1. Anyway, latest commits use the correct vendor and src hashes for 4.3.1. |
|
Attempting to build nordvpn's flutter gui. You can find what I have so far here. It does not build atm, complains with the following error: Seems like I need to add |
|
I've added flutter gui support to the package and removed the salt. Also to avoid rebuilding the cli twice, I've separated out the package into cli.nix and gui.nix. I had to patch their linux CMakeLists.txt to use pkgconfig to find the correct x11 path. Tested and verified that both standalone package and module work as intended over openvpn and nordlynx.
I intend to work on incorporating meshnet next which I would start on Dec 26th. Hopefully not too difficult thanks to the prior efforts of @dimkNevidimk! |
|
meshnet progress update:
https://github.com/different-error/nixpkgs/tree/nordvpn-meshnet https://github.com/different-error/nixpkgs/tree/nordvpn-meshnet/pkgs/by-name/li/libtelio |
|
update:
Surprisingly, I don't see "meshnet" in the nordvpn settings. https://github.com/different-error/nixpkgs/tree/nordvpn-meshnet I've caught the flu. I intend to get back to this when I feel healthy enough to do so. |
|
Sorry for not replying earlier, but I think NordVPN team dropped meshnet support completely: |
They changed their mind and decided to keep it. |
|
I could use some help getting meshnet working. Please base your changes around my feature branch |
I will take a look when I get home from holiday travel (in a couple of hours) 👌 TL;DR: I got Meshnet working, but it tries to edit /etc/hosts, which causes permission errors. If anyone knows a clean way to grant write permissions to /etc/hosts, it would be great. Another solution is to send a patch with a --no-ns-hosts flag to the upstream repo so we can disable the write attempts and handle hostnames declaratively. |
|
Some nits. Tested successful connection using the GUI. While progress with meshnet continues, seeing that including it would cause this PR to increase significantly in size, I think we should PR the current changes without meshnet support and include meshnet in the next PR. I presently intend to break this PR into smaller, newer ones to facilitate review. |
|
Updated to version 4.5.0 |
|
There are merge conflicts. |
|
Updated to 5.0.0 |
|
NordVPN 5.1.0 |
|
NordVPN 5.2.0 |
|
This branch has conflicts that must be resolved. |
|
|
Closing this pr since it has two review requests with write access from reviewers no longer active with the pr. I can open another pr for the module shortly after. |
|
New module pr #538312 (same commit). Ty |
|
|
Hey folks, update on meshnet:
Thanks to @andersonjoseph and @dimkNevidimk for the initial groundwork on meshnet! |
|
Update:
|
|
Hey folks, an update on Meshnet: You can use the changes in the unmerged nordvpn-mesh branch. This contains the changes found in the aforementioned PRs #549793 and #547437, along with the changes in my pepper branch for upstream nordvpn-linux. NordSecurity/nordvpn-linux#1648 tracks the ongoing discussion with upstream to merge NixOS-relevant features and fixes for Meshnet. I haven't explored all the features of Meshnet and have only experimented with fileshare, which should work. In the meantime, feel free to use nordvpn-meshnet in your flake: inputs = {
# ...
nordvpn-meshnet.url = "github:different-error/nixpkgs/nordvpn-meshnet";
};
outputs =
{
self,
nordvpn-meshnet,
...
}:
let
# ...
pkgs-nordvpn = import nordvpn-meshnet { inherit system; };
nordvpnModule = {
disabledModules = [ "services/networking/nordvpn.nix" ];
imports = [ "${nordvpn-meshnet}/nixos/modules/services/networking/nordvpn.nix" ];
nixpkgs.overlays = [
(_final: _prev: { nordvpn = pkgs-nordvpn.nordvpn; })
];
};
in
# ...
nixpkgs-unstable.lib.nixosSystem {
# ...
modules = [
nordvpnModule
# ...
];
}and note the corresponding new firewall and networking configuration: networking.firewall = {
enable = true;
};
networking.hosts = {
"1.2.3.4" = [ "peer1" ];
};No need to set 🍻 |
|
Upstream 5.4.0 is out: Happy to test a bump PR on NixOS 26.05 + Plasma if you open one. |
|
Updates:
|
|
would you open the PR for nordvpn 6.0.1 @different-error ? seems the bot would not work for major releases. |
|
hello @different-error. could you check ZHF? nixos/tests/nordvpn fails only on aarch64-linux: verify_kernel_modules_loaded() asserts tun is listed by lsmod, but on aarch64 CONFIG_TUN=y (built-in), so it never appears there. x86_64 passes, and the package/module itself build fine — this is a test-only failure added by #547437 (introduced in the current ZHF run #584347). |



Add the popular NordVPN to NixOS. Tested using the following configuration:
The configuration was tested by running:
There is another PR (#220616) for NordVPN, which is over two years old and has been stale for a year. Additionally, there are issues requesting NordVPN support for NixOS here and here.
I chose to extract the .deb package instead of building from source
to avoid modifying or leaking the salt. Meshnet is not yet supported, but core NordVPN features work. I’ll create another PR once the Meshnet issues are resolved.Things done
nix.conf? (See Nix manual)sandbox = relaxedsandbox = truenix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/)Note: I use Claude btw.
Add a 👍 reaction to pull requests you find important.