debian

Debian FTP服务器防火墙设置方法

小樊
40
2025-09-24 21:26:32
栏目: 云计算

Debian FTP服务器防火墙设置方法(以vsftpd为例)
在Debian系统上配置FTP服务器(如vsftpd)的防火墙时,需同时处理控制连接(默认端口21)、数据连接(默认端口20)及被动模式端口范围(需与vsftpd配置一致)。以下是iptables(传统工具)和ufw(简化工具)的具体设置步骤:

一、前置准备:安装FTP服务器与防火墙工具

  1. 更新系统并安装vsftpd
    确保系统软件包最新,然后安装vsftpd(轻量级FTP服务器):

    sudo apt update && sudo apt upgrade -y
    sudo apt install vsftpd -y
    
  2. 配置vsftpd(关键:设置被动模式端口范围)
    编辑vsftpd主配置文件/etc/vsftpd.conf,启用被动模式并指定端口范围(示例为50000-50050,可根据需求调整):

    listen=YES
    anonymous_enable=NO
    local_enable=YES
    write_enable=YES
    chroot_local_user=YES
    allow_writeable_chroot=YES
    pasv_enable=YES
    pasv_min_port=50000
    pasv_max_port=50050
    

    保存后重启vsftpd服务使配置生效:

    sudo systemctl restart vsftpd
    
  3. 安装防火墙工具

    • iptables(传统工具,需手动管理规则):
      sudo apt install iptables iptables-persistent -y
      
    • ufw(简化工具,推荐新手使用):
      sudo apt install ufw -y
      

二、使用iptables配置防火墙规则

iptables需逐条添加规则,允许FTP相关流量,并保存规则以实现开机自启:

  1. 允许FTP控制连接(端口21)
    控制连接用于客户端与服务器之间的命令交互(如登录、上传/下载指令):

    sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
    
  2. 允许FTP数据连接(端口20)
    数据连接用于实际文件传输(主动模式下,服务器主动连接客户端端口20):

    sudo iptables -A INPUT -p tcp --dport 20 -j ACCEPT
    
  3. 允许被动模式数据连接(自定义端口范围)
    被动模式下,服务器会在指定端口范围内监听客户端连接(需与vsftpd的pasv_min_port/pasv_max_port一致):

    sudo iptables -A INPUT -p tcp --dport 50000:50050 -j ACCEPT
    
  4. 允许已建立的连接
    允许已建立的连接继续通信(避免中断现有会话):

    sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    
  5. 设置默认拒绝策略(可选但推荐)
    拒绝所有未明确允许的入站流量,提升安全性:

    sudo iptables -P INPUT DROP
    
  6. 保存iptables规则
    使用iptables-persistent保存规则,确保系统重启后规则不丢失:

    sudo netfilter-persistent save
    sudo netfilter-persistent reload
    

三、使用ufw配置防火墙规则

ufw是Ubuntu/Debian推荐的简化防火墙工具,通过命令即可快速配置:

  1. 启用ufw
    启用ufw并设置默认策略(拒绝所有入站,允许所有出站):

    sudo ufw enable
    
  2. 允许FTP控制连接(端口21)

    sudo ufw allow 21/tcp
    
  3. 允许FTP数据连接(端口20)

    sudo ufw allow 20/tcp
    
  4. 允许被动模式数据连接(自定义端口范围)

    sudo ufw allow 50000:50050/tcp
    
  5. 允许vsftpd服务(可选,简化规则)
    ufw内置了对vsftpd的支持,可直接允许其服务(会自动包含21、20端口及被动模式端口):

    sudo ufw allow vsftpd
    
  6. 重新加载ufw
    应用新规则:

    sudo ufw reload
    
  7. 验证ufw状态
    查看当前规则是否生效:

    sudo ufw status verbose
    

四、注意事项

  1. 被动模式端口一致性
    必须确保vsftpd配置中的pasv_min_port/pasv_max_port与防火墙规则中的被动模式端口范围完全一致,否则客户端无法正常下载文件。

  2. FTP协议安全性
    FTP协议本身未加密,建议启用FTPS(FTP over SSL/TLS)或改用SFTP(SSH File Transfer Protocol)提升数据传输安全性。

  3. 规则测试
    配置完成后,使用FTP客户端(如ftpFileZilla)从外部机器连接服务器,验证是否能正常登录、上传/下载文件。

  4. 规则优化
    根据实际需求调整端口范围(如缩小被动模式端口范围以减少攻击面),并定期检查防火墙规则是否过时。

通过以上步骤,即可在Debian系统上为vsftpd配置防火墙,确保FTP服务的安全性与可用性。

0
看了该问题的人还看了