从 RHEL 5 盒中安全传输数据

从 RHEL 5 盒中安全传输数据

我已经研究这个问题一段时间了,但找不到确切的答案。FTP - 非常不安全。FTP over SSl - 并非所有地方都完全支持,只有少数客户端支持它?SFTP - 这是我一直在尝试的,因为它最安全?

从与 redhat 的交谈来看,RHEL 5 (sshd) 不支持个人用户的 chroot jails,因此用户可以查看系统文件等...这肯定是一个安全风险。他们还可以查看其他用户的文件。

还有其他选择吗,人们一定一直都会遇到这种情况,有没有最佳实践选择?

谢谢任何帮助/信息!

答案1

在您列出的选项中,SFTP/SCP 绝对是最安全的,并且是传统 FTP 访问系统的相当标准。

RedHat 是对的,RHEL5 中的 sshd 版本太旧,无法支持 ChrootDirectory 选项,该选项会使 sshd 自动为 SCPing 用户设置 chroot。话虽如此,允许用户查看文件系统并不一定会带来巨大的安全风险 - 非特权用户很难对正确设置的系统造成重大损害 - 主要风险是本地特权提升,因为 scp 访问需要有效的 shell。

不过,各个层面的安全都是首选,因此有一些解决方法:

scponly (http://sublimation.org/scponly| 转速:http://packages.sw.be/scponly/) 替换用户 shell,以便他们只能读取/写入文件而不能执行它们。

还有其他指南和脚本可以为您自制一个 chroot 的 scp 会话(注意,我还没有测试过这个特定的脚本,它只是在谷歌搜索中出现在顶部):http://www.fuschlberger.net/programs/ssh-scp-sftp-chroot-jail/

答案2

我建议您使用 sftp/scp 进行数据传输。

你似乎对 chroots 有点误解。如果你只需要为用户提供数据传输的可能性,OpenSSH 中的内部 sftp 支持确实支持 chrooting 用户。

假设您有一个名为 的用户组,leechers您想授予其访问 scp 及其主目录的权限,但不允许访问其他任何目录。在这种情况下,您可以将以下内容附加到/etc/ssh/sshd_config

Match group leechers
         ChrootDirectory /home/%u
         X11Forwarding no
         AllowTcpForwarding no
         ForceCommand internal-sftp

您的其他选择包括为用户提供受限的 shell,例如外壳或 rssh。

chrooting / jails 也是一种可能性,但是大多数时候麻烦大于其价值。

答案3

从 4.3p2 开始,sshd 支持 chroot

您可以使用以下配置(或类似的配置)

Subsystem       sftp    internal-sftp

Match User pacey
           ChrootDirectory /home/pacey
           ForceCommand internal-sftp
           AllowTCPForwarding no

您还可以使用Match Group指令来匹配组。

答案4

您可以使用 rssh。它使用起来非常简单。只需在 rssh.conf 文件中允许 scp/sftp/rsync,并将用户 shell 更改为 /usr/sbin/rssh(或 RHEL 中安装 rssh 的任何位置)。

相关内容