vsftpd介绍

一、简介

vsftpd(very secure FTP daemon)是 UNIX 操作系统中的一个开源的、免费的 FTP 服务软件。它具有以下特点:

安全性高,轻小易用
支持系统用户、匿名用户和虚拟用户的权限验证和相关操作,但无论哪种用户,最终都会映射为一个对应的 系统用户
用户认证是基于 PAM 实现的
二、vsftpd.conf基础介绍

属性属性值含义
anonymous_enableYES/NO是否允许匿名用户(anonymous)登录 FTP,如果该设置被注释,则默认允许
local_enableYES/NO是否允许本地系统用户登录
write_enableYES/NO是否开启任何形式的 FTP 写入命令,上传文件
local_umask本地用户的 umask 设置,如果注释该设置则默认为 077,但一般都设置成 022
anon_upload_enableYES/NO是否允许匿名用户上传文件,如果要设置为允许,则需要先开启 write_enable,否则无效,此外对应目录还要具有写权限
anon_mkdir_write_enableYES/NO是否允许匿名用户创建新目录
dirmessage_enableYES/NO当进入某个目录时,发送信息提示给远程用户
xferlog_enableYES/NO是否开启 上传/下载 的日志记录
connect_from_port_20YES/NO是否使用 20 端口来连接 FTP
chown_uploadsYES/NO匿名上传的文件是否由某一指定用户 chown_username 所有
chown_username有效用户名匿名上传的文件由该设定用户所有
xferlog_file有效路径设置日志文件的保存位置,默认为 /var/log/xferlog
xferlog_std_format有效路径是否使用标准的 ftpd xferlog日志格式,该格式日志默认保存在 /var/log/xferlog
idle_session_timeout数值
设置空闲连接的超时时间,单位 秒
data_connection_timeout数值设置等待数据传输的最大时间,单位 秒(data_connection_timeout 与 idle_session_timeout 在同一时间只有一个有效)
nopriv_user有效用户名指定一个非特权用户,用于运行 vsftpd
async_abor_enableYES/NO是否支持异步 ABOR 请求
ascii_upload_enableYES/NO是否开启 ASCII 模式进行文件上传,一般不开启
ascii_download_enableYES/NO是否开启 ASCII 模式进行文件下载,一般不开启
ftpd_banner自定义登录标语
deny_email_enableYES/NO如果匿名登录,则会要求输入 email 地址,如果不希望一些 email 地址具有登录权限,则可以开启此项,并在 banned_email_file 指定的文件中写入对应的 email 地址
banned_email_file有效文件当开启 deny_email_enable 时,需要通过此项指定一个保存登录无效 email 的文件
chroot_local_userYES/NO是否将所有用户限制在主目录,当为 NO 时, FTP 用户可以切换到其他目录
chroot_list_enableYES/NO
是否启用限制用户的名单列表
chroot_list_file有效文件用户列表,其作用与 chroot_local_user 和 chroot_local_user 的组合有关,详见下表
allow_writeable_chrootYES/NO是否允许用户对 ftp 根目录具有写权限,如果设置成不允许而目录实际上却具备写权限,则会报错
ls_recurse_enableYES/NO是否允许 ls -R 指令来递归查询,递归查询比较耗资源
listen
YES/NO
如果为 YESvsftpd 将以独立模式运行并监听 IPv4 的套接字,处理相关连接请求(该指令不能与 listen_ipv6 一起使用)
listen_ipv6YES/NO是否允许监听 IPv6 套接字
pam_service_name设置 PAM 外挂模块提供的认证服务所使用的配置文件名 ,即 /etc/pam.d/vsftpd 文件,此文件中 file=/etc/vsftpd/ftpusers 字段,说明了 PAM 模块能抵挡的帐号内容来自文件 /etc/vsftpd/ftpusers 中
userlist_enableYES/NO
是否启用 user_list 文件来控制用户登录
userlist_denyYES/NO是否拒绝 user_list 中的用户登录,此属性设置需在 userlist_enable = YES 时才有效
tcp_wrappersYES/NO
是否使用 tcp_wrappers 作为主机访问控制方式
max_clients数值同一时间允许的最大连接数
max_per_ip数值同一个IP客户端连接的最大值
local_root有效目录
系统用户登录后的根目录
anon_root有效目录匿名用户登录后的根目录
user_config_dir有效目录用户单独配置文件存放目录,该目录下用户的文件名就是对应用户名

chroot_local_user 和 chroot_local_user 组合功能如下:

chroot_local_user=YESchroot_local_user=NO
chroot_list_enable=YES1.所有用户都被限制在其主目录下
2.使用 chroot_list_file 指定的用户列表 /etc/vsftpd/chroot_list,这些用户作为“例外”,不受限制
1.所有用户都不被限制其主目录下
2.使用 chroot_list_file 指定的用户列表 /etc/vsftpd/chroot_list,这些用户作为“例外”,受到限制
chroot_list_enable=NO1.所有用户都被限制在其主目录下
2.不使用 chroot_list_file 指定的用户列表 /etc/vsftpd/chroot_list,没有任何“例外”用户
1.所有用户都不被限制其主目录下
2.不使用 chroot_list_file 指定的用户列表 /etc/vsftpd/chroot_list,没有任何“例外”用户

为每个系统用户配置各自的 ftp 根目录
在 /etc/vsftpd/vsftpd.conf 文件末尾添加如下指令:

# 系统用户登录后的根目录
local_root=/var/test/
# 匿名用户登录后的根目录
anon_root=/var/test/
# 设置用户独立配置文件保存目录
user_config_dir=/etc/vsftpd/userconfig/

此外,还要将 chroot_local_user 设置为 YES,使 FTP 用户登录后直接被锁定在自己的根目录上。
通过以上设定,系统用户和匿名用户都会将 /var/test/ 当做根目录,并且登录后直接被锁定在该目录。
但是以上的设置是针对所有系统用户和匿名用户的,如果想要给每个 FTP 用户指定根目录,我们可以给每个用户创建一个对应的配置文件。具体操作如下:

根据 user_config_dir 的设置,我们先在 /etc/vsftpd/ 目录下创建一个名为 userconfig 的目录
假设想要给用户 aaa 单独指定一个 FTP 根目录 /var/test/1,我们需要进入 userconfig 目录,在该目录下创建一个名为 aaa 的配置文件,编辑文件 aaa,配置内容如下:

local_root=/var/test1/

原文链接vsftpd安装与配置_vsftpd配置_fang_a_kai的博客-CSDN博客

三、/etc/vsftpd 下文件作用讲解

1、/etc/vsftpd/vsftpd.conf  主配置文件

2、/usr/sbin/vsftpd 启动脚本

3、/etc/pam.d/vsftpd PAM认证文件

4、/etc/vsftpd/user_list 禁止或允许使用vsftpd的用户列表文件。这个文件中指定的用户缺省情况(即在/etc/vsftpd /vsftpd.conf中设置userlist_deny=YES)下也不能访问FTP服务器,在设置了userlist_deny=NO时,仅允许 user_list中指定的用户访问FTP服务器。

5、/etc/vsftpd/ftpusers 禁止使用vsftpd的用户列表文件。记录不允许访问FTP服务器的用户名单,管理员可以把一些对系统安全有威胁的用户账号记录在此文件中,以免用户从FTP登录后获得大于上传下载操作的权利,而对系统造成损坏

6、userconfig文件,设置后可以设置每个ftp用户登录后默认的目录。

四、主动、被动模式介绍

主动模式(PORT)
所谓主动模式,指的是FTP服务器主动去连接客户端的数据端口来传输数据,其过程具体来说就是:客户端从一个任意的非特权端口N(N>1024)连接到FTP服务器的命令端口(即tcp 21端口),紧接着客户端开始监听端口N+1,并发送FTP命令“port N+1”到FTP服务器。然后服务器会从它自己的数据端口(20)“主动”连接到客户端指定的数据端口(N+1),这样客户端就可以和ftp服务器建立数据传输通道了。

被动模式(PASV)
所谓被动模式,指的是FTP服务器被动等待客户端来连接自己的数据端口,其过程具体是:当开启一个FTP连接时,客户端打开两个任意的非特权本地端口N(N >1024)和N+1。第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交PASV命令。这样做的结果是服务器会开启一个任意的非特权端口P(P > 1024),并发送PORT P命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。(注意此模式下的FTP服务器不需要开启tcp 20端口)

两种模式比较
主动模式(PORT)只要开启服务器的21(进)和20(出)端口,而被动模式(PASV)需要开启服务器大于1024所有tcp端口和21端口。
从网络安全的角度来看的话似乎ftp 主动(PORT)模式更安全,而ftp被动模式( PASV)更不安全,那么为什么要在ftp 主动模式(PORT)基础再制定一个ftp被动模式( PASV)呢?原因是因为制定ftp 被动模式(PASV)的主要目的是为了数据传输安全角度出发的,因为ftp 主动模式端口使用固定20端口进行传输数据,黑客很容使用sniffer等探嗅器抓取ftp数据,这样一来通过ftp 主动模式(PORT)传输数据很容易被黑客窃取,因此使用被动模式(PASV)方式来架设ftp 服务比主动模式安全。
————————————————
版权声明:本文为CSDN博主「guanjianhe」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/guanjianhe/article/details/126112110

五、解决xftp及浏览器访问用户目录无法锁定用户主目录问题

修改/etc/vsftpd/userconfig文件

找到自己需要的用户,然后改成用户的家目录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值