debian

如何在Debian上限制FTP访问

小樊
43
2025-11-28 09:44:18
栏目: 智能运维

在Debian上限制FTP访问可以通过多种方法实现,包括使用防火墙规则、配置FTP服务器软件(如vsftpd)以及使用SELinux或AppArmor等安全模块。以下是一些常见的方法:

方法一:使用防火墙规则

你可以使用iptablesufw来限制FTP访问。

使用iptables

  1. 允许FTP流量

    sudo iptables -A INPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
    sudo iptables -A OUTPUT -p tcp --sport 20 -m state --state ESTABLISHED -j ACCEPT
    
  2. 限制特定IP地址访问

    sudo iptables -A INPUT -p tcp --dport 21 -s 192.168.1.100 -m state --state NEW,ESTABLISHED -j ACCEPT
    sudo iptables -A INPUT -p tcp --dport 21 -j DROP
    
  3. 保存规则

    sudo sh -c "iptables-save > /etc/iptables/rules.v4"
    

使用ufw

  1. 启用FTP服务

    sudo ufw allow 21/tcp
    sudo ufw allow 20/tcp
    
  2. 限制特定IP地址访问

    sudo ufw allow from 192.168.1.100 to any port 21
    sudo ufw deny 21
    
  3. 启用防火墙

    sudo ufw enable
    

方法二:配置vsftpd

如果你使用的是vsftpd作为FTP服务器,可以通过编辑其配置文件来限制访问。

  1. 编辑vsftpd配置文件

    sudo nano /etc/vsftpd.conf
    
  2. 添加或修改以下配置

    # 限制本地用户访问
    local_enable=YES
    write_enable=YES
    chroot_local_user=YES
    
    # 限制特定IP地址访问
    tcp_wrappers=YES
    
  3. 重启vsftpd服务

    sudo systemctl restart vsftpd
    

方法三:使用SELinux或AppArmor

如果你启用了SELinux或AppArmor,可以利用它们来进一步限制FTP访问。

SELinux

  1. 安装SELinux管理工具

    sudo apt-get install policycoreutils-python
    
  2. 设置SELinux策略

    sudo setsebool -P ftp_home_dir on
    sudo chcon -Rt svirt_sandbox_file_t /home/ftpuser
    

AppArmor

  1. 安装AppArmor配置文件

    sudo apt-get install apparmor-profiles
    
  2. 编辑AppArmor配置文件

    sudo nano /etc/apparmor.d/usr.sbin.vsftpd
    
  3. 添加限制规则

    /usr/sbin/vsftpd {
        # Allow FTP traffic
        network inet stream,
        network inet6 stream,
    
        # Restrict access to specific IP addresses
        allow from 192.168.1.100 to any port 21,
        deny from any to any port 21,
    }
    
  4. 重新加载AppArmor配置

    sudo systemctl restart apparmor
    

通过以上方法,你可以在Debian上有效地限制FTP访问,确保只有授权用户能够访问你的FTP服务器。

0
看了该问题的人还看了