{ options, config, lib, ... }: with lib; with lib.frajul; let cfg = config.system.security.lockdown; in { options.system.security.lockdown = { enable = mkBoolOpt false "Whether or not to lockdown the system for maximum security"; }; config = mkIf cfg.enable { # Ripped from: # https://xeiaso.net/blog/paranoid-nixos-2021-07-18/ nix.allowedUsers = [ "@wheel" ]; environment.defaultPackages = lib.mkForce [ ]; # Heres a great little piece, it disables any non defined packages for this system services.openssh = { settings.passwordAuthentication = false; allowSFTP = false; # Don't set this if you need sftp challengeResponseAuthentication = false; extraConfig = '' AllowTcpForwarding yes X11Forwarding no AllowAgentForwarding no AllowStreamLocalForwarding no AuthenticationMethods publickey ''; }; fileSystems."/".options = [ "noexec" ]; fileSystems."/etc/nixos".options = [ "noexec" ]; fileSystems."/srv".options = [ "noexec" ]; fileSystems."/var/log".options = [ "noexec" ]; environment.systemPackages = with pkgs; [ clamav ]; # PCI Compliance }; }