]> granicus.if.org Git - sudo/commitdiff
TLS_CACERT is now an alias for TLS_CACERTFILE. OpenLDAP uses TLS_CACERT,
authorTodd C. Miller <Todd.Miller@courtesan.com>
Thu, 8 Jul 2010 13:00:13 +0000 (09:00 -0400)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Thu, 8 Jul 2010 13:00:13 +0000 (09:00 -0400)
not TLS_CACERTFILE in its ldap.conf.  Other LDAP client code, such as
nss_ldap, uses TLS_CACERTFILE.  Also document why you should avoid
disabling TLS_CHECKPEER is possible.

--HG--
branch : 1.7

ldap.c
sudoers.ldap.cat
sudoers.ldap.man.in
sudoers.ldap.pod

diff --git a/ldap.c b/ldap.c
index 6bde360a3dc1478b6dcb9040a4e73fdbda68d1b9..9554df22e8c4ad5637510b0f819f174b151e3249 100644 (file)
--- a/ldap.c
+++ b/ldap.c
@@ -183,6 +183,8 @@ static struct ldap_config_table ldap_conf_table[] = {
 #ifdef LDAP_OPT_X_TLS_CACERTFILE
     { "tls_cacertfile", CONF_STR, FALSE, LDAP_OPT_X_TLS_CACERTFILE,
        &ldap_conf.tls_cacertfile },
+    { "tls_cacert", CONF_STR, FALSE, LDAP_OPT_X_TLS_CACERTFILE,
+       &ldap_conf.tls_cacertfile },
 #endif
 #ifdef LDAP_OPT_X_TLS_CACERTDIR
     { "tls_cacertdir", CONF_STR, FALSE, LDAP_OPT_X_TLS_CACERTDIR,
index e43a8b7740edfb72d5752530f44a4ca2f036e664..7e79cee151c0c025ec24fd58a2155ac18b382f21 100644 (file)
@@ -9,7 +9,7 @@ N\bNA\bAM\bME\bE
 
 D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
        In addition to the standard _\bs_\bu_\bd_\bo_\be_\br_\bs file, s\bsu\bud\bdo\bo may be configured via
-       LAP.  This can be especially useful for synchronizing _\bs_\bu_\bd_\bo_\be_\br_\bs in a
+       LDAP.  This can be especially useful for synchronizing _\bs_\bu_\bd_\bo_\be_\br_\bs in a
        large, distributed environment.
 
        Using LDAP for _\bs_\bu_\bd_\bo_\be_\br_\bs has several benefits:
@@ -61,7 +61,7 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
 
 
 
-1.7.3                     June 29, 2010                         1
+1.7.3                     July  8, 2010                         1
 
 
 
@@ -127,7 +127,7 @@ SUDOERS.LDAP(4)        MAINTENANCE COMMANDS       SUDOERS.LDAP(4)
 
 
 
-1.7.3                     June 29, 2010                         2
+1.7.3                     July  8, 2010                         2
 
 
 
@@ -193,7 +193,7 @@ SUDOERS.LDAP(4)        MAINTENANCE COMMANDS       SUDOERS.LDAP(4)
 
 
 
-1.7.3                     June 29, 2010                         3
+1.7.3                     July  8, 2010                         3
 
 
 
@@ -259,7 +259,7 @@ SUDOERS.LDAP(4)        MAINTENANCE COMMANDS       SUDOERS.LDAP(4)
 
 
 
-1.7.3                     June 29, 2010                         4
+1.7.3                     July  8, 2010                         4
 
 
 
@@ -325,7 +325,7 @@ SUDOERS.LDAP(4)        MAINTENANCE COMMANDS       SUDOERS.LDAP(4)
 
 
 
-1.7.3                     June 29, 2010                         5
+1.7.3                     July  8, 2010                         5
 
 
 
@@ -369,29 +369,29 @@ SUDOERS.LDAP(4)        MAINTENANCE COMMANDS       SUDOERS.LDAP(4)
            certificated to be verified.  If the server's TLS certificate
            cannot be verified (usually because it is signed by an unknown
            certificate authority), s\bsu\bud\bdo\bo will be unable to connect to it.  If
-           T\bTL\bLS\bS_\b_C\bCH\bHE\bEC\bCK\bKP\bPE\bEE\bER\bR is disabled, no check is made.
+           T\bTL\bLS\bS_\b_C\bCH\bHE\bEC\bCK\bKP\bPE\bEE\bER\bR is disabled, no check is made.  Note that disabling
+           the check creates an opportunity for man-in-the-middle attacks
+           since the server's identity will not be authenticated.  If
+           possible, the CA's certificate should be installed locally so it
+           can be verified.
+
+       T\bTL\bLS\bS_\b_C\bCA\bAC\bCE\bER\bRT\bT file name
+           An alias for T\bTL\bLS\bS_\b_C\bCA\bAC\bCE\bER\bRT\bTF\bFI\bIL\bLE\bE.
 
        T\bTL\bLS\bS_\b_C\bCA\bAC\bCE\bER\bRT\bTF\bFI\bIL\bLE\bE file name
            The path to a certificate authority bundle which contains the
            certificates for all the Certificate Authorities the client knows
            to be valid, e.g. _\b/_\be_\bt_\bc_\b/_\bs_\bs_\bl_\b/_\bc_\ba_\b-_\bb_\bu_\bn_\bd_\bl_\be_\b._\bp_\be_\bm.  This option is only
-           supported by the OpenLDAP libraries.
+           supported by the OpenLDAP libraries.  Netscape-derived LDAP
+           libraries use the same certificate database for CA and client
+           certificates (see T\bTL\bLS\bS_\b_C\bCE\bER\bRT\bT).
 
        T\bTL\bLS\bS_\b_C\bCA\bAC\bCE\bER\bRT\bTD\bDI\bIR\bR directory
            Similar to T\bTL\bLS\bS_\b_C\bCA\bAC\bCE\bER\bRT\bTF\bFI\bIL\bLE\bE but instead of a file, it is a directory
-           containing individual Certificate Authority certificates, e.g.
-           _\b/_\be_\bt_\bc_\b/_\bs_\bs_\bl_\b/_\bc_\be_\br_\bt_\bs.  The directory specified by T\bTL\bLS\bS_\b_C\bCA\bAC\bCE\bER\bRT\bTD\bDI\bIR\bR is
-           checked after T\bTL\bLS\bS_\b_C\bCA\bAC\bCE\bER\bRT\bTF\bFI\bIL\bLE\bE.  This option is only supported by the
-           OpenLDAP libraries.
-
-       T\bTL\bLS\bS_\b_C\bCE\bER\bRT\bT file name
-           The path to a file containing the client certificate which can be
-           used to authenticate the client to the LDAP server.  The
-           certificate type depends on the LDAP libraries used.
 
 
 
-1.7.3                     June 29, 2010                         6
+1.7.3                     July  8, 2010                         6
 
 
 
@@ -400,6 +400,16 @@ SUDOERS.LDAP(4)        MAINTENANCE COMMANDS       SUDOERS.LDAP(4)
 SUDOERS.LDAP(4)        MAINTENANCE COMMANDS       SUDOERS.LDAP(4)
 
 
+           containing individual Certificate Authority certificates, e.g.
+           _\b/_\be_\bt_\bc_\b/_\bs_\bs_\bl_\b/_\bc_\be_\br_\bt_\bs.  The directory specified by T\bTL\bLS\bS_\b_C\bCA\bAC\bCE\bER\bRT\bTD\bDI\bIR\bR is
+           checked after T\bTL\bLS\bS_\b_C\bCA\bAC\bCE\bER\bRT\bTF\bFI\bIL\bLE\bE.  This option is only supported by the
+           OpenLDAP libraries.
+
+       T\bTL\bLS\bS_\b_C\bCE\bER\bRT\bT file name
+           The path to a file containing the client certificate which can be
+           used to authenticate the client to the LDAP server.  The
+           certificate type depends on the LDAP libraries used.
+
            OpenLDAP:
                tls_cert /etc/ssl/client_cert.pem
 
@@ -444,27 +454,28 @@ SUDOERS.LDAP(4)        MAINTENANCE COMMANDS       SUDOERS.LDAP(4)
            Enable R\bRO\bOO\bOT\bTU\bUS\bSE\bE_\b_S\bSA\bAS\bSL\bL to enable SASL authentication when connecting
            to an LDAP server from a privileged process, such as s\bsu\bud\bdo\bo.
 
-       R\bRO\bOO\bOT\bTS\bSA\bAS\bSL\bL_\b_A\bAU\bUT\bTH\bH_\b_I\bID\bD identity
-           The SASL user name to use when R\bRO\bOO\bOT\bTU\bUS\bSE\bE_\b_S\bSA\bAS\bSL\bL is enabled.
 
-       S\bSA\bAS\bSL\bL_\b_S\bSE\bEC\bCP\bPR\bRO\bOP\bPS\bS none/properties
-           SASL security properties or _\bn_\bo_\bn_\be for no properties.  See the SASL
-           programmer's manual for details.
 
-       K\bKR\bRB\bB5\b5_\b_C\bCC\bCN\bNA\bAM\bME\bE file name
-           The path to the Kerberos 5 credential cache to use when
-           authenticating with the remote server.
 
+1.7.3                     July  8, 2010                         7
 
 
-1.7.3                     June 29, 2010                         7
 
 
 
+SUDOERS.LDAP(4)        MAINTENANCE COMMANDS       SUDOERS.LDAP(4)
 
 
-SUDOERS.LDAP(4)        MAINTENANCE COMMANDS       SUDOERS.LDAP(4)
+       R\bRO\bOO\bOT\bTS\bSA\bAS\bSL\bL_\b_A\bAU\bUT\bTH\bH_\b_I\bID\bD identity
+           The SASL user name to use when R\bRO\bOO\bOT\bTU\bUS\bSE\bE_\b_S\bSA\bAS\bSL\bL is enabled.
 
+       S\bSA\bAS\bSL\bL_\b_S\bSE\bEC\bCP\bPR\bRO\bOP\bPS\bS none/properties
+           SASL security properties or _\bn_\bo_\bn_\be for no properties.  See the SASL
+           programmer's manual for details.
+
+       K\bKR\bRB\bB5\b5_\b_C\bCC\bCN\bNA\bAM\bME\bE file name
+           The path to the Kerberos 5 credential cache to use when
+           authenticating with the remote server.
 
        See the ldap.conf entry in the EXAMPLES section.
 
@@ -510,27 +521,27 @@ SUDOERS.LDAP(4)        MAINTENANCE COMMANDS       SUDOERS.LDAP(4)
        To consult LDAP first followed by the local sudoers file (if it
        exists), use:
 
-           sudoers = ldap, files
 
-       The local _\bs_\bu_\bd_\bo_\be_\br_\bs file can be ignored completely by using:
 
-           sudoers = ldap
+1.7.3                     July  8, 2010                         8
 
-       To treat LDAP as authoratative and only use the local sudoers file if
-       the user is not present in LDAP, use:
 
-           sudoers = ldap = auth, files
 
 
 
-1.7.3                     June 29, 2010                         8
+SUDOERS.LDAP(4)        MAINTENANCE COMMANDS       SUDOERS.LDAP(4)
 
 
+           sudoers = ldap, files
 
+       The local _\bs_\bu_\bd_\bo_\be_\br_\bs file can be ignored completely by using:
 
+           sudoers = ldap
 
-SUDOERS.LDAP(4)        MAINTENANCE COMMANDS       SUDOERS.LDAP(4)
+       To treat LDAP as authoratative and only use the local sudoers file if
+       the user is not present in LDAP, use:
 
+           sudoers = ldap = auth, files
 
        Note that in the above example, the auth qualfier only affects user
        lookups; both LDAP and _\bs_\bu_\bd_\bo_\be_\br_\bs will be queried for Defaults entries.
@@ -575,21 +586,10 @@ E\bEX\bXA\bAM\bMP\bPL\bLE\bES\bS
          #
          # verbose sudoers matching from ldap
          #sudoers_debug 2
-         #
-         # optional proxy credentials
-         #binddn        <who to search as>
-         #bindpw        <password>
-         #rootbinddn    <who to search as, uses /etc/ldap.secret for bindpw>
-         #
-         # LDAP protocol version, defaults to 3
-         #ldap_version 3
-         #
-         # Define if you want to use an encrypted LDAP connection.
-         # Typically, you must also set the port to 636 (ldaps).
 
 
 
-1.7.3                     June 29, 2010                         9
+1.7.3                     July  8, 2010                         9
 
 
 
@@ -598,6 +598,17 @@ E\bEX\bXA\bAM\bMP\bPL\bLE\bES\bS
 SUDOERS.LDAP(4)        MAINTENANCE COMMANDS       SUDOERS.LDAP(4)
 
 
+         #
+         # optional proxy credentials
+         #binddn        <who to search as>
+         #bindpw        <password>
+         #rootbinddn    <who to search as, uses /etc/ldap.secret for bindpw>
+         #
+         # LDAP protocol version, defaults to 3
+         #ldap_version 3
+         #
+         # Define if you want to use an encrypted LDAP connection.
+         # Typically, you must also set the port to 636 (ldaps).
          #ssl on
          #
          # Define if you want to use port 389 and switch to
@@ -641,21 +652,10 @@ SUDOERS.LDAP(4)        MAINTENANCE COMMANDS       SUDOERS.LDAP(4)
          # For OpenLDAP:
          #tls_cert /etc/certs/client_cert.pem
          #tls_key  /etc/certs/client_key.pem
-         #
-         # For SunONE or iPlanet LDAP, tls_cert and tls_key may specify either
-         # a directory, in which case the files in the directory must have the
-         # default names (e.g. cert8.db and key4.db), or the path to the cert
-         # and key files themselves.  However, a bug in version 5.0 of the LDAP
-         # SDK will prevent specific file names from working.  For this reason
-         # it is suggested that tls_cert and tls_key be set to a directory,
-         # not a file name.
-         #
-         # The certificate database specified by tls_cert may contain CA certs
-         # and/or the client's cert.  If the client's cert is included, tls_key
 
 
 
-1.7.3                     June 29, 2010                        10
+1.7.3                     July  8, 2010                        10
 
 
 
@@ -664,6 +664,17 @@ SUDOERS.LDAP(4)        MAINTENANCE COMMANDS       SUDOERS.LDAP(4)
 SUDOERS.LDAP(4)        MAINTENANCE COMMANDS       SUDOERS.LDAP(4)
 
 
+         #
+         # For SunONE or iPlanet LDAP, tls_cert and tls_key may specify either
+         # a directory, in which case the files in the directory must have the
+         # default names (e.g. cert8.db and key4.db), or the path to the cert
+         # and key files themselves.  However, a bug in version 5.0 of the LDAP
+         # SDK will prevent specific file names from working.  For this reason
+         # it is suggested that tls_cert and tls_key be set to a directory,
+         # not a file name.
+         #
+         # The certificate database specified by tls_cert may contain CA certs
+         # and/or the client's cert.  If the client's cert is included, tls_key
          # should be specified as well.
          # For backward compatibility, "sslpath" may be used in place of tls_cert.
          #tls_cert /var/ldap
@@ -708,28 +719,28 @@ SUDOERS.LDAP(4)        MAINTENANCE COMMANDS       SUDOERS.LDAP(4)
            EQUALITY caseExactIA5Match
            SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
 
-        attributetype ( 1.3.6.1.4.1.15953.9.1.5
-           NAME 'sudoOption'
-           DESC 'Options(s) followed by sudo'
-           EQUALITY caseExactIA5Match
-           SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
 
-        attributetype ( 1.3.6.1.4.1.15953.9.1.6
-           NAME 'sudoRunAsUser'
-           DESC 'User(s) impersonated by sudo'
-           EQUALITY caseExactIA5Match
 
+1.7.3                     July  8, 2010                        11
 
 
-1.7.3                     June 29, 2010                        11
 
 
 
+SUDOERS.LDAP(4)        MAINTENANCE COMMANDS       SUDOERS.LDAP(4)
 
 
-SUDOERS.LDAP(4)        MAINTENANCE COMMANDS       SUDOERS.LDAP(4)
 
+        attributetype ( 1.3.6.1.4.1.15953.9.1.5
+           NAME 'sudoOption'
+           DESC 'Options(s) followed by sudo'
+           EQUALITY caseExactIA5Match
+           SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
 
+        attributetype ( 1.3.6.1.4.1.15953.9.1.6
+           NAME 'sudoRunAsUser'
+           DESC 'User(s) impersonated by sudo'
+           EQUALITY caseExactIA5Match
            SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
 
         attributetype ( 1.3.6.1.4.1.15953.9.1.7
@@ -776,17 +787,6 @@ D\bDI\bIS\bSC\bCL\bLA\bAI\bIM\bME\bER\bR
 
 
 
-
-
-
-
-
-
-
-
-
-
-
-1.7.3                     June 29, 2010                        12
+1.7.3                     July  8, 2010                        12
 
 
index 7d2ceab77c4e4f770b3446705cd2d14f29b5066f..2c7262027a5b4700fd66418a2a0b7a3293e9f139 100644 (file)
 .\" ========================================================================
 .\"
 .IX Title "SUDOERS.LDAP @mansectform@"
-.TH SUDOERS.LDAP @mansectform@ "June 29, 2010" "1.7.3" "MAINTENANCE COMMANDS"
+.TH SUDOERS.LDAP @mansectform@ "July  8, 2010" "1.7.3" "MAINTENANCE COMMANDS"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -150,7 +150,7 @@ sudoers.ldap \- sudo LDAP configuration
 .SH "DESCRIPTION"
 .IX Header "DESCRIPTION"
 In addition to the standard \fIsudoers\fR file, \fBsudo\fR may be configured
-via \s-1LAP\s0.  This can be especially useful for synchronizing \fIsudoers\fR
+via \s-1LDAP\s0.  This can be especially useful for synchronizing \fIsudoers\fR
 in a large, distributed environment.
 .PP
 Using \s-1LDAP\s0 for \fIsudoers\fR has several benefits:
@@ -455,13 +455,21 @@ If enabled, \fB\s-1TLS_CHECKPEER\s0\fR will cause the \s-1LDAP\s0 server's \s-1T
 certificated to be verified.  If the server's \s-1TLS\s0 certificate cannot
 be verified (usually because it is signed by an unknown certificate
 authority), \fBsudo\fR will be unable to connect to it.  If \fB\s-1TLS_CHECKPEER\s0\fR
-is disabled, no check is made.
+is disabled, no check is made.  Note that disabling the check creates
+an opportunity for man-in-the-middle attacks since the server's
+identity will not be authenticated.  If possible, the \s-1CA\s0's certificate
+should be installed locally so it can be verified.
+.IP "\fB\s-1TLS_CACERT\s0\fR file name" 4
+.IX Item "TLS_CACERT file name"
+An alias for \fB\s-1TLS_CACERTFILE\s0\fR.
 .IP "\fB\s-1TLS_CACERTFILE\s0\fR file name" 4
 .IX Item "TLS_CACERTFILE file name"
 The path to a certificate authority bundle which contains the certificates
 for all the Certificate Authorities the client knows to be valid,
 e.g. \fI/etc/ssl/ca\-bundle.pem\fR.
 This option is only supported by the OpenLDAP libraries.
+Netscape-derived \s-1LDAP\s0 libraries use the same certificate
+database for \s-1CA\s0 and client certificates (see \fB\s-1TLS_CERT\s0\fR).
 .IP "\fB\s-1TLS_CACERTDIR\s0\fR directory" 4
 .IX Item "TLS_CACERTDIR directory"
 Similar to \fB\s-1TLS_CACERTFILE\s0\fR but instead of a file, it is a
index b614f9000e8de52efa24b1278c59397defaa9b8b..f7a39c93425dc183ddd141d5f72dcc5cd8ab9e29 100644 (file)
@@ -363,7 +363,14 @@ If enabled, B<TLS_CHECKPEER> will cause the LDAP server's TLS
 certificated to be verified.  If the server's TLS certificate cannot
 be verified (usually because it is signed by an unknown certificate
 authority), B<sudo> will be unable to connect to it.  If B<TLS_CHECKPEER>
-is disabled, no check is made.
+is disabled, no check is made.  Note that disabling the check creates
+an opportunity for man-in-the-middle attacks since the server's
+identity will not be authenticated.  If possible, the CA's certificate
+should be installed locally so it can be verified.
+
+=item B<TLS_CACERT> file name
+
+An alias for B<TLS_CACERTFILE>.
 
 =item B<TLS_CACERTFILE> file name
 
@@ -371,6 +378,8 @@ The path to a certificate authority bundle which contains the certificates
 for all the Certificate Authorities the client knows to be valid,
 e.g. F</etc/ssl/ca-bundle.pem>.
 This option is only supported by the OpenLDAP libraries.
+Netscape-derived LDAP libraries use the same certificate
+database for CA and client certificates (see B<TLS_CERT>).
 
 =item B<TLS_CACERTDIR> directory