aboutsummaryrefslogtreecommitdiff
path: root/tharos/security.nix
diff options
context:
space:
mode:
Diffstat (limited to 'tharos/security.nix')
-rw-r--r--tharos/security.nix46
1 files changed, 46 insertions, 0 deletions
diff --git a/tharos/security.nix b/tharos/security.nix
new file mode 100644
index 0000000..03b59dc
--- /dev/null
+++ b/tharos/security.nix
@@ -0,0 +1,46 @@
+{
+ self,
+ inputs,
+ ...
+}:
+{
+ flake.machines.tharos = {
+ nixos =
+ {
+ lib,
+ modulesPath,
+ ...
+ }:
+ {
+ # Kein Login für Nutzer die nicht explizit deklariert sind
+ users.mutableUsers = false;
+ users.users = lib.mapAttrs (username: keyFiles: {
+ isNormalUser = true;
+ openssh.authorizedKeys.keyFiles = keyFiles;
+ # ANMERKUNG: Der Einfachheit halber sind bis auf Weiteres alle Nutzer mit SSH-Zugang auch Administratoren
+ extraGroups = [ "wheel" ];
+ }) self.keys;
+
+ /*
+ `sudo` über SSH ohne Passworteingabe
+ ANMERKUNG: Nutzer sollten in ihrem ` ~/.ssh/config` für die Maschine einstellen:
+
+ ForwardAgent: yes
+ */
+ security.pam.sshAgentAuth.enable = true;
+ security.pam.services.sudo.sshAgentAuth = true;
+
+ # Nur Administratoren können den angemeldeten Benutzer wechseln
+ security.pam.services.su.requireWheel = true;
+
+ networking.firewall.allowPing = true;
+ services.openssh = {
+ enable = true;
+ settings = {
+ PasswordAuthentication = false;
+ PermitRootLogin = "prohibit-password";
+ };
+ };
+ };
+ };
+}