centos7 安装vsftp

centos7  安装vsftp

原文链接:https://www.cnblogs.com/zsg88/p/15607173.html

1 、yum 安装vsftp

yum -y install vsftpd

常用命令:

设置开机启动

systemctl enable vsftpd

启动

systemctl start vsftpd

重启

systemctl restart vsftpd

停止

systemctl stop vsftpd

查看状态

systemctl status vsftpd

 

2 、创建ftp 目录

mkdir -p /home/ftproot/ftptest

 创建用户ftptest,并且指定其目录为用户目录中创建的/home/ftproot/ftptest

useradd -d /home/ftproot/ftptest -g ftp -s /sbin/nologin ftptest

 -g ftp 表示该用户属于ftp分组 (ftp分组是内置的,本来就存在,不需要自己创建)

-s /sbin/nologin 表示这个用户不能用来登录secureCRT这样的客户端,这种不能登陆的用户又叫做虚拟用户

 创建过程给出的警告信息是正常的,不用理会

把目录/home/ftproot/ftptest的拥有者设置为ftptest

chown -R ftptest /home/ftproot/ftptest

使ftptest用户拥有这个目录的读写权限 

chmod -R 775 /home/ftproot/ftptest

3、为ftptest用户设置密码 

passwd ftptest

4、 配置

vi /etc/vsftpd/vsftpd.conf

 

修改第12行,禁止匿名登录

anonymous_enable=NO

第102行,去掉注释

chroot_list_enable=YES

 第104行,去掉注释

chroot_list_file=/etc/vsftpd/chroot_list

chroot_list_enable=YES: 表示对用户访问进行限制
chroot_list_file=/etc/vsftpd/chroot_list 表示对chroot_list里面指定的用户进行限制

vsftpd服务器,一旦某个用户被限制访问了,那么默认情况下,该用户的写权限也被剥夺了。 这就导致ftp客户端连接上服务器之后无法上传文件。这个时候,就需要打开此用户的写权限。

 vsftpd有两种端口:

一种是21端口,用来监听客户端连接请求的。 这个一般说来是固定的,就一直使用21端口。
一种是,一旦获取到请求之后,再专门用户服务端和客户端传输数据的端口。 (安装用的这种)

在vsftpd.conf的最后追加

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30010

这表示使用被动模式,用于传输数据的端口分配从30000-30010之间

 在vsftpd.conf的最后加上

需要同时设置allow_writeable_chroot,允许受限用户的写权限

reverse_lookup_enable参数可能会出现较大的延迟,默认是YES

allow_writeable_chroot=YES
reverse_lookup_enable=NO

添加账号到chroot_list里,一行一个用户账号

[root@localhost vsftpd]# vi /etc/vsftpd/chroot_list

filesync

 

 

5、用户鉴权

因为用户 ftptest 是 nologin的,所以存在鉴权的问题。 如果鉴权问题不解决,就是永不停息的 530错误。。。

解决办法有如下两种:

1. 方式一:编辑/etc/pam.d/vsftpd

vi /etc/pam.d/vsftpd

注释下面这一行

#auth required pam_shells.so

6、重启服务

systemctl restart vsftpd.service
posted @ 2023-01-11 10:10  老街巷口熟睡的猫  阅读(153)  评论(0)    收藏  举报