summaryrefslogtreecommitdiff
path: root/debian/control
diff options
context:
space:
mode:
authorDave Olson <olson@cumulusnetworks.com>2018-04-12 23:57:55 -0700
committerDave Olson <olson@cumulusnetworks.com>2018-04-13 15:04:03 -0700
commitacc77c4757775bb7689ba769465951a65523db75 (patch)
treeac797a2985f5c472f83f42b13acb3499553f5a15 /debian/control
parenta0d0d2fb1b321d65425951fc70f5c42c2dcfda41 (diff)
downloadlibpam-radius-auth-acc77c4757775bb7689ba769465951a65523db75.tar.gz
libpam-radius-auth-acc77c4757775bb7689ba769465951a65523db75.zip
Add a new package radius-shell with a setcap radius_shell front end
Ticket: CM-19457 Reviewed By: nobody Testing Done: multiple logins, separately and simultaneously Because we can't determine privilege level separately and up front with the RADIUS protocol, unlike TACACS+, we wind up with all logins as the same unprivileged radius uid. But we can set the auid (accounting or auditing uid) correctly, and a separate setcap radius_shell can be set as the login shell, and can fixup the uid before running /bin/bash. To set the auid correctly, we need to know the privileged radius user account. Added mapped_priv_user to the configuration file to handle that. mapped_priv_user has to match the account used by libnss-mapuser. That's a bit ugly, but a common config file would be uglier. The radius shell is in a new package, since it has binaries. The new package is radius-shell. In it's post actions, it changes the radius users shell to radius_shell if they are present, and back to /bin/bash on package removal. It uses capabilities, tries to be very restrictive in what it changes, and depends on being installed setcap cap_setuid Make the existing libpam-radius-auth package depend on radius-shell, so it will pull in the new package on upgrades. Also fixed another issue with reparsing changed config file, have to handle case where there were servers defined, but aren't any longer.
Diffstat (limited to 'debian/control')
-rw-r--r--debian/control13
1 files changed, 11 insertions, 2 deletions
diff --git a/debian/control b/debian/control
index b70c948..b8022db 100644
--- a/debian/control
+++ b/debian/control
@@ -3,13 +3,22 @@ Maintainer: dev-support <dev-support@cumulusnetworks.com>
Section: libs
Priority: extra
Standards-Version: 3.9.6
-Build-Depends: libpam0g-dev | libpam-dev, debhelper (>= 9~), libaudit-dev
+Build-Depends: libpam0g-dev | libpam-dev, debhelper (>= 9~), libaudit-dev, libcap-dev
Package: libpam-radius-auth
Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, libaudit1
+Depends: ${shlibs:Depends}, ${misc:Depends}, libaudit1, radius-shell
Description: PAM RADIUS client authentication module
This is the PAM to RADIUS authentication module. It allows any PAM-capable
machine to become a RADIUS client for authentication and accounting
requests. You will, however, need to supply your own RADIUS server to
perform the actual authentication
+
+Package: radius-shell
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, libaudit1, libcap2-bin, libcap2, libnss-mapuser
+Description: Shell front-end used for radius users.
+ This provides a uid fixup program. Due to the limitations of the
+ RADIUS protocol, we can't tell whether a user is privileged until
+ after authentication. This packages provides a shell front-end that
+ sets the uid to the auid, if set and > 1000, and not already matching.