2020-12-28 CentOS7安装配置vsftpd教程

  1. 安装FTP
    为了能够快速在服务器上传和下载文件,我们需要安装FTP。
    首先查看服务器是否已经安装了FTP:
rpm -q vsftpd

若提示package vsftpd is not installed,则为未安装,执行一下指令:

yum -y install vsftpd
  1. 配置FTP
    (1)将vsftpd的配置文件/etc/vsftpd/vsftpd.conf备份:
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

配置文件最好备份一下,作为多种配置方式的模板。
(2)查看vsftpd.conf中的基本参数:

#禁止匿名用户登陆
anonymous_enable=NO
#允许本地用户(虚拟用户)访问
local_enable=YES
write_enable=YES
local_umask=022
#开启日志记录
xferlog_enable=YES
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
#开启主动模式(常用主动模式,但需要开启20端口)
connect_from_port_20=YES
pasv_enable=NO
#开启被动模式(与主动模式二选一)
#connect_from_port_20=NO
#pasv_enable=YES
#pasv_min_port=50000
#pasv_max_port=60000
#开启异步传输
async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
#设置FTP banner
ftpd_banner=Welcome to blah FTP service.
#不允许用户登出主目录
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
#设定该Vsftpd服务工作在StandAlone模式下
listen=YES
#listen_ipv6=YES
#开启用户列表
userlist_enable=YES
userlist_deny=NO
#设定支持TCP wrapper
tcp_wrappers=YES

(3)系统用户登录FTP
在vsftpd.conf中添加系统用户设置:

#设定登录的系统用户
nopriv_user=ftpuser

在系统中添加新用户并设置密码:

useradd -d /data/yourftp ftpuser
echo ‘123456’ | passwd --stdin ftpuser

启动服务器,即可用客户端登录了:

systemctl start vsftpd
ftp 127.0.0.1

(4)虚拟用户登录FTP
在vsftpd.conf中添加虚拟用户设置:

#设置虚拟用户virtualhost
guest_enable=YES
guest_username=virtualhost
virtual_use_local_privs=YES
pam_service_name=vsftpd
user_config_dir=/etc/vsftpd/virtualconf

添加虚拟用户,可设为禁止登录:

useradd -d /data/yourftp virtualhost -s /sbin/nologin

创建vsftpd日志,更改权限:

touch /var/log/vsftpd.log
chown virtualhost.virtualhost /var/log/vsftpd.log

建立虚拟用户配置文件,与vsftpd.conf中的user_config_dir对应:

mkdir /etc/vsftpd/virtualconf

安装制作虚拟用户数据库文件的db4软件包:

yum install db4

编辑虚拟用户名单:

vim /etc/vsftpd/virtualusers

在其中设定虚拟用户的用户名和密码:
virtual
12345678
生成虚拟用户数据文件:

db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db

安装pam验证服务:

yum install pam

备份pam中的vsftpd配置文件,与vsftpd.conf中pam_service_name对应:

cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
vim /etc/pam.d/vsftpd

如果是32位系统则改为:

#%PAM-1.0
auth    sufficient      /lib/security/pam_userdb.so     db=/etc/vsftpd/virtusers
account sufficient      /lib/security/pam_userdb.so     db=/etc/vsftpd/virtusers

如果是64位系统则改为:

#%PAM-1.0
auth    sufficient      /lib64/security/pam_userdb.so     db=/etc/vsftpd/virtusers
account sufficient      /lib64/security/pam_userdb.so     db=/etc/vsftpd/virtusers

定制虚拟用户配置:

vim /etc/vsftpd/virtualconf/virtual

在其中可以定义虚拟用户的初始目录为网站根目录:

local_root=/usr/share/nginx/html

为网站根目录添加权限:

chown -R virtualhost :virtualhost /usr/share/nginx/

另外还可在/etc/vsftpd/chroot_list中添加上限制在主目录的名单。
重启vsftpd服务器:

systemctl restart vsftpd

此时便可以通过虚拟用户访问服务器目录了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容