一、安装
1、yum命令安装
yum -y install vsftpd
二、使用vsftpd搭建ftp
1、创建虚拟用户,并映射到系统普通用户来使用vsftpd
useradd -s /sbin/nologin virftp
2 、创建虚拟用户的密码文件
testuser1
123456
user1
654321
3、权限设置
#为了确保密码文件的安全,防止所有的用户都可以读取
chmod 600 /etc/vsftpd/vsftpd_login
4、将文本的密码文件装换成二进制的密码文件
#增加安全性
db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db
5、创建虚拟用户的目录和配置文件
mkdir /etc/vsftpd/vsftpd_user_conf
cd /etc/vsftpd/vsftpd_user_conf
#配置userstest1用户
vim testuser1
#配置内容:
#指定虚拟用户的家目录
local_root=/home/virftp/testuser1
#是否允许匿名用户
anonymous_enable=NO
#是否可写
write_enable=YES
#创建新文件目录的默认权限
local_umask=022
#是否允许匿名用户上传
anon_upload_enable=NO
#是否允许匿名用户创建目录和写
anon_mkdir_write_enable=NO
#连接ftp超时时间(秒)
idle_session_timeout=600
#数据传输的超时时间(秒)
data_connection_timeout=120
#最多允许同时几个终端连接
max_clients=10
#创建一个测试文件
mkdir /home/virftp/testuser1
touch /home/virftp/testuser1/ftptest.txt
同理创建user1的目录和配置文件
vim user1
#配置内容:
#指定虚拟用户的家目录
local_root=/home/virftp/user1
#是否允许匿名用户
anonymous_enable=NO
#是否可写
write_enable=YES
#创建新文件目录的默认权限
local_umask=022
#是否允许匿名用户上传
anon_upload_enable=NO
#是否允许匿名用户创建目录和写
anon_mkdir_write_enable=NO
#连接ftp超时时间(秒)
idle_session_timeout=600
#数据传输的超时时间(秒)
data_connection_timeout=120
#最多允许同时几个终端连接
max_clients=10
#创建一个测试文件
mkdir /home/virftp/user1
touch /home/virftp/user1/user1test.txt
6、修改家目录的主和组为virftp
chown -R virftp:virftp /home/virftp
7、定义认证的文件/etc/pam.d/vsftpd
vim /etc/pam.d/vsftpd
在文件在最前面加上
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
8、编辑 /etc/vsftpd/vsftpd.conf 主配置文件
vim /etc/vsftpd/vsftpd.conf
将anonymous_enable=YES 改为 anonymous_enable=NO
将#anon_upload_enable=YES 改为 anon_upload_enable=NO
并取消注释符
将#anon_mkdir_write_enable=YES 改为 anon_mkdir_write_enable=NO
并取消注释符
在最后加上如下内容
chroot_local_user=YES
#打开虚拟用户映射
guest_enable=YES
#映射的用户名
guest_username=virftp
#告诉服务,我们现在用的虚拟用户
virtual_use_local_privs=YES
#定义虚拟用户配置文件所在路径
user_config_dir=/etc/vsftpd/vsftpd_user_conf
allow_writeable_chroot=YES
三、连接本地ftp
1、配置防火墙
#加入21端口
firewall-cmd --zone=public --add-port=21/tcp --permanent
#重启防火墙
systemctl restart firewalld.service
2、关闭selinux服务
vim /etc/selinux/config
将 SELINUX=enforcing 改为 SELINUX=disabled
3、启动vsftpd服务
#启动服务
systemctl start vsftpd
#查看进程
ps aux |grep vsftpd
#查看监听的端口
netstat -lntp |grep vsftpd
4、连接配置
5、成功
注意:如果不能实现文件传输,记得查看用户的权限