一、下载安装配置
1.下载
1.1 下载服务端 vsftpd(链接:https://www.aliyundrive.com/s/5cdciNjSafV)
1.2 下载客户端 ftp(链接:https://www.aliyundrive.com/s/ewuJRyt3NFD)
注:客户端必须安装,否则ftp命令无法使用(-bash: ftp: command not found)
2.上传安装包到服务器,放在安装目录,比如/home/ 下
3.执行安装命令
# ftp服务端安装
[root@fan102 ~]# rpm -Uvh vsftpd-3.0.2-27.el7.x86_64.rpm
# ftp客户端安装
[root@fan102 ~]# rpm -Uvh ftp-0.17-67.el7.x86_64.rpm
4.修改配置文件
#修改服务端配置文件
[root@fan102 ~]# vi /etc/vsftpd/vsftpd.conf
#添加内容如下
reverse_lookup_enable=NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
#listen_port=21 //默认端口号是21,如果需要改端口号,则需编辑 /etc/services 文件,将其中的 ftp 21/tcp 改为对应的端口号
5.启动
#服务启动
[root@fan102 ~]# systemctl start vsftpd.service
二、新增用户
#新增用户并指定文件用户文件,示例用户为zion
[root@fan102 ~]# useradd -d /home/zion zion
#设置密码
[root@fan102 ~]# passwd zion 123123
#限定用户不能telnet,只能ftp
[root@fan102 ~]# usermod -s /sbin/nologin zion
#将该用户加入到用户列表中
[root@fan102 ~]# vi /etc/vsftpd/user_list
三、登录校验
1.重启服务器
#服务重启
[root@fan102 ~]# systemctl restart vsftpd.service
2.连接服务端
#连接ftp服务
[root@fan102 ~]# ftp 172.16.1.102 21
Connected to 172.16.1.102 (172.16.1.102).
220 (vsFTPd 3.0.2)
Name (172.16.1.102:root): zion
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> quit
221 Goodbye.
3.连接成功
230代表成功,请点赞+关注,您的鼓励是我最大的动力,加油🆙
四、登录失败
1.错误代码:530
530 Login incorrect
#查看日志
[root@fan102 ~]# tail /var/log/secure
日志内容:pam_unix(vsftpd:auth): authenticatio,pam_unix(vsftpd:auth): check pass
pam_unix(vsftpd:auth): authentication failure,logname= uid=0
原因
这个是因为你创建的用户是不需要登陆的你设置了nologin,然后登陆的时候会去/etc/passwd下面检查这个用户,必须为/etc/shells类型才能登陆。
解决
#第四行 设置为nologin,或者注释掉
#修改配置文件
[root@fan102 ~]# vi /etc/pam.d/vsftpd
#第四行 设置为nologin,或者注释掉
1 #%PAM-1.0
2 session optional pam_keyinit.so force revoke
3 auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
4 auth required pam_nologin.so
5 auth include password-auth
6 account include password-auth
7 session required pam_loginuid.so
8 session include password-auth
2.错误代码:500
500 OOPS: could not read chroot() list file:/etc/vsftpd/chroot_list
原因:用户没有变更根目录的权限,ftp用户默认的根目录是/home/zion,如果要切换登陆目录,需要给予权限
解决
第一步:
#修改配置文件
[root@fan102 ~]# /etc/vsftpd/vsftpd.conf
#内容如下
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
第二步:在/etc/vsftpd/vsftpd创建chroot_list并将用户(zion)加入该文件
#创建chroot_list并将用户加入该文件
[root@fan102 ~]# /etc/vsftpd/vsftpd/chroot_list
#文件内容
zion
文章有用的话,请点赞+关注,您的鼓励是我最大的动力,更多好帖敬请期待,加油🆙
+++++++++++++++++++++++++++++++++++++++++
+ 如有问题可+Q:1602701980 共同探讨 +
+++++++++++++++++++++++++++++++++++++++++