1 前言
vsftpd是一款非常小巧、高性能、稳定性好、安全易用的Linuxt环境下的的FTP服务器软件。
vsftpd 名称是取自 very secure FTP daemon 的缩写,可以在类UNIX类操作系统上运行。
2 部署
通常情况下可以在线安装,
# centos / Redhat 操作系统下
$ yum -y install vsftpd
# debian / ubuntu 操作系统下
$ apt-get install vsftpd
安装完后,可以用rpm命令检查是否安装成功
rpm -qa | grep vsftpd
3 启动运行
启动服务
systemctl start vsftpd
设置自启动
chkconfig --level 35 vsftpd on
查看是否设置成功
chkconfig --list vsftpd
4 服务配置
vsftpd服务器主要有三个配置文件,都位于/etc/vsftpd目录下:
#ftp服务器的主配置文件
vsftpd.conf
#用来指定哪些用户不能访问ftp服务器
ftpusers
#当启用非匿名登录时,会使用到这个文件,这个文件中的用户是否可以登录到服务器,取决于vsftpd.conf文件中的userlist_enable和userlist_deny这两个选项
user_list
4.1 使用匿名用户登入
打开vsftpd.conf
# vi /etc/vsftpd/vsftp.conf
设置以下配置参数,通常大部分参数默认是有的,将前面的’#'去掉就可以,未在下面的参数保持原样即可
###匿名者登入的设定值###
#设定为允许 anonymous 登入我们的 vsftpd 主机!预设是 YES ,不允许匿名则设置为NO, 底下的所有相关设定都需要将这个设定为 anonymous_enable=YES 之后才会生效!
anonymous_enable=YES
# 如果你允许用户上传数据时,就要启动这个设定值
write_enable=YES
##限制 anonymous 的权限!如果是 077 则 anonymous 传送过来的文件 权限会是 -rw-------
anon_umask=077
#是否让 anonymous 具有上传数据的功能,默认是 NO
anon_upload_enable=YES
#是否让 anonymous 具有建立目录的权限?默认值是 NO
anon_mkdir_write_enable=YES
#允许修改或删除文件,预设是 NO,设定为 YES, 那么开放给 anonymous 写入的目录亦需要调整权限,让 vsftpd 的 PID 拥有者可以写入才行
anon_other_write_enable=YES
##仅允许 anonymous 具有下载可读文件的权限,预设是 YES
anon_world_readable_only=NO
#这个设定值后面接的数值单位为 bytes/秒 ,限制 anonymous 的传输速度,如果是 0 则不限制(由最大带宽所限制),如果您想让 anonymous 仅有 30 KB/s 的速度,可以设定『anon_max_rate=30000』
anon_max_rate=0
# anonymous 允许访问的根目录,如未设置,则是默认的目录/var/ftp
anon_root=/home/vsftpd
tcp_wrappers=YES
pam_service_name=vsftpd
修改完成后,重启一下vsftpd服务就可以生效:
systemctl restart vsftpd
匿名登录,实际使用的是ftp这个默认的用户,在/etc/passwd用户表中,可以查看到ftp的默认home目录是/var/ftp,如果显示配置了anon_root值,那也要修改一下/etc/passwd中的home目录配置,两者需要保持一样~
访问方法
window下可以直接在电脑的资源地址栏输入ftp地址:
ftp://ip地址
4.2 使用操作系统的本地用户登入
需要新建一个用户
#新建一个系统用户vsftpd, 用户登录终端设为/bin/false(使之不能远程登录操作系统)
useradd vsftpd -d /home/vsftpd -s /bin/false
修改配置文件
anonymous_enable=NO
#
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=077
#关闭匿名上传
anon_upload_enable=NO
anon_mkdir_write_enable=NO
#限制用户只能访问自己的主目录,存在chroot_list文件中的用户只能访问自己的主目录,登录后自动跳转至用户的home目录
chroot_local_user=YES
#是否启用将访问用户限制在他们的家目录内?预设是 NO
chroot_list_enable=YES
#chroot_list_enable=YES 一行一个用户名,需要在配置中的文件中加一下vsftpd用户名
chroot_list_file=/etc/vsftpd/chroot_list
#允许某些用户登入
userlist_enable=YES
#NO,代表只能存在user_list文件中的用户允许登入;YES ,代表仅存在user_list文件中的用户不允许登入
userlist_deny=NO
#需要在配置中的文件中加一下vsftpd用户名
userlist_file=/etc/vsftpd/user_list
pam_service_name=vsftpd
修改完成后,同样需要重启一下vsftpd服务就可以生效:
systemctl restart vsftpd
访问方法
window下可以直接在电脑的资源地址栏输入ftp地址:
ftp://ip地址
如果没有主动弹出以下这个登录身份输入框,则可以鼠标右键->登录 来打开
当然,你也可以用专门的FTP client 工具来访问
4.3 使用虚拟用户登入
由于使用操作系统用户登录,容易暴露操作系统的用户,所以有这一配置选择。实际 中暂未应用过,待后续补充。