ppm.example revision 1.1.1.2 1 # Example of ppm configuration
2
3 # Such configuration must be stored into pwdCheckModuleArg attribute
4 # of a password policy entry
5 # See slapo-ppolicy for more details
6 # Here is an example of such password policy:
7 # dn: cn=default,ou=policies,dc=my-domain,dc=com
8 # objectClass: pwdPolicy
9 # objectClass: top
10 # objectClass: pwdPolicyChecker
11 # objectClass: person
12 # pwdCheckQuality: 2
13 # pwdAttribute: userPassword
14 # sn: default
15 # cn: default
16 # pwdMinLength: 6
17 # pwdCheckModule: /usr/local/lib/ppm.so
18 # pwdCheckModuleArg:: bWluUXVhbGl0eSAzCmNoZWNrUkROIDAKY2hlY2tBdHRyaWJ1dGVzCmZvcmJpZGRlbkNoYXJzCm1heENvbnNlY3V0aXZlUGVyQ2xhc3MgMAp1c2VDcmFja2xpYiAwCmNyYWNrbGliRGljdCAvdmFyL2NhY2hlL2NyYWNrbGliL2NyYWNrbGliX2RpY3QKY2xhc3MtdXBwZXJDYXNlIEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIDAgMSAwCmNsYXNzLWxvd2VyQ2FzZSBhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiAwIDEgMApjbGFzcy1kaWdpdCAwMTIzNDU2Nzg5IDAgMSAwCmNsYXNzLXNwZWNpYWwgPD4sPzsuOi8hwqfDuSUqwrVewqgkwqPCsibDqX4iIyd7KFstfMOoYF9cw6dew6BAKV3CsD19KyAwIDEgMAo=
19 #
20 # Different parameters are separated by a linefeed (\n)
21 # Parameters starting with a # are ignored
22 # Use a base64 tool to code / decode the content of pwdCheckModuleArg
23
24
25
26 # Parameters
27
28 # minQuality parameter
29 # Format:
30 # minQuality [NUMBER]
31 # Description:
32 # One point is granted for each class for which MIN_FOR_POINT criteria is fulfilled.
33 # defines the minimum point numbers for the password to be accepted.
34 minQuality 3
35
36 # checkRDN parameter
37 # Format:
38 # checkRDN [0 | 1]
39 # Description:
40 # If set to 1, password must not contain a token from the RDN.
41 # Tokens are separated by these delimiters : space tabulation _ - , ;
42 checkRDN 0
43
44 # checkAttributes parameter
45 # Format:
46 # checkAttributes [ATTR1,ATTR2,...]
47 # Description:
48 # Password must not contain a token from the values in the given list of attributes
49 # Tokens are substrings of the values of the given attributes,
50 # delimited by: space tabulation _ - , ; @
51 # For example, if uid="the wonderful entry",
52 # password must not contain "the", nor "wonderful", nor "entry"
53 checkAttributes
54
55 # forbiddenChars parameter
56 # Format:
57 # forbiddenChars [CHARACTERS_FORBIDDEN]
58 # Description:
59 # Defines the forbidden characters list (no separator).
60 # If one of them is found in the password, then it is rejected.
61 forbiddenChars
62
63 # maxConsecutivePerClass parameter
64 # Format:
65 # maxConsecutivePerClass [NUMBER]
66 # Description:
67 # Defines the maximum number of consecutive character allowed for any class
68 maxConsecutivePerClass 0
69
70 # useCracklib parameter
71 # Format:
72 # useCracklib [0 | 1]
73 # Description:
74 # If set to 1, the password must pass the cracklib check
75 useCracklib 0
76
77 # cracklibDict parameter
78 # Format:
79 # cracklibDict [path_to_cracklib_dictionary]
80 # Description:
81 # directory+filename-prefix that your version of CrackLib will go hunting for
82 # For example, /var/pw_dict resolves as /var/pw_dict.pwd,
83 # /var/pw_dict.pwi and /var/pw_dict.hwm dictionary files
84 cracklibDict /var/cache/cracklib/cracklib_dict
85
86 # classes parameter
87 # Format:
88 # class-[CLASS_NAME] [CHARACTERS_DEFINING_CLASS] [MIN] [MIN_FOR_POINT]
89 # Description:
90 # [CHARACTERS_DEFINING_CLASS]: characters defining the class (no separator)
91 # [MIN]: If at least [MIN] characters of this class is not found in the password, then it is rejected
92 # [MIN_FOR_POINT]: one point is granted if password contains at least [MIN_FOR_POINT] character numbers of this class
93 # [MAX]: if > [MAX] occurrences of characters from this class are found, then the password is rejected (0 means no maximum)
94 class-upperCase ABCDEFGHIJKLMNOPQRSTUVWXYZ 0 1 0
95 class-lowerCase abcdefghijklmnopqrstuvwxyz 0 1 0
96 class-digit 0123456789 0 1 0
97 class-special <>,?;.:/!%*^$&~"#'{([-|`_\^@)]=}+ 0 1 0
98