新随笔  :: 管理

linux-安装部署ftp服务器完整步骤及排错指南

Posted on 2020-06-10 00:55  SliverLee  阅读(241)  评论(0)    收藏  举报

1、安装
yum -y install vsftpd*
2、配置文件

#配置是否匿名
anonymous_enable=NO
#Local_ennable必须是YES,这样/etc/password的账号才可以已实体账号登陆vsftp主机
local_enable
=YES
#是否具有写权限 write_enable
=YES
#本地创建文件或者目录的掩码 local_umask
=022   #当dirmessage_enable=YES时,可以设定这个项目来让vsftpd寻找该档案来显示讯息!您也可以设定其它档名!
dirmessage_enable
=YES
#当设定为YES时,使用者上传与下载日志都会被纪录起来。记录日志与下一个xferlog_file设定选项有关 xferlog_enable
=YES
xferlog_std_format=YES
#开启20端口 connect_from_port_20
=YES

 #通过搭配能实现以下几种效果:
 #①当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。
 #②当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd.chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。
 #③当chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到其他目录。
 #④当chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到其他目录。

chroot_local_user=no
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
#pam模块名称
pam_service_name=vsftpd
userlist_enable=YES
#Tcp_wrappers tcp_wrappers
=YES
#不添加下面这个会报错:500 OOPS: vsftpd: refusing to run with writable root inside chroot() allow_writeable_chroot
=YES

附一个优化配置文件

listen=YES
listen_port=50021

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=no
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
allow_writeable_chroot=YES

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

pasv_enable=YES
pasv_min_port=6000
pasv_max_port=7000

  

 

 

3、创建ftp用户

#adduser -d /back/ftp  -s /sbin/nologin ftplee
#more /etc/passwd
#passwd ftplee 

为新建的账户设置密码 

[root@Redis-Mysql /back] passwd ftplee
Changing password for user ftplee.
New password:
BAD PASSWORD: The password fails the dictionary check - it is too simplistic/systematic
Retype new password:
passwd: all authentication tokens updated successfully.

--------------------这时候就可以尝试启动ftp了----------------------

3.1 # systemctl restart vsftpd  //重启ftp

   # systemctl enable vsftpd  //开机自启

   # systemctl stop firewalld  //先关闭防火墙

   #vim /etc/selinux/config  // SELINUX=disabled  或者  setenforce 0

4、接下来是我踩了很多次坑的地方,总结一下,引以为戒

  4.1  chroot_list_enable=YES必须为YES,而且需要把限制主目录的用户放在chroot_list_file=/etc/vsftpd/chroot_list指定的路径文件里

  4.2  530 Login incorrect.

530 Login incorrect.
Login failed.
1.兄弟如果这个帖子,解决了你的问题,请给我说一声谢谢,因为,我找了两天才解决到,真的心累了。
2.ftp登陆时报错,530 Login incorrect.Login failed.
3.请先看看百度前三种问题是否能解决,我这是第四种,因为我没有在百度上找到我着一种。
4.cat /etc/passwd,查看你登陆的账户主目录和登陆shell对应的是什么,我的是/sbin/nologin
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
5.查看cat /etc/shells是否有你用户的主目录和登陆shell,没有进行添加,保存,退出。

  4.3 500 OOPS: chroot

Login failed.
421 Service not available, remote server has closed connection

 #vim /etc/selinux/config  // SELINUX=disabled,重启电脑生效
或者  setenforce 0 不需要重启电脑

  4.4 vsftpd:500 OOPS

 

500 OOPS: vsftpd: refusing to run with writable root inside chroot ()

vim /etc/vsftpd/vsftpd.conf

  设置allow_writeable_chroot=YES

  重启ftp生效

 

5、如果还不能登陆,可以尝试修改密码,重启FTP然后重新登陆。

 

===========================备注================

  如有其他问题欢迎评论区留言,大家一起进步。

=================