近期由于工作原因,需要在CentOS7上安装FTP服务,一开始对vsftpd主配置文件中各属性不熟悉,造成部署vsftpd花费了很长时间,特在此记录下安装配置过程及主要属性说明。

一、安装vsftpd

vsftpd安装

yum install -y vsftpd

vsftpd服务启动

#启动
systemctl start vsftpd.service
#停止
systemctl stop vsftpd.service
#重启
systemctl restart vsftpd.service
#查看状态
systemctl status vsftpd.service
#设置开机启动
systemctl enable vsftpd.service
#禁用开机启动
systemctl disable vsftpd.service

安装ftp客服端

yum install ftp

默认安装vsftpd,以下是一些文件的位置约定:

/etc/vsftpd/ftpusers ---- 禁止使用VSFTPD的用户列表文件

/etc/vsftpd/user_list ---- 禁止或允许使用VSFTPD的用户列表文件

/usr/sbin/vsftpd ---- vsftpd的主程序

/etc/vsftpd/vsftpd.conf ---- 主配置文件

/var/ftp ---- 匿名用户主目录

/var/ftp/pub ---- 匿名用户的下载目录

二、修改配置文件

修改vsftpd的主配置文件/etc/vsftpd/vsftpd.conf

vim /etc/vsftpd/vsftpd.conf

#不允许匿名用户登陆

anonymous_enable=NO

#是否允许用户跳出用户目录(YES表示不允许,NO表示允许)

chroot_local_user=YSE

#vsftpd运行在ipv4上

listen=YES

#listen_vip6=YES

#允许不可跳出用户目录的用户“写”文件

allow_writeable_chroot=YES

以上是我实际部署vsftpd时修改的一些属性,下面再介绍说明一些重要属性,供对vsftpd有复杂配置需求的同学一些参考。

1)配置chroot_list

#是否启用chroot_list文件,使文件中的用户可以跳出用户目录

chroot_list_enable=YES

#chroot_list文件的路径,需要自行创建该文件

chroot_list_file=/etc/vsftpd/chroot_list

2)设置用户列表

# 配置用户拦截机制,启用/etc/vsftpd/user_list文件且设置为白名单

userlist_enable=YES

userlist_deny=NO

当且仅当userlist_enable=YES时,userlist_deny项的配置才有效,user_list文件才会被使用;当userlist_enable为NO时,无论userlist_deny项为何值都是无效的,本地全体用户(除去ftpusers中的用户)都可以登入FTP。

当userlist_enable=YES时,userlist_deny=YES时:user_list是一个黑名单,即:所有出现在名单中的用户都会被拒绝登入;

当userlist_enable=YES时,userlist_deny=NO时:user_list是一个白名单,即:只有出现在名单中的用户才会被准许登入(user_list之外的用户都被拒绝登入)。

3)设置vsftp日志

# 是否允许vsftp的日志

xferlog_enable=YES

# 日志文件的路径

xferlog_file=/var/log/xferlog

# 日志文件的格式

xferlog_std_format=YES

三、创建、删除用户

1)创建用户:

useradd -d /mnt/ftpfiles -s /sbin/nologin lnftp

2)设置密码:

passwd lnftp

3)更改用户权限:

usermod -s /sbin/nologin lnftp //限定用户lnftp不能telnet,只能ftp
usermod -s /sbin/bash lnftp //用户lnftp恢复正常
usermod -d /mnt/ftpfiles lnftp //更改用户lnftp的主目录为/mnt/ftpfiles

4)删除用户:

userdel -r lnftp