fedora-cosmic: ship SELinux policy for kanidm-unixd sockets
nss/pam consumers (sshd, the display manager, systemd-userdbd, polkit, ...) were denied write access to /run/kanidm-unixd/* (var_run_t), so Kanidm users could not be resolved or authenticated and logins failed with 'invalid user'. Add the audit2allow-derived CIL and load it at build time (semodule noreload).
This commit is contained in:
@@ -46,6 +46,7 @@ add-files:
|
|||||||
- ["kanidm-password-auth", "/usr/share/fedora-cosmic/authselect/password-auth"]
|
- ["kanidm-password-auth", "/usr/share/fedora-cosmic/authselect/password-auth"]
|
||||||
- ["kanidm-nsswitch.conf", "/usr/share/fedora-cosmic/authselect/nsswitch.conf"]
|
- ["kanidm-nsswitch.conf", "/usr/share/fedora-cosmic/authselect/nsswitch.conf"]
|
||||||
- ["50-kanidm.preset", "/usr/lib/systemd/system-preset/50-kanidm.preset"]
|
- ["50-kanidm.preset", "/usr/lib/systemd/system-preset/50-kanidm.preset"]
|
||||||
|
- ["kanidm-unixd.cil", "/usr/share/fedora-cosmic/kanidm-unixd.cil"]
|
||||||
|
|
||||||
postprocess:
|
postprocess:
|
||||||
# The upstream fedora.yaml removes the Google Chrome repo from the Fedora
|
# The upstream fedora.yaml removes the Google Chrome repo from the Fedora
|
||||||
@@ -88,6 +89,14 @@ postprocess:
|
|||||||
install -m 0644 /usr/share/fedora-cosmic/authselect/nsswitch.conf /etc/nsswitch.conf
|
install -m 0644 /usr/share/fedora-cosmic/authselect/nsswitch.conf /etc/nsswitch.conf
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Kanidm has no SELinux policy; install ours so nss/pam consumers (sshd,
|
||||||
|
# the display manager, systemd-userdbd, ...) can reach the kanidm-unixd
|
||||||
|
# sockets and resolve Kanidm users.
|
||||||
|
- |
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
set -xeuo pipefail
|
||||||
|
semodule -n -i /usr/share/fedora-cosmic/kanidm-unixd.cil
|
||||||
|
|
||||||
# Kanidm does not ship an SELinux policy yet; let the unixd daemons run.
|
# Kanidm does not ship an SELinux policy yet; let the unixd daemons run.
|
||||||
- |
|
- |
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
; Kanidm ships no SELinux policy. Without these allows, nss/pam consumers
|
||||||
|
; (sshd, the display manager, systemd-userdbd, ...) are denied write access to
|
||||||
|
; the kanidm-unixd sockets in /run/kanidm-unixd (labeled var_run_t), so Kanidm
|
||||||
|
; users cannot be resolved or authenticated and logins fail (sshd reports
|
||||||
|
; "invalid user"). This is the allow set produced by:
|
||||||
|
; grep avc: /var/log/audit/audit.log | audit2allow
|
||||||
|
(allow accountsd_t var_run_t (sock_file (write)))
|
||||||
|
(allow auditd_t var_run_t (sock_file (write)))
|
||||||
|
(allow chkpwd_t var_run_t (sock_file (write)))
|
||||||
|
(allow local_login_t var_run_t (sock_file (write)))
|
||||||
|
(allow policykit_t var_run_t (sock_file (write)))
|
||||||
|
(allow ssh_keygen_t var_run_t (sock_file (write)))
|
||||||
|
(allow sshd_auth_t var_run_t (sock_file (write)))
|
||||||
|
(allow sshd_keygen_t var_run_t (sock_file (write)))
|
||||||
|
(allow sshd_session_t var_run_t (sock_file (write)))
|
||||||
|
(allow sshd_t var_run_t (sock_file (write)))
|
||||||
|
(allow systemd_bootc_generator_t var_run_t (sock_file (write)))
|
||||||
|
(allow systemd_selinux_autorelabel_generator_t var_run_t (sock_file (write)))
|
||||||
|
(allow systemd_userdbd_t var_run_t (sock_file (write)))
|
||||||
|
(allow xdm_t var_run_t (sock_file (write)))
|
||||||
|
(allow init_t unconfined_service_t (unix_stream_socket (connectto)))
|
||||||
Reference in New Issue
Block a user