1LDAP.CONF(5) File Formats Manual LDAP.CONF(5)
2
3
4
6 ldap.conf, .ldaprc - LDAP configuration file/environment variables
7
9 /etc/openldap/ldap.conf, ldaprc, .ldaprc, $LDAP<option-name>
10
12 If the environment variable LDAPNOINIT is defined, all defaulting is
13 disabled.
14
15 The ldap.conf configuration file is used to set system-wide defaults to
16 be applied when running ldap clients.
17
18 Users may create an optional configuration file, ldaprc or .ldaprc, in
19 their home directory which will be used to override the system-wide de‐
20 faults file. The file ldaprc in the current working directory is also
21 used.
22
23 Additional configuration files can be specified using the LDAPCONF and
24 LDAPRC environment variables. LDAPCONF may be set to the path of a
25 configuration file. This path can be absolute or relative to the cur‐
26 rent working directory. The LDAPRC, if defined, should be the basename
27 of a file in the current working directory or in the user's home direc‐
28 tory.
29
30 Environmental variables may also be used to augment the file based de‐
31 faults. The name of the variable is the option name with an added pre‐
32 fix of LDAP. For example, to define BASE via the environment, set the
33 variable LDAPBASE to the desired value.
34
35 Some options are user-only. Such options are ignored if present in the
36 ldap.conf (or file specified by LDAPCONF).
37
38 Thus the following files and variables are read, in order:
39 variable $LDAPNOINIT, and if that is not set:
40 system file /etc/openldap/ldap.conf,
41 user files $HOME/ldaprc, $HOME/.ldaprc, ./ldaprc,
42 system file $LDAPCONF,
43 user files $HOME/$LDAPRC, $HOME/.$LDAPRC, ./$LDAPRC,
44 variables $LDAP<uppercase option name>.
45 Settings late in the list override earlier ones.
46
48 The configuration options are case-insensitive; their value, on a case
49 by case basis, may be case-sensitive.
50
51 Blank lines are ignored.
52 Lines beginning with a hash mark (`#') are comments, and ignored.
53
54 Valid lines are made of an option's name (a sequence of non-blanks,
55 conventionally written in uppercase, although not required), followed
56 by a value. The value starts with the first non-blank character after
57 the option's name, and terminates at the end of the line, or at the
58 last sequence of blanks before the end of the line. The tokenization
59 of the value, if any, is delegated to the handler(s) for that option,
60 if any. Quoting values that contain blanks may be incorrect, as the
61 quotes would become part of the value. For example,
62
63 # Wrong - erroneous quotes:
64 URI "ldap:// ldaps://"
65
66 # Right - space-separated list of URIs, without quotes:
67 URI ldap:// ldaps://
68
69 # Right - DN syntax needs quoting for Example, Inc:
70 BASE ou=IT staff,o="Example, Inc",c=US
71 # or:
72 BASE ou=IT staff,o=Example\2C Inc,c=US
73
74 # Wrong - comment on same line as option:
75 DEREF never # Never follow aliases
76
77 A line cannot be longer than LINE_MAX, which should be more than 2000
78 bytes on all platforms. There is no mechanism to split a long line on
79 multiple lines, either for beautification or to overcome the above
80 limit.
81
83 The different configuration options are:
84
85 URI <ldap[si]://[name[:port]] ...>
86 Specifies the URI(s) of an LDAP server(s) to which the LDAP li‐
87 brary should connect. The URI scheme may be any of ldap, ldaps
88 or ldapi, which refer to LDAP over TCP, LDAP over SSL (TLS) and
89 LDAP over IPC (UNIX domain sockets), respectively. Each
90 server's name can be specified as a domain-style name or an IP
91 address literal. Optionally, the server's name can followed by
92 a ':' and the port number the LDAP server is listening on. If
93 no port number is provided, the default port for the scheme is
94 used (389 for ldap://, 636 for ldaps://). For LDAP over IPC,
95 name is the name of the socket, and no port is required, nor al‐
96 lowed; note that directory separators must be URL-encoded, like
97 any other characters that are special to URLs; so the socket
98
99 /usr/local/var/ldapi
100
101 must be specified as
102
103 ldapi://%2Fusr%2Flocal%2Fvar%2Fldapi
104
105 A space separated list of URIs may be provided.
106
107 BASE <base>
108 Specifies the default base DN to use when performing ldap opera‐
109 tions. The base must be specified as a Distinguished Name in
110 LDAP format.
111
112 BINDDN <dn>
113 Specifies the default bind DN to use when performing ldap opera‐
114 tions. The bind DN must be specified as a Distinguished Name in
115 LDAP format. This is a user-only option.
116
117 DEREF <when>
118 Specifies how alias dereferencing is done when performing a
119 search. The <when> can be specified as one of the following key‐
120 words:
121
122 never Aliases are never dereferenced. This is the default.
123
124 searching
125 Aliases are dereferenced in subordinates of the base ob‐
126 ject, but not in locating the base object of the search.
127
128 finding
129 Aliases are only dereferenced when locating the base ob‐
130 ject of the search.
131
132 always Aliases are dereferenced both in searching and in locat‐
133 ing the base object of the search.
134
135
136 HOST <name[:port] ...>
137 Specifies the name(s) of an LDAP server(s) to which the LDAP li‐
138 brary should connect. Each server's name can be specified as a
139 domain-style name or an IP address and optionally followed by a
140 ':' and the port number the ldap server is listening on. A
141 space separated list of hosts may be provided. HOST is depre‐
142 cated in favor of URI.
143
144 KEEPALIVE_IDLE
145 Sets/gets the number of seconds a connection needs to remain
146 idle before TCP starts sending keepalive probes. Linux only.
147
148 KEEPALIVE_PROBES
149 Sets/gets the maximum number of keepalive probes TCP should send
150 before dropping the connection. Linux only.
151
152 KEEPALIVE_INTERVAL
153 Sets/gets the interval in seconds between individual keepalive
154 probes. Linux only.
155
156 NETWORK_TIMEOUT <integer>
157 Specifies the timeout (in seconds) after which the poll(2)/se‐
158 lect(2) following a connect(2) returns in case of no activity.
159
160 PORT <port>
161 Specifies the default port used when connecting to LDAP
162 servers(s). The port may be specified as a number. PORT is
163 deprecated in favor of URI.
164
165 REFERRALS <on/true/yes/off/false/no>
166 Specifies if the client should automatically follow referrals
167 returned by LDAP servers. The default is on. Note that the
168 command line tools ldapsearch(1) &co always override this op‐
169 tion.
170
171 SIZELIMIT <integer>
172 Specifies a size limit (number of entries) to use when perform‐
173 ing searches. The number should be a non-negative integer.
174 SIZELIMIT of zero (0) specifies a request for unlimited search
175 size. Please note that the server may still apply any server-
176 side limit on the amount of entries that can be returned by a
177 search operation.
178
179 SOCKET_BIND_ADDRESSES <IP>
180 Specifies the source bind IP to be used for connecting to target
181 LDAP server. Multiple IP addresses must be space separated.
182 Only one valid IPv4 address and/or one valid IPv6 address are
183 allowed in the list.
184
185 TIMELIMIT <integer>
186 Specifies a time limit (in seconds) to use when performing
187 searches. The number should be a non-negative integer. TIME‐
188 LIMIT of zero (0) specifies unlimited search time to be used.
189 Please note that the server may still apply any server-side
190 limit on the duration of a search operation.
191
192 VERSION {2|3}
193 Specifies what version of the LDAP protocol should be used.
194
195 TIMEOUT <integer>
196 Specifies a timeout (in seconds) after which calls to synchro‐
197 nous LDAP APIs will abort if no response is received. Also used
198 for any ldap_result(3) calls where a NULL timeout parameter is
199 supplied.
200
202 If OpenLDAP is built with Simple Authentication and Security Layer sup‐
203 port, there are more options you can specify.
204
205 SASL_MECH <mechanism>
206 Specifies the SASL mechanism to use.
207
208 SASL_REALM <realm>
209 Specifies the SASL realm.
210
211 SASL_AUTHCID <authcid>
212 Specifies the authentication identity. This is a user-only op‐
213 tion.
214
215 SASL_AUTHZID <authcid>
216 Specifies the proxy authorization identity. This is a user-only
217 option.
218
219 SASL_SECPROPS <properties>
220 Specifies Cyrus SASL security properties. The <properties> can
221 be specified as a comma-separated list of the following:
222
223 none (without any other properties) causes the properties de‐
224 faults ("noanonymous,noplain") to be cleared.
225
226 noplain
227 disables mechanisms susceptible to simple passive at‐
228 tacks.
229
230 noactive
231 disables mechanisms susceptible to active attacks.
232
233 nodict disables mechanisms susceptible to passive dictionary at‐
234 tacks.
235
236 noanonymous
237 disables mechanisms which support anonymous login.
238
239 forwardsec
240 requires forward secrecy between sessions.
241
242 passcred
243 requires mechanisms which pass client credentials (and
244 allows mechanisms which can pass credentials to do so).
245
246 minssf=<factor>
247 specifies the minimum acceptable security strength factor
248 as an integer approximate to effective key length used
249 for encryption. 0 (zero) implies no protection, 1 im‐
250 plies integrity protection only, 128 allows RC4, Blowfish
251 and other similar ciphers, 256 will require modern ci‐
252 phers. The default is 0.
253
254 maxssf=<factor>
255 specifies the maximum acceptable security strength factor
256 as an integer (see minssf description). The default is
257 INT_MAX.
258
259 maxbufsize=<factor>
260 specifies the maximum security layer receive buffer size
261 allowed. 0 disables security layers. The default is
262 65536.
263
264 SASL_NOCANON <on/true/yes/off/false/no>
265 Do not perform reverse DNS lookups to canonicalize SASL host
266 names. The default is off.
267
268 SASL_CBINDING <none/tls-unique/tls-endpoint>
269 The channel-binding type to use, see also LDAP_OPT_X_SASL_CBIND‐
270 ING. The default is none.
271
273 If OpenLDAP is built with Generic Security Services Application Pro‐
274 gramming Interface support, there are more options you can specify.
275
276 GSSAPI_SIGN <on/true/yes/off/false/no>
277 Specifies if GSSAPI signing (GSS_C_INTEG_FLAG) should be used.
278 The default is off.
279
280 GSSAPI_ENCRYPT <on/true/yes/off/false/no>
281 Specifies if GSSAPI encryption (GSS_C_INTEG_FLAG and
282 GSS_C_CONF_FLAG) should be used. The default is off.
283
284 GSSAPI_ALLOW_REMOTE_PRINCIPAL <on/true/yes/off/false/no>
285 Specifies if GSSAPI based authentication should try to form the
286 target principal name out of the ldapServiceName or dnsHostName
287 attribute of the targets RootDSE entry. The default is off.
288
290 If OpenLDAP is built with Transport Layer Security support, there are
291 more options you can specify. These options are used when an ldaps://
292 URI is selected (by default or otherwise) or when the application nego‐
293 tiates TLS by issuing the LDAP StartTLS operation.
294
295 When using OpenSSL, if neither TLS_CACERT nor TLS_CACERTDIR is set,
296 the system-wide default set of CA certificates is used.
297
298 TLS_CACERT <filename>
299 Specifies the file that contains certificates for all of the
300 Certificate Authorities the client will recognize.
301
302 TLS_CACERTDIR <path>
303 Specifies the path of directories that contain Certificate Au‐
304 thority certificates in separate individual files. Multiple di‐
305 rectories may be specified, separated by a semi-colon. The
306 TLS_CACERT is always used before TLS_CACERTDIR. The specified
307 directory must be managed with the OpenSSL c_rehash utility.
308
309 TLS_CERT <filename>
310 Specifies the file that contains the client certificate. This
311 is a user-only option.
312
313 TLS_ECNAME <name>
314 Specify the name of the curve(s) to use for Elliptic curve
315 Diffie-Hellman ephemeral key exchange. This option is only used
316 for OpenSSL. This option is not used with GnuTLS; the curves
317 may be chosen in the GnuTLS ciphersuite specification.
318
319 TLS_KEY <filename>
320 Specifies the file that contains the private key that matches
321 the certificate stored in the TLS_CERT file. Currently, the pri‐
322 vate key must not be protected with a password, so it is of
323 critical importance that the key file is protected carefully.
324 This is a user-only option.
325
326 TLS_CIPHER_SUITE <cipher-suite-spec>
327 Specifies acceptable cipher suite and preference order. <ci‐
328 pher-suite-spec> should be a cipher specification for the TLS
329 library in use (OpenSSL or GnuTLS). Example:
330
331 OpenSSL:
332 TLS_CIPHER_SUITE HIGH:MEDIUM:+SSLv2
333
334 GnuTLS:
335 TLS_CIPHER_SUITE SECURE256:!AES-128-CBC
336
337 To check what ciphers a given spec selects in OpenSSL, use:
338
339 openssl ciphers -v <cipher-suite-spec>
340
341 With GnuTLS the available specs can be found in the manual page
342 of gnutls-cli(1) (see the description of the option --priority).
343
344 In older versions of GnuTLS, where gnutls-cli does not support
345 the option --priority, you can obtain the — more limited — list
346 of ciphers by calling:
347
348 gnutls-cli -l
349
350 TLS_PROTOCOL_MIN <major>[.<minor>]
351 Specifies minimum SSL/TLS protocol version that will be negoti‐
352 ated. If the server doesn't support at least that version, the
353 SSL handshake will fail. To require TLS 1.x or higher, set this
354 option to 3.(x+1), e.g.,
355
356 TLS_PROTOCOL_MIN 3.2
357
358 would require TLS 1.1. Specifying a minimum that is higher than
359 that supported by the OpenLDAP implementation will result in it
360 requiring the highest level that it does support. This parame‐
361 ter is ignored with GnuTLS.
362
363 TLS_RANDFILE <filename>
364 Specifies the file to obtain random bits from when /dev/[u]ran‐
365 dom is not available. Generally set to the name of the EGD/PRNGD
366 socket. The environment variable RANDFILE can also be used to
367 specify the filename. This parameter is ignored with GnuTLS.
368
369 TLS_REQCERT <level>
370 Specifies what checks to perform on server certificates in a TLS
371 session. The <level> can be specified as one of the following
372 keywords:
373
374 never The client will not request or check any server certifi‐
375 cate.
376
377 allow The server certificate is requested. If a bad certificate
378 is provided, it will be ignored and the session proceeds
379 normally.
380
381 try The server certificate is requested. If a bad certificate
382 is provided, the session is immediately terminated.
383
384 demand | hard
385 These keywords are equivalent and the same as try. This
386 is the default setting.
387
388 TLS_REQSAN <level>
389 Specifies what checks to perform on the subjectAlternativeName
390 (SAN) extensions in a server certificate when validating the
391 certificate name against the specified hostname of the server.
392 The <level> can be specified as one of the following keywords:
393
394 never The client will not check any SAN in the certificate.
395
396 allow The SAN is checked against the specified hostname. If a
397 SAN is present but none match the specified hostname, the
398 SANs are ignored and the usual check against the certifi‐
399 cate DN is used. This is the default setting.
400
401 try The SAN is checked against the specified hostname. If no
402 SAN is present in the server certificate, the usual check
403 against the certificate DN is used. If a SAN is present
404 but doesn't match the specified hostname, the session is
405 immediately terminated. This setting may be preferred
406 when a mix of certs with and without SANs are in use.
407
408 demand | hard
409 These keywords are equivalent. The SAN is checked against
410 the specified hostname. If no SAN is present in the
411 server certificate, or no SANs match, the session is im‐
412 mediately terminated. This setting should be used when
413 only certificates with SANs are in use.
414
415 TLS_CRLCHECK <level>
416 Specifies if the Certificate Revocation List (CRL) of the CA
417 should be used to verify if the server certificates have not
418 been revoked. This requires TLS_CACERTDIR parameter to be set.
419 This parameter is ignored with GnuTLS. <level> can be specified
420 as one of the following keywords:
421
422 none No CRL checks are performed
423
424 peer Check the CRL of the peer certificate
425
426 all Check the CRL for a whole certificate chain
427
428 TLS_CRLFILE <filename>
429 Specifies the file containing a Certificate Revocation List to
430 be used to verify if the server certificates have not been re‐
431 voked. This parameter is only supported with GnuTLS.
432
434 LDAPNOINIT
435 disable all defaulting
436
437 LDAPCONF
438 path of a configuration file
439
440 LDAPRC basename of ldaprc file in $HOME or $CWD
441
442 LDAP<option-name>
443 Set <option-name> as from ldap.conf
444
446 /etc/openldap/ldap.conf
447 system-wide ldap configuration file
448
449 $HOME/ldaprc, $HOME/.ldaprc
450 user ldap configuration file
451
452 $CWD/ldaprc
453 local ldap configuration file
454
456 ldap(3), ldap_set_option(3), ldap_result(3), openssl(1), sasl(3)
457
459 Kurt Zeilenga, The OpenLDAP Project
460
462 OpenLDAP Software is developed and maintained by The OpenLDAP Project
463 <http://www.openldap.org/>. OpenLDAP Software is derived from the Uni‐
464 versity of Michigan LDAP 3.3 Release.
465
466
467
468OpenLDAP 2.6.6 2023/07/31 LDAP.CONF(5)