Linux 系统中怎么为多租户共享服务器配置严格的 SSH 隔离机制

大杰君_9297

大杰君_9297

2026-11-01

313人浏览

原创

Linux多租户SSH隔离需分层拦截:一、用AllowUsers按用户/IP精准控制登录入口;二、通过独立家目录、受限sudo权限和authorized_keys命令前缀隔离操作环境;三、叠加防火墙、netns网络隔离及VERBOSE日志审计;四、避坑如禁用false shell、验证sshd配置、确保shell字段非空。

linux 系统中怎么为多租户共享服务器配置严格的 ssh 隔离机制

在 Linux 多租户共享服务器中,SSH 隔离不能只靠“禁止密码登录”或“改 shell”,而要从连接入口、身份识别、会话控制三个层面做分层拦截。核心目标是:每个租户只能通过指定方式登录指定资源,且彼此无法越权访问、干扰或探测。

一、按租户精准限制 SSH 登录入口

用 DenyUsers 或 AllowUsers 在协议层直接控制谁能在哪登录,不依赖系统账户状态:

  • 只允许 tenant-a 和 tenant-b 通过 SSH 登录(其他用户一律拒绝):
    AllowUsers tenant-a tenant-b
  • 若需更细粒度,可绑定 IP(如 tenant-a 只能从 192.168.10.0/24 登录):
    AllowUsers tenant-a@192.168.10.* tenant-b@192.168.20.*
  • 避免与 AllowGroups 混用——组策略易被绕过,且权限继承逻辑复杂;单用户白名单语义明确、日志可追溯

二、隔离租户的登录后环境与操作边界

登录成功不等于安全。必须防止租户切换身份、读取他人家目录、滥用 sudo 或执行危险命令:

Linux Security Scanner
Linux Security Scanner

Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...

下载
  • 为每个租户设置独立家目录,并禁用跨目录遍历:
    chown -R tenant-a:tenant-a /home/tenant-a
    chmod 700 /home/tenant-a
  • 禁用租户的交互式 shell 切换能力(如 su、sudo -i):
    在 /etc/sudoers 中明确限制:
    tenant-a ALL=(ALL:ALL) NOPASSWD: /usr/bin/systemctl status *, /usr/bin/journalctl -u *
    不给 ALL,只放行必要运维命令
  • 启用强制的 SSH 命令限制(适用于仅提供特定服务的租户):
    在 /home/tenant-a/.ssh/authorized_keys 中为公钥加前缀:
    command="/usr/local/bin/tenant-a-shell",no-port-forwarding,no-X11-forwarding,no-agent-forwarding ssh-rsa AAAA...

三、网络与会话级隔离补强

SSH 层控制之外,叠加网络和进程隔离,防横向移动:

  • 配合防火墙封禁租户间互访:
    iptables -A OUTPUT -m owner --uid-owner tenant-a -d 192.168.1.100 -j DROP
    (阻止 tenant-a 主动连另一租户所在 IP)
  • 对高敏租户启用独立 network namespace(netns),使其 SSH 会话运行在隔离网络栈中:
    ip netns add ns-tenant-a
    ip netns exec ns-tenant-a /usr/sbin/sshd -D -o "Port 2222"
    再用 sshd_config 的 ListenAddress 绑定到该 netns 的虚拟接口
  • 记录完整审计日志:
    确保 /etc/ssh/sshd_config 含有:
    LogLevel VERBOSE
    PermitUserEnvironment no
    并启用 auditd 监控 execve 和 setuid 系统调用

四、关键避坑提醒

这些细节常被忽略,但直接决定隔离是否真正生效:

  • 不要用 usermod -s /bin/false 禁用租户:这会同时禁掉 scp、sftp 和所有基于 SSH 的自动化工具,运维脚本极易中断
  • 重启 sshd 前必须验证配置语法:
    sshd -t && echo "OK" || echo "FAIL",否则可能锁死远程管理通道
  • 租户账号默认 shell 必须为 /bin/bash(或指定受限 shell),且 /etc/passwd 中字段不可为空:OpenSSH 某些版本对空 shell 字段处理异常,导致 DenyUsers 失效
  • 禁用 PAM 的 pam_wheel.so 或 pam_access.so 冲突规则:若已启用 AllowUsers,就不要在 /etc/security/access.conf 中再写重复或反向策略,否则以 PAM 实际加载顺序为准,调试困难

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

457

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

960

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

3312

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

1076

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

969

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

514

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

3036

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

5732

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

887

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习