Re: proposed patch to rpcbind to provide finer-grained security controls than offered by the -i option

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Steve-

On Dec 10, 2010, at 10:55 AM, Steve Dickson wrote:

> On 12/10/2010 10:31 AM, Chuck Lever wrote:
>> 
>> On Dec 9, 2010, at 9:38 PM, Andrew J. Schorr wrote:
>> 
>>> On Thu, Dec 09, 2010 at 07:07:32PM -0500, Steve Dickson wrote:
>>>> 
>>>> 
>>>> On 12/09/2010 04:41 PM, Chuck Lever wrote:
>>>>> It sounds like your application is trying to use glibc's RPC 
>>>>> implementation with rpcbind.  If you build your application with 
>>>>> libtirpc instead, it should use an AF_UNIX socket to contact rpcbind 
>>>>> instead of loopback.  The AF_UNIX socket carries some authentication 
>>>>> information with the registration request.  All users of your 
>>>>> application would be allowed to set or unset RPC registrations 
>>>>> in that case.
>>> 
>>> I think you are correct.  This is probably due to some combination
>>> of ignorance and stupidity on my part.  I didn't realize that libtirpc
>>> was a drop-in replacement for the glibc RPC routines.
>>> 
>>>> I was under the impression rebuilding the applications was not
>>>> possible... but maybe I misunderstood... 
>>> 
>>> Rebuilding should be possible, I need to look into this.
>>> 
>>>> But in the end, I guess I'm not against having functionality 
>>>> like this... If it make it easier for people to port legacy
>>>> applications to Linux, its probably a good thing... 
>>> 
>>> I think the patch does add more control over rpcbind behavior, but I
>>> grant that it may be less interesting if nobody is using IP to connect
>>> from local clients.  Nonetheless, it still adds the ability to have
>>> separate control over whether to accept remote set/unset calls and
>>> whether to honor indirect/callit calls.  Unless I'm mistaken, this is
>>> still relevant even if libtirpc is used.
>> 
>> Not to put to fine a point on it, but we discourage the use of 
>> indirect RPC calls.  It's a well-known security hole.  Also, 
>> allowing anyone to set and unset RPC registrations is also 
>> insecure, and is discouraged.
> True... but its been this way for years... and always will be... 
> 
>> In general we want people to switch to using AF_UNIX for local 
>> registrations, as that is secure from remote attack, and allows 
>> rpcbind to assign ownership of the registration so that only the 
>> user who registered that service may unregister it.
> If the option of rebuilding is available, yes, people should
> switch to libtirpc... 

Andrew makes a good point.  There would be no "switch to libtirpc" if distributions had a single RPC implementation.

Is there a good reason we still have the glibc RPC implementation?  We've resolved the licensing issue already, so there's nothing stopping any Linux distribution from adding a libtirpc package.

> 
>>> So I would argue that the patch is still a good thing, but I agree that
>>> I should relink my code with libtirpc.
>> 
>> IMO we shouldn't add features that encourage people to configure 
>> rpcbind insecurely, especially when there are reasonable alternatives.
> The -i is already a securely hole... So if we are concern about it
> we should get ride of the -i completely... Or make it a useful 
> securely hole... ;-)
> 
> The point of this patch was to make it easier for people 
> to port legacy applications to Linux... If this indeed 
> is the case, I think that overrides these (self induced) 
> security issues... 

If we go with just the evidence at hand: Andrew says he can rebuild his application.  Thus, so far there is no specific requirement to expand "-i".  IMO we should wait until there is, in the most noble of Linux traditions.

-- 
Chuck Lever
chuck[dot]lever[at]oracle[dot]com




--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux