返回

在 CentOS 7.9 中使用 vsftpd 为 Linux 提供安全可靠的 FTP 服务

见解分享

FTP 安全指南:在 CentOS 7.9 上使用 vsftpd 设置安全文件传输

简介

FTP(文件传输协议)是传输文件不可或缺的网络工具。vsftpd(非常安全的 FTP 守护程序)是 Linux 系统中用于建立 FTP 服务的可靠且安全的解决方案。本指南将循序渐进地介绍如何下载、安装和配置 vsftpd,以在 CentOS 7.9 系统上建立一个安全可靠的 FTP 服务器。

1. 安装 vsftpd

首先,从官方软件包存储库下载 vsftpd 安装包:

sudo yum install vsftpd

2. 启动并启用 vsftpd 服务

安装完成后,启动 vsftpd 服务并将其设置为在系统启动时自动启动:

sudo systemctl start vsftpd
sudo systemctl enable vsftpd

3. 配置 vsftpd

vsftpd 的默认配置文件位于 /etc/vsftpd/vsftpd.conf。使用文本编辑器对其进行编辑:

sudo nano /etc/vsftpd/vsftpd.conf

重要配置设置:

  • 匿名登录: 默认情况下,vsftpd 允许匿名登录。若要禁用,将 anonymous_enable 设置为 NO
  • 用户访问权限: 编辑 /etc/vsftpd/user_list 文件来配置特定用户的访问权限。
  • 传输模式: vsftpd 支持主动和被动模式传输。通过设置 pasv_enablepasv_min_port / pasv_max_port 选项配置被动模式。
  • 安全性: 通过启用 TLS/SSL 加密、限制连接速率和禁用危险命令来增强安全性。

4. 创建 FTP 用户

为允许用户访问 FTP 服务器,使用 useradd 命令创建 FTP 帐户:

sudo useradd -d /home/ftpuser -s /sbin/nologin ftpuser

这将创建一个名为 ftpuser 的用户,其主目录为 /home/ftpuser,并且该用户无法直接登录到系统。

5. 配置防火墙

允许外部访问 FTP 服务器,需在防火墙中打开端口 21(控制连接)和 20(数据连接):

sudo firewall-cmd --zone=public --permanent --add-port=21/tcp
sudo firewall-cmd --zone=public --permanent --add-port=20/tcp
sudo firewall-cmd --reload

6. 测试 FTP 服务器

使用 FTP 客户端(如 FileZilla 或 Cyberduck)连接到服务器,尝试上传和下载文件来测试 FTP 服务器。

最佳实践:提升安全性

  • 使用强密码保护 FTP 帐户。
  • 限制对敏感文件的访问。
  • 定期更新 vsftpd 和系统软件。
  • 启用 TLS/SSL 加密以保护传输中的数据。
  • 使用入侵检测系统监控可疑活动。

常见问题解答

  1. 如何启用匿名登录?
    修改配置文件,将 anonymous_enable 设置为 YES

  2. 如何允许特定用户访问特定的目录?
    编辑 /etc/vsftpd/user_list 文件,为用户添加 write_enable=YESchroot_local_user=YES

  3. 如何限制连接速率?
    通过设置 max_clientsmax_per_ipidle_session_timeout 选项来限制用户连接和会话时长。

  4. 如何禁用危险命令?
    cmds_allowed 设置为仅包含必要的命令列表,并禁用潜在危险的命令,如 mkfifoln

  5. FTP 服务器无法连接,怎么办?
    检查防火墙设置,确保已打开相应的端口,并检查服务器日志以查找错误消息。

结论

通过遵循本指南,您可以在 CentOS 7.9 系统上设置一个安全可靠的 FTP 服务。vsftpd 是一个强大的 FTP 服务器,通过遵循最佳实践和持续维护,您可以确保文件的安全传输并满足您的业务需求。