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