X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=userdir-ldap-slapd.conf.in;h=879427721b0cad07598524709954b91afc56e96c;hb=161ed5225e37d91f57f8fe846798308375505efa;hp=2e9041d9e9323d8c53b88ee7e2f756c9bbd08742;hpb=2774f019196ba06fd628c2f6099e65b0eb1ea9e4;p=mirror%2Fuserdir-ldap.git diff --git a/userdir-ldap-slapd.conf.in b/userdir-ldap-slapd.conf.in index 2e9041d..8794277 100644 --- a/userdir-ldap-slapd.conf.in +++ b/userdir-ldap-slapd.conf.in @@ -7,6 +7,17 @@ suffix "@@DN@@" # Where the database file are physically stored directory "/var/lib/ldap" +moduleload accesslog +overlay accesslog +logdb cn=log +logops writes +logold (objectclass=top) +logpurge 90+00:00 1+00:00 + +moduleload constraint +overlay constraint +constraint_attribute keyfingerprint regex ^([0-9A-F]{40})$ + # Indexing options index gecos,cn,sn,uid,ircNick,hostname,emailForward pres,eq,sub,approx index keyfingerprint,homeDirectory,objectClass,loginShell,supplementaryGid pres,eq @@ -18,22 +29,43 @@ sizelimit 10000 # Save the time that the entry gets modified lastmod on + +## +## prefix some rules that only apply to certain clients +## and grant them more privileges +## + # LDAP admins have full access, so has sshdist access to * by group="cn=LDAP Administrator,ou=users,@@DN@@" write by dn="uid=sshdist,ou=users,@@DN@@" write by * break +# allow keyring maint to write to the keyFingerPrint attribute +# (make an exception for adm for security reasons) +access to filter="(!(supplementaryGid=adm))" attrs=keyFingerPrint + by group="cn=Keyring Maintainers,ou=users,@@DN@@" write + by * break + +# allow listmasters to write to the privateSub attribute +access to attrs=privateSub + by group="cn=Listmasters,ou=users,@@DN@@" write + by self write + by * break + # allow users write access to an explicit subset of their fields -access to attrs=c,l,loginShell,ircNick,labeledURI,icqUIN,jabberJID,onVacation,birthDate,mailDisableMessage,gender,emailforward,mailCallout,mailGreylisting,mailRBL,mailRHSBL,mailWhitelist,mailContentInspectionAction,mailDefaultOptions,facsimileTelephoneNumber,telephoneNumber,postalAddress,postalCode,loginShell,onVacation,privateSub,latitude,longitude,VoIP,userPassword,sudoPassword,bATVToken +access to attrs=c,l,loginShell,ircNick,labeledURI,icqUIN,jabberJID,onVacation,birthDate,mailDisableMessage,gender,emailforward,mailCallout,mailGreylisting,mailRBL,mailRHSBL,mailWhitelist,mailContentInspectionAction,mailDefaultOptions,facsimileTelephoneNumber,telephoneNumber,postalAddress,postalCode,loginShell,onVacation,latitude,longitude,VoIP,userPassword,sudoPassword,webPassword,rtcPassword,bATVToken by self write by * break -# allow authn/z by anyone -access to attrs=userPassword,sudoPassword,bATVToken - by * compare +## +## All ACLs from here on result in a decision. no fall through to later. +## +# allow authn/z by anyone +access to attrs=userPassword,sudoPassword,webPassword,rtcPassword,bATVToken + by * compare # readable only by self access to attrs=sshrsaauthkey @@ -41,7 +73,7 @@ access to attrs=sshrsaauthkey by * none # debian.org readable, authenticated user readable -access to attrs=activity-pgp,activity-from,dnsZoneEntry,c,l,loginShell,ircNick,labeledURI,icqUIN,jabberJID,onVacation,birthDate,mailDisableMessage,gender,emailforward,mailCallout,mailGreylisting,mailRBL,mailRHSBL,mailWhitelist,mailContentInspectionAction,mailDefaultOptions +access to attrs=activity-pgp,activity-from,c,l,loginShell,onVacation,birthDate,mailDisableMessage,gender,emailforward,mailCallout,mailGreylisting,mailRBL,mailRHSBL,mailWhitelist,mailContentInspectionAction,mailDefaultOptions by peername.ip=127.0.0.1 read by domain=alioth.debian.org none by domain.subtree=@@DOMAIN@@ read @@ -49,11 +81,27 @@ access to attrs=activity-pgp,activity-from,dnsZoneEntry,c,l,loginShell,ircNick,l by * none # authenticated user readable -access to attrs=facsimileTelephoneNumber,telephoneNumber,postalAddress,postalCode,loginShell,onVacation,privateSub,latitude,longitude,VoIP +access to attrs=facsimileTelephoneNumber,telephoneNumber,postalAddress,postalCode,privateSub,latitude,longitude,VoIP by dn.regex="uid=.*,ou=users,@@DN@@" read by * none +# rest is globally readable +access to attrs=access,accountComment,accountStatus,admin,allowedGroups,allowedHost,architecture,bandwidth,cn,comment,dc,description,disk,distribution,dnsTTL,dnsZoneEntry,exportOptions,gecos,gid,gidNumber,homeDirectory,host,hostname,icqUin,ipHostNumber,ircNick,jabberJID,keyFingerPrint,labeledURI,mXRecord,machine,member,memory,mn,objectClass,ou,physicalHost,purpose,shadowExpire,shadowLastChange,shadowMax,shadowMin,shadowWarning,sn,sponsor,sponsor-admin,sshRSAHostKey,status,subGroup,supplementaryGid,uid,uidNumber + by * read -# globally readable access to * - by * read + by * none + + +database hdb +directory "/var/lib/ldap-log" +suffix cn=log +# +sizelimit 10000 + +index reqStart eq +access to * + by group="cn=LDAP Administrator,ou=users,@@DN@@" write + by dn="uid=sshdist,ou=users,@@DN@@" read + by * none +