使用scponly允许SCP / SFTP登录和禁用SSH登录在Debian压缩

使用scponly允许SCP / SFTP登录,并在Debian Squeeze上禁用SSH登录

scponly是将用户限制为SCP和SFTP登录的备用shell,但不允许SSH登录。 它是OpenSSH应用程序套件的封装。 在scponly的帮助下,您可以允许您的用户使用WinSCPFileZilla等客户端上传/下载文件,但您拒绝SSH登录(例如使用PuTTY),以使用户无法执行文件/程序。 本教程将介绍如何在Debian Squeeze上安装和使用scponly。

我不会保证这将为您工作!

1初步说明

我将展示如何设置chroot和非chrolog帐户。 非锁定帐户可以浏览整个文件系统,而chroote帐户只能浏览其主目录,并且只能将(= upload)写入其主目录的指定子目录。 这很重要,因此chroot的scponly用户不能颠覆.ssh配置参数。

请注意,您可以修改现有的用户以使用非chroot scponly,但不可能修改现有的用户以chroot scponly。 要使用chroot scypely,你必须创建一个新的用户!

2安装scponly

可以安装如下:

apt-get install scponly

您将看到以下问题:

安装chrooted二进制/ usr / sbin / scponlyc SUID根? < - 是的

之后,您将在系统中找到两个新工具:

  • / usr / bin / scponly
  • / usr / sbin / scponlyc

/ usr / bin / scponly用于非chroot帐户,而/ usr / sbin / scponlyc用于chrooted帐户。

3设置非基调帐户

为了使用户使用sconely,我们所要做的就是将登录shell更改为/ usr / bin / scponly 。 您可以修改现有用户,如下所示:

usermod -s /usr/bin/scponly someuser

(将someuser替换真实的用户名。)

您可以使用scponly shell创建一个新用户,如下所示:

useradd -m -s /usr/bin/scponly someuser

(再次,用真实的用户名替换someuser 。)

之后指定新用户的密码:

passwd someuser

而已! 现在,您可以使用WinSCPFileZilla等客户端使用该用户名登录,也可以使用SCP或SFTP两种方式。

4设置基调帐户

如前所述,不可能修改现有用户使用chroot SCP或SFTP,我们必须创建一个新的用户。 为此,在/ usr / share / doc / scponly / setup_chroot目录中有一个名为setup_chroot.sh.gz的(压缩)帮助脚本。 让我们先解压文件:

cd /usr/share/doc/scponly/setup_chroot
gunzip setup_chroot.sh.gz

现在我们可以运行脚本如下:

sh setup_chroot.sh

脚本会询问用户的用户名和主目录。 它还将要求一个主目录的子目录,其中scponly将允许write(= upload)权限(写入权限不能授予主目录本身,以便chroot的scponly用户不能颠覆.ssh配置参数 - 主目录可以读/浏览) 最后,脚本将要求新用户的密码。

我想用主目录/ home / someuser创建用户someuser 。 因为用户在这个目录中有他的网站(文件根目录/ home / someuser / www / web ,cgi-bin目录/ home / someuser / www) ,所以我要授予/ home / someuser / www目录的写权限/ cgi-bin等都在里面/ home / someuser / www ):

root @ server1:/ usr / share / doc / scponly / setup_chroot#sh setup_chroot.sh

接下来,我们需要为这个scponly用户设置主目录。
请注意,用户的主目录不可写
由sconely用户。 这是重要的,以便用户
不能颠覆.ssh配置参数。

为此,将创建一个可写入的子目录
用户可以写入。

-en用户名安装[scponly]
< - someuser
-en要为此用户设置的主目录[/ home / someuser]
< - / home / someuser
-en可写子目录[incoming]
< - www
-e
创建/ home / someuser / www目录来上传文件

您的平台(Linux)没有平台特定的安装脚本。
这个安装脚本将尝试一个最好的猜测。
如果您执行自定义,请考虑给我发送您的更改。
查看build_extras / arch中的模板。
- joe at升华点组织

请为某些用户设置密码:
输入新的UNIX密码: < - somepassword
重新输入新的UNIX密码: < - somepassword
passwd:密码更新成功
如果您在winscp上遇到有关组的警告,请安装
所提供的黑客组织程序进入您的chroot,如下所示:
cp groups / home / someuser / bin / groups
root @ server1:/ usr / share / doc / scponly / setup_chroot#

现在看看创建的目录:

ls -la /home/someuser/
root@server1:~# ls -la /home/someuser/
total 36
drwxr-xr-x 9 root     root     4096 Jul 25 13:29 .
drwxr-xr-x 6 root     root     4096 Jul 25 13:29 ..
drwxr-xr-x 2 root     root     4096 Jul 25 13:29 bin
drwxr-xr-x 2 root     root     4096 Jul 25 13:29 dev
drwxr-xr-x 2 root     root     4096 Jul 25 13:29 etc
drwxr-xr-x 2 root     root     4096 Jul 25 13:29 lib
drwxr-xr-x 2 root     root     4096 Jul 25 13:29 lib64
drwxr-xr-x 4 root     root     4096 Jul 25 13:29 usr
drwxr-xr-x 2 someuser someuser 4096 Jul 25 13:29 www
root@server1:~#

如您所见,脚本已经为chroot环境创建了/ home / someuser和所有必需的目录/文件,除了用户和组someuser所拥有的www子目录外,它们都由用户和组root拥有(以便用户具有该目录的写入权限)。

现在,您可以使用WinSCPFileZilla等客户端使用该用户名登录,也可以使用SCP或SFTP,两者都可以正常工作。

如果您收到错误信息

Command 'groups'
failed with return code 1 and error message
/usr/bin/groups: cannot find name for group ID 1003.

请执行以下操作:

cp /lib/libnss_* -av /home/someuser/lib/

在64位系统上,还可以在前一个操作中添加以下命令:

cp /lib64/libnss_* -av /home/someuser/lib64/

再次登录,错误应该会消失。

5链接

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