近期由于工作原因,需要在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