news 2026/5/29 1:25:01

CentOS 7/8上5分钟搞定Pure-FTPd:从YUM安装到创建虚拟用户(保姆级教程)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CentOS 7/8上5分钟搞定Pure-FTPd:从YUM安装到创建虚拟用户(保姆级教程)

CentOS 7/8极速部署Pure-FTPd:虚拟用户配置与安全实践指南

在当今企业文件共享和远程协作场景中,FTP服务依然扮演着不可替代的角色。Pure-FTPd以其轻量级、高安全性和易用性,成为众多运维人员的首选解决方案。本文将带您探索如何在CentOS 7/8系统上,通过YUM包管理器快速搭建一个支持虚拟用户的Pure-FTPd服务,同时兼顾安全性与管理便捷性。

1. 环境准备与基础安装

1.1 系统要求检查

在开始安装前,建议先确认系统版本和网络环境:

# 检查CentOS版本 cat /etc/redhat-release # 确保网络连通性 ping -c 4 example.com

对于生产环境,建议使用CentOS 7.6或更高版本,以获得最佳的系统兼容性。同时确保系统已更新至最新补丁:

yum update -y

1.2 通过YUM安装Pure-FTPd

相比源码编译安装,YUM方式能自动处理依赖关系并简化后续维护:

# 安装EPEL仓库(如未安装) yum install -y epel-release # 安装Pure-FTPd主程序 yum install -y pure-ftpd

安装完成后,验证关键文件路径:

/usr/sbin/pure-ftpd # 主程序 /etc/pure-ftpd/pure-ftpd.conf # 主配置文件 /usr/bin/pure-pw # 虚拟用户管理工具

1.3 防火墙配置

为确保FTP服务可访问,需开放相应端口:

# 开放21端口(控制连接)和被动端口范围 firewall-cmd --permanent --add-port=21/tcp firewall-cmd --permanent --add-port=45000-50000/tcp firewall-cmd --reload

2. 虚拟用户体系配置

2.1 创建FTP专用系统用户

虽然使用虚拟用户,但仍需一个系统用户作为文件所有者:

# 创建不可登录的系统用户 useradd -r -d /var/ftp -s /sbin/nologin ftpuser # 设置共享目录权限 mkdir -p /var/ftp/shared chown -R ftpuser:ftpuser /var/ftp chmod 755 /var/ftp

2.2 虚拟用户管理实战

使用pure-pw工具管理虚拟用户:

# 创建第一个虚拟用户 pure-pw useradd user1 -u ftpuser -d /var/ftp/user1 -m # 设置用户配额(限制100MB空间) pure-pw usermod user1 -n 100 -N 100 -m

常用管理命令速查表:

命令功能示例
pure-pw useradd添加用户pure-pw useradd user2 -u ftpuser -d /var/ftp/user2
pure-pw passwd修改密码pure-pw passwd user1
pure-pw userdel删除用户pure-pw userdel user1 -m
pure-pw list列出用户pure-pw list

2.3 用户数据库维护

每次用户变更后需要更新数据库:

# 手动更新数据库 pure-pw mkdb # 查看数据库状态 pure-pw show user1

3. 安全配置优化

3.1 关键配置文件调整

编辑/etc/pure-ftpd/pure-ftpd.conf,重点关注以下参数:

# 安全限制 ChrootEveryone yes AnonymousOnly no NoAnonymous yes MaxClientsPerIP 10 MaxClientsNumber 50 MaxDiskUsage 90 # 日志记录 VerboseLog yes AltLog clf:/var/log/pureftpd.log # 被动模式设置 PassivePortRange 45000 50000

3.2 日志分析与监控

配置日志轮转以方便管理:

# 创建日志轮转配置 cat > /etc/logrotate.d/pure-ftpd <<EOF /var/log/pureftpd.log { weekly missingok rotate 12 compress delaycompress notifempty create 640 root root } EOF

关键日志字段说明:

  • %t:连接时间
  • %h:客户端IP
  • %u:认证用户名
  • %s:传输字节数
  • %f:操作文件名

3.3 TLS加密传输(可选)

为提升安全性,可启用SSL/TLS加密:

# 生成自签名证书 openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ -keyout /etc/pki/pure-ftpd/pure-ftpd.pem \ -out /etc/pki/pure-ftpd/pure-ftpd.pem # 配置pure-ftpd.conf echo "TLS 1" >> /etc/pure-ftpd/pure-ftpd.conf echo "CertFile /etc/pki/pure-ftpd/pure-ftpd.pem" >> /etc/pure-ftpd/pure-ftpd.conf

4. 服务管理与高级功能

4.1 Systemd服务控制

现代CentOS使用systemd管理服务:

# 启动服务 systemctl start pure-ftpd # 设置开机自启 systemctl enable pure-ftpd # 查看服务状态 systemctl status pure-ftpd

4.2 带宽限制与连接控制

针对不同用户设置带宽限制:

# 限制单个用户带宽(单位KB/s) pure-pw usermod user1 -t 512 -T 1024 -m # 限制IP连接数 echo "PerUserLimits 3:5" >> /etc/pure-ftpd/pure-ftpd.conf

4.3 自动化脚本示例

创建用户批量导入脚本add_ftp_users.sh

#!/bin/bash USER_LIST="user1 user2 user3" BASE_DIR="/var/ftp" FTP_GROUP="ftpuser" for USER in $USER_LIST; do USER_DIR="$BASE_DIR/$USER" mkdir -p "$USER_DIR" chown $FTP_GROUP:$FTP_GROUP "$USER_DIR" pure-pw useradd $USER -u $FTP_GROUP -d $USER_DIR -m echo "用户 $USER 创建完成" done pure-pw mkdb systemctl restart pure-ftpd

4.4 客户端连接测试

使用不同工具测试连接:

# 命令行测试 ftp -p your_server_ip # 图形化工具推荐 # - FileZilla(跨平台) # - WinSCP(Windows) # - Cyberduck(Mac)

连接参数示例:

协议: FTP (显式TLS) 主机: your_server_ip 端口: 21 用户: 虚拟用户名 密码: 设置时指定的密码
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/29 1:21:58

如何科学地为孩子选择合适的室内照明?这三点家长必看

临近期末, 好多家长发觉孩子写作业时距离书本愈发近了, 揉眼睛的频次也显著增多。除开留意用眼的时长, 一个常常被忽略的罪魁祸首或许正潜藏在孩子书桌的上方, 那便是不合适的室内照明。按照《国民视觉健康报告》的数据, 我国5岁以上的人群里近视的比例已经高达35.16%至39.21%,…

作者头像 李华
网站建设 2026/5/29 1:17:59

求大神帮我看看这个代码有什么问题吗

20 数学奇才【难度: 简单&#xff0c;标签: 贪心&#xff0c;通过率: 71.6%】20.1 问题描述你是一位数学奇才&#xff0c;但却被困在了神秘的数字王国中。在你面前&#xff0c;摆放着一串神奇的数字&#xff0c;它们组成了一个长度为 n 的序列&#xff0c;记作 a。你的使命是利…

作者头像 李华