1. 概述
FTP是文件传输协议,在内外网的文件传输中使用广泛。
本篇博客主要介绍FTP服务器的部署和测试。
2. 软件环境部署
查看系统是否安装FTP软件(vsftpd),执行命令:rpm -qa | grep vsftpds
,如下图
3. 配置vsftpd
配置目录
vsftpd的主配置目录在/etc/vsftpd目录下,进入该目录cd /etc/vsftpd
创建用户列表
touch vir_user_list
,然后添加两行
liwanliang
liwanliang
第一行是ftp的账号,第二行是该账号的密码
生成加密文件
执行命令:db_load -T -t hash -f /etc/vsftpd/vir_user_list /etc/vsftpd/vir_user_list.db
修改权限:chmod 600 /etc/vsftpd/vir_user_list.db
创建虚拟用户配置目录和配置文件
执行命令:mkdir -p /etc/vsftpd/vir_user_conf
;
创建虚拟用户配置文件:touch /etc/vsftpd/vir_user_conf/liwanliang
,其文本内容为:
local_root=/var/www/html
anon_mkdir_write_enable=yes
anon_other_write_enable=yes
anon_upload_enable=yes
anon_world_readable_only=yes
配置vsftpd主配置文件
编辑配置文件/etc/vsftpd/vsftpd.conf,添加三行配置,如下:
guest_enable=yes
guest_username=ftp
user_config_dir=/etc/vsftpd/vir_user_conf
配置vsftpd采用PAM认证
编辑配置文件/etc/pam.d/vsftpd,内容修改如下:
#%PAM-1.0
#session optional pam_keyinit.so force revoke
#auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth required pam_shells.so
#auth include password-auth
#account include password-auth
#session required pam_loginuid.so
#session include password-auth
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vir_user_list
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vir_user_list
修改FTP根目录的权限
由于上述内容中,配置了虚拟用户使用系统用户ftp来作为文件系统的访问用户,访问目录/var/www/html。
因此需要ftp用户对该目录具有一定的权限。这里通过Linux文件系统的ACL来进行访问控制。
执行命令:setfacl -R -m u:ftp:rwx /var/www/html/
执行命令:getfacl html