一,下载并安装
1, 至rpm.pbone.net或rpmfind.net搜索并下载: vsftpd-2.2.2-2.el5.i386.rpm
2, 安装
# rpm -ivh vsftpd-2.2.2-2.el5.i386.rpm
3, 备份配置文件:
# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
4, vsftpd文件说明
/etc/vsftpd/vsftpd.conf 主配置文件
/usr/sbin/vsftpd Vsftpd的主程序
/etc/rc.d/init.d/vsftpd 启动脚本
/etc/pam.d/vsftpd PAM认证文件(此文件中file=/etc/vsftpd/ftpusers字段,指明阻止访问的用户来自/etc/vsftpd/ftpusers文件中的用户)
/etc/vsftpd/ftpusers 禁止使用vsftpd的用户列表文件。记录不允许访问FTP服务器的用户名单,管理员可以把一些对系统安全有威胁的用户账号记录在此文件中,以免用户从FTP登录后获得大于上传下载操作的权利,而对系统造成损坏。(注意:linux-4中此文件在/etc/目录下)
/etc/vsftpd/user_list 禁止或允许使用vsftpd的用户列表文件。这个文件中指定的用户缺省情况(即在/etc/vsftpd/vsftpd.conf中设置userlist_deny=YES)下也不能访问FTP服务器,在设置了userlist_deny=NO时,仅允许user_list中指定的用户访问FTP服务器。(注意:linux-4中此文件在/etc/目录下)
/var/ftp 匿名用户主目录;本地用户主目录为:/home/用户主目录,即登录后进入自己家目录
/var/ftp/pub 匿名用户的下载目录,此目录需赋权根chmod 1777 pub(1为特殊权限,使上载后无法删除)
/etc/logrotate.d/vsftpd.log 日志文件
二, 安装db4包,使能db_load
# yum install db4.i386
# yum install db4-utils.i386
三, 关闭防火墙
# service iptables stop
四、关闭SELinux
方法有多个
1、暂时关闭
# setenforce 0 (关闭)
# setenforce 1 (启用)
# getenforce (查看状态)
2、编辑配置文件
# vi /etc/selinux/config
将SELINUX=enforcing改为:SELINUX=disabled
五, 配置匿名用户访问
1, vsftpd安装后,其配置文件所在目录为:/etc/vsftpd/;匿名用户的主目录为:/var/ftp
2, 配置vsftpd.conf主配置文件(服务器配置支持上传)
# vi /etc/vsftpd/vsftpd.conf
anonymous_enable=YES (允许匿名用户访问)
anon_upload_enable=YES (允许匿名用户上传文件)
anon_mkdir_write_enable=YES (允许匿名用户创建目录)
3, 创建上传目录及配置目录权限(注意:匿名用户的主目录/var/ftp权限是755,这个权限不能随意改变,否则客户端无法连接)
# mkdir /var/ftp/homework/
# chown ftp /var/ftp/homework/
# ls -Zd /var/ftp/homework/ (查看上下文)
drwxrwxr-x ftp ftp user_u:object_r:public_content_t /var/ftp/homework/
# chcon -t public_content_rw_t /var/ftp/homework/ (修改上下文,使可写)
# ls -Zd /var/ftp/homework/ (查看确认上下文)
drwxrwxr-x ftp ftp user_u:object_r:public_content_rw_t /var/ftp/homework/
(若未关闭SELinux,还需以下步骤)
# getsebool -a | grep ftp (查找与ftp相关的 SELinux bool值)
# setsebool -P allow_ftpd_anon_write 1 (设置SELinux bool值, 允许ftpd写, -P选项表示写入配置文件并永久生效)
4, 重启服务
# service vsftpd restart
5, 客户端连接测试
(1) 客户端匿名用户可从pub下载文件
(2) 客户端匿名用户上传文件至homework, 上传文件的默认权限属性为600(配置文件中anon_umask=077),无法下载、删除或覆盖的。
六, 配置虚拟用户访问
1, 建立虚拟用户口令库文件, 文件中奇数行设置虚拟用户的用户名,偶数行设置用户的口令。
# vi /etc/vsftpd/vuser.txt
teacher (奇数行设置虚拟用户名)
123456 (偶数行设置用户口令)
student
123456
2, 生成vsftpd 的认证文件
# db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db (生成认证文件)
# file /etc/vsftpd/vuser.db (查看文件类型)
/etc/vsftpd/vuser.db:Berkeley DB (Hash,version 8 , native byte-order)
# chmod 600 /etc/vsftpd/vuser.db (生成的认证文件的权限应设置为只对root用户可读可写)
3, 建立虚拟用户所需的PAM配置文件