Module Name: src
Committed By: jmmv
Date: Mon Dec 30 21:59:08 UTC 2024
Modified Files:
src/etc/pam.d: Makefile
Added Files:
src/etc/pam.d: display_manager.in ftpd.in sshd.in su.in system.in
Removed Files:
src/etc/pam.d: display_manager ftpd sshd su system
Log Message:
Wipe out pam_skey.so usage when MKSKEY=no
This fixes the ability to log into the system when it has been built
with MKSKEY=no.
I've built a release with the default MKSKEY value (yes) and without,
and confirmed that the former keeps the pam_skey entries in place and
the latter does not.
To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 src/etc/pam.d/Makefile
cvs rdiff -u -r1.6 -r0 src/etc/pam.d/display_manager
cvs rdiff -u -r0 -r1.1 src/etc/pam.d/display_manager.in src/etc/pam.d/ftpd.in \
src/etc/pam.d/sshd.in src/etc/pam.d/su.in src/etc/pam.d/system.in
cvs rdiff -u -r1.8 -r0 src/etc/pam.d/ftpd
cvs rdiff -u -r1.10 -r0 src/etc/pam.d/sshd
cvs rdiff -u -r1.9 -r0 src/etc/pam.d/su src/etc/pam.d/system
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/etc/pam.d/Makefile
diff -u src/etc/pam.d/Makefile:1.11 src/etc/pam.d/Makefile:1.12
--- src/etc/pam.d/Makefile:1.11 Sun Jun 18 20:23:21 2017
+++ src/etc/pam.d/Makefile Mon Dec 30 21:59:08 2024
@@ -1,4 +1,6 @@
-# $NetBSD: Makefile,v 1.11 2017/06/18 20:23:21 christos Exp $
+# $NetBSD: Makefile,v 1.12 2024/12/30 21:59:08 jmmv Exp $
+
+.include <bsd.own.mk>
CONFIGFILES= README cron display_manager ftpd gdm imap kde login other \
passwd pop3 ppp racoon rexecd rsh sshd su system telnetd xdm \
@@ -7,4 +9,16 @@ FILESDIR= /etc/pam.d
FILESMODE= 644
FILESMODE_README=444
+.for f in display_manager ftpd sshd su system
+FILESBUILD_$f= yes
+
+$f: $f.in
+ ${_MKTARGET_CREATE}
+.if ${MKSKEY} != "no"
+ cp $> $@
+.else
+ ${TOOL_SED} -e '/pam_skey/d' < $> > $@
+.endif
+.endfor
+
.include <bsd.prog.mk>
Added files:
Index: src/etc/pam.d/display_manager.in
diff -u /dev/null src/etc/pam.d/display_manager.in:1.1
--- /dev/null Mon Dec 30 21:59:08 2024
+++ src/etc/pam.d/display_manager.in Mon Dec 30 21:59:08 2024
@@ -0,0 +1,24 @@
+# $NetBSD: display_manager.in,v 1.1 2024/12/30 21:59:08 jmmv Exp $
+#
+# PAM configuration for the display manager services. Specific display
+# manager service configurations can include this one.
+#
+
+# auth
+auth required pam_nologin.so no_warn
+auth sufficient pam_skey.so no_warn try_first_pass
+#auth sufficient pam_krb5.so no_warn try_first_pass
+auth optional pam_afslog.so no_warn try_first_pass
+# pam_ssh has potential security risks. See pam_ssh(8).
+#auth sufficient pam_ssh.so no_warn try_first_pass
+auth required pam_unix.so no_warn try_first_pass
+
+# account
+#account required pam_krb5.so
+account required pam_unix.so
+
+# session
+# XXX pam_lastlog.so?
+# pam_ssh has potential security risks. See pam_ssh(8).
+#session optional pam_ssh.so want_agent
+session required pam_permit.so
Index: src/etc/pam.d/ftpd.in
diff -u /dev/null src/etc/pam.d/ftpd.in:1.1
--- /dev/null Mon Dec 30 21:59:08 2024
+++ src/etc/pam.d/ftpd.in Mon Dec 30 21:59:08 2024
@@ -0,0 +1,22 @@
+# $NetBSD: ftpd.in,v 1.1 2024/12/30 21:59:08 jmmv Exp $
+#
+# PAM configuration for the "ftpd" service
+#
+
+# auth
+# This looks very much like "system", but lacks the "nullok" option on
+# pam_unix.
+auth required pam_nologin.so no_warn
+auth sufficient pam_skey.so no_warn try_first_pass
+#auth sufficient pam_krb5.so no_warn try_first_pass
+auth optional pam_afslog.so no_warn try_first_pass
+auth required pam_unix.so no_warn try_first_pass
+
+# account
+# Even though this is identical to "system", we open code it here because
+# we open code the auth stack.
+#account required pam_krb5.so
+account required pam_unix.so
+
+# session
+session required pam_permit.so
Index: src/etc/pam.d/sshd.in
diff -u /dev/null src/etc/pam.d/sshd.in:1.1
--- /dev/null Mon Dec 30 21:59:08 2024
+++ src/etc/pam.d/sshd.in Mon Dec 30 21:59:08 2024
@@ -0,0 +1,27 @@
+# $NetBSD: sshd.in,v 1.1 2024/12/30 21:59:08 jmmv Exp $
+#
+# PAM configuration for the "sshd" service
+#
+
+# auth
+auth required pam_nologin.so no_warn
+auth sufficient pam_skey.so no_warn try_first_pass
+#auth sufficient pam_krb5.so no_warn try_first_pass
+auth optional pam_afslog.so no_warn try_first_pass
+# pam_ssh has potential security risks. See pam_ssh(8).
+#auth sufficient pam_ssh.so no_warn try_first_pass
+auth required pam_unix.so no_warn try_first_pass
+
+# account
+#account required pam_krb5.so
+account required pam_login_access.so
+account required pam_unix.so
+
+# session
+# pam_ssh has potential security risks. See pam_ssh(8).
+#session optional pam_ssh.so
+session required pam_permit.so
+
+# password
+#password sufficient pam_krb5.so no_warn try_first_pass
+password required pam_unix.so no_warn try_first_pass
Index: src/etc/pam.d/su.in
diff -u /dev/null src/etc/pam.d/su.in:1.1
--- /dev/null Mon Dec 30 21:59:08 2024
+++ src/etc/pam.d/su.in Mon Dec 30 21:59:08 2024
@@ -0,0 +1,21 @@
+# $NetBSD: su.in,v 1.1 2024/12/30 21:59:08 jmmv Exp $
+#
+# PAM configuration for the "su" service
+#
+
+# auth
+auth sufficient pam_rootok.so no_warn
+auth sufficient pam_self.so no_warn
+auth sufficient pam_skey.so no_warn try_first_pass
+#auth sufficient pam_u2f.so authfile=/etc/u2f_mappings cue
+#auth sufficient pam_ksu.so no_warn try_first_pass
+#auth sufficient pam_group.so no_warn group=rootauth root_only authenticate
+auth requisite pam_group.so no_warn group=wheel root_only fail_safe
+auth required pam_unix.so no_warn try_first_pass nullok
+
+# account
+account required pam_login_access.so
+account include system
+
+# session
+session required pam_permit.so
Index: src/etc/pam.d/system.in
diff -u /dev/null src/etc/pam.d/system.in:1.1
--- /dev/null Mon Dec 30 21:59:08 2024
+++ src/etc/pam.d/system.in Mon Dec 30 21:59:08 2024
@@ -0,0 +1,21 @@
+# $NetBSD: system.in,v 1.1 2024/12/30 21:59:08 jmmv Exp $
+#
+# System-wide defaults
+#
+
+# auth
+auth sufficient pam_skey.so no_warn try_first_pass
+#auth sufficient pam_krb5.so no_warn try_first_pass
+auth optional pam_afslog.so no_warn try_first_pass
+auth required pam_unix.so no_warn try_first_pass nullok
+
+# account
+#account required pam_krb5.so
+account required pam_unix.so
+
+# session
+session required pam_lastlog.so no_fail no_nested
+
+# password
+#password sufficient pam_krb5.so no_warn try_first_pass
+password required pam_unix.so no_warn try_first_pass