Centos7下搭建FTP服务器(虚用户访问)
1.安装FTP服务:#yum install -y vsftpd
2.启动服务:systemctl start vsftpd.service
3.设置服务开机启动:systemctl enable vsftpd.service
4.修改配置文件中以下配置项:
#vim /etc/vsftpd/vsftpd.conf
#服务器独立运行
listen=YES
#设定不允许匿名访问
anonymous_enable=NO
#设定本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问
local_enable=YES
#使用户不能离开主目录
#chroot_list_enable=YES
# 是否允许递归查询。默认为关闭,以防止远程用户造成过量的I/O
#ls_recurse_enable=YES
# 掩码,本地用户默认掩码为077
# 你可以设置本地用户的文件掩码为缺省022,也可根据个人喜好将其设置为其他值
local_umask=022
# 设置虚拟用户本地权限
#virtual_use_local_privs=NO
# 表示用户可以浏览FTP目录和下载文件
# anon_world_readable_only=NO
# 表示用户可以上传文件
#anon_upload_enable=YES
#max_clients=5000
max_per_ip=0
use_sendfile=NO
#设定支持ASCII模式的上传和下载功能
# ascii_upload_enable=YES
# ascii_download_enable=YES
#PAM认证文件名。PAM将根据/etc/pam.d/vsftpd进行认证
pam_service_name=vsftpd
#设定启用虚拟用户功能
guest_enable=YES
#指定虚拟用户的宿主用户,CentOS中已经有内置的ftp用户了
guest_username=ftp
#设定虚拟用户个人vsftp的CentOS FTP服务文件存放路径。存放虚拟用户个性的CentOS FTP服务文件(配置文件名=虚拟用户名)
user_config_dir=/etc/vsftpd/vuser_conf
#配置vsftpd日志(可选)
xferlog_enable=YES
#xferlog_std_format=YES
log_ftp_protocol=YES
xferlog_file=/var/log/xferlog
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log
#
connect_timeout=3000
data_connection_timeout=12000
##############
# 配置PASV模式
##############
#开启PASV模式
pasv_enable=YES
#最小端口号
pasv_min_port=40000
#最大端口号
pasv_max_port=45000
pasv_promiscuous=YES
allow_writeable_chroot=YES
5.配置迁移脚本
# vim /etc/vsftpd/vsftpd_conf_migrate.sh
#!/bin/bash
#move old config files and symlink them
#shipped with vsftpd-2.0.1-6
PREFIX="vsftpd"
for file in $( ls /etc/${PREFIX}.* ); do
if [ ! -L $file ]; then
new=`echo $file | sed s/${PREFIX}\./${PREFIX}\\\\//g | sed s/\.rpmsave//g`
mv -f ${file} ${new}
ln -s ${new} ${file}
echo $file moved to $new
fi
done
# chmod +x /etc/vsftpd/vsftpd_conf_migrate.sh
6.添加用户
#vim /etc/vsftpd/vuser_passwd.txt
testuser
testpassword
7.生成数据库
# db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
8.配置用户信息
# mkdir uvser_conf
# cd vuser_conf
# vim testuser
local_root=/data/ftp/pingan/
write_enable=YES
anon_umask=002
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
# 掩码,本地用户默认掩码为077
# 你可以设置本地用户的文件掩码为缺省022,也可根据个人喜好将其设置为其他值
local_umask=022
# 设置虚拟用户本地权限
#virtual_use_local_privs=No
# 表示用户可以浏览FTP目录和下载文件
#anon_world_readable_only=NO
# 表示用户可以上传文件
anon_upload_enable=YES
# Disable delete commands
#cmds_denied=DELE,RMD
9.配置登陆信息
# vim /etc/pam.d/vsftpd
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
10.设置SELINUX
setsebool -P ftpd_full_access on
11.重启服务
# systemctl restart vsftpd.service