Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Postgres FD Implementation
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Abuhujair Javed
Postgres FD Implementation
Commits
bcb0ccf5
Commit
bcb0ccf5
authored
Aug 16, 2001
by
Bruce Momjian
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add new MD5 pg_hba.conf keyword. Prevent fallback to crypt.
parent
f7eedfdf
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
44 additions
and
34 deletions
+44
-34
doc/src/sgml/client-auth.sgml
doc/src/sgml/client-auth.sgml
+23
-12
doc/src/sgml/jdbc.sgml
doc/src/sgml/jdbc.sgml
+2
-2
src/backend/libpq/auth.c
src/backend/libpq/auth.c
+6
-9
src/backend/libpq/hba.c
src/backend/libpq/hba.c
+4
-3
src/backend/libpq/pg_hba.conf.sample
src/backend/libpq/pg_hba.conf.sample
+7
-5
src/include/libpq/hba.h
src/include/libpq/hba.h
+2
-3
No files found.
doc/src/sgml/client-auth.sgml
View file @
bcb0ccf5
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/client-auth.sgml,v 1.1
6 2001/08/15 18:42:14
momjian Exp $ -->
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/client-auth.sgml,v 1.1
7 2001/08/16 16:24:15
momjian Exp $ -->
<chapter id="client-authentication">
<chapter id="client-authentication">
<title>Client Authentication</title>
<title>Client Authentication</title>
...
@@ -194,25 +194,36 @@ hostssl <replaceable>database</replaceable> <replaceable>IP-address</replaceable
...
@@ -194,25 +194,36 @@ hostssl <replaceable>database</replaceable> <replaceable>IP-address</replaceable
<para>
<para>
The password is sent over the wire in clear text. For better
The password is sent over the wire in clear text. For better
protection, use the <literal>crypt</literal> method.
protection, use the <literal>md5</literal> or
<literal>crypt</literal> methods.
</para>
</para>
</listitem>
</listitem>
</varlistentry>
</varlistentry>
<varlistentry>
<varlistentry>
<term>
crypt
</>
<term>
md5
</>
<listitem>
<listitem>
<para>
<para>
Like the <literal>password</literal> method, but the password
Like the <literal>password</literal> method, but the password
is sent over the wire encrypted using a simple
is sent over the wire encrypted using a simple
challenge-response protocol. This protects against incidental
challenge-response protocol. This protects against incidental
wire-sniffing. The name of a file may follow the
wire-sniffing. The name of a file may follow the
<literal>
crypt
</literal> keyword. It contains a list of users
<literal>
md5
</literal> keyword. It contains a list of users
for this record.
for this record.
</para>
</para>
</listitem>
</listitem>
</varlistentry>
</varlistentry>
<varlistentry>
<term>crypt</>
<listitem>
<para>
Like the <literal>md5</literal> method but uses older crypt
authentication for pre-7.2 clients.
</para>
</listitem>
</varlistentry>
<varlistentry>
<varlistentry>
<term>krb4</>
<term>krb4</>
<listitem>
<listitem>
...
@@ -328,7 +339,7 @@ host template1 192.168.93.0 255.255.255.0 ident sameuser
...
@@ -328,7 +339,7 @@ host template1 192.168.93.0 255.255.255.0 ident sameuser
# Allow a user from host 192.168.12.10 to connect to database "template1"
# Allow a user from host 192.168.12.10 to connect to database "template1"
# if the user's password in pg_shadow is correctly supplied:
# if the user's password in pg_shadow is correctly supplied:
host template1 192.168.12.10 255.255.255.255
crypt
host template1 192.168.12.10 255.255.255.255
md5
# In the absence of preceding "host" lines, these two lines will reject
# In the absence of preceding "host" lines, these two lines will reject
# all connection attempts from 192.168.54.1 (since that entry will be
# all connection attempts from 192.168.54.1 (since that entry will be
...
@@ -377,11 +388,11 @@ host all 192.168.0.0 255.255.0.0 ident omicron
...
@@ -377,11 +388,11 @@ host all 192.168.0.0 255.255.0.0 ident omicron
</para>
</para>
<para>
<para>
To restrict the set of users that are allowed to connect to
To restrict the set of users that are allowed to connect to
certain
certain databases, list the set of users in a separate file (on
e
databases, list the set of users in a separate file (one user nam
e
user name per line) in the same directory that
per line) in the same directory that <filename>pg_hba.conf</> is in,
<filename>pg_hba.conf</> is in, and mention the (base) name of
the
and mention the (base) name of the file after
the
file after the <literal>password</>
or <literal>crypt</> keyword,
<literal>password</>, <literal>md5</>,
or <literal>crypt</> keyword,
respectively, in <filename>pg_hba.conf</>. If you do not use this
respectively, in <filename>pg_hba.conf</>. If you do not use this
feature, then any user that is known to the database system can
feature, then any user that is known to the database system can
connect to any database (so long as he passes password
connect to any database (so long as he passes password
...
@@ -414,8 +425,8 @@ host all 192.168.0.0 255.255.0.0 ident omicron
...
@@ -414,8 +425,8 @@ host all 192.168.0.0 255.255.0.0 ident omicron
</para>
</para>
<para>
<para>
Alternative passwords cannot be used when using the
Alternative passwords cannot be used when using the
<literal>md5</>
<literal>crypt</> method
. The file will still be evaluated as
or <literal>crypt</> methods
. The file will still be evaluated as
usual but the password field will simply be ignored and the
usual but the password field will simply be ignored and the
<literal>pg_shadow</> password will be used.
<literal>pg_shadow</> password will be used.
</para>
</para>
...
...
doc/src/sgml/jdbc.sgml
View file @
bcb0ccf5
<!--
<!--
$Header: /cvsroot/pgsql/doc/src/sgml/Attic/jdbc.sgml,v 1.2
0 2001/03/11 11:06:59 petere
Exp $
$Header: /cvsroot/pgsql/doc/src/sgml/Attic/jdbc.sgml,v 1.2
1 2001/08/16 16:24:15 momjian
Exp $
-->
-->
<chapter id="jdbc">
<chapter id="jdbc">
...
@@ -162,7 +162,7 @@ java uk.org.retep.finder.Main
...
@@ -162,7 +162,7 @@ java uk.org.retep.finder.Main
<filename>pg_hba.conf</filename> file may need to be configured.
<filename>pg_hba.conf</filename> file may need to be configured.
Refer to the <citetitle>Administrator's Guide</citetitle> for
Refer to the <citetitle>Administrator's Guide</citetitle> for
details. The <acronym>JDBC</acronym> Driver supports trust,
details. The <acronym>JDBC</acronym> Driver supports trust,
ident, password, and crypt authentication methods.
ident, password, and
md5,
crypt authentication methods.
</para>
</para>
</sect2>
</sect2>
</sect1>
</sect1>
...
...
src/backend/libpq/auth.c
View file @
bcb0ccf5
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
*
*
*
*
* IDENTIFICATION
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/libpq/auth.c,v 1.5
8 2001/08/16 04:27:18
momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/libpq/auth.c,v 1.5
9 2001/08/16 16:24:15
momjian Exp $
*
*
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*/
*/
...
@@ -501,19 +501,16 @@ ClientAuthentication(Port *port)
...
@@ -501,19 +501,16 @@ ClientAuthentication(Port *port)
status
=
recv_and_check_password_packet
(
port
);
status
=
recv_and_check_password_packet
(
port
);
break
;
break
;
case
uaMD5
:
sendAuthRequest
(
port
,
AUTH_REQ_MD5
);
if
((
status
=
recv_and_check_password_packet
(
port
))
==
STATUS_OK
)
break
;
port
->
auth_method
=
uaCrypt
;
/* Try crypt() for old client */
/* FALL THROUGH */
case
uaCrypt
:
case
uaCrypt
:
sendAuthRequest
(
port
,
AUTH_REQ_CRYPT
);
sendAuthRequest
(
port
,
AUTH_REQ_CRYPT
);
status
=
recv_and_check_password_packet
(
port
);
status
=
recv_and_check_password_packet
(
port
);
break
;
break
;
case
uaMD5
:
sendAuthRequest
(
port
,
AUTH_REQ_MD5
);
status
=
recv_and_check_password_packet
(
port
);
break
;
case
uaTrust
:
case
uaTrust
:
status
=
STATUS_OK
;
status
=
STATUS_OK
;
break
;
break
;
...
...
src/backend/libpq/hba.c
View file @
bcb0ccf5
...
@@ -10,7 +10,7 @@
...
@@ -10,7 +10,7 @@
*
*
*
*
* IDENTIFICATION
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/libpq/hba.c,v 1.6
3 2001/08/16 04:27:18
momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/libpq/hba.c,v 1.6
4 2001/08/16 16:24:15
momjian Exp $
*
*
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*/
*/
...
@@ -226,9 +226,10 @@ parse_hba_auth(List *line, ProtocolVersion proto, UserAuth *userauth_p,
...
@@ -226,9 +226,10 @@ parse_hba_auth(List *line, ProtocolVersion proto, UserAuth *userauth_p,
*
userauth_p
=
uaKrb5
;
*
userauth_p
=
uaKrb5
;
else
if
(
strcmp
(
token
,
"reject"
)
==
0
)
else
if
(
strcmp
(
token
,
"reject"
)
==
0
)
*
userauth_p
=
uaReject
;
*
userauth_p
=
uaReject
;
else
if
(
strcmp
(
token
,
"crypt"
)
==
0
)
else
if
(
strcmp
(
token
,
"md5"
)
==
0
)
/* Try MD5 first; on failure, switch to crypt() */
*
userauth_p
=
uaMD5
;
*
userauth_p
=
uaMD5
;
else
if
(
strcmp
(
token
,
"crypt"
)
==
0
)
*
userauth_p
=
uaCrypt
;
else
else
*
error_p
=
true
;
*
error_p
=
true
;
line
=
lnext
(
line
);
line
=
lnext
(
line
);
...
...
src/backend/libpq/pg_hba.conf.sample
View file @
bcb0ccf5
...
@@ -115,13 +115,15 @@
...
@@ -115,13 +115,15 @@
# utility. Remember, these passwords override pg_shadow
# utility. Remember, these passwords override pg_shadow
# passwords.
# passwords.
#
#
#
crypt
: Same as "password", but authentication is done by
#
md5
: Same as "password", but authentication is done by
# encrypting the password sent over the network. This is
# encrypting the password sent over the network. This is
# always preferable to "password" except for old clients
# always preferable to "password" except for old clients
# that don't support "crypt". Also, crypt can use
# that don't support it. Also, md5 can use usernames stored
# usernames stored in secondary password files but not
# in secondary password files but not secondary passwords.
# secondary passwords.
#
#
# crypt: Same as "md5", but uses crypt for pre-7.2 clients. You can
# not store encrypted passwords if you use this option.
#
# ident: For TCP/IP connections, authentication is done by contacting
# ident: For TCP/IP connections, authentication is done by contacting
# the ident server on the client host. (CAUTION: this is only
# the ident server on the client host. (CAUTION: this is only
# as secure as the client machine!) On machines that support
# as secure as the client machine!) On machines that support
...
@@ -173,7 +175,7 @@
...
@@ -173,7 +175,7 @@
# if the user's password in pg_shadow is correctly supplied:
# if the user's password in pg_shadow is correctly supplied:
#
#
# TYPE DATABASE IP_ADDRESS MASK AUTH_TYPE AUTH_ARGUMENT
# TYPE DATABASE IP_ADDRESS MASK AUTH_TYPE AUTH_ARGUMENT
# host template1 192.168.12.10 255.255.255.255
crypt
# host template1 192.168.12.10 255.255.255.255
md5
#
#
# In the absence of preceding "host" lines, these two lines will reject
# In the absence of preceding "host" lines, these two lines will reject
# all connection from 192.168.54.1 (since that entry will be matched
# all connection from 192.168.54.1 (since that entry will be matched
...
...
src/include/libpq/hba.h
View file @
bcb0ccf5
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
* Interface to hba.c
* Interface to hba.c
*
*
*
*
* $Id: hba.h,v 1.2
3 2001/08/15 18:42:15
momjian Exp $
* $Id: hba.h,v 1.2
4 2001/08/16 16:24:16
momjian Exp $
*
*
*-------------------------------------------------------------------------
*-------------------------------------------------------------------------
*/
*/
...
@@ -36,8 +36,7 @@ typedef enum UserAuth
...
@@ -36,8 +36,7 @@ typedef enum UserAuth
uaIdent
,
uaIdent
,
uaPassword
,
uaPassword
,
uaCrypt
,
uaCrypt
,
uaMD5
/* This starts as uaCrypt from pg_hba.conf, but gets
uaMD5
overridden if the client supports MD5 */
}
UserAuth
;
}
UserAuth
;
typedef
struct
Port
hbaPort
;
typedef
struct
Port
hbaPort
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment