Robert Bailey wrote:

> Nah, don't care about serving at admin_low.  I have read many TX docs  
> that imply that local zones can't share NFS as a server though (due  
> to local zones not having the necessary tcp stack access/permissions).

You are misinformed. Although standard Solaris doesn't support sharing 
directories belonging to non-global zones, TX does allow this. I seem to 
answer this question on this alias about once a week. There is a dfstab 
file for each zone. Although the administration, sharing and and NFS 
service runs place in the global the share is labeled with the 
corresponding zone's label. From the client's side, you must mount it 
using the IP address of the global zone.

>
> In the end, all I want is to use TX to add extra restrictions on  
> sharing NFS to non-tx systems and TX systems.
> If you don't mind, what are the options?

As Jarrett said, we don't allow unlabeled clients to make requests at 
the admin_low label. That is an administrative label, and the unlabeled 
client is not sufficiently trusted. Similarly, we don't allow such 
clients to ssh into the global zone. If you want to NFS serve an 
unlabeled client you must assign it a label above admin_low. If you want 
the unlabeled client to be able to mount read-write via NFS, it must 
have the same label as the zone corresponding to the dfstab that 
contains that share.

--Glenn

>
>
> On Apr 21, 2007, at 5:57 PM, jarrett lu wrote:
>
>> Bob,
>>
>> TX NFS server can serve non-tx clients, but it can't server them
>> at the admin_low label. The restriction is intentional. We didn't
>> feel comforable about having non-tx clients accessing TX NFS
>> server global zone files. In your environment, must the client
>> run in admin_low default label?
>>
>> BTW, the following code in nfs4_srv.c restricts the service:
>>
>> static nfsstat4
>> do_rfs4_op_lookup(char *nm, uint_t buflen, struct svc_req *req,
>>        struct compound_state *cs)
>> {
>>    [...]                             if (!blequal(&l_admin_low- 
>> >tsl_label, clabel)) {
>>                         if (!do_rfs4_label_check(clabel, vp,  
>> DOMINANCE_CHECK))  
>> {                                                             error  
>> = EACCES;
>>                                goto err_out;
>>                        }
>>                } else {
>>                        /*
>>                         * We grant access to admin_low label clients
>>                         * only if the client is trusted, i.e. also
>>                         * running Solaris Trusted Extension.
>>                         */
>>    [...]
>>                        tp = find_tpc(ipaddr, addr_type, B_FALSE);
>>                        if (tp == NULL || tp->tpc_tp.tp_doi !=
>>                            l_admin_low->tsl_doi || tp- 
>> >tpc_tp.host_type !=
>>                            SUN_CIPSO) {
>>                                error = EACCES;
>>                                goto err_out;
>>                        }
>>    [...]
>> }
>>
>> Jarrett
>>
>>
>> Robert Bailey wrote:
>>
>>> Folks,
>>>
>>> I'm trying to setup a secured build server using TX.  I have TX up  
>>> and running fine, but run into a problem when sharing an NFS mount  
>>> from the Global ADMIN_LOW to a non-tx system.  The non-tx system  
>>> has a net label of admin_low.  Any thoughts?
>>>
>>> global and client are admin_low for files.
>>>
>>> Heres the client:
>>>
>>> tnctl -h 192.168.15.78:admin_low
>>>
>>> tninfo -h 192.168.15.78
>>> IP address= 192.168.15.78
>>> Template = admin_low
>>> I'm wondering if it could be an MLP setting - don't quite have my  
>>> head around TX yet.
>>> Here's some details
>>>
>>> All: no LDAP, just files
>>>
>>> *TX System:*
>>> hostname:  gw1, dns:  gw1.dynlab.net
>>>
>>> cat /etc/security/tsol/tnzonecfg
>>> global:ADMIN_LOW:1:111/tcp;111/udp;515/tcp;631/*tcp**;2049*/tcp; 
>>> 6000-6003/tcp:6000-6003/tcp
>>> foo:0x0002-08-08:0::
>>> bar:0x000a-08-08:0::
>>>
>>> cat /etc/dfs/dfstab
>>> share -F nfs -o  
>>> rw=tserver:tserver.dynlab.net:rlbserver,root=tserver:tserver.dynlab.n 
>>> et /scratch
>>> share -F nfs -o  
>>> rw=tserver:tserver.dynlab.net:rlbserver,root=tserver:tserver.dynlab.n 
>>> et /share/install
>>>
>>> # Yea, Word Write is just for testing - no need for soap box ;)   
>>> root owner with 700/770 same issue.
>>>
>>> ls -l /share/
>>> total 3
>>> drwxrwxrwx   2 me      sys            2 Apr 21 12:30 install
>>>
>>> /etc/default/nfs settings, all others are defaults - I changed the  
>>> range to just nfs v4 because of this issue.  Same problems using  
>>> defaults.
>>>
>>> NFSD_LISTEN_BACKLOG=32
>>> NFSD_PROTOCOL=ALL
>>> NFSD_SERVERS=16
>>> LOCKD_LISTEN_BACKLOG=32
>>> LOCKD_SERVERS=20
>>> LOCKD_RETRANSMIT_TIMEOUT=5
>>> GRACE_PERIOD=90
>>> NFS_SERVER_VERSMIN=4
>>> NFS_SERVER_VERSMAX=4
>>> NFS_CLIENT_VERSMIN=4
>>> NFS_CLIENT_VERSMAX=4
>>> NFS_SERVER_DELEGATION=on
>>>
>>> svcs -a|grep nfs
>>> disabled       13:51:43 svc:/network/nfs/client:default
>>> online         13:51:56 svc:/network/nfs/cbd:default
>>> online         13:51:57 svc:/network/nfs/status:default
>>> online         13:51:57 svc:/network/nfs/mapid:default
>>> online         13:51:57 svc:/network/nfs/nlockmgr:default
>>> online         13:51:58 svc:/network/nfs/rquota:default
>>> online         13:52:00 svc:/network/nfs/server:default
>>>
>>> *Non-TX System:*
>>> hostname: tserver, dns: tserver.dynlab.net
>>>
>>> # showmount -e gw1
>>> export list for gw1:
>>> /scratch       tserver,tserver.dynlab.net,rlbserver
>>> /share/install tserver,tserver.dynlab.net,rlbserver
>>>
>>> Both cd /net/gw1/share/install and mount -F nfs gw1:/share/ install 
>>> /foo fail.  Tried with DNS name, fail.
>>> Both systems same DNS but NFS Domain set at default value
>>>
>>> mount -F nfs  gw1.dynlab.net:/share/install /mnt
>>> nfs mount: mount: /mnt: Permission denied
>>>
>>> *Supplemental info:*
>>>
>>> Strange, but I tried the inverse using the client as a server to  
>>> the TX and the mounting worked - same nfsd settings.
>>> Also note that the net label is working, I can ssh back and forth.
>>>
>>> Thoughts?
>>>
>>> --------------------------------------------------------------------- 
>>> ---
>>>
>>> _______________________________________________
>>> security-discuss mailing list
>>> security-discuss at opensolaris.org
>>>
>>
>
> _______________________________________________
> security-discuss mailing list
> security-discuss at opensolaris.org



Reply via email to