当我每次登录堡垒服务器时,都会有一个初始的 shell 脚本将运行并记录会话。
if [[ -z $SSH_ORIGINAL_COMMAND ]]; then
LOG_FILE="`date --date="today" "+%Y-%m-%d_%H-%M-%S"`_`whoami`"
LOG_DIR="/var/log/ssh-bastion/"
echo ""
echo "NOTE: This SSH session will be recorded"
echo "AUDIT KEY: $LOG_FILE"
echo ""
# suffix the log file name with a random string.
SUFFIX=`mktemp -u _XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX`
script -qf --timing=$LOG_DIR$LOG_FILE$SUFFIX.time $LOG_DIR$LOG_FILE$SUFFIX.data --command=/bin/bash
else
echo "This bastion supports interactive sessions only. Do not supply a command"
exit 1
fi
现在当我尝试登录时出现以下错误
脚本:无法打开/var/log/ssh-bastion/2024-03-29_06-52-11_username_m8hI1GxwGYd5847vhanBcn9Www1Koq8X.data:权限被拒绝
之前运行良好,两天以来我一直面临这个问题。我的所有目录权限都是相同的,任何文件/目录权限都没有变化。
我解决了这个问题。自动运行的 ubuntu EC2 上的 apt 每日升级活动存在问题,导致
/usr/bin/script
文件的权限发生更改。
我们使用此文件来防止用户访问在每次登录会话时创建的日志文件。
由于我拥有 EC2 的管理员访问权限,因此我以 ubuntu 用户身份登录并注意到了这一点。
为了防止堡垒主机用户列出包含日志文件的文件夹,更改了 /usr/bin/ 目录下“script”文件的组所有者的文件权限,并通过运行以下命令设置 GID。
sudo chown root:ubuntu /usr/bin/script
sudo chmod g+s /usr/bin/script
我们在大约两年前推出了这些堡垒服务器,但我们还没有遇到这个问题。过去5天以来一直发生这种情况。我从系统的日志文件中获取了有关 apt 升级活动的信息。
由于这些自动升级活动,这也会在未来产生问题。我需要看看是否可以在创建登录会话文件时通过阻止堡垒用户访问日志来修改此脚本。