centos7 下 安装启动配置 vsftpd 虚拟用户

2018/05/03 Linux

1. 安装启动 vsftpd

1. 查看是否安装过 vsftpd 
vsftpd -v

2. 如果未安装则执行安装命令
yum -y install vsftpd

3. 安装 vsftpd 虚拟用户配置依赖包
yum install -y psmisc net-tools systemd-devel libdb-devel perl-DBI

4. 启动 vsftpd 服务
systemctl start vsftpd.service

5. 设置 vsftpd 开机启动
systemctl enable vsftpd.service

6. 设置文件夹权限
chmod 777 -R /var/ftp/pub

7. 关闭selinux服务
vi /etc/selinux/config
将SELINUX=enforcing改为:SELINUX=disabled

8. 安装ftp客户端
yum -y install ftp

9. 使用本地测试
ftp localhost

2. 修改配置文件 vsftpd.conf

修改前先备份
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
修改配置文件
vi /etc/vsftpd/vsftpd.conf
设定不允许匿名访问 
anonymous_enable = NO
设定本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问
local_enable = YES
write_enable = YES
local_umask = 022
dirmessage_enable = YES
记录上传下载文件的日志
xferlog_enable = YES
connect_from_port_20 = YES
chown_uploads = YES
chown_username= ftp
日志记录文件位置
xferlog_file = /var/log/vsftpd.log
格式化日志
xferlog_std_format = YES
设定支持ASCII模式的上传和下载功能
ascii_upload_enable = YES
ascii_download_enable = YES

使用户不能离开主目录 
chroot_list_enable = YES
chroot_list_file = /etc/vsftpd/chroot_list 

ls_recurse_enable = YES
监听IPv4 sockets
listen = YES
注释IPv6 sockets监听
listen_ipv6 = YES

PAM认证文件名,PAM将根据/etc/pam.d/vsftpd进行认证
pam_service_name = vsftpd
userlist_enable = YES
userlist_deny =YES
userlist_file = /etc/vsftpd/user_list
tcp_wrappers = YES

设定启用虚拟用户功能
guest_enable = YES
指定虚拟用户的宿主用户,CentOS中已经有内置的ftp用户了 
guest_username = ftp
设定虚拟用户个人vsftp的CentOS FTP服务文件存放路径。存放虚拟用户个性的CentOS FTP服务文件(配置文件名=虚拟用户名)
user_config_dir = /etc/vsftpd/vconf

pasv_min_port =10221
pasv_max_port =10231

文件上传下载权限设置
allow_writeable_chroot = YES
anon_umask = 022
file_open_mode =777

虚拟用户和本地用户有相同的权限
virtual_use_local_privs = YES

3. 建立根目录锁定的帐户文件

将 vsftpd.conf 配置文件中的 guest_username 加入 chroot_list
touch /etc/vsftpd/chroot_list
echo ftp >> /etc/vsftpd/chroot_list

4. 创建虚拟用户账号密码文件

vi /etc/vsftpd/virtusers
单数行账号,双数行密码
lhc
liuhuachao
tjx
tangjiaxing

5. 生成虚拟用户认证的db文件

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

6. 设置PAM验证文件

修改前先备份
cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
修改pam文件
vi /etc/pam.d/vsftpd
#%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

auth      required    pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth      required    pam_shells.so
auth      include      system-auth
account    include      system-auth
session    include      system-auth
session    required    pam_loginuid.so

7. 创建虚拟用户配置目录和文件

新建虚拟用户目录 
mkdir -p /etc/vsftpd/vconf

文件名必须与第 5 步中建立的用户名一致 
vi /etc/vsftpd/vconf/lhc ``` local_root=/home/vsftpd 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 ```

8. 创建虚拟用户测试目录

mkdir -p /home/vsftpd
1. 注意:这里新建的目录名应该与配置文件中的 local_root 一致 
2. 如果不同虚拟用户使用不同的目录,也应该建立相应目录。否则连接失败

chown -R vsftpd.vsftpd /home/vsftpd
注意:一定要修改目录的用户和用户组,不修改会造成上传文件失败

9. 设置防火墙

永久打开单个端口
firewall-cmd --zone=public --add-port=80/tcp --permanent

永久打开区间端口
firewall-cmd --zone=public --add-port=4400-4600/tcp --permanent

在阿里云安全组设置开放端口

重启防火墙
systemctl restart firewalld.service

10. 测试ftp

重启vsftpd    
systemctl restart vsftpd.service

在windows资源管理器中打开
ftp://ftp.*.com

使用xftp/FileZilla等客户端连接

搜索

    欢迎关注我的微信公众号

    文到

    目录