Discussion:
PAM Security related issue
Aman Sharma
2017-12-13 04:47:46 UTC
Permalink
Hi All,

just wanted to know the meaning of line *session required
pam_selinux.so open env_params *added in */etc/pam.d/sshd *file. Actually
I am facing one issue related to this. When I changed this *env_params to
restore *then my Sftp is not working.

Can anybody Please guide me on this.
--
Thanks
Aman
Cell: +91 9990296404 | Email ID : ***@gmail.com
Aman Sharma
2017-12-13 09:14:37 UTC
Permalink
Also in the logs, I am getting the below error message :


Dec 13 13:00:00 aman authpriv 3 sshd: pam_selinux(sshd:session): Unable to
get valid context for sftpuser
Dec 13 13:00:00 aman authpriv 6 sshd: pam_unix(sshd:session): session
opened for user sftpuser by (uid=0)
Post by Aman Sharma
Hi All,
just wanted to know the meaning of line *session required
pam_selinux.so open env_params *added in */etc/pam.d/sshd *file.
Actually I am facing one issue related to this. When I changed this *env_params
to restore *then my Sftp is not working.
Can anybody Please guide me on this.
--
Thanks
Aman
--
Thanks
Aman
Cell: +91 9990296404 | Email ID : ***@gmail.com
Stephen Smalley
2017-12-13 15:24:37 UTC
Permalink
Post by Aman Sharma
Hi All,
just wanted to know the meaning of line session    required   
 pam_selinux.so open env_params added in /etc/pam.d/sshd file.
Actually I am facing one issue related to this. When I changed this
env_params to restore then my Sftp is not working. 
Can anybody Please guide me on this.
man pam_selinux describes the options and what they mean.
Why did you change it to restore? Per the man page, restore is to
temporarily restore the contexts and would be a separate entry in the
PAM stack before the module that needs the original contexts, followed
by a pam_selinux.so open env_params after that module to set them up
again. But don't use restore unless you actually need it for some
reason.
Aman Sharma
2017-12-13 16:10:25 UTC
Permalink
Hi Stephen,

Yes , I am using open env_params for it. But for this, my sftp is not
working and getting the below error message :

Dec 13 13:00:00 aman authpriv 3 sshd: pam_selinux(sshd:session): Unable to
get valid context for sftpuser
Dec 13 13:00:00 aman authpriv 6 sshd: pam_unix(sshd:session): session
opened for user sftpuser by (uid=0)

Please let me know if you have any idea on this.
Post by Stephen Smalley
Post by Aman Sharma
Hi All,
just wanted to know the meaning of line session required
pam_selinux.so open env_params added in /etc/pam.d/sshd file.
Actually I am facing one issue related to this. When I changed this
env_params to restore then my Sftp is not working.
Can anybody Please guide me on this.
man pam_selinux describes the options and what they mean.
Why did you change it to restore? Per the man page, restore is to
temporarily restore the contexts and would be a separate entry in the
PAM stack before the module that needs the original contexts, followed
by a pam_selinux.so open env_params after that module to set them up
again. But don't use restore unless you actually need it for some
reason.
--
Thanks
Aman
Cell: +91 9990296404 | Email ID : ***@gmail.com
Dominick Grift
2017-12-13 18:17:33 UTC
Permalink
Post by Aman Sharma
Hi Stephen,
Yes , I am using open env_params for it. But for this, my sftp is not
Dec 13 13:00:00 aman authpriv 3 sshd: pam_selinux(sshd:session): Unable to
get valid context for sftpuser
Dec 13 13:00:00 aman authpriv 6 sshd: pam_unix(sshd:session): session
opened for user sftpuser by (uid=0)
Not sure if this is actually the issue but:

AFAIK the user must have access to "context contains" for env_params

See if the context assoc. with the sftpuser process has access to context contains
Post by Aman Sharma
Please let me know if you have any idea on this.
Post by Stephen Smalley
Post by Aman Sharma
Hi All,
just wanted to know the meaning of line session required
pam_selinux.so open env_params added in /etc/pam.d/sshd file.
Actually I am facing one issue related to this. When I changed this
env_params to restore then my Sftp is not working.
Can anybody Please guide me on this.
man pam_selinux describes the options and what they mean.
Why did you change it to restore? Per the man page, restore is to
temporarily restore the contexts and would be a separate entry in the
PAM stack before the module that needs the original contexts, followed
by a pam_selinux.so open env_params after that module to set them up
again. But don't use restore unless you actually need it for some
reason.
--
Thanks
Aman
--
Key fingerprint = 5F4D 3CDB D3F8 3652 FBD8 02D5 3B6C 5F1D 2C7B 6B02
https://sks-keyservers.net/pks/lookup?op=get&search=0x3B6C5F1D2C7B6B02
Dominick Grift
Stephen Smalley
2017-12-13 19:15:14 UTC
Permalink
Post by Aman Sharma
Hi Stephen,
Yes , I am using open env_params for it. But for this, my sftp is not
Unable to get valid context for sftpuser
Dec 13 13:00:00 aman authpriv 6 sshd: pam_unix(sshd:session): session
opened for user sftpuser by (uid=0)
Please let me know if you have any idea on this.
Do you have any semanage login mapping for sftpuser or is it just using
the __default__ entry? (what does semanage login -l show) How was
sftpuser created?

