温馨提示×

CentOS系统下VSFTP的备份与恢复

小樊
35
2026-01-07 20:46:41
栏目: 智能运维

CentOS 下 VSFTP 的备份与恢复

一 备份范围与准备

  • 备份对象应覆盖:配置文件、数据目录、用户与权限、日志、以及被动模式端口范围与防火墙策略。
  • 建议准备:一台用于存放备份的远程主机或外置存储;具备 rootsudo 权限;备份窗口内尽量暂停写入或选择低峰时段。
  • 关键认知:VSFTP 使用两条通道——控制通道 21/TCP,数据通道在主动模式由服务器用 20/TCP 主动连客户端,在被动模式由服务器开放一段高位端口(常见为 6000–7000)供客户端接入;若启用被动模式,需一并备份并恢复该端口范围与防火墙放行策略。

二 备份步骤

  • 配置文件
    • 核心配置位于 /etc/vsftpd/,建议打包备份整个目录:
      • tar -czvf vsftpd_conf_$(date +%F).tar.gz /etc/vsftpd/
  • 数据目录
    • 本地用户数据通常在各用户的家目录(如 /home/ 下各用户);若使用匿名公开目录,常见为 /var/ftp/。建议按实际业务选择打包:
      • tar -czvf vsftpd_data_$(date +%F).tar.gz /home/ftpuser /var/ftp
  • 用户与权限
    • 备份用户账号与组信息(用于恢复时核对一致性):
      • getent passwd | grep ftp > ftp_users.txt
      • getent group | grep ftp > ftp_groups.txt
  • 日志文件
    • 便于审计与问题定位,建议归档:
      • tar -czvf vsftpd_logs_$(date +%F).tar.gz /var/log/vsftpd.log /var/log/xferlog 2>/dev/null || true
  • 防火墙与被动端口
    • firewalld:
      • firewall-cmd --list-ports > firewalld_ports_$(date +%F).txt
      • firewall-cmd --list-services >> firewalld_ports_$(date +%F).txt
    • 若使用被动模式,记录端口范围(如 6000–7000),并在备份清单中注明,便于恢复时放行相同范围。
  • 远程异地保存
    • 将备份包与清单传至远程存储(示例为 SCP):
      • scp vsftpd_*.tar.gz user@backup.example.com:/backup/ftp/$(date +%F)/
  • 自动化与校验
    • 建议用 cron 定时执行备份脚本,并在脚本中加入 sha256sum 校验与保留策略(如保留最近 7–30 天)。

三 恢复步骤

  • 安装与基础准备
    • 安装 VSFTPD:yum install -y vsftpd
    • 恢复配置文件:tar -xzvf vsftpd_conf_YYYY-MM-DD.tar.gz -C /
  • 恢复数据与权限
    • 恢复数据:tar -xzvf vsftpd_data_YYYY-MM-DD.tar.gz -C /
    • 如为本地用户,确保家目录属主属组正确(示例):chown -R ftpuser:ftpuser /home/ftpuser
  • 恢复用户与组
    • 对比备份清单(ftp_users.txt、ftp_groups.txt)与系统现状,必要时用 useradd/groupadd 补齐缺失账号或组,避免 UID/GID 冲突。
  • 防火墙与被动端口
    • firewalld:
      • 按备份清单恢复端口与服务:firewall-cmd --permanent --add-service=ftp;firewall-cmd --permanent --add-port=6000-7000/tcp
      • firewall-cmd --reload
  • 启动与验证
    • 启动服务:systemctl start vsftpd;systemctl enable vsftpd
    • 验证要点:本地/匿名登录、上传/下载、目录切换、被动模式端口连通性(如用 telnet/curl 测试 216000–7000 区间)、日志是否正常写入。

四 常见场景与注意事项

  • 匿名与本地用户
    • 匿名访问常见根目录为 /var/ftp,公开上传目录通常为 /var/ftp/pub;恢复后注意目录权限与属主,否则易出现 550 无法写入等错误。
  • chroot 与可写根目录
    • 若启用了 chroot_local_user=YES,VSFTPD 出于安全检查默认不允许被禁锢目录可写;需在配置中增加 allow_writeable_chroot=YES 后再重启,否则用户可能无法登录或写入。
  • 被动模式端口范围
    • 若备份时配置了 pasv_min_port/pasv_max_port(如 6000–7000),恢复时务必在防火墙放行相同范围,否则数据通道将建立失败。
  • SELinux 与权限问题
    • 遇到“Permission denied/550 Failed to open file”等,除检查目录权限外,还需确认 SELinux 策略(必要时临时 setenforce 0 验证,再按策略永久调整)。
  • 传输模式
    • 备份/恢复大文件或压缩包时,优先使用二进制模式(FTP 客户端设置为 Binary),避免 ASCII 模式导致文件损坏。

0