乐于分享
好东西不私藏

vsftpd服务部署实施文档

vsftpd服务部署实施文档

vsftpd服务部署实施文档

vsftpd 服务部署实施文档

一、文档信息

项目

内容

文档名称

vsftpd 服务部署与配置实施方案

适用系统

CentOS7/8、欧拉 OS、ubuntu等主流 Linux

服务版本

vsftpd 3.0.5(稳定版)vsftp3.0.2(编译后版本)

编写人

Jiang

编写日期

2025-06-09

审核人

适用场景

企业内部文件传输、局域网资源上传下载、业务文件分发

二、部署环境

1.服务器操作系统:Centos 7.9 aarch64

2.服务器 IP 地址:xx.xx.x.xxx

3.系统防火墙状态:关闭

4.SELINUX 状态: 关闭

5.部署方式:RPM 离线部署

6.版本号/名:vsftp-3.0.2-28.el7.aarch64.rpm

三、前期准备

3.1 环境检查

1.检查系统网络连通性,确保服务器可正常访问(在线安装需联网)

2.检查服务器端口占用,确认 21 端口、被动模式端口段未被占用,生产环境策略封堵21端口,后续要修改自定义账号

bash                  netstat -lnp | grep 21

3.关闭或放行系统安全策略(可选,根据业务需求)

临时关闭 SELINUX

bash                  setenforce 0

永久关闭 SELINUX(需重启生效)两种方式可选

bash                  1、sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

2、vim /etc/sysconfig/selinux修改:SELINUX=disabled

3.2 依赖安装

安装 vsftpd 运行必备依赖包

bash                  # CentOS/欧拉OS                  yum install -y gcc make libcap libcap-devel                  # Ubuntu/Debian                  apt install -y gcc make libcap-dev

#离线安装

Rpm -ivh vsftp-3.0.2-28.el7.aarch64.rpm

四、vsftpd 安装部署

4.1 方式一:yum 在线安装(快速部署)

bash                  # 安装服务                  yum install -y vsftpd                  # 查看版本                  vsftpd -v                  # 设置开机自启                  systemctl enable vsftpd

4.2 方式二:源码离线编译安装(3.0.5 版本)

1.上传 vsftpd-3.0.5 源码包至服务器/usr/local/src目录(根据个人习惯路径)

2.解压编译安装

bash                  cd /usr/local/src                  tar -zxvf vsftpd-3.0.5.tar.gz                  cd vsftpd-3.0.5                  # 编译(默认配置)                  make                  # 安装程序                  make install                  # 拷贝配置文件至系统目录                  cp vsftpd.conf /etc/vsftpd/

4.2 方式二:源码离线rpm安装(3.0.2 版本)

Rpm -ivh vsftp-3.0.2-28.el7.aarch64.rpm

3.注册系统服务、设置开机自启(适配 systemd 系统)

五、核心配置文件修改

配置文件路径:/etc/vsftpd/vsftpd.conf

5.1 基础核心配置(常用生产配置)

ini                  修改为NO,关闭匿名用户访问

anonymous_enable=NO

#允许本地用户登录FTP服务器

local_enable=YES

本地用户是否允许上传

write_enable=YES

设置系统用户FTP主目录

local_root=/data/ftpdata

本地用户上传的权限默认是022,则目录的权限是755777-022=755),文件权限是644666-022=644

local_umask=022

#用户登陆成功后是否显示欢迎消息或者警告消息。

dirmessage_enable=YES

激活记录日志,对于一个服务来说,日志是肯定且必须的。

xferlog_enable=YES

主动模式数据传输接口时是否开启。如果是主动模式,则为YES,不需要更改。

connect_from_port_20=YES

是否使用标准的FTP日志格式。

xferlog_std_format=YES

#监听IPv4 sockets

listen=YES

#关闭ipv6监听

listen_ipv6=NO

# Linux的用户名与密码默认采用的是PAM验证,这里ftp默认采用的就是PAM验证

pam_service_name=vsftpd

