使用 pam_exec 的 SSH 登录警报

使用 pam_exec 的 SSH 登录警报

您好,我一直在尝试从这里跟踪有关 pam_exec 的信息: ssh登录挂钩?

当用户登录时,他们会得到:

/etc/pam.d/email-alert.sh failed: exit code 8

我的 sshd 文件末尾有这样的内容:

session optional pam_exec.so debug seteuid /etc/pam.d/email-alert.sh

我的 email-alert.sh 脚本有这个,

echo 'ALERT - Remote SSH Shell Access (SERVERNAME) on:' `date` `who` | 
mail -s "Alert: Remote SSH Access from `who | 
cut -d'(' -f2 | cut -d')' -f1`" [email protected]

我已经单独测试了该脚本,它向我发送电子邮件没有问题。

如果有人能指出我正确的方向,我将不胜感激,因为我一直在绞尽脑汁试图找出答案。

答案1

首先,shell 脚本将返回最后一个命令的退出状态。您正在使用的命令之一是以 status 退出8。其次,pam_exec不会有和你一样的环境。因此,手动运行时的行为不一定与作为 pam 堆栈的一部分运行时的行为方式(您正在经历的情况)。

pam_exec有几个内置的环境变量可以帮助您。我会像这样重写脚本:

#!/bin/bash

PATH=/bin:/usr/bin
SUBJ="Alert - Remote SSH access from ${PAM_USER}"

mail -s $SUBJ << __MESSAGE__
ALERT - Remote SSH Shell Access (${HOSTNAME}) on $(date)

User ${PAM_USER} logged in from ${PAM_RHOST}

$(who)
__MESSAGE__

相关内容