这是 rssh 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
rssh - 仅允许 scp 和/或 sftp 的受限安全外壳
概要
RSSH [ 选项... [ ... ]
RSSH -v
商品描述
RSSH 是一个受限制的外壳,用于通过以下方式提供对主机的有限访问 SSH(1)、允许一个
其外壳配置为的用户 RSSH 使用一个或多个命令 SCP(1)
SFTP(1) CVS(1) 目录(1), rsync的(1), 仅由 那些命令。 它主要是为了
使用 OpenSSH(请参阅 http://www.openssh.com),但可以与其他
实现。
系统管理员应该在受限系统上安装 shell。 那么
希望为其提供受限访问权限的任何用户的密码文件条目
应该被编辑,这样他们的外壳是 RSSH。 例如:
luser:x:666:666::/home/luser:/usr/bin/rssh
如果使用 -v 选项, RSSH 将报告其版本,然后退出。 所有其他
参数 RSSH 是远程指定的那些 SSH(1) 客户,而且不多
关注普通用户。 提供的参数必须是遥控器上的外壳
end 将接收以将控制权传递给 SCP(1) SFTP(1) 等 如果 RSSH 接收
不符合的参数,它将发出错误消息并退出。 如果程序
用户尝试运行是不允许的,或包含将尝试执行
shell 命令(例如命令替换),它也会发出错误并退出。
RSSH 有一个配置文件, 配置文件(5) 允许某些行为 RSSH 至
进行定制。 有关详细信息,请参阅该手册页。
保安 附注
阅读 Free Introduction 部分 - 特殊 关心, or 五月 放 您的 系统 at 风险!
运用 RSSH 通过 CVS
如果您在使用 RSSH 要允许 CVS 访问,需要注意的是不能
防止非常熟悉 CVS 的用户绕过 RSSH 并得到一个贝壳,
除非用户在存储库中没有写访问权限。 显然,用户必须
拥有对存储库的写访问权限以更新它,这允许他们上传
任意程序进入存储库。 CVS 提供了几种执行机制
这种随意的程序......唯一合理安全的使用方式 RSSH 与 CVS 是使用
chroot jail 工具将 CVS 存储库放置在 chroot jail 中。 请参见
下面和所有相关文档,了解如何设置 chroot jails 的详细信息。 注意
用户 将 仍然 be 能够 至 得到 壳 ACCESS 中 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 监狱; 唯一的保护是
前提是他们不能逃脱监狱。 我被要求保留支持
对于 CVS,因为这种保护总比没有保护好。 您 它们在许多情况下都能提供类似的结果。 很 警告。 使用 VHDL 语言编写
CVS at 您的 己 风险。
潜力 根 妥协 通过 老 选项
申请早于 RSSH 2.3.0, 如果普通用户可以通过 shell 访问一台机器 RSSH 是
已安装,因此可能会出现 root 妥协 rssh_chroot_helper 允许用户
任意地 chroot(2) 到文件系统上的任何地方。 可以缓解这种情况
攻击受影响的版本 RSSH 对文件使用严格的访问控制,通过使
确保用户不能写入与系统可执行文件相同的分区上的任何文件,
并且任何可以写入文件的分区都不允许执行 SUID
程式。 作为 RSSH 2.3.0,通过防止任意
根目录(), if 您的 监狱 is 集 up . 尤其要确保普通用户
无法写入包含复制的二进制文件的 jail 内的目录。 那
应该是显而易见的,但需要说一下。 虽然它不应该是绝对必要的,
为了进一步保护您的系统免受可能的危害,还建议遵循
下面标题为“防止绕过 rssh 的安全措施”的部分。
保障 针对 通过传递 RSSH
RSSH 旨在与其他几个程序进行交互。 即使 rssh 完全是错误的-
免费,其他程序的更改可能会导致绕过
保护 RSSH 旨在提供。 It is 重要 你, 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 系统
管理员, 至 留 当前 on 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 服务 使 可使用 - rssh, 至 be 肯定
这 这些 命令 do 而不去 提供 机制 至 让 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 用户 至 运行 随意 命令。
此外,虽然每个版本的目标都是无错误,但没有人是完美的......
是未被发现的错误 RSSH 这可能允许用户绕过它。
您可以保护您的系统免受那些利用这些弱点的人的侵害。 这个
不需要 RSSH 正常工作,但这是一个非常好的主意。 有六个
基本步骤:
1. 使用 rssh 保护所有非管理员帐户(即没有普通用户
应该具有对服务器的外壳访问权限)
2. 将你的用户放入 chroot jail
3. 将监狱中的二进制文件限制在所需的绝对最小值
4. 使用 noexec/nosuid 选项挂载他们的主文件系统(即使用单独的
用户主目录和所有其他文件的 jail 分区,如果
可能/合理)
5. 为 rssh 用户创建一个组,并限制对二进制文件的可执行访问
给该组的用户。
6. 谨慎恰当地使用标准文件权限
如果可能,请确保没有普通用户对系统具有任何类型的 shell 访问权限
除了通过 RSSH. 否则,具有 shell 访问权限的用户可能会利用
未发现的错误 rssh_chroot_helper 获得对服务器的 root 访问权限。
RSSH 使系统管理员能够将用户置于 chroot jail 中。 看
手册页中的详细信息 配置文件 并在文件中 根 它与
源代码。 如果要确保用户不能运行任意程序,请使用 chroot
监狱,并确保不要放置任何非绝对必要的程序
提供您尝试提供的服务。 这会阻止他们运行标准
系统命令。
然后,确保监狱中的用户文件与您的文件系统位于不同的文件系统中
系统的可执行文件。 如果在您的环境中可能,请确保安装它
文件系统使用 NOEXEC 和 野菜 选项,如果您的操作系统提供它们。
这可以防止用户执行他们上传的程序
目标机器(例如使用 scp),否则可能是可执行的,并防止 SUID
程序从尊重 SUID 位。 请注意,这些选项需要用户的
文件位于与监狱中的二进制文件和库不同的分区上。
因此,您的监狱至少需要 2 个分区才能正确执行此操作(一个分区用于
监狱中的系统二进制文件,另一个用于用户目录)。
此外,为 rssh 用户创建一个组,例如“rsshuser”。 把你所有的用户
谁将在该组中受到 rssh 的限制。 在 rssh 上设置所有权和权限
和 rssh_chroot_helper 以便只有那些用户可以执行它们。 以下命令
应该说明:
# 组添加 rssh用户
# 乔恩 根:rsshuser RSSH rssh_chroot_helper
# CHMOD 550 RSSH
# CHMOD 4550 rssh_chroot_helper
最后,使用标准的 Unix/POSIX 文件权限来确保他们无法访问他们所拥有的文件
应该不能在 chroot jail 中。
命令 Line 分析器
截至 RSSH 2.2.3版本,程序必须解析出完整的命令行以避免
导致执行任意程序的命令行选项(从而绕过
的安全 RSSH)。 为了保持程序源代码的完整性,解析器有点
过于热衷于匹配命令行选项。 在实践中,这可能不会
一个问题,但理论上是可能的。
如果您遇到问题 RSSH 拒绝奔跑,自称拒绝不安全
未指定的命令行选项,请尝试更改您的命令行,以便
所有 短 选项被指定为单字母选项标志(例如 -e -p 而不是 -ep)
并确保用空格将参数与其各自的选项分开(例如 -p 123
而不是 -p123)。 在几乎所有情况下,这都应该可以解决问题。 诚然,一个
没有进行详尽的搜索,但没有发现有问题的案例
很可能是常见的。
另一种方法是为 rcp、rdist、
和 rsync; 这超出了本项目的范围。 在实践中,现有的
解析器应该足够了。 但是,如果您发现没有的情况,请发布详细信息
到 rssh 邮件列表。 有关如何发布到邮件列表的详细信息,请访问
rssh 主页。
OpenSSH的 选项 和 通过传递 RSSH
在 OpenSSH 3.5 之前, sshd的(8) 一般会尝试解析用户家中的文件
目录,也可以尝试从用户的目录运行启动脚本 $HOME/.ssh 目录。
RSSH 不会以任何方式利用用户的环境。 相关命令是
通过调用执行 执行(3) 使用在编译时指定的命令的完整路径
时间。 它不依赖于用户的 PATH 变量或任何其他环境
变量。
但是,可能会出现几个问题。 这完全是由于
OpenSSH 项目的 sshd 工作正常,这绝不是 RSSH. 例如,一个
可能存在的问题是,根据 sshd的(8) 至少一些手册页
OpenSSH 的发行版,命令列在 $HOME/.ssh/rc 文件被执行
/ bin / sh的 而不是用户定义的外壳。 这似乎不是
作者可以用来测试的系统; 命令是使用用户的
配置的外壳(RSSH),这不允许执行。 但是,如果您的情况属实
系统,然后恶意用户可能能够规避 RSSH 通过上传文件到
$HOME/.ssh/rc 将由 / bin / sh的 在那个系统上。 如果任何版本(的
OpenSSH) 实际上很容易受到这个问题的影响,那么它们很可能是
只有旧的,过时的版本。 只要您运行的是最新版本的 OpenSSH,这
据我所知,应该不是问题。
如果你的 sshd is 容易受到这种攻击,但是有一个解决这个问题的方法
这是非常严格的。 - 用户的 主页 目录 绝对 必须 而不去 be 可写 by
这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 用户。 如果是,用户可以使用 sftp 删除目录或重命名它,然后
创建一个新的,并用他们喜欢的任何环境文件填充它。 为提供
文件上传,这意味着必须为他们创建一个用户可写的目录,并且他们必须
意识到他们无法写入除此之外的主目录
的位置。
第二个问题是,在对用户进行身份验证后,sshd 还读取
$HOME/.ssh/环境 允许用户在他们的环境中设置变量。 这个
允许用户完全规避 RSSH 通过巧妙地操纵这样的环境
变量为 LD_LIBRARY_PATH or LD_预载 将 rssh 二进制文件链接到任意
共享库。 为了防止这成为一个问题,从 0.9.3 版本开始,通过
默认 RSSH 现在是静态编译的。 上面提到的限制性解决方法将
也打败了这种攻击。
从 OpenSSH 3.5 开始, sshd的 现在支持选项 许可用户环境 设置为“否”
默认情况下。 此选项允许受限外壳,例如 RSSH 正常运行
要求它们静态链接。 作为 RSSH 版本 1.0.1,配置脚本
应该检测到 OpenSSH 3.5 存在,并禁用静态编译的默认值。
使用 onworks.net 服务在线使用 rssh