news 2026/4/16 14:10:53

24.vsftpd服务--CentOS7

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
24.vsftpd服务--CentOS7

下载vsftpd服务

yuminstall-y vsftpd

一、匿名访问ftp服务

首先备份好源文件

再编辑配置文件

[root@localhost ~]# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf

需要修改的值

# 1. 开启匿名访问(核心)anonymous_enable=YES# 2. 限制匿名用户权限(安全优先)local_enable=NO# 关闭本地用户登录(仅允许匿名)write_enable=NO# 全局禁止写入(匿名用户默认只读)anon_upload_enable=NO# 禁止匿名上传anon_mkdir_write_enable=NO# 禁止匿名创建目录anon_other_write_enable=NO# 禁止匿名修改/删除文件# 3. 匿名用户根目录(默认/var/ftp,无需修改)anon_root=/var/ftp# 4. 匿名登录免密码(直接回车即可登录)no_anon_password=YES# 5. 被动模式配置(必配,否则客户端可能无法连接)pasv_enable=YESpasv_min_port=30000pasv_max_port=30009pasv_address=你的服务器IP# 替换为实际IP

[root@localhost ~]# chown root:root /var/ftp[root@localhost ~]# chmod 755 /var/ftp[root@localhost ~]# mkdir -p /var/ftp/pub[root@localhost ~]# chown ftp:ftp /var/ftp/pub[root@localhost ~]# chmod 755 /var/ftp/pub[root@localhost ~]# echo "匿名FTP测试文件" > /var/ftp/pub/test.txt[root@localhost ~]# chmod 644 /var/ftp/pub/test.txt
命令核心作用合理性(适配vsftpd匿名访问的权限规则)
chown root:root /var/ftp将匿名FTP根目录的所有者/所属组设为rootvsftpd强制要求:匿名访问的chroot根目录(/var/ftp)所有者必须是root,否则会触发chroot权限错误,拒绝匿名登录
chmod 755 /var/ftp配置根目录权限为「root可读写执行,其他用户只读+执行」1. 根目录不可写(符合匿名只读的安全要求,防止匿名用户篡改根目录);2. 其他用户(ftp)可执行(允许进入目录)
mkdir -p /var/ftp/pub创建匿名共享的公共下载目录pub规范文件存储:将共享文件集中放在pub目录,与根目录隔离,避免根目录文件混乱
chown ftp:ftp /var/ftp/pub将pub目录所有者/所属组设为ftp系统用户(匿名访问的默认运行用户)ftp用户是vsftpd匿名访问的默认身份,赋予该用户目录所有权,确保匿名用户能读取目录内文件
chmod 755 /var/ftp/pub配置pub目录权限为「所有者可读写执行,其他用户只读+执行」1. 匿名用户(ftp)可进入目录、读取文件(满足下载需求);2. 无写入权限(符合匿名只读的安全规则)
echo "匿名FTP测试文件" > /var/ftp/pub/test.txt创建测试文件,用于验证匿名用户的文件读取权限生成可验证的文本文件,快速确认匿名访问的文件读取功能是否正常
chmod 644 /var/ftp/pub/test.txt配置测试文件权限为「所有者可读写,其他用户只读」1. 匿名用户仅能读取文件(符合只读规则),无法修改/删除;2. 644是Linux通用的“公共只读”权限,适配FTP访问场景

重启服务:

systemctl restart vsftpd

客户端验证:

ftp你的服务器IP# 用户名输入:anonymous(或ftp)# 密码直接回车(或输入任意邮箱)# 执行ls查看pub目录,get test.txt下载文件

登录没问题,但是拒绝链接。

切换为主动模式

ftp192.168.84.132# 登录后输入ftp>passive Passive mode off.# 关闭被动模式,切换为主动模式ftp>ls# 再次尝试列出目录

二、用户验证的ftp服务

恢复备份

# 先停止vsftpd服务systemctl stop vsftpd# 强制覆盖当前配置文件(-f 避免权限提示)cp-f /etc/vsftpd/vsftpd.conf.bak /etc/vsftpd/vsftpd.conf

