Re: [patch] krb5 authentication on multihomed server hosts - Mailing list pgsql-bugs

From Bruce Momjian
Subject Re: [patch] krb5 authentication on multihomed server hosts
Date
Msg-id 200509300114.j8U1EMV20554@candle.pha.pa.us
Whole thread Raw
In response to [patch] krb5 authentication on multihomed server hosts  (Martin Pitt <martin@piware.de>)
List pgsql-bugs
I think this is fixed in CVS and will be in 8.1.  We now have in
postgresql.conf:

    # Kerberos
    #krb_server_keyfile = ''
    #krb_srvname = 'postgres'
    #krb_server_hostname = '(any)'          # if not set, matches any keytab entry
    #krb_caseins_users = off


---------------------------------------------------------------------------

Martin Pitt wrote:
-- Start of PGP signed section.
> Hi!
>
> I recently got a Debian bug report [1] that says:
>
>   "It is not always possible to use krb5 authentication to a server
>   that is listening on multiple interfaces other than to the 'primary'
>   interface.
>
>   More specifically: src/backend/libpq/auth.c pg_krb5_init() fills in
>   the pg_krb5_server principal with a call to krb5_sname_to_principal
>   with NULL as the second argument (the hostname argument).  This
>   invokes the hostname canonicalisation behaviour in the kerberos
>   library which has insufficient information to be able to return the
>   correct answer in all cases."
>
> The bug report describes this a little deeper with a detailled
> example. The reporter also proposes a patch, which I copied below for
> your convenience. It looks pretty sane and is relatively unintrusive.
> However, since I don't know much about Kerberos, I'd like to hear
> another opinion.
>
> Since this is by no way Debian specific, would you be interested to
> fix this upstream as well?
>
> Thanks for considering and have a nice day!
>
> Martin
>
> --------------- snip -------------------
> --- postgresql-7.4.7-old/src/backend/libpq/auth.c    2003-12-20 18:25:02.000000000 +0000
> +++ postgresql-7.4.7/src/backend/libpq/auth.c    2005-07-25 19:55:26.000000000 +0100
> @@ -216,8 +216,18 @@
>          return STATUS_ERROR;
>      }
>
> -    retval = krb5_sname_to_principal(pg_krb5_context, NULL, PG_KRB_SRVNAM,
> +    if( VirtualHost && VirtualHost[0] )
> +    {
> +        char *host=VirtualHost;
> +        while(*host==' ') host++; /* skip leading spaces (cf postmaster.c) */
> +        retval = krb5_sname_to_principal(pg_krb5_context, host, PG_KRB_SRVNAM,
> +                                     KRB5_NT_SRV_HST, &pg_krb5_server);
> +    }
> +    else
> +    {
> +        retval = krb5_sname_to_principal(pg_krb5_context, NULL, PG_KRB_SRVNAM,
>                                       KRB5_NT_SRV_HST, &pg_krb5_server);
> +    }
>      if (retval)
>      {
>          ereport(LOG,
> --------------- snip -------------------
>
>
> [1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=320049
>
> --
> Martin Pitt        http://www.piware.de
> Ubuntu Developer   http://www.ubuntu.com
> Debian Developer   http://www.debian.org
>
> In a world without walls and fences, who needs Windows and Gates?
-- End of PGP section, PGP failed!

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

pgsql-bugs by date:

Previous
From: vishal saberwal
Date:
Subject: Re: Column Name parameter problem
Next
From: "Sorin Schwimmer"
Date:
Subject: BUG #1922: bit string of calculated length