ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

linux – 命令结束时在ssh登录和注销时运行命令

2019-08-16 22:51:12  阅读:293  来源: 互联网

标签:linux ssh login audit logs


我们想在我们的Centos7机器上跟踪用户活动.去做
因此,管理层决定使用脚本和scriptreplay来基本记录用户活动并重放它.我对我们应该如何设计它进行了一些研究,但是依赖于auditd的解决方案在这里被管理层拒绝,并且将脚本放在用户的.profile中会导致一些问题,如下所述.

预期的行为如下:

>当用户通过SSH登录服务器时,脚本命令会生成并开始将用户活动记录到文件中.
>当用户在服务器上完成后,他会注销(通常键入exit或CTRLD).
>脚本进程停止并关闭文件.

现在的问题:

>我的研究表明,脚本实际上创建了另一个shell.因此,如果我在每个用户(或skel)的.bash_profile中放入脚本script.log,它将在登录后为用户发出新的shell,用户可以轻松地中止该过程并开始输入命令他通常的SSH会话.
当我退出由脚本命令生成的shell时,如何强制我的脚本实际关闭用户?
>脚本输出(即用户命令)应存储在非sudoers无法执行任何操作的私有场所(没有R / W / E权限).当用户本身没有特权时,我们如何在用户登录时运行具有提升权限的脚本?

解决方法:

至于强制命令,sshd有一个ForceCommand选项:

Forces the execution of the command specified by ForceCommand, ignoring any command supplied by the client and
~/.ssh/rc if present. The command is invoked by using the user’s login shell with the -c option.
This applies to
shell, command, or subsystem execution. It is most useful inside a Match block. The command originally supplied
by the client is available in the SSH_ORIGINAL_COMMAND environment variable.

因此,通过阅读,如果您将ForceCommand设置为脚本,那应该大致按照您的意愿执行.

至于保持审计跟踪安全,多服务器系统中的一个解决方案是从syslog中学习并通过网络将条目发送到不同的物理主机.这几乎可以防止用户在生成日志之后获取日志.如果没有其他任何事情,您可能需要将日志发送到localhost上的另一个端口,守护进程会收集并存储它们. (尝试了显而易见的,你不能脚本-f / dev / tcp / localhost / 8888,因为/ dev / tcp / …需要由bash处理,所以我猜你需要mkfifo自己沟通路径如manpage example for script -f)

标签:linux,ssh,login,audit,logs
来源: https://codeday.me/bug/20190816/1671936.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有