vsftpd安装与配置

vsftpd安装与配置

用户类型

本地用户(local): 用户在FTP服务器拥有账号,且该账号为本地用户的账号,可以通过自己的账号和口令进行授权登录,登录目录为自己的home目录$HOME
虚拟用户(guest): 用户在FTP服务器上拥有账号,但该账号只能用于文件传输服务。登录目录为某一特定的目录,通常可以上传和下载
匿名用户(anonymous): 用户在FTP服务器上没有账号,登录目录为/var/ftp

对于vsftpd默认配置是开启了本地用户和匿名用户,可以直接登录的。

环境准备

#首先要查看你是否安装vsftpd
rpm -qa | grep vsftpd
#安装httpd
yum install -y vsftpd

实验步骤

启动服务

  • systemctl start vsftpd.service

测试链接成功与否

  • 切换回普通用户
    • su 用户名
    • ftp 本机IP
    • 注: linux中规定默认无法使用root用户登录ftp
  • 匿名登陆
    • ftp 本机IP
    • 账户名使用anonymous登录(密码为空)

配置vsftpd

配置文件地址

vim /etc/vsftpd/vsftpd.conf

  • 基础配置文件
# 首先我们先看一下本身的vsftpd有什么属性吧
cat /etc/vsftpd/vsftpd.conf | grep -v "#" | more
# 打开vsftpd配置文件
vim /etc/vsftpd/vsftpd.conf
// 基本配置
# 开启匿名登录
anonymous_enable=YES
# 允许使用本地帐户进行FTP用户登录验证
local_enable=YES
# 允许写
write_enable=YES
# 设置本地用户默认文件掩码022
local_umask=022
# 设置匿名用户的根
anon_root=/var/ftp/pub
# 允许匿名上传
anon_upload_enable=YES
# 允许匿名创建新目录
anon_mkdir_write_enable=YES
# 同时开放其它权限
anon_other_write_enable=YES
# 可以发送消息当访问某个目录时
dirmessage_enable=YES
# 开启上传下载记录
xferlog_enable=YES
# 数据链通过20端口建立
connect_from_port_20=YES

# 允许其它用户上传匿名文件
#chown_uploads=YES
# 所有用户
#chown_username=whoever
# 日志保存到
#xferlog_file=/var/log/xferlog
# 日志标准输出
xferlog_std_format=YES
# 空闲会话时间
#idle_session_timeout=600
# 数据连接超时时间
#data_connection_timeout=120
# 隔离的安全用户
#nopriv_user=ftpsecure
# 开启异步数据线程
#async_abor_enable=YES
# 开启ASCII协议上传
ascii_upload_enable=YES
# 开启ASCII协议下载
ascii_download_enable=YES
# 开启邮箱验证
#deny_email_enable=YES
# 拒绝的邮箱列表
#banned_email_file=/etc/vsftpd/banned_emails

# 是否允许直接获取子目录信息
#ls_recurse_enable=YES
# 监听IPv4
listen=NO
# 监听IPv6和监听IPv4
listen_ipv6=YES

# 虚拟用户启用pam认证
pam_service_name=vsftpd
# 用户组管理
userlist_enable=YES
# 访问控制
tcp_wrappers=YES

# 允使用被动模式
pasv_enable=YES
# 指定使用被动模式时打开端口的最小值
pasv_min_port=10060
# 指定使用被动模式时打开端口的最大值。
pasv_max_port=10090
# 用户宽带限制200kps
#local_max_rate=200000
# 登录后欢迎内容
ftpd_banner=Welcome to My FTP service.

使用chroot配置对用户的管理

# 启用限定用户在其主目录下
chroot_local_user=YES
# 开启用户列表chroot管理
chroot_list_enable=YES
# chroot管理的用户列表(一行一用户,虚拟用户都要添加进去)
# 当设置用户只能在登录目录时,chroot管理的用户为不受限制,否则相反
chroot_list_file=/etc/vsftpd/chroot_list
# 允许chroot管理用户进行写操作
allow_writeable_chroot=YES

注: 当chroot_local_user=NO时,chroot_list里面配置的用户不可以跳出家目录,当chroot_local_user=YES时,chroot_list里面配置的用户可以跳出家目录

匿名用户

假如你开启了匿名用户,则需要重新修改权限
将匿名目录下的 pub 文件夹 赋予匿名用户管理权限:

chown ftp /var/ftp/pub

在主配置文件中选配参数

# 设置匿名用户的根
anon_root=/var/ftp/pub
# 允许匿名上传
anon_upload_enable=YES
# 允许匿名创建新目录
anon_mkdir_write_enable=YES
# 同时开放其它权限
anon_other_write_enable=YES

注: 匿名用户在使用中默认进入/var/ftp文件夹中,此文件夹不能直接上传文件,可以进入pub文件夹,再进行上传操作

如何实现root登录ftp

vim /etc/vsftpd/ftpusers
vim /etc/vsftpd/user_list

分别在这两个文件中对root进行注释
将禁用用户登录中将root解禁
也可添加用户使其不可通过ftp访问