debian

如何限制Debian SFTP用户访问

小樊
41
2025-04-11 03:17:21
栏目: 智能运维

要限制Debian SFTP用户的访问,您可以采用以下方法:

  1. 使用Chroot环境:

Chroot环境可以将用户的根目录限制在一个特定的目录中,从而限制用户访问其他目录。要设置Chroot环境,请按照以下步骤操作:

a. 安装必要的软件包:

sudo apt-get update
sudo apt-get install openssh-server

b. 创建一个新的用户组(可选):

sudo groupadd sftp_users

c. 为新用户创建一个系统账户(如果尚未创建):

sudo adduser --system --group --disabled-login --no-create-home your_username

d. 将新用户添加到新创建的用户组(如果使用了用户组):

sudo usermod -aG sftp_users your_username

e. 创建一个用于存放用户文件的目录,并设置正确的权限:

sudo mkdir /home/your_username/uploads
sudo chown root:root /home/your_username/uploads
sudo chmod 755 /home/your_username/uploads

f. 编辑SSH配置文件:

sudo nano /etc/ssh/sshd_config

在文件末尾添加以下内容:

Match Group sftp_users
    ChrootDirectory %h/uploads
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

保存并退出。

g. 重启SSH服务:

sudo systemctl restart ssh

现在,SFTP用户将被限制在其uploads目录中,无法访问其他目录。

  1. 使用vsftpd:

vsftpd是一个流行的FTP服务器软件,也可以用于SFTP。要使用vsftpd限制SFTP用户的访问,请按照以下步骤操作:

a. 安装vsftpd:

sudo apt-get update
sudo apt-get install vsftpd

b. 创建一个新的用户组(可选):

sudo groupadd sftp_users

c. 为新用户创建一个系统账户(如果尚未创建):

sudo adduser --system --group --disabled-login --no-create-home your_username

d. 将新用户添加到新创建的用户组(如果使用了用户组):

sudo usermod -aG sftp_users your_username

e. 编辑vsftpd配置文件:

sudo nano /etc/vsftpd.conf

在文件末尾添加以下内容:

local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO

保存并退出。

f. 创建一个用于存放用户文件的目录,并设置正确的权限:

sudo mkdir /home/your_username/uploads
sudo chown root:root /home/your_username/uploads
sudo chmod 755 /home/your_username/uploads

g. 创建一个用户列表文件,并将允许访问的SFTP用户添加到该文件中:

echo "your_username" | sudo tee -a /etc/vsftpd.userlist

h. 重启vsftpd服务:

sudo systemctl restart vsftpd

现在,SFTP用户将被限制在其uploads目录中,无法访问其他目录。

0
看了该问题的人还看了