运维跳板机权限管控,最小权限安全原则:运维跳板机权限管控

跳板机权限管控的核心目标,是让每个运维人员只能访问自己工作必需的服务器和命令,不多给一丝权限。
最小权限安全原则不是一句口号,而是通过账号隔离、密钥限制、sudo白名单和文件ACL一层层收紧的实操过程。
下面从零开始,手把手配置一台基础的跳板机。

一、环境准备与账号规划

假设你有一台干净的 Linux 跳板机(CentOS 7/8 或 Ubuntu 20.04+),以及若干台后端业务服务器。
目标是:运维人员只能通过跳板机登录后端,且只能执行特定命令。

先创建专用账号,不要直接用 root 操作。

# 创建运维用户组
sudo groupadd ops

# 创建用户 alice,并加入 ops 组
sudo useradd -m -s /bin/bash -G ops alice

# 设置密码
sudo passwd alice

后端服务器同样创建 alice 账号,并设置相同的 UID(方便权限统一),或者通过 LDAP 统一认证。
这里以本地账号为例。

关键点:跳板机和后端服务器上的用户名必须一致,否则后续 SSH 免密和 sudo 规则无法直接复用。

二、SSH 密钥与登录限制

密码登录容易暴力破解,跳板机必须改用密钥认证,并禁止 root 直接登录。

在 alice 的客户端生成密钥对:

ssh-keygen -t ed25519 -C "alice@jump"

将公钥上传到跳板机:

ssh-copy-id alice@jump-server-ip

然后在跳板机 /etc/ssh/sshd_config 中修改:

PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
AllowGroups ops

重启 SSH 服务:

sudo systemctl restart sshd

验证方式:用 alice 私钥登录成功,用 root 或密码登录被拒绝。

三、用 sudo 白名单限制命令

最小权限的核心是:即使登录成功,也不能随便执行 rm -rf /su
通过 sudo 只放行必要命令。

编辑 /etc/sudoers 使用 visudo

sudo visudo -f /etc/sudoers.d/ops

添加如下内容(允许 alice 重启 nginx 和查看日志,但不能改配置):

Cmnd_Alias WEB_CMDS = /bin/systemctl restart nginx, /bin/systemctl status nginx, /usr/bin/tail -f /var/log/nginx/*.log

alice ALL=(root) NOPASSWD: WEB_CMDS

避坑:命令必须写绝对路径,且不能包含通配符 *,否则可能被绕过。
例如 /bin/systemctl restart nginx* 会允许 nginx; rm -rf / 这类注入。

验证方式:alice 执行 sudo systemctl restart nginx 成功,执行 sudo cat /etc/shadow 被拒绝。

四、文件与目录的 ACL 控制

有些场景需要共享目录,但不想给整个组写权限。
用 ACL 精细控制。

例如,让 alice 对 /data/logs 只读,对 /data/tmp 可写:

sudo setfacl -m u:alice:r-x /data/logs
sudo setfacl -m u:alice:rwx /data/tmp

查看 ACL:

getfacl /data/logs

注意:ACL 依赖文件系统挂载参数 acl,如果 mount 输出中没有 acl,需要修改 /etc/fstab 并重新挂载。

五、操作审计与登录日志

权限收紧后,还要能追溯谁做了什么。
跳板机至少要记录 SSH 登录和 sudo 操作。

查看登录记录:

last -f /var/log/wtmp

查看 sudo 日志:

sudo journalctl -u sudo
# 或
grep sudo /var/log/auth.log

进阶方案是使用 auditd 记录命令执行:

sudo auditctl -a always,exit -F arch=b64 -S execve -F uid=1001 -k alice_cmds

然后通过 ausearch -k alice_cmds 查看 alice 执行过的所有命令。

验证方式:alice 执行几条命令后,ausearch 能完整列出。

常见问题

跳板机需要给开发人员 root 权限吗?
不需要。开发人员通常只需要查看日志、重启服务、部署代码。用 sudo 白名单精确放行即可,绝对不要给 ALL 权限。

后端服务器如何限制只能从跳板机登录?
在后端服务器的 sshd_config 中加上 AllowUsers alice@跳板机IP,或者用防火墙只允许跳板机 IP 访问 22 端口。

sudo 规则改了不生效怎么办?
检查 /etc/sudoers 中是否用 #includedir /etc/sudoers.d 包含了你的文件,以及文件权限是否为 0440。

用户反映命令找不到?
sudo 默认使用安全路径,可能不包含 /usr/local/bin。可以在 sudoers 中设置 secure_path 或在命令中使用绝对路径。

最后检查一遍

完成以上步骤后,用 alice 账号实际登录跳板机,尝试以下操作:

  • 直接 SSH 后端服务器(应成功,但只能执行允许的命令)
  • 执行 sudo su -(应被拒绝)
  • 执行 sudo cat /etc/shadow(应被拒绝)
  • 执行 sudo systemctl restart nginx(应成功)
  • 查看 /var/log/auth.log 确认操作被记录

如果全部符合预期,说明最小权限原则已经初步落地。
后续可以根据业务需要,逐步增加更细粒度的规则,但始终记住:每多给一条权限,就多一个风险点。

分享到:
上一篇
内网网段规划,机房业务网络隔离方案
下一篇
WireGuard多客户端管理,运维远程访问内网
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意