用户限制或者说黑名单是否开启,单写这个没有任何的意义。

userlist_enable=YES

userlist_deny=NO

userlist_file=/etc/vsftpd/user_list

#一个tcp简单的防火墙。

tcp_wrappers=YES

#开启被动模式。

pasv_enable=YES

配置FTP被动模式的端口

pasv_min_port=30000

pasv_max_port=30000

# 锁定用户根目录(禁止跳出家目录,安全必备)                  chroot_local_user=YES                  chroot_list_enable=NO                  allow_chroot_writeable=YES

#自定义端口

listen_port-22121

#IP连接限制

max_clients=50000

max_per_ip=20000

5.2 用户配置

1.创建 FTP 专属用户(禁止 ssh 登录,仅用于 FTP 传输)

bash                  # 创建用户、指定家目录、禁止登录系统                  useradd -d /data/ftpdata -s /sbin/nologin ftp_root# 设置用户密码                  passwd ftp_root

2.配置目录权限

bash                  # 归属用户权限                  chown -R ftp_root:ftp_root /data/ftpdata

# 目录权限                  chmod -R 755 /data/ftpdata

5.3 用户黑白名单配置

白名单路径:/etc/vsftpd/user_list

黑名单路径:/etc/vsftpd/ftpusers

配置规则:白名单仅名单内用户可登录,黑名单内用户禁止登录

六、防火墙端口放行

6.1 firewalld 放行端口

bash                  # 放行FTP默认21端口                  firewall-cmd --permanent --add-port=21/tcp                  # 放行被动模式端口段                  firewall-cmd --permanent --add-port=30000-31000/tcp                  # 重载防火墙                  firewall-cmd --reload

6.2 关闭防火墙(测试环境可选)

bash                  systemctl stop firewalld                  systemctl disable firewalld

七、服务启停与开机自启

bash                  # 启动服务                  systemctl start vsftpd                  # 停止服务                  systemctl stop vsftpd                  # 重启服务                  systemctl restart vsftpd                  # 查看服务状态                  systemctl status vsftpd                  # 开机自启                  systemctl enable vsftpd

八、功能测试验证

8.1 本地服务器测试

bash                  # 本地连接FTP                  ftp 服务器IP                  # 输入用户名、密码,测试登录、上传、下载、删除文件

8.2 客户端测试

1.使用 FileZilla、Xftp 等客户端,输入服务器 IP、端口 21、账号密码登录

2.验证功能:文件夹浏览、文件上传、文件下载、新建目录、删除文件

3.验证权限:锁定根目录、匿名访问限制、端口连通性

九、日志管理

1.默认日志路径:/var/log/xferlog

2.日志功能:记录所有用户登录、上传、下载、删除操作

3.日志查看命令

bash                  # 实时查看日志                  tail -f /var/log/xferlog

十、常见故障排查

1.无法连接 FTP 服务

排查方向:服务是否启动、21 端口是否放行、防火墙 / SELINUX 拦截

2.登录成功,无法上传文件

排查方向:目录权限不足、配置文件write_enable未开启、用户目录归属错误

3.被动模式连接失败

排查方向:被动端口段未放行、端口冲突、配置文件 pasv 参数未生效

4.用户可以跳出根目录

排查方向:chroot_local_user参数未开启、目录权限异常

十一、运维规范

1.定期清理 FTP 日志、无用历史文件(写脚本定时清理,避免造成数据打不开无法读写以及磁盘100%)

2.禁止使用 root 账号登录 FTP 服务

3.定期修改 FTP 用户密码,提升安全性

4.变更配置后必须重启 vsftpd 服务生效

5.生产环境严格开启用户根目录锁定、关闭匿名登录

十二、部署备注

1、此文档中的版本、路径、底层系统、用户、不是一尘不变的,可针具自己生产环境动态调整

2、注意网络安全规范,注意规避高风险端口,测试环境可不做更改,生产环境需规避默认端口,否则会导致端口不通问题

 暗词:公众号回复”vsftp“获取下载链接