Centos7.0+系统使用vsftpd搭建FTP服务器

时间:2021-10-29 03:39:41

一、 安装vsftpd

yum -y install vsftpd

二、 创建系统用户(FTP虚拟用户的宿主用户)

1.     创建用户主目录

mkdir -p /data/ ftp/sys_user/directory

2.     创建用户(用户名:ftpuser_tfs)

useradd -g root -M -d /data/ftp/sys_user/directory -s/sbin/nologin ftp_sys_user

3.     创建用户密码

passwd ftp_sys_user

三、创建FTP文件保存目录

mkdir –p /data/ftp/file_dir

chmod -R 777 file_dir

四、创建FTP虚拟用户

虚拟用户的用户认证是通过pam方式去认证,pam文件里面指定了认证的db文件,db文件又是通过明文用户名和密码文件生成而来。

指定pam文件是通过配置文件  /etc/vsftpd/vsftpd.conf 的  pam_service_name=vsftpd 配置指定的。

pam文件位置:/etc/pam.d/vsftpd

1.     添加ftp虚拟用户(生成db文件)

vi /etc/vsftpd/vuser_passwd.txt

在文本文件vuser_passwd.txt中加入用户名和密码,奇行为用户名,偶行为密码

ftp_user_one

654321

ftp_user_two

654321

通过以下命令生成db文件:

cd /etc/vsftpd

db_load -T -t hash -f vuser_passwd.txt vuser_passwd.db


2.     指定db文件(64位系统)编辑pam文件/etc/pam.d/vsftpd,

把文件内容全部注释掉。添加如两行配置:

auth required /lib64/security/pam_userdb.sodb=/etc/vsftpd/vuser_passwd

account required /lib64/security/pam_userdb.sodb=/etc/vsftpd/vuser_passwd

 

(db=/etc/vsftpd/vuser_passwd 指定了db文件的位置。)

 

3.     创建FTP虚拟用户配置文件(配置文件名必须与FTP虚拟用户名一致)

 

命令:

mkdir -p /etc/vsftpd/vuser_conf

vi /etc/vsftpd/vuser_conf/ftp_user_one

文件内容如下:

local_root=/data/ftp/file_dir

write_enable=NO

anon_umask=022

anon_world_readable_only=NO

anon_upload_enable=NO

anon_mkdir_write_enable=NO

anon_other_write_enable=NO

 

vi /etc/vsftpd/vuser_conf/ftp_user_two

文件内容如下:

local_root=/data/ftp/file_dir

write_enable=YES

anon_umask=022

anon_world_readable_only=NO

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

五、配置vsftpd

编辑文件/etc/vsftpd/vsftpd.conf

修改或启用的

#不允许匿名访问

anonymous_enable=NO

#启用限定用户在其主目录下

chroot_local_user=YES

 

手动添加的

#设定启用虚拟用户功能

guest_enable=YES

#指定虚拟用户的宿主用户

guest_username=ftp_sys_user

#虚拟用户配置文件存放的路径

user_config_dir=/etc/vsftpd/vuser_conf

#限定用户在其主目录下需要添加这个配置

allow_writeable_chroot=YES


六、重启FTP服务

命令:systemctl restart vsftpd.service