ubuntu

如何在ubuntu上限制vsftp访问

小樊
39
2025-07-13 12:02:11
栏目: 智能运维

在 Ubuntu 上限制 vsftpd 访问可以通过多种方式实现,包括配置防火墙、使用 PAM(可插拔认证模块)以及编辑 vsftpd 配置文件。以下是一些基本步骤:

  1. 安装 vsftpd(如果尚未安装):

    sudo apt update
    sudo apt install vsftpd
    
  2. 配置防火墙: 如果你使用的是 UFW(Uncomplicated Firewall),可以设置规则来限制访问。

    • 允许 FTP 访问:

      sudo ufw allow 21/tcp
      
    • 如果你需要被动模式,还需要允许一系列端口(例如 50000-50050):

      sudo ufw allow 50000:50050/tcp
      
    • 然后启用防火墙:

      sudo ufw enable
      
  3. 编辑 vsftpd 配置文件: 打开 vsftpd 的配置文件以进行更详细的设置。

    sudo nano /etc/vsftpd.conf
    

    在配置文件中,你可以设置以下选项来限制访问:

    • listen=YES:让 vsftpd 在独立模式下运行。
    • listen_ipv6=NO:如果你只使用 IPv4,可以禁用 IPv6。
    • anonymous_enable=NO:禁止匿名用户登录。
    • local_enable=YES:允许本地用户登录。
    • write_enable=YES:允许 FTP 写入权限(根据需要设置)。
    • chroot_local_user=YES:将本地用户锁定在其主目录中。
    • allow_writeable_chroot=YES:如果需要,允许 chroot 环境写入。
    • userlist_enable=YESuserlist_file=/etc/vsftpd.userlist:指定一个用户列表文件,只有列表中的用户才能登录。
    • userlist_deny=NO:设置为 YES 将拒绝列表中的用户。

    保存并关闭文件。

  4. 配置 PAM: 如果你想基于用户组或其他更复杂的规则来限制访问,可以编辑 PAM 配置文件。

    sudo nano /etc/pam.d/vsftpd
    

    根据你的需求添加或修改行。例如,要限制特定用户组登录,可以使用以下行:

    auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd.userlist onerr=succeed
    

    这将拒绝 /etc/vsftpd.userlist 文件中列出的用户登录。

  5. 重启 vsftpd 服务: 应用更改后,重启 vsftpd 服务以使配置生效。

    sudo systemctl restart vsftpd
    
  6. 测试配置: 使用 FTP 客户端尝试连接到服务器,确保配置按预期工作。

请记住,这些步骤可能需要根据你的具体需求进行调整。始终确保你的服务器安全,避免不必要的开放端口和服务。如果你不熟悉这些配置,建议在进行更改之前咨询专业人士。

0
看了该问题的人还看了