vsftp2.2.2部署步骤
# 1. vsftp简介
vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序,vsftpd 的名字代表”very secure FTP daemon”;是一个基于GPL发布的类UNIX类操作系统上运行的服务器的名字(是一种守护进程),可以运行在诸如Linux、BSD、Solaris、HP-UX以及Irix等系统上面.
# 2. 基本需求:
- 1.搭建ftp(每个人单独账号)
- 2.部署web服务(nginx这里不做安装说明了),访问ftp上传目录
- 3.实现浏览器访问ftp上传目录的静态文件
# 3. 安装vsftp
FTP的登录一般有三种方式:
- 匿名用户形式:默认安装的情况下,系统只提供匿名用户访问,只需要输入用户anonymous/ftp,并将自己的Email作为口令即可登录。
- 本地用户形式:以/etc/passwd中的用户名为认证方式。
- 虚拟用户形式:支持将用户名和密码保存在文件或数据库中,将登录用户映射到指定的系统账号(/sbin/nologin)来访问资源,其中这些虚拟用户是FTP的用户
本文采取第三种方式:虚拟用户形式安装vsftp
# 3.1 安装vsftp、认证模块及数据库
yum install vsftpd pam* db4* -y
# 3.2 配置vsftp
建立虚拟用户,设置该用户所要访问的目录,并设置虚拟用户访问的权限:
useradd -d /home/ftpsite virtual_user
chmod 700 /home/ftpsite
2
经过该步骤的设置,/home/ftpsite就是virtual_user用户的主目录,该用户也是ftpsite目录的拥有者。除root用户之外,只有该用户具有对该目录的读、写和执行的权限。
# 3.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
2
3
# 3.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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
上面代码中,guest_enable=YES表示启用虚拟用户;guest_username=virtual则是将虚拟用户映射为本地用户,这样虚拟 用户登录后才能进入本地用户virtual的目录/ftpsite;pam_service_name=vsftp.vu指定PAM的配置文件为 vsftp.vu
# 3.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
2
3
4
5
6
7
8
9
10
11
12
13
说明:local_root=/home/jyapp/localCase这个目录必须存在,如果过不存在需要新建,新建完成后需要重新改变目录的所属用户为virtual_user
chown virtual_user:virtual_user /home/jyapp/localCase
# 3.6 生成虚拟用户口令库文件
为了建立此口令库文件,先要生成一个文本文件。该文件的格式如下,单数行为用户名,偶数行为口令:
在/etc/vsftpd目录下新建文件account.txt
#vi account.txt
dk_cuishou
4321dk
2
3
说明:此处添加的用户名,一定要和第5步中添加的用户名一致!!!
# 3.7 生成口令库文件
#db_load -T -t hash -f /etc/vsftpd/account.txt /etc/vsftpd/account.db
#chmod 600 /etc/vsftpd/account.db
2
# 3.8 重新启动VSFTP:
#service vsftpd restart
# 4. 添加FTP用户的步骤
重复用3.5 - 3.7步即可,无需重启vsftp服务,添加完成以后可以使用账号登录一下