at 15.09-beta 1.2 kB view raw
1{pkgs, config, lib, ...}: 2 3let 4 5 inherit (lib) mkOption mkIf singleton; 6 7 inherit (pkgs) heimdal; 8 9 stateDir = "/var/heimdal"; 10in 11 12{ 13 14 ###### interface 15 16 options = { 17 18 services.kerberos_server = { 19 20 enable = mkOption { 21 default = false; 22 description = '' 23 Enable the kerberos authentification server. 24 ''; 25 }; 26 27 }; 28 29 }; 30 31 32 ###### implementation 33 34 config = mkIf config.services.kerberos_server.enable { 35 36 environment.systemPackages = [ heimdal ]; 37 38 services.xinetd.enable = true; 39 services.xinetd.services = lib.singleton 40 { name = "kerberos-adm"; 41 flags = "REUSE NAMEINARGS"; 42 protocol = "tcp"; 43 user = "root"; 44 server = "${pkgs.tcp_wrappers}/sbin/tcpd"; 45 serverArgs = "${pkgs.heimdal}/sbin/kadmind"; 46 }; 47 48 jobs.kdc = 49 { description = "Kerberos Domain Controller daemon"; 50 51 startOn = "ip-up"; 52 53 preStart = 54 '' 55 mkdir -m 0755 -p ${stateDir} 56 ''; 57 58 exec = "${heimdal}/sbin/kdc"; 59 60 }; 61 62 jobs.kpasswdd = 63 { description = "Kerberos Domain Controller daemon"; 64 65 startOn = "ip-up"; 66 67 exec = "${heimdal}/sbin/kpasswdd"; 68 }; 69 }; 70 71}