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 05:27:31PM +0200, Dominick Grift wrote:
> 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

But this is just what I would do (if were ever forced to use gitolite). Others may have different opinions.

> 
> > 
> > > > +')
> > > > +
> > > >  ########################################
> > > >  ## <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



-- 
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-----

iQGzBAEBCAAdFiEEujmXliIBLFTc2Y4AJXSOVTf5R2kFAl0LqOEACgkQJXSOVTf5
R2kuHQwAh4bksW239Df8C3PkKF0ypIN18lgz/Q2qLIxn9L2OJ/RZe9sVjmrav0Gg
PX+qFPxp7cuKVOZXbtrjDIHw/NOjQUi/TzdPUr10srMRaDqURtTpWkQvNtbOiqcJ
ceiSr6/u2T0OSAwwzfh0Rx15NRU0uClDu6z3Z91aVT2Ve69qU4odWIvutdmld1Lx
1Tdj0AUEEJufkDZRTVYL1Aj0jiLfgztPsIaoAjAK4NjeVeW0mAuWOW62wxZZywWB
dr1tWgXUz75UC0fYt4AE7tq0gNJfRDYdnU1l2i2R+4c7Pn4aAeW34t1vmUznA1DK
C8se4qpoiP5xZTBLW8Mdnk9Q5yK/VeRqTQrRL7XO55PBCmi89adIs6mzUjLeqkZi
PyEPjJGdECAFxO+ESEGzU0PnAbSQyA5fcAmmttikHKWcJeCy/gSZ2iroD6vE+cFB
pRihUJC9IKN1QV9VY/Xl5JR0cUNKuyKoK4QXwh6ScNY9Khg/VTkx+JIPBzd/xNkZ
ZH1l+v+V
=KMD2
-----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.