公司想做个监控用户命令的日志,记录谁通过哪个 ssh key 登录了,运行了哪些命令。
登录会话里有 SSH_CONNECTION ,SSH_CLIENT 但是它们只记录 ip 和端口号,不够直观。
本来想的是用修改 authorized_keys 的方式:environment="SSH_USER=user1" ssh-ed25519 XXXX user1 。但是领导又觉得如果有人自己再加一条不带设置环境变量的 key 就能绕过监控。
有没有什么办法不修改 authorized_keys 的同时又能记录是哪个用户运行的命令。
1
julyclyde 119 天前
首先,并没有这个功能
其次,多个人共用账户这种做法是错误的。正确的做法是各用各的身份验证,然后用 sudo 来控制权限 |
2
jworg 119 天前
这个有个东西叫 pam ,你去修改 pam 的行为就可以了,应该是在 pam_ssh 里面,大概做法是读一下那个文件,找匹配的设置环境变量。具体怎么设置环境变量可以参照 pam_env 这个模块的代码。
ps. 好久没看到这么原始的 linux 上面的问题 |
3
jianqiaoshen OP 放弃了,还是记录 SSH_CONNECTION ,分析的时候再结合/var/log/auth.log 了
|
![]() |
4
goodryb 119 天前
这种正常不应该是上堡垒机吗
|
5
wineejam 119 天前
堡垒机正解
|
6
julyclyde 119 天前 ![]() @jworg pam_ssh 有这么个用法么?
虽然 pam session module 可以用来设置环境变量,但是好像并没有某个 pam module type 可以获得“这个用户到底是用哪个 authorize_keys 认证过来的”信息吧? |
7
jworg 119 天前
@julyclyde 确实你说的是对的,翻了下 openssh 的代码,我记错了,读 authorize_keys 在 openssh 那边,如果 pam_ssh 想接管这个得改好多东西。
|
![]() |
8
ETiV 119 天前 via iPhone
把日志记在本地,防君子不防小人嘛这是🤣
就应该用堡垒机,日志记录在外部,才能可靠的审计 |
9
fuzzsh 119 天前 via Android
…
别整活了,有个 audit ,可以记录大部分(任何事情没绝对)操作日志 按照最佳实践,Linux 的安全生态很完善,不需要上旁门左道 |
![]() |
10
phrack 118 天前
堡垒机
|