相关疑难解决方法(0)

一个 chroot/isolated SFTP 用户仍然可以使用 PHP 访问整个文件系统

我想在我的服务器上为我的朋友提供一个独立的网络托管空间。我做了:

useradd friend 
groupadd sftpusers
mkdir /sftp
mkdir /sftp/friend     
mkdir /sftp/friend/home
mkdir /sftp/friend/www 
usermod -aG sftpusers friend
chown friend:sftpusers /sftp/friend/home/
chown friend:sftpusers /sftp/friend/www/
usermod -d /sftp/friend/home friend 
Run Code Online (Sandbox Code Playgroud)

我将此添加到sshd_config

Subsystem sftp internal-sftp -d /home
Match Group sftpusers
ChrootDirectory /sftp/%u
Run Code Online (Sandbox Code Playgroud)

这对 Apache 配置:

<VirtualHost *:80>
  ServerName friend.example.com
  DocumentRoot /sftp/friend/www
  <Directory />
    AllowOverride All
    Require all granted
  </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

它有效:friend可以在 jailroot 环境中访问 SFTP 并且他不能/sftp/friend从 SFTP退出。这很好。

但我注意到他仍然可以使用 PHP 查看文件系统中的其他文件:如果他创建了一个index.php包含:

<?php …
Run Code Online (Sandbox Code Playgroud)

chroot sftp php apache-httpd

5
推荐指数
1
解决办法
145
查看次数

标签 统计

apache-httpd ×1

chroot ×1

php ×1

sftp ×1