使用scponly允许SCP / SFTP登录,并在Debian Squeeze上禁用SSH登录
scponly是将用户限制为SCP和SFTP登录的备用shell,但不允许SSH登录。 它是OpenSSH应用程序套件的封装。 在scponly的帮助下,您可以允许您的用户使用WinSCP或FileZilla等客户端上传/下载文件,但您拒绝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
而已! 现在,您可以使用WinSCP或FileZilla等客户端使用该用户名登录,也可以使用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
拥有(以便用户具有该目录的写入权限)。
现在,您可以使用WinSCP或FileZilla等客户端使用该用户名登录,也可以使用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链接
- scponly: http : //sublimation.org/scponly/wiki/index.php/Main_Page
- WinSCP: http : //winscp.net/
- FileZilla: http : //filezilla-project.org/
- Debian: http : //www.debian.org/