debian

Debian防火墙如何创建自定义规则

小樊
45
2025-07-02 04:39:26
栏目: 智能运维

在Debian系统中,可以使用 ufw(Uncomplicated Firewall)或 iptables 来创建自定义防火墙规则。以下是使用这两种工具的详细步骤:

使用ufw创建自定义规则

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

    sudo apt update
    sudo apt install ufw
    
  2. 启用ufw

    sudo ufw enable
    
  3. 查看当前ufw状态

    sudo ufw status
    
  4. 添加自定义规则

    • 允许SSH连接(默认端口22):
      sudo ufw allow ssh
      
    • 允许HTTP服务(端口80):
      sudo ufw allow http
      
    • 允许特定IP地址的SSH访问:
      sudo ufw allow from 192.168.1.100 to any port 22
      
    • 拒绝特定端口的FTP访问:
      sudo ufw deny 21/tcp
      
    • 允许特定端口范围(例如,打开从2290到2300的端口供TCP协议使用):
      sudo ufw allow 2290:2300/tcp
      
  5. 删除规则

    • 删除特定规则:
      sudo ufw delete allow 22/tcp
      
    • 删除所有规则:
      sudo ufw reset
      
  6. 保存规则: 为了确保系统重启后规则仍然有效,需要保存ufw规则:

    sudo ufw export > /etc/ufw/user.rules
    

使用iptables创建自定义规则

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

    sudo apt update
    sudo apt install iptables
    
  2. 查看当前iptables规则

    sudo iptables -L -n -v
    
  3. 添加自定义规则

    • 允许特定IP访问:
      sudo iptables -A INPUT -s 192.168.1.100 -j ACCEPT
      
    • 拒绝特定IP访问:
      sudo iptables -A INPUT -s 192.168.1.101 -j DROP
      
    • 允许特定端口访问:
      sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT  # 允许HTTP
      sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT # 允许HTTPS
      
    • 拒绝所有入站连接:
      sudo iptables -P INPUT DROP
      
    • 允许SSH连接:
      sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
      sudo iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
      
  4. 保存iptables规则: 在Debian系统中,iptables规则默认不会持久化保存。你可以使用 iptables-persistent 包来保存和恢复规则。

    • 安装 iptables-persistent
      sudo apt install iptables-persistent
      
      在安装过程中,系统会提示你是否保存当前规则。选择“是”以保存规则。
    • 手动保存规则:
      sudo netfilter-persistent save
      sudo netfilter-persistent reload
      

通过以上步骤,你可以在Debian系统上自定义防火墙规则,以确保系统的安全性。

0
看了该问题的人还看了