一、vsftp简介
vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序,vsftpd 的名字代表”very secure FTP daemon”;是一个基于GPL发布的类UNIX类操作系统上运行的服务器的名字(是一种守护进程),可以运行在诸如Linux、BSD、Solaris、HP-UX以及Irix等系统上面.
#基本需求:
1.搭建ftp(每个人单独账号)
2.部署web服务(nginx这里不做安装说明了),访问ftp上传目录3.实现游览器访问ftp上传目录的静态文件
二、安装vsftp
FTP的登录一般有三种方式:
1.匿名用户形式:默认安装的情况下,系统只提供匿名用户访问,只需要输入用户anonymous/ftp,并将自己的Email作为口令即可登录。
2.本地用户形式:以/etc/passwd中的用户名为认证方式。
3.虚拟用户形式:支持将用户名和密码保存在文件或数据库中,将登录用户映射到指定的系统账号(/sbin/nologin)来访问资源,其中这些虚拟用户是FTP的用户
本文采取第三种方式:虚拟用户形式安装vsftp
1.安装vsftp、认证模块及数据库
yum install vsftpd pam* db4* -y
2.建立虚拟用户,设置该用户所要访问的目录,并设置虚拟用户访问的权限:
#useradd -d /home/ftpsite virtual_user
#chmod 700 /home/ftpsite
经过该步骤的设置,/home/ftpsite就是virtual_user用户的主目录,该用户也是ftpsite目录的拥有者。除root用户之外,只有该用户具有对该目录的读、写和执行的权限。
3.新建一个虚拟用户的PAM文件。加上如下两行内容:
#vi /etc/pam.d/
vsftp.vu
auth required /lib64/security/
pam_userdb.so db=/etc/vsftpd/account
account required /lib64/security/
pam_userdb.so db=/etc/vsftpd/account
4.备份/etc/vsftpd/vsftpd.conf,备份完成后,编辑/etc/vsftpd/vsftpd.conf文件,使其整个文件内容如下所示(去掉了注释内容):
anonymous_enable=NO
local_enable=YES
local_umask=022
anon_umask=022
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
xferlog_file=/var/log/xferlog
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log
listen=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
one_process_model=NO
chroot_local_user=YES
ftpd_banner=Welcom to my FTP server.
anon_world_readable_only=NO
guest_enable=YES
guest_username=virtual_user
pam_service_name=
vsftp.vu
user_config_dir=/etc/vsftpd/vconf
use_localtime=YES
上面代码中,guest_enable=YES表示启用虚拟用户;guest_username=virtual则是将虚拟用户映射为本地用户,这样虚拟 用户登录后才能进入本地用户virtual的目录/ftpsite;pam_service_name=
vsftp.vu指定PAM的配置文件为
vsftp.vu。
5.虚拟用户个人目录设置
在/etc/vsftpd/vconf目录下新增一个以虚拟用户名命名的文件如下
#vi dk_cuishou
local_root=/home/jyapp/localCase
anonymous_enable=NO
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
idle_session_timeout=600
data_connection_timeout=120
max_clients=10
max_per_ip=5
local_max_rate=5000
说明:local_root=/home/jyapp/localCase这个目录必须存在,如果过不存在需要新建,新建完成后需要重新改变目录的所属用户为virtual_user,执行命令如下:
# chown virtual_user:virtual_user /home/jyapp/localCase
6.生成虚拟用户口令库文件。为了建立此口令库文件,先要生成一个文本文件。该文件的格式如下,单数行为用户名,偶数行为口令:
在/etc/vsftpd目录下新建文件account.txt
#vi account.txt
dk_cuishou
4321dk
说明:此处添加的用户名,一定要和第5步中添加的用户名一致!!!
7.生成口令库文件,并修改其权限:
#db_load -T -t hash -f /etc/vsftpd/account.txt /etc/vsftpd/account.db
#chmod 600 /etc/vsftpd/account.db
8.重新启动VSFTP:
#service vsftpd restart
注意
三、添加FTP用户的步骤
重复用5-7步即可,无需重启vsftp服务,添加完成以后可以使用账号登录一下