Centos 7设置SFTP&FTP

本文详细介绍了如何在Centos 7上设置SFTP和FTP服务。内容包括SFTP的升级、创建用户组和用户、配置文件修改、权限设置,以及FTP服务的安装、配置权限、创建用户等步骤,确保用户只能通过SFTP和FTP进行文件上传下载,而不能SSH登录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Centos 7设置SFTP&FTP

近期需要在个人VPS设置SFTP和FTP服务,可以上传删除的SFTP,但是禁止该用户通过SSH登录。

SFTP

升级

yum update

创建用户组sftp

用户组名为sftp

groupadd sftp

创建用户test

用户名可以随机取,在此取名为test

useradd -G sftp -s /sbin/nologin test

讲解

-s: 禁止用户ssh登录

-G:加入sftp用户组

创建密码

passwd test

修改配置文件

修改配置文件sshd_cinfig

vim /ect/ssh/sshd_config

重点(我就是在这里踩坑了)

##下面这行注释掉
#Subsystem sftp /usr/libexec/openssh/sftp-server
##后面加入
Subsystem sftp internal-sftp
#注意,以下要 放在 本文件的最后行,否则 root用户无法登陆**
Match Group sftp
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory %h                      
ForceCommand internal-sftp

说明
Match Group sftp 匹配sftp用户组中的用户
ChrootDirectory %h 只能访问默认的用户目录(自己的目录),例如 /home/test

设置目录权限
chown root:sftp /home/test
chgrp -R sftp /home/test
chmod -R 755 /home/test
#设置用户可以上传的目录,改目录下允许用户上传删除修改文件及文件夹
mkdir /home/test/upload
chown -R test:sftp /home/test/upload
chmod -R 755 /home/test/upload
重启ssh

systemctl restart sshd.service

测试

新建一个 终端链接,或者在 FTP 客户端中使用SFTP 模式链接(输入相关的IP用户名及端口)

sftp test@192.1.1.1

Q&A

出现以下错误:

sftp Connection to  closed by remote host.
或者
Write failed: Broken pipe 
Couldn't read packet: Connection reset by peer 

这个就是该用户根目录的权限问题,chown root:sftp /home/test 设置为root用户即可解决,目录权限为755

检测 /etc/selinux/config中SELINUX 是否为SELINUX=disabled

还有sshd_config里面的内容一定要放在文件末尾,不然不会root不能登录

FTP

Centos7中默认已经安装了sshd服务(sftp), vsftpd需要手动安装

安装并启动FTP服务
安装vsftpd

yum install -y vsftpd

启动vsftpd

service vsftpd start

Ubuntu: lsof -i:21

Centos: netstat -nltp | grep 21

此时, 访问ftp://IPaddr 就可浏览主机上的 /var/ftp目录了

配置 FTP 权限
了解 vsftpd 配置

vsftpd 的配置目录为 /etc/vsftpd, 包含下列的配置文件 :

a. vsftpd.conf 为主要配置文件

b. ftpusers 配置禁止访问 FTP 服务器的用户列表

c. user_list 配置用户访问控制

阻止匿名访问和切换根目录

匿名访问和切换目录都会给服务器带来安全风险, 我们把这两个功能关闭.

编辑 /etc/vsftpd/vsftpd.conf, 找到下面两处配置并修改:

# 禁用匿名用户  YES 改为NO

anonymous_enable=NO

# 禁止切换根目录 删除或#

chroot_local_user=YES

编辑完成后保存配置, 重新启动 FTP 服务

service vsftpd restart

创建 FTP 用户

创建一个用户 ftpuser

useradd ftpuser

为用户 ftpuser 设置密码

passwd ftpuser
echo "new_password" | passwd ftpuser --stdin

限制该用户仅能通过FTP访问

限制用户 ftpuser 只能通过 FTP 访问服务器, 而不能直接登录服务器

usermod -s /sbin/nologin ftpuser

为用户分配主目录

为用户 ftpuser创建主目录并约定

/data/ftp 为主目录, 该目录不可上传文件

/data/ftp/pub 文件只能上传到该目录下

/data中创建相关的目录

mkdir -p /data/ftp/pub

设置访问权限

chmod a-w /data/ftp && chmod 777 -R /data/ftp/pub

设置为用户的主目录

usermod -d /data/ftp ftpuser

Test

至此, FTP服务已经搭建完成, 可以使用各种第三方客户端来测试访问FTP服务器

访问前, 记得关闭防火墙

service firewalld stop

如果需要使用root登录连接FTP服务, 需要配置 /etc/vsftpd/user_list/etc/vsftpd/ftpusers, 将文件中的root注释

大家有兴趣可以访问我的博客 DreamWord

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值