diff --git a/nixos/modules/services/monitoring/vnstat.nix b/nixos/modules/services/monitoring/vnstat.nix index cb2f8c07edb9..e9bedb704a43 100644 --- a/nixos/modules/services/monitoring/vnstat.nix +++ b/nixos/modules/services/monitoring/vnstat.nix @@ -28,14 +28,29 @@ in { path = [ pkgs.coreutils ]; after = [ "network.target" ]; wantedBy = [ "multi-user.target" ]; - unitConfig.documentation = "man:vnstatd(1) man:vnstat(1) man:vnstat.conf(5)"; + documentation = [ + "man:vnstatd(1)" + "man:vnstat(1)" + "man:vnstat.conf(5)" + ]; preStart = "chmod 755 /var/lib/vnstat"; serviceConfig = { ExecStart = "${pkgs.vnstat}/bin/vnstatd -n"; ExecReload = "${pkgs.procps}/bin/kill -HUP $MAINPID"; - ProtectHome = true; + + # Hardening (from upstream example service) + ProtectSystem = "strict"; + StateDirectory = "vnstat"; PrivateDevices = true; + ProtectKernelTunables = true; + ProtectControlGroups = true; + ProtectHome = true; + ProtectKernelModules = true; PrivateTmp = true; + MemoryDenyWriteExecute = true; + RestrictRealtime = true; + RestrictNamespaces = true; + User = "vnstatd"; }; }; diff --git a/pkgs/applications/networking/vnstat/default.nix b/pkgs/applications/networking/vnstat/default.nix index b384efc5fe89..7b3e62779e95 100644 --- a/pkgs/applications/networking/vnstat/default.nix +++ b/pkgs/applications/networking/vnstat/default.nix @@ -1,20 +1,25 @@ -{ stdenv, fetchurl, gd, ncurses, sqlite }: +{ stdenv, fetchurl, pkgconfig, gd, ncurses, sqlite, check }: stdenv.mkDerivation rec { - name = "vnstat-${version}"; + pname = "vnstat"; version = "2.2"; src = fetchurl { sha256 = "0b7020rlc568pz6vkiy28kl8493z88wzrn18wv9b0iq2bv1pn2n6"; - url = "https://humdi.net/vnstat/${name}.tar.gz"; + url = "https://humdi.net/${pname}/${pname}-${version}.tar.gz"; }; - buildInputs = [ gd ncurses sqlite ]; - postPatch = '' substituteInPlace src/cfg.c --replace /usr/local $out ''; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ gd ncurses sqlite ]; + + checkInputs = [ check ]; + + doCheck = true; + meta = with stdenv.lib; { description = "Console-based network statistics utility for Linux"; longDescription = ''