news 2026/4/21 23:26:18

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/17 19:48:56

10、深入探索Domino服务器的功能与应用

深入探索Domino服务器的功能与应用 1. 引言 Domino服务器具备众多强大功能,Domino 6更是在其基础上有显著提升。本文将详细介绍Domino用户注册、Active Directory同步等功能,以及相关操作步骤。 2. Domino用户注册 在Domino服务器完成安装与配置后,需对用户进行注册,用…

作者头像 李华
网站建设 2026/4/21 6:37:57

HIWIN直线导轨HG/EG系列怎么选?负载与精度参数对比

最近帮客户做选型时,经常遇到问HG和EG系列直线导轨滑块该怎么挑的问题。其实核心就两个点:设备需要承载多大重量?精度要求到什么程度?作为深圳市海威机电有限公司——HIWIN正式授权经销商的技术支持,我结合日常接触的案…

作者头像 李华
网站建设 2026/4/16 11:59:57

收藏!国自然课题中标应该具备哪些基本条件

✅申请人资格1️⃣具体标准:身份与依托单位 说明与依据:必须是依托单位的科学技术人员,或无固定单位但获依托单位同意。2️⃣具体标准:学历与职称 说明与依据:高级职称或博士学位;不具备者可提供两名同领域…

作者头像 李华
网站建设 2026/4/17 22:00:12

解锁“银发族”安心数字生活!

岁岁重阳,今又重阳。当金黄的秋意漫染街巷,我们总想着为长辈送上一份温暖与关怀。可如今数字化浪潮席卷生活,注册登录要记密码、办业务要跑多地、手机里还藏着各种诈骗陷阱,这些 “数字难题” 让不少长辈望而却步。别担心&#xf…

作者头像 李华
网站建设 2026/4/21 6:13:50

Arduino IDE 2.0高效实战指南:如何快速掌握嵌入式开发?

Arduino IDE 2.0高效实战指南:如何快速掌握嵌入式开发? 【免费下载链接】arduino-ide Arduino IDE 2.x 项目地址: https://gitcode.com/gh_mirrors/ar/arduino-ide Arduino IDE 2.0作为一款现代化的开源开发环境,为嵌入式系统和物联网…

作者头像 李华
网站建设 2026/4/20 15:49:27

系统伪装革命:让任意Windows设备秒变三星Galaxy Book

系统伪装革命:让任意Windows设备秒变三星Galaxy Book 【免费下载链接】galaxybook_mask This script will allow you to mimic your windows pc as a Galaxy Book laptop, this is usually used to bypass Samsung Notes 项目地址: https://gitcode.com/gh_mirror…

作者头像 李华