在CentOS中安装和配置Scponly在CentOS中安装和配置Scponly在CentOS中安装和配置Scponly在CentOS中安装和配置Scponly
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

在CentOS中安装和配置Scponly

发表 admin at 2025年2月28日
类别
  • 未分类
标签

简介

Scponly 是系统管理员的替代 shell,系统管理员希望为远程用户提供读写本地文件的访问权限,而不提供任何远程执行权限。从功能上来说,最好将其描述为经过考验的真正 ssh 应用程序套件的包装器。 Scponly 是匿名 FTP 的安全替代方案。它使管理员能够设置安全用户帐户,该帐户具有受限的远程文件访问权限,并且无法访问交互式 shell。

scponly 的典型用法是创建半公共帐户。这允许管理员以与匿名 ftp 设置相同的方式共享文件,仅使用 ssh 提供的所有保护。如果您认为 ftp 身份验证以纯文本格式穿越公共网络,这一点尤其重要。

先决条件

在开始本教程之前,有一些先决条件,例如:

  • 您需要一个新的 CentOS 6 或 7 Droplet。
  • 您还需要以非 root 用户身份运行所有命令。

安装和配置Scponly

第 1 步:

为了从源代码构建 scponly,需要安装 5 个必需的软件包,这些软件包如下:

  • Wget:下载文件
  • man: 阅读手册页
  • rsync:提供高级文件复制
  • gcc: 从源代码编译 scponly
  • openssh-client-tools:使用各种ssh工具

要安装这些软件包,我们将使用以下命令:

sudo yum install wget man rsync gcc openssh-clients -y

第2步:

现在我们将按照以下说明下载最新版本的 Scponly。我们将首先使用以下命令移动到 /opt 目录,该命令用于可选软件:

cd /opt

我们将使用以下命令来安装最新版本的Scponly:

sudo wget http://sourceforge.net/projects/scponly/files/scponly-snapshots/scponly-20110526.tgz

要提取文件,我们将使用以下命令:

sudo tar -zxvf scponly-20110526.tgz

步骤3:

现在下载并解压文件后,我们将使用 3 个主要命令开始构建 scponly:configure、make 和 make install。

我们将使用以下命令移动到 scponly 源代码所在的目录:

cd /opt/scponly-20110526

然后我们将使用第一个命令“configure”来构建具有我们所选功能的 makefile。

我们选择以下选项:

  • --enable-chrooted-binary:

    安装 chroot 二进制文件

    scponlyc
  • --enable-winscp-compat:

    实现与 Windows scp/sftp 客户端 WinSCP 的兼容性

  • --enable-rsync-compat:

    启用与 rsync 的兼容性,rsync 是一种非常通用的文件复制实用程序

  • --enable-scp-compat:

    启用与 UNIX 风格 scp 命令的兼容性

正如以下命令中所写:

sudo ./configure --enable-chrooted-binary --enable-winscp-compat --enable-rsync-compat --enable-scp-compat --with-sftp-server=/usr/libexec/openssh/sftp-server

现在我们将使用第二个命令“make”将所选选项构建到将在系统中安装和运行的二进制文件中。

sudo make

我们将使用以下命令安装二进制文件:

sudo make install

我们将使用以下命令将 scponly shell 添加到 /etc/shells 文件中:

sudo /bin/su -c "echo "/usr/local/bin/scponly" >> /etc/shells"

现在我们已经向系统添加了一个名为 scponly 的新 shell,并且我们已将二进制文件放置在 /usr/local/bin/scponly 目录中。

之后,我们将使用以下命令创建名为 sconly 的组:

sudo groupadd scponly

步骤4:

在本节中,我们将为 scponly 组创建一个集中上传目录。这使您可以控制可以将数据上传到服务器的位置和数量。

创建一个名为

/pub/upload

这将是一个专门用于上传的目录:

sudo mkdir -p /pub/upload

更改组所有权

/pub/upload

目录到

scponly

:

sudo chown root:scponly /pub/upload

下一步是设置权限

/pub/upload

目录。通过将此目录的权限设置为 770,我们仅向 root 用户和 scponly 组的成员授予访问权限。

更改权限

/pub/upload

目录的所有者和组可以读取、写入和执行,并删除其他人的所有权限:

sudo chmod 770 /pub/upload

第5步:

为了检查我们的 scponly 配置,我们将设置一个新的用户帐户。因此,我们将首先创建一个名为 Waf_User 的用户,并提及 scponly 作为替代组,然后

/usr/local/bin/scponly

作为 shell 使用以下命令:

sudo useradd -m -d /home/Waf_User -s "/usr/local/bin/scponly" -c "Waf_User" -G scponly Waf_User

现在我们将使用以下命令编辑 Waf_User 主目录的权限:

sudo chmod 500 /home/Waf_User

我们将使用以下命令为创建的用户添加密码来完成此步骤:

sudo passwd Waf_User

第6步:

在此步骤中,我们将检查 scponly shell 是否可以远程运行。我们将首先检查我们创建的用户是否无法访问终端。为此,我们将尝试使用以下命令以 Waf_User 身份登录服务器:

su - Waf_User

如果您尚未访问,请按 ctrl+c 退出 scponly shell。您还可以使用以下命令检查本地计算机的访问情况:

ssh Waf_User@your_IP

你会发现你还没有访问权限,所以再次按 ctrl+c 退出 scponly shell。

第7步:

现在我们将检查我们创建的用户是否可以下载文件。我们将首先使用以下命令创建一个 100 MB 的文件:

sudo fallocate -l 100m /home/Waf_User/Waf_file.img

现在我们将使用以下命令将 Waf_file.img 的所有权更改为 Waf_User:

sudo chown Waf_User:Waf_User /home/Waf_User/Waf_file.img

然后使用以下命令移动到 tmp 目录:

cd /tmp

然后我们将使用以下命令移动到我们的服务器:

sftp Waf_User@your_IP

然后使用以下命令下载文件:

ls -l
get Waf_file.img

下载完成后使用quit命令退出:

quit

在返回到本地计算机之前检查文件是否已成功下载。

ls -l Waf_file.img

步骤8:

现在我们将检查 Waf_User 是否可以使用 sftp 命令将文件下载到服务器。

与上一步一样,创建一个名为 Waf_upload 的 100 MB 文件

.img

使用以下命令:

fallocate -l 100m /home/Waf_User/Waf_upload.img

然后使用以下命令从本地系统连接到服务器:

sftp Waf_User@your_IP

然后使用以下命令上传文件:

put Waf_upload.img /pub/upload/

使用以下命令检查文件是否已成功上传:

ls -ltr /pub/upload

你会得到这样的东西:



-rw-r--r--    1 Waf_User Waf_User 104857600 Juil  27 08:58 Waf_upload.img

最后使用quit命令退出:

quit

结论

现在,您已经在系统中安装并配置了 sconly。该工具是一个有限的 shell,允许用户 scp/sftp 访问,并且仅允许 scp/sftp 访问您的盒子。此外,您可以设置 scponly 将用户 chroot 到特定目录,从而提高安全级别。

来源和参考链接:

  • Sconly主页
  • 数字海洋
©2015-2025 Norria support@norria.com