You could add the debug option on the pam_selinux.so line to try to get
more information.

You could run selinuxdefcon to query what context would be used for
that user, e.g.
selinuxdefcon sftpuser system_u:system_r:sshd_t:s0-s0.c0123
Post by Aman Sharma
Post by Stephen Smalley
Post by Aman Sharma
Hi All,
just wanted to know the meaning of line session    required   
 pam_selinux.so open env_params added in /etc/pam.d/sshd file.
Actually I am facing one issue related to this. When I changed
this
Post by Aman Sharma
env_params to restore then my Sftp is not working. 
Can anybody Please guide me on this.
man pam_selinux describes the options and what they mean.
Why did you change it to restore?  Per the man page, restore is to
temporarily restore the contexts and would be a separate entry in the
PAM stack before the module that needs the original contexts, followed
by a pam_selinux.so open env_params after that module to set them up
again.  But don't use restore unless you actually need it for some
reason.
-- 
Thanks
Aman
Aman Sharma
2017-12-14 07:18:42 UTC
Permalink
Hi All,

Below is the output of semanage USer command output for sftpuser:

*specialuser_u user s0 s0
sysadm_r system_r*

and for command semanage login -l , output is :

*sftpuser specialuser_u s0 **

*and also, after adding the debugging option, its showing the below error
message as :*

Dec 13 15:46:10 cucmSUB authpriv 3 sshd: pam_selinux(sshd:session): Unable
to get valid context for sftpuser

Dec 13 15:46:10 cucmSUB authpriv 5 sshd: pam_selinux(sshd:session): Open
Session

Dec 13 15:46:11 cucmSUB authpriv 7 sshd: pam_selinux(sshd:session):
Username= sftpuser SELinux User= specialuser_u Level= s0

Dec 13 15:46:11 cucmSUB authpriv 3 sshd: pam_selinux(sshd:session): Unable
to get valid context for sftpuser


also Selinuxdefcon command is showing error while running for sftpuser i.e.

*sudo /usr/sbin/selinuxdefcon sftpuser system_u:system_r:sshd_t:s0*

*/usr/sbin/selinuxdefcon: Invalid argument*


*Please let me know your comments on this.*


*Thanks*

*Aman*
Post by Stephen Smalley
Post by Aman Sharma
Hi Stephen,
Yes , I am using open env_params for it. But for this, my sftp is not
Unable to get valid context for sftpuser
Dec 13 13:00:00 aman authpriv 6 sshd: pam_unix(sshd:session): session
opened for user sftpuser by (uid=0)
Please let me know if you have any idea on this.
Do you have any semanage login mapping for sftpuser or is it just using
the __default__ entry? (what does semanage login -l show) How was
sftpuser created?
You could add the debug option on the pam_selinux.so line to try to get
more information.
You could run selinuxdefcon to query what context would be used for
that user, e.g.
selinuxdefcon sftpuser system_u:system_r:sshd_t:s0-s0.c0123
Post by Aman Sharma
Post by Stephen Smalley
Post by Aman Sharma
Hi All,
just wanted to know the meaning of line session required
pam_selinux.so open env_params added in /etc/pam.d/sshd file.
Actually I am facing one issue related to this. When I changed
this
Post by Aman Sharma
env_params to restore then my Sftp is not working.
Can anybody Please guide me on this.
man pam_selinux describes the options and what they mean.
Why did you change it to restore? Per the man page, restore is to
temporarily restore the contexts and would be a separate entry in the
PAM stack before the module that needs the original contexts, followed
by a pam_selinux.so open env_params after that module to set them up
again. But don't use restore unless you actually need it for some
reason.
--
Thanks
Aman
--
Thanks
Aman
Cell: +91 9990296404 | Email ID : ***@gmail.com
Dominick Grift
2017-12-14 08:16:23 UTC
Permalink
1. cat /etc/selinux/targeted/contexts/users/specialuser_u
2. priv logins are allowed as per the ssh_priv_logins boolean?
3. do you get the same result when you associate "sftpuser" with selinux user "user_u"?
Post by Aman Sharma
Hi All,
*specialuser_u user s0 s0
sysadm_r system_r*
*sftpuser specialuser_u s0 **
*and also, after adding the debugging option, its showing the below error
message as :*
Dec 13 15:46:10 cucmSUB authpriv 3 sshd: pam_selinux(sshd:session): Unable
to get valid context for sftpuser
Dec 13 15:46:10 cucmSUB authpriv 5 sshd: pam_selinux(sshd:session): Open
Session
Username= sftpuser SELinux User= specialuser_u Level= s0
Dec 13 15:46:11 cucmSUB authpriv 3 sshd: pam_selinux(sshd:session): Unable
to get valid context for sftpuser
also Selinuxdefcon command is showing error while running for sftpuser i.e.
*sudo /usr/sbin/selinuxdefcon sftpuser system_u:system_r:sshd_t:s0*
*/usr/sbin/selinuxdefcon: Invalid argument*
*Please let me know your comments on this.*
*Thanks*
*Aman*
Post by Stephen Smalley
Post by Aman Sharma
Hi Stephen,
Yes , I am using open env_params for it. But for this, my sftp is not
Unable to get valid context for sftpuser
Dec 13 13:00:00 aman authpriv 6 sshd: pam_unix(sshd:session): session
opened for user sftpuser by (uid=0)
Please let me know if you have any idea on this.
Do you have any semanage login mapping for sftpuser or is it just using
the __default__ entry? (what does semanage login -l show) How was
sftpuser created?
You could add the debug option on the pam_selinux.so line to try to get
more information.
You could run selinuxdefcon to query what context would be used for
that user, e.g.
selinuxdefcon sftpuser system_u:system_r:sshd_t:s0-s0.c0123
Post by Aman Sharma
Post by Stephen Smalley
Post by Aman Sharma
Hi All,
just wanted to know the meaning of line session required
pam_selinux.so open env_params added in /etc/pam.d/sshd file.
Actually I am facing one issue related to this. When I changed
this
Post by Aman Sharma
env_params to restore then my Sftp is not working.
Can anybody Please guide me on this.
man pam_selinux describes the options and what they mean.
Why did you change it to restore? Per the man page, restore is to
temporarily restore the contexts and would be a separate entry in the
PAM stack before the module that needs the original contexts, followed
by a pam_selinux.so open env_params after that module to set them up
again. But don't use restore unless you actually need it for some
reason.
--
Thanks
Aman
--
Thanks
Aman
--
Key fingerprint = 5F4D 3CDB D3F8 3652 FBD8 02D5 3B6C 5F1D 2C7B 6B02
https://sks-keyservers.net/pks/lookup?op=get&search=0x3B6C5F1D2C7B6B02
Dominick Grift
Stephen Smalley
2017-12-14 13:49:57 UTC
Permalink
Post by Aman Sharma
Hi All,
specialuser_u   user       s0         s0                           
 sysadm_r system_r
sftpuser             specialuser_u        s0                   *
and also, after adding the debugging option, its showing the below
error message as
Unable to get valid context for sftpuser
Open Session
Username= sftpuser SELinux User= specialuser_u Level= s0
Unable to get valid context for sftpuser
also Selinuxdefcon command is showing error while running for
sftpuser i.e. 
sudo /usr/sbin/selinuxdefcon sftpuser system_u:system_r:sshd_t:s0
/usr/sbin/selinuxdefcon: Invalid argument
Please let me know your comments on this.
Is there a reason why you've added your own unique SELinux user and
login entries for sftpuser rather than either just mapping to one of
the existing users if you want it to be confined or leaving it
unspecified and just using the __default__ entry if you want it to be
unconfined?

The entries above say that sftpuser is to be mapped to specialuser_u,
and that specialuser_u can only use the sysadm_r or system_r roles. To
make that work, you would also need to enable the ssh_sysadm_login
boolean and cp /etc/selinux/targeted/contexts/users/sysadm_u
/etc/selinux/targeted/contexts/users/specialuser_u. But that seems
pointless since you could just leave it unmapped or map it to sysadm_u
in the first place if that was really what you wanted.

If you want sftpuser to be unrestricted, just remove the mappings, i.e.
$ sudo semanage login -d sftpuser
$ sudo semanage user -d specialuser_u
$ selinuxdefcon sftpuser system_u:system_r:sshd_t:s0-s0:c0.c1023
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

Loading...