温馨提示×

debian防火墙如何自定义脚本

小樊
31
2025-12-07 05:29:03
栏目: 智能运维

在Debian系统中,您可以使用iptablesnftables来配置防火墙规则。如果您想要自定义脚本来管理防火墙规则,可以按照以下步骤操作:

使用iptables自定义脚本

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

    sudo apt update
    sudo apt install iptables
    
  2. 创建自定义脚本: 使用您喜欢的文本编辑器(如nano, vim等)创建一个新的脚本文件。例如,创建一个名为custom-firewall.sh的脚本:

    sudo nano /etc/iptables/custom-firewall.sh
    
  3. 编写脚本内容: 在脚本中添加您想要执行的iptables规则。例如:

    #!/bin/bash
    
    # 清除现有规则
    sudo iptables -F
    sudo iptables -X
    
    # 设置默认策略
    sudo iptables -P INPUT DROP
    sudo iptables -P FORWARD DROP
    sudo iptables -P OUTPUT ACCEPT
    
    # 允许本地回环接口的流量
    sudo iptables -A INPUT -i lo -j ACCEPT
    
    # 允许已建立的连接
    sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
    
    # 允许SSH连接
    sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT
    
    # 允许HTTP和HTTPS连接
    sudo iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW -j ACCEPT
    sudo iptables -A INPUT -p tcp --dport 443 -m conntrack --ctstate NEW -j ACCEPT
    
    # 其他自定义规则...
    
    # 保存规则
    sudo sh -c "iptables-save > /etc/iptables/rules.v4"
    
  4. 赋予脚本执行权限:

    sudo chmod +x /etc/iptables/custom-firewall.sh
    
  5. 运行脚本:

    sudo /etc/iptables/custom-firewall.sh
    
  6. 设置脚本开机自启动: 您可以将脚本添加到/etc/network/if-pre-up.d/目录下,以便在网络接口启动前自动运行:

    sudo cp /etc/iptables/custom-firewall.sh /etc/network/if-pre-up.d/
    

使用nftables自定义脚本

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

    sudo apt update
    sudo apt install nftables
    
  2. 创建自定义脚本: 使用文本编辑器创建一个新的脚本文件。例如,创建一个名为custom-firewall.nft的脚本:

    sudo nano /etc/nftables/custom-firewall.nft
    
  3. 编写脚本内容: 在脚本中添加您想要执行的nftables规则。例如:

    #!/usr/sbin/nft -f
    
    flush ruleset
    
    table ip filter {
        chain input {
            type filter hook input priority 0; policy drop;
            iifname "lo" accept
            ct state established,related accept
            tcp dport 22 accept
            tcp dport 80 accept
            tcp dport 443 accept
            # 其他自定义规则...
        }
    
        chain forward {
            type filter hook forward priority 0; policy drop;
        }
    
        chain output {
            type filter hook output priority 0; policy accept;
        }
    }
    
  4. 赋予脚本执行权限:

    sudo chmod +x /etc/nftables/custom-firewall.nft
    
  5. 加载脚本:

    sudo nft -f /etc/nftables/custom-firewall.nft
    
  6. 设置脚本开机自启动: 您可以将脚本添加到/etc/network/if-pre-up.d/目录下,以便在网络接口启动前自动运行:

    sudo cp /etc/nftables/custom-firewall.nft /etc/network/if-pre-up.d/
    

请注意,自定义防火墙脚本可能会影响系统的安全性,因此在应用更改之前,请确保您充分理解每个规则的作用,并在测试环境中进行验证。

0