本地用户验证

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf-local_enable=YES -write_enable=YES -local_umask=077 -chroot_local_user=YES -allow_writeable_chroot=YES[root@localhost ~]# systemctl restart vsftpd[root@localhost ~]# ls > uptest.txt[root@localhost ~]# ftp 192.168.84.132[root@localhost ~]# ftp 192.168.84.132Connected to192.168.84.132(192.168.84.132).220(vsFTPd3.0.2)Name(192.168.84.132:root): peng331Please specify the password. Password:230Login successful. Remote systemtypeis UNIX. Using binary mode to transfer files. ftp>ls227Entering Passive Mode(192,168,84,132,33,219).150Here comes the directory listing.226Directory send OK. ftp>put uptest.txt local: uptest.txt remote: uptest.txt227Entering Passive Mode(192,168,84,132,110,209).150Ok to send data.226Transfer complete.130bytes sentin2.2e-05 secs(5909.09Kbytes/sec)ftp>ls227Entering Passive Mode(192,168,84,132,94,240).150Here comes the directory listing. -rw-------110001000130Dec 04 04:03 uptest.txt226Directory send OK. ftp>quit221Goodbye.

三、基于虚拟用户的ftp服务

1. 准备虚拟用户文件

创建虚拟用户名单(格式:用户名/密码,每行交替):

vi/etc/vsftpd/vuser.list# 内容示例:ftpuser1123456ftpuser2 abc123

生成PAM认证所需的db文件:

db_load -T -thash-f /etc/vsftpd/vuser.list /etc/vsftpd/vuser.dbchmod600/etc/vsftpd/vuser.db# 限制权限

2. 配置PAM认证

编辑vsftpd的PAM配置文件:

vi/etc/pam.d/vsftpd# 注释原有系统用户认证行,添加虚拟用户认证:auth required pam_userdb.sodb=/etc/vsftpd/vuser account required pam_userdb.sodb=/etc/vsftpd/vuser

3. 配置vsftpd主文件(/etc/vsftpd/vsftpd.conf

关键配置项:

# 禁用匿名,启用虚拟用户 anonymous_enable=NO guest_enable=YES guest_username=ftp # 虚拟用户映射到系统用户ftp user_config_dir=/etc/vsftpd/vuser_dir # 虚拟用户独立配置目录

4. 虚拟用户独立权限配置

创建独立配置目录及用户配置文件:

mkdir/etc/vsftpd/vuser_dir# 为ftpuser1配置写权限(示例):vi/etc/vsftpd/vuser_dir/ftpuser1write_enable=YESlocal_umask=022

5. 启动并验证

systemctl restart vsftpd# 客户端测试登录(使用虚拟用户ftpuser1/123456)ftp192.168.84.132

6.问题及排查

若出现此问题:

解决方法:

日志中500 OOPS: cannot locate user entry:ftp1说明:系统(或虚拟用户配置)中不存在名为ftp1的用户,导致认证失败。

1. 检查虚拟用户配置(若使用虚拟用户)
  • 确认/etc/vsftpd/vuser.list中是否包含ftp1及其密码;
  • 重新生成虚拟用户db文件:db_load -T -t hash -f /etc/vsftpd/vuser.list /etc/vsftpd/vuser.db
  • 检查/etc/pam.d/vsftpd的PAM配置是否正确关联虚拟用户db。
2. 检查系统用户(若使用本地系统用户)
  • 执行cat /etc/passwd | grep ftp1,确认系统中是否存在ftp1用户;
  • 若不存在,创建用户:useradd -s /sbin/nologin ftp1(限制登录Shell)。
3. 验证vsftpd配置
  • 确保vsftpd.confguest_enable(虚拟用户)或local_enable(本地用户)已正确启用;
  • 重启服务:systemctl restart vsftpd

到这样就成功了。

四、vsftpd服务删除

使用root 用户操作, CentOS 7 彻底删除 vsftpd 服务的步骤:

1. 检查 FTP 服务状态

# 检查 vsftpd 是否安装rpm-qa|grepvsftpd# 查看服务运行状态systemctl status vsftpd

2. 停止并禁用 FTP 服务

# 停止 vsftpd 服务systemctl stop vsftpd# 禁用开机自启systemctl disable vsftpd# 移除服务配置符号链接rm-f /etc/systemd/system/multi-user.target.wants/vsftpd.service

3. 卸载 vsftpd 软件包

# 仅卸载软件包,保留配置文件yum remove vsftpd -y# 彻底卸载(删除软件包+所有配置文件)yum erase vsftpd -y

4. 清理残留文件和目录

# 删除配置文件目录rm-rf /etc/vsftpd/# 删除日志文件rm-rf /var/log/vsftpd.logrm-rf /var/log/xferlog# 可选:删除默认 FTP 根目录(确认无重要数据后执行)rm-rf /var/ftp/

5. 验证删除结果

# 检查软件包是否残留rpm-qa|grepvsftpd# 检查服务是否存在systemctl status vsftpd

若输出为空或提示Unit vsftpd.service could not be found,则删除成功。


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/14 8:35:48

市面上优秀的刀具源头厂家

刀具行业技术演进与解决方案分析:以阳江市金炜工贸有限公司为例行业痛点分析当前,全球刀具制造领域正面临一系列深刻的技术挑战。一方面,市场对刀具产品的需求日益多元化与专业化,从家庭厨房到户外探险,再到轻工业制造…

作者头像 李华
网站建设 2026/4/15 15:30:04

Go调试神器:5分钟快速上手GoDeBug完整指南

Go调试神器:5分钟快速上手GoDeBug完整指南 【免费下载链接】godebug DEPRECATED! https://github.com/derekparker/delve 项目地址: https://gitcode.com/gh_mirrors/go/godebug 还在为Go程序调试而烦恼吗?GoDeBug作为一款开源的Go语言调试工具&a…

作者头像 李华
网站建设 2026/4/16 13:29:51

8、Lotus Domino 6 for Linux:安全、管理、性能优化与故障排除全解析

Lotus Domino 6 for Linux:安全、管理、性能优化与故障排除全解析 1. Domino服务器配置与管理 在Domino服务器的管理中,通过配置选项卡可以访问当前服务器文档,其中包含了诸多定义服务器运行方式的设置: - 基本信息 :如服务器名称和主机名。 - 安全设置 :保障服务…

作者头像 李华
网站建设 2026/4/15 22:34:07

71、深入理解 Linux 高级安全之 PAM 认证

深入理解 Linux 高级安全之 PAM 认证 1. Linux 安全工具概述 Linux 系统拥有丰富的加密工具,这为实现特定组织所需的密码学标准提供了灵活性和多样性。此外,PAM(Pluggable Authentication Modules,可插拔认证模块)是 Linux 上另一个强大的安全工具。 2. PAM 简介 PAM …

作者头像 李华
网站建设 2026/4/5 18:32:18

Windows美化神器DWMBlurGlass:一键打造个性化透明标题栏

还在为Windows系统千篇一律的灰色标题栏感到审美疲劳吗?是否渴望为自己的桌面注入新的活力?今天我要向你推荐一款革命性的Windows美化工具——DWMBlurGlass,它将彻底改变你对Windows界面的认知,让你的桌面焕然一新! 【…

作者头像 李华
网站建设 2026/4/5 17:55:09

ANSYS Fluent UDF手册2020R2:5个关键场景助你掌握自定义编程

ANSYS Fluent UDF手册2020R2:5个关键场景助你掌握自定义编程 【免费下载链接】ANSYSFluentUDFManual2020R2官方手册资源下载 本开源项目提供了ANSYS Fluent UDF Manual (2020R2) 的官方PDF文件下载,专为希望在Fluent中进行自定义编程的用户设计。手册详细…

作者头像 李华