Re: trust authentication behavior

From: Kohei KaiGai <kaigai(at)kaigai(dot)gr(dot)jp>
To: Denis Kirjanov <kda(at)itsirius(dot)su>
Cc: Robert Haas <robertmhaas(at)gmail(dot)com>, "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>, PgHacker <pgsql-hackers(at)postgresql(dot)org>, Kohei KaiGai <kaigai(at)ak(dot)jp(dot)nec(dot)com>, Alexey Zhuchkov <alexey(at)itsirius(dot)su>
Subject: Re: trust authentication behavior
Date: 2015-05-18 12:15:22
Message-ID: CADyhKSW8ob30JN-6Asoj=1ibhCBJUR9u9CzsROD37Wym2gzzLA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

2015-05-18 15:15 GMT+09:00 Denis Kirjanov <kda(at)itsirius(dot)su>:
>
>
> ----- Ursprüngliche Mail -----
> Von: "Kohei KaiGai" <kaigai(at)kaigai(dot)gr(dot)jp>
> An: "Robert Haas" <robertmhaas(at)gmail(dot)com>
> CC: "David G. Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>, "Denis Kirjanov" <kda(at)itsirius(dot)su>, pgsql-hackers(at)postgresql(dot)org, "Kohei KaiGai" <kaigai(at)ak(dot)jp(dot)nec(dot)com>
> Gesendet: Samstag, 16. Mai 2015 03:32:55
> Betreff: Re: [HACKERS] trust authentication behavior
>
> 2015-05-16 5:13 GMT+09:00 Robert Haas <robertmhaas(at)gmail(dot)com>:
>> On Thu, May 14, 2015 at 3:52 PM, David G. Johnston
>> <david(dot)g(dot)johnston(at)gmail(dot)com> wrote:
>>> On Thu, May 14, 2015 at 12:22 PM, Denis Kirjanov <kda(at)itsirius(dot)su> wrote:
>>>>
>>>> Yeah, but the idea is to do that without the pg_hba.conf
>>>
>>> You may want to try describing the problem and not just ask if the chosen
>>> solution is possible - of which I am doubtful but I have never used selinux
>>> or studied it in any depth. pg_hba.conf is the chosen tool for this kind of
>>> thing so pointing out why it cannot be used is a much more useful first
>>> step.
>>
>> In mandatory access control systems like SE-Linux, the system security
>> policy is supposed to centralize all security decisions, and it should
>> be possible to enforce any necessary access control rule by modifying
>> that policy. At least that's my understanding. sepgsql lets the
>> kernel's mandatory access control policies filter down into access
>> control decisions that PostgreSQL makes. sepgsql consults the
>> operating system policy when faced with an access control decision of
>> a type that it supports, and accepts or rejects the connect based on
>> that.
>>
>> So the question is whether the sepgsql integration points include
>> anything that can block a connection, rather than, say, allowing the
>> connection but blocking access to particular tables. Looking at the
>> code, it appears that it vaguely contemplates a db_database:{access}
>> permission, which sounds like about the right thing, and it's also
>> mentioned at https://wiki.postgresql.org/wiki/SEPostgreSQL/Permissions#Connection
>> as maybe being the right thing, but I can't find anyplace that it is
>> actually enforce. That's rather disappointing...
>>
>> KaiGai, any thoughts?
>>
> I'd like to understand what Denis Kirjanov actually wants to do
> first of all.
>
> If he wants to control accesses whole of the PostgreSQL instances
> according to the credential on operating system, it is a configuration
> on operating system side.
> He can write up self security policy module that allows "someone_t"
> domain to connect PostgreSQL instance, not per database basis.
> It is permission around the pair of someone_t and postgresql_t, than
> can be wrapped up by postgresql_stream_connect() in selinux's policy.
>
> If he wants to control accesses per database basis based on selinux
> policy, it is a right choice to consider sepgsql module.
> However, some of permissions are not still implemented, like
> db_database:{access} because of priority of permissions (and I had to
> focus on GPU acceleration infrastructure in v9.5 cycle...).
>
> If he wants to control accesses based on the credential of operating
> system, not limited to selinux, IDENT method is available, isn't it?
>
> Also, he may additionally needs labeled networking configuration,
> if he wants to carry security label information over the TCP/IP
> connection. It is a point to be considered for his requirement.
>
> Thanks,
> --
> KaiGai Kohei <kaigai(at)kaigai(dot)gr(dot)jp>
> ----- Ursprüngliche Mail -----
>
>
> The idea is to put all the security decisions into the selinux policy.
>
Yep, it is fundamental idea of sepgsql module.

> As I wrote before it concerns the security label command behavior(done through the policy) and
> the incoming connections (for now it's incoming remove trust-based)
>
Are you concerning about client's security label when connection
comes over TCP/IP network? Or, something other concern??

If you want to get client's label over tcp/ip network, you need
additional configuration on peer-to-peer ipsec to exchange security
label over the network.
Elsewhere, selinux also offers a mechanism to assign client's
security label based on the source ip address.

If you have other concern, please introduce it.

Thanks,
--
KaiGai Kohei <kaigai(at)kaigai(dot)gr(dot)jp>

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Andrew Dunstan 2015-05-18 12:17:02 Re: Bug in jsonb minus operator
Previous Message Andrew Dunstan 2015-05-18 12:05:03 Re: jsonb concatenate operator's semantics seem questionable