标签: pam

pam.conf / pam.d/* 文件中的“success=n”控制语法

成功配置 Kerberos 后,这是我在/etc/pam.d/common-auth文件中找到的内容:

auth    [success=2 default=ignore]      pam_unix.so nullok_secure
auth    [success=1 default=ignore]      pam_winbind.so krb5_auth krb5_ccache_type=FILE cached_login try_first_pass
auth    requisite                       pam_deny.so
auth    required                        pam_permit.so
Run Code Online (Sandbox Code Playgroud)

success=2控制值是否意味着如果pam_unix.so 失败,身份验证会跳到该auth requisite pam_deny.so行还是最后一行?

linux pam

17
推荐指数
1
解决办法
2万
查看次数

即使需要 pam_limits.so,ulimit 也不会读取打开的文件描述符limits.conf 设置

我正在尝试为 ubuntu 机器上的所有用户提高打开文件描述符的最大值。

我已将以下几行添加到/etc/security/limits.conf

*               soft    nofile           100000
*               hard    nofile           100000
Run Code Online (Sandbox Code Playgroud)

而且,基于这个问题,我检查了以下/etc/pam.conf设置pam_limits

$ grep "pam_limits" /etc/pam.d/*
/etc/pam.d/atd:session    required   pam_limits.so
/etc/pam.d/common-session:session required pam_limits.so
/etc/pam.d/cron:session    required   pam_limits.so
/etc/pam.d/login:session    required   pam_limits.so
/etc/pam.d/sshd:session    required     pam_limits.so
/etc/pam.d/su:session    required   pam_limits.so
/etc/pam.d/sudo:session required pam_limits.so
Run Code Online (Sandbox Code Playgroud)

我的 file-max 似乎没问题:

$ cat /proc/sys/fs/file-max 
762659
Run Code Online (Sandbox Code Playgroud)

然而,当我检查时,我仍然有默认的 1024 ulimit -a

$ ulimit -a | grep files
open files                      (-n) 1024
Run Code Online (Sandbox Code Playgroud)

我还能检查什么?

linux ubuntu ulimit pam

16
推荐指数
1
解决办法
1万
查看次数

Linux samba 服务器:cifs_mount 失败,返回代码 = -12

服务器:RHEL 5.9 / smbd 3.0.33 - 客户端:各种,但都使用当前的 mount.cifs (5.2)

我已经解决了这个问题,但是追查这些错误代码真是一场噩梦,我觉得它需要通用文档。

症状:从一个特定的 cifs 客户端到 linux samba 服务器的不可预测的间歇性安装失败。我所有的 linux 客户端 pam_mount 用户都在登录时回家。随机地,偶尔地,家庭目录安装开始在台机器上失败。登录和挂载继续在所有其他客户端上完美运行。最初我认为损坏的客户端上异常数量的活动导致 smbd 异常,但即使在使用停止后间歇性故障仍然存在。

尝试手动挂载失败并报告:

Errors from underlying mount program
mount error(12): Cannot allocate memory
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
Run Code Online (Sandbox Code Playgroud)

<debug enable="1"/>在 /etc/security/pam_mount.conf.xml 中设置以从 pam_mount 获取更多信息:

command: 'mount' '-t' 'cifs' '//my_server/watdo' '/home/watdo' '-o' 'user=watdo,uid=666,gid=666'
pam_mount(misc.c:38): set_myuid<pre>: (ruid/rgid=0/0, e=0/0)
pam_mount(misc.c:38): set_myuid<post>: (ruid/rgid=0/0, e=0/0)
pam_mount(mount.c:64): Errors from underlying mount program:
pam_mount(mount.c:68): mount error(12): Cannot allocate memory …
Run Code Online (Sandbox Code Playgroud)

mount server-message-block cifs pam smb-conf

16
推荐指数
1
解决办法
6648
查看次数

如何使用带有 PAM 的 ssh 服务器但不允许密码验证?

许多教程告诉您像这样配置 ssh 服务器:

ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no 
Run Code Online (Sandbox Code Playgroud)

但是使用此设置,您无法使用 PAM,因为我计划将 2 Factor Auth 与 Google Authenticator(OTP 一次性密码)一起使用,我需要 PAM。

那么如何配置一个新的 debian jessie ssh 守护进程,如果我想阻止使用普通密码登录但仍然允许使用 PAM。

也许确切的问题是如何配置 pam 以禁止密码?

PAM 身份验证的详细信息

禁用基于 PAM 的密码身份验证相当不直观。几乎所有 GNU/Linux 发行版(Slackware 除外)以及 FreeBSD 都需要它。如果您不小心,您可以将 PasswordAuthentication 设置为“no”,并且仍然通过 PAM 身份验证仅使用密码登录。事实证明,您需要将“ChallengeResponseAuthentication”设置为“no”才能真正禁用 PAM 身份验证。FreeBSD 手册页有这样的说法,这可能有助于澄清情况:

请注意,如果 ChallengeResponseAuthentication 为“yes”,并且 sshd 的 PAM 身份验证策略包括 pam_unix(8),则无论 PasswordAuthentication 的值如何,都将允许通过质询-响应机制进行密码身份验证。

http://www.unixlore.net/articles/five-minutes-to-more-secure-ssh.html

debian ssh pam

16
推荐指数
1
解决办法
4万
查看次数

如何使用 pam 配置错误消息修复 crontab 访问问题?

当我遇到权限问题时,我尝试以非 root 用户“coins”的身份访问我的 crontab,如以下提到 pam 配置的错误消息所示:

[coins@COINS-TEST ~]$ crontab -l

Authentication service cannot retrieve authentication info You (coins) are not allowed to access to (crontab) because of pam configuration.
Run Code Online (Sandbox Code Playgroud)

此 crontab 访问问题最常见的修复方法是什么?

linux pam cron

15
推荐指数
2
解决办法
8万
查看次数

使用 LDAP 和 PAM 限制帐户登录

我希望一些 PAM/LDAP 专家可以在这里帮助我。我最近在 Ubuntu Server 上设置了一个 LDAP 目录来保存我的客户(用于基于 Web 的系统)和员工(需要通过 SSH 登录)的帐户。

LDAP 身份验证工作正常。但是,我无法使帐户限制起作用:员工帐户将在2001和之间具有 ID ,2999并且将成为ssh-users组的成员以允许他们登录到服务器。

有问题的限制在/etc/ldap.conf、 和pam_min_uidpam_max_uidpam_groupdn

pam_groupdn包含我ssh-users组的完整 DN 。 pam_min_uid=2000pam_max_uid= 2999

现在,我通过添加以下内容设法让它们工作:

account [success=1 default=ignore] pam_ldap.so
Run Code Online (Sandbox Code Playgroud)

中的pam_unix.so线以上/etc/pam.d/common-account。但是,本地 Unix 帐户无法登录:SSH 服务器在尝试后立即终止连接。

我已经在上面的文件中设置了pam_ldap.so模块sufficient,但是无效的用户收到一条消息,说他们无法登录,但无论如何它都会登录。

那么,如何为 LDAP 用户设置这些帐户限制,同时仍然允许 UNIX 用户登录?

你可能猜到我是 PAM 的新手,尽管我已经设法让“自动创建主目录”模块正常工作:-)

非常感谢,安迪

ubuntu ldap pam

14
推荐指数
2
解决办法
2万
查看次数

/etc/pam.d/login 和 /etc/pam.d/system-auth 的区别?

我想配置securetty来限制root直接访问。现在我很清楚我是否添加:

auth        required      pam_securetty.so 
Run Code Online (Sandbox Code Playgroud)

进入/etc/pam.d/system-auth,在/etc/securetty中只保留“console”,ssh登录也会被禁止。如果我添加:

auth        required      pam_securetty.so  
Run Code Online (Sandbox Code Playgroud)

进入/etc/pam.d/login,在/etc/securetty中只保留“console”,ssh登录不会被禁止。

现在我不是很清楚/etc/pam.d/login 和/etc/pam.d/system-auth 之间的区别。谁能给我一些参考或一些指导?非常感谢!

PS /etc/pam.d/login vs. /etc/pam.d/system-auth 也给出了一些关于它的信息,但我想获得更多信息以使我更清楚。

security linux rhel5 pam

14
推荐指数
2
解决办法
4万
查看次数

libpam-ldap 还是 libpam-ldapd?

我正在我的个人 VPS 上设置 LDAP 身份验证,Ubuntu 有两个用于相同目的的软件包:libpam-ldaplibpam-ldapd. 我应该使用哪个?

ubuntu debian ldap authentication pam

14
推荐指数
3
解决办法
7412
查看次数

如何防止用户延长有效登录窗口

一直在为 RedHat 盒研究一些安全强化程序,我想知道是否有可能阻止用户在密码过期后更改他的密码。

对于我们的一个客户,要求他们只能通过临时帐户访问服务器,这意味着一旦创建了用户凭据,密码必须在 4 小时内过期,一旦密码过期,只有 root 可以更改它.

对于第一个要求(密码在 4 小时后到期),我想可以通过设置passwordMaxAge = 144000来实现。但是我仍然找不到一种方法来防止用户更改过期密码,而无需关闭密码过期功能。

任何人都可以帮忙吗?

security redhat pam hardening

14
推荐指数
2
解决办法
1582
查看次数

OpenLDAP、Samba 和密码老化

我正在配置一个系统,其中所有 IT 资源都可以通过单个用户密码对获得,无论是访问服务器上的 shell、登录到 Samba 域、WiFi、OpenVPN、Mantis 等(访问受管理的特定服务)按组成员身份或用户对象字段)。因为我们的网络中有个人数据,所以我们需要根据欧盟数据保护指令(或者更确切地说是波兰语版本)实施密码老化。

问题是 LDAP 中的 Samba 和 POSIX 帐户使用不同的密码散列和老化信息。虽然同步密码本身很容易(ldap password sync = Yesin smb.conf),但将密码老化添加到混合中会破坏事情:Samba 不更新 shadowLastChange。与obey pam restrictions = Yes创建一个系统,其中 Windows 用户不能更改旧密码,但如果我不使用它,则不会自动创建主目录。另一种方法是使用 LDAP 扩展操作来更改密码,但smbk5pwd模块也不对其进行设置。更糟糕的是,OpenLDAP 维护者不会更新它/接受补丁,因为该字段被认为已弃用。

所以,我的问题是,最好的解决方案是什么?它们的优缺点是什么?

  1. 使用 LDAPppolicy和内部 LDAP 密码老化?

    1. 它与 NSS、PAM 模块、samba 和其他系统的配合情况如何?
    2. NSS 和 PAM 模块是否需要以特殊方式配置才能使用 ppolicy 而不是 shadow?
    3. GOsa²是否适用于 ppolicy?
    4. 是否有其他管理工具可以与ppolicy启用的 LDAP 一起使用?
  2. 编写一个更新 LDAP 字段的更改密码脚本。(留下用户自己在不更改密码的情况下更新字段的可能性)

domain ldap authentication samba pam

13
推荐指数
1
解决办法
3574
查看次数