「vsftpd」- 配置匿名下载(与上传)

内容简介

本文将介绍使用vsftpd搭建匿名FTP站点,允许用户下载资源。我们还将介绍如何配置以允许匿名上传(当然不建议该行为)

环境概述

操作系统:CentOS Linux release 7.5
软件版本:vsftpd: version 3.0.2
安装方式:YUM

设置匿名下载

第一步、修改配置文件

我们使用默认配置文件,但是需要修改配置文件:(1)设置listen=YES,(2)并设置listen_ipv6=NO,使其监听IPv4地址。配置文件内容如下:

# grep -v -E '^#|^\s*$' /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

第二步、重启服务

保存并退出,然后重启服务即可。

附加说明

默认FTP根目录为文件系统的/var/ftp/目录。

允许匿名上传(不推荐)

第一步、修改配置文件

如果需要允许匿名用户上传,需要修改配置文件(1)设置write_enable=YES,(2)设置anon_upload_enable=YES。配置文件内容如下:

# grep -v -E '^#|^\s*$' /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

第二步、创建写入目录

由于匿名用户无法上传文件到根目录无法,所以只能创建新目录:

#!/bin/sh

mkdir -pv "/var/ftp/upload"
chown ftp:ftp "/var/ftp/upload"

第三步、重启服务

最后重启服务即可。

有关匿名用户的配置(废弃)

注意,请勿参考该部分内容:

#!/bin/sh

########################################################################################################################
# 创建匿名登录时要使用的系统帐号。(详情可查看vsftpd.conf中的ftp_username)
########################################################################################################################
groupadd ftp-anon
useradd -c anonymous_user -d '/mnt/ftp' -g ftp-anon -s /bin/false ftp-anon

########################################################################################################################
# 修改vsftpd.conf配置文件,指定匿名帐号
########################################################################################################################
cat >> /usr/local/vsftpd/vsftpd.conf << "EOF"
# 用于匿名访问的FTP帐号
ftp_username=ftp-anon
EOF

########################################################################################################################
# !!! 修改/mnt/ftp的访问权限 !!!
# 用于匿名访问的系统用户,不能具有对FTP根目录的write权限,所以要去掉w位。
# 如果用于匿名访问的系统用户没有相应的rx位,则匿名用户是看不到文件的。
#
# 如果给了匿名用户w位,会产生错误:500 OOPS: vsftpd: refusing to run with writable root inside chroot()
########################################################################################################################
chmod o+rx-w /mnt/ftp

参考文献

vsftpd匿名用户上传和下载的配置