环境
CentOS Linux release 7.9.2009 (Core)
安装
yum install -y vsftpd
配置文件
cd /etc/vsftpd
/etc/vsftpd/vsftpd.conf //主配置文件,核心配置文件
/etc/vsftpd/ftpusers //黑名单,这个里面的用户不允许访问FTP服务器
/etc/vsftpd/user_list //白名单,允许访问FTP服务器的用户列表
修改配置文件
vim vsftpd.conf
#禁止匿名登录
anonymous_enable=no
#允许本地用户登录
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=NO
listen_ipv6=YES
#配置虚拟用户,权限验证需要的加密文件,/etc/pam.d/vsftpd
pam_service_name=vsftpd
#只有user_list中的用户才能访问
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
tcp_wrappers=YES
pasv_min_port=30000
pasv_max_port=30010
#FTP访问目录
local_root=/data/ftp/
chmod -R 777 /etc/vsftpd/chroot_list
安装完成以后配置开机自启
systemctl enable vsftpd.service
systemctl start vsftpd.service
防火墙
关闭防火墙systemctl stop firewalld
如果是正式环境,最好开启防火墙,添加相应端口
#添加主端口
firewall-cmd --permanent --zone=public --add-port=60021/tcp
#添加被动端口
firewall-cmd --permanent --zone=public --add-port=65400-65410/tcp
firewall-cmd --reload
关闭SELINUX
#打开SELINUX配置文件
vim /etc/selinux/config
#修改配置参数
#注释
SELINUX=enforcing
#增加
SELINUX=disabled
#修改完成后,需要重启!
查询getenforce
也可以临时修改enforcing
stenforce 0
创建FTP用户
useradd -d /var/www/ -s /sbin/nologin admin
passwd admin
fulong123
修改权限
chmod -R 777 /var/www/
vim user_list
添加admin
重启ftp
sysemctl restart vsftpd
客户端链接
问题
530 Loginincorrect
Login failed
解决办法
只需要把/etc/pam.d/vsftpd文件中的
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
这一句注释掉就OK了