Re: [PATCH v2 2/2] ssh: Add interface ssh_search_dir

Dominick Grift <[email protected]>
Newsgroups org.kernel.vger.selinux-refpolicy
Message-ID <[email protected]>
On Thu, Jun 20, 2019 at 06:05:57PM +0300, Alexander Miroshnichenko wrote:
> On четверг, 20 июня 2019 г. 17:50:11 MSK, Dominick Grift wrote:
> > On Thu, Jun 20, 2019 at 05:41:38PM +0300, Alexander Miroshnichenko wrote:
> > > Create interface ssh_search_dir to allow ssh_server search for keys
> > > in non-standard location.
> > > 
> > > Signed-off-by: Alexander Miroshnichenko <[email protected]>
> > > ---
> > >  policy/modules/services/ssh.if | 18 ++++++++++++++++++
> > >  1 file changed, 18 insertions(+)
> > > 
> > > diff --git a/policy/modules/services/ssh.if
> > > b/policy/modules/services/ssh.if
> > > index 0941f133711e..51c64ded00c4 100644
> > > --- a/policy/modules/services/ssh.if
> > > +++ b/policy/modules/services/ssh.if
> > > @@ -680,6 +680,24 @@ interface(`ssh_agent_exec',`
> > >  	can_exec($1, ssh_agent_exec_t)
> > >  ')
> > > +########################################
> > > +## <summary>
> > > +##      Search for keys in non-standard location
> > > +## </summary>
> > > +## <param name="domain">
> > > +##      <summary>
> > > +##      Domain allowed access.
> > > +##      </summary>
> > > +## </param>
> > > +#
> > > +interface(`ssh_search_dir',`
> > > +        gen_require(`
> > > +                type sshd_t;
> > > +        ')
> > > +
> > > +	allow sshd_t $1:dir search_dir_perms;
> > 
> > This is generally not allowed. The caller should generally be the source.
> > Regardless of the above. Keys should be in user home directories. I
> > wonder what specific scenario prompted you to propose this interface?
> 
> GIT hosting software like gitolite/gitosis/gitea manage users ssh keys and
> store them own location like /var/lib/gitolite/.ssh . /var/lib/gitolite have
> gitosis_var_lib_t type, /var/lib/gitolite/.ssh have gitosis_ssh_home_t type
> (in patched policy which I want to submit).
> If sshd does not have { search getattr } permissions to full path to ssh key
> user fail to login.
> Can you propose corret way to give such permissions to multiple policies?
> It is incorrect to label /var/lib/gitolite as user_home_dir_t type, IMHO.

Yes this sucks. I would probably do the following instead:

1. echo "ignoredirs=/var/lib/gitolite" >> /etc/selinux/semanage.conf
2. semodule -B && restorecon -RvF /var/lib/gitolite
3. gitosis_read_lib_files(sshd_t)

Dont bother with labeling /var/lib/gitolite/.ssh differently

> 
> > > +')
> > > +
> > >  ########################################
> > >  ## <summary>
> > >  ##	Read ssh home directory content ...
> > 
> 

-- 
Key fingerprint = 5F4D 3CDB D3F8 3652 FBD8 02D5 3B6C 5F1D 2C7B 6B02
https://sks-keyservers.net/pks/lookup?op=get&search=0x3B6C5F1D2C7B6B02
Dominick Grift
signature.asc (application/pgp-signature, 659 B)
-----BEGIN PGP SIGNATURE-----

iQGzBAEBCAAdFiEEujmXliIBLFTc2Y4AJXSOVTf5R2kFAl0Lpd8ACgkQJXSOVTf5
R2lyfwv/XK4RGNoBgmZSJkLJoaNcVtviVjZjH+DEMUzJaHBLkC4yinW5bpEFOXI+
9n0sG89qKGrVj2jvB1qCYU9v02zCrWFnUHwISP4qzcLfGNYxR8/OrmM9LuTeN4fQ
PD0PU+CyCjp+p+WTMaDS1ASS5oe9WdTU9nwvIEHSNnjWYj9Tjx38EdhKoyayZXNf
d1FziYMRZUBsCInhhqNJsW65hyeZkNbKoUe4OLF5kGkuvRqXjWYP4B7VrW+uCXaS
DifeIX+J2jrb7SLjt3+YdgRMoUjOrlxCZ37DgyfeXwyRHQhQzbYDrI5FYzdAI5lF
9RnCtzpMvLfawcNZm0AjKJE0hC+nt6NJc/UMvlP6vAURShvY8GNbAjhONfauoVcA
2vNcpXcX41yI7T3Blw/mKpQya5m4pq/NlgAxealuyRogIZh9bn6e6rjypBcifuuF
ylddD8Fxr4HzYLa77soxJudFI/xB24dBfW9p/A2z73n1L49NK8+pviLQun5fvnC0
8qxA4YmY
=qbJn
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.