{ pkgs, inputs, config, keys, ... }: { users.users.ai-worker = { isSystemUser = true; group = "ai-worker"; home = "/home/ai-worker"; createHome = true; extraGroups = [ "docker" ]; shell = pkgs.bashInteractive; openssh.authorizedKeys.keys = [ keys.users.ai-worker.main ]; # No password login - SSH key only hashedPassword = "!"; }; users.groups.ai-worker = {}; # Enable restricted AI worker SSH access for ollama benchmarking # SECURITY: ai-worker can only: # - SSH into host from Hermes container # - Run docker commands (docker exec ollama ...) via docker group # - Run specific security audit commands # - NO access to infra repo (no bind mount) # - NO sudo access (no nh, nixos-rebuild, nixpkgs-fmt, nix) # WORKFLOW: SSH from Hermes container, run docker benchmarks, return and save results to /opt/data/ai-optimizer/ services.aiWorkerAccess = true; # Restricted sudo for ai-worker - security checks only security.sudo.extraRules = [ { users = [ "ai-worker" ]; commands = [ # Firewall checks { command = "/run/wrappers/bin/sudo iptables -L -n -v"; options = [ "NOPASSWD" ]; } { command = "/run/wrappers/bin/sudo iptables -S"; options = [ "NOPASSWD" ]; } # Fail2ban status { command = "/run/current-system/sw/bin/fail2ban-client status"; options = [ "NOPASSWD" ]; } { command = "/run/current-system/sw/bin/fail2ban-client status *"; options = [ "NOPASSWD" ]; } { command = "/run/current-system/sw/bin/fail2ban-client get * banned"; options = [ "NOPASSWD" ]; } # Log inspection { command = "/run/current-system/sw/bin/journalctl -t kernel -n 100"; options = [ "NOPASSWD" ]; } { command = "/run/current-system/sw/bin/journalctl -u fail2ban -n 50"; options = [ "NOPASSWD" ]; } { command = "/run/current-system/sw/bin/journalctl -u firewall -n 50"; options = [ "NOPASSWD" ]; } # SSH config verification { command = "/run/current-system/sw/bin/sshd -T"; options = [ "NOPASSWD" ]; } # Docker service checks { command = "/run/current-system/sw/bin/docker ps"; options = [ "NOPASSWD" ]; } { command = "/run/current-system/sw/bin/docker inspect *"; options = [ "NOPASSWD" ]; } # Network diagnostics { command = "/run/current-system/sw/bin/ss -tlnp"; options = [ "NOPASSWD" ]; } { command = "/run/current-system/sw/bin/cat /proc/net/tcp"; options = [ "NOPASSWD" ]; } ]; } ]; }