debian

Debian iptables怎样编写自定义脚本

小樊
41
2025-04-25 23:58:40
栏目: 智能运维

在Debian系统中,使用iptables编写自定义脚本可以帮助你自动化地配置防火墙规则。以下是一个简单的示例,展示了如何编写一个自定义的iptables脚本。

  1. 创建脚本文件: 首先,创建一个新的脚本文件。例如,创建一个名为setup_iptables.sh的文件:

    nano setup_iptables.sh
    
  2. 添加脚本内容: 在脚本文件中添加以下内容。这个示例脚本将设置一些基本的防火墙规则,包括允许SSH、HTTP和HTTPS流量,并拒绝所有其他流量。

    #!/bin/bash
    
    # 清除现有规则
    iptables -F
    iptables -X
    
    # 设置默认策略
    iptables -P INPUT DROP
    iptables -P FORWARD DROP
    iptables -P OUTPUT ACCEPT
    
    # 允许本地回环接口的流量
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A OUTPUT -o lo -j ACCEPT
    
    # 允许已建立的连接
    iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
    iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
    
    # 允许SSH连接
    iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    
    # 允许HTTP和HTTPS连接
    iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    iptables -A INPUT -p tcp --dport 443 -j ACCEPT
    
    # 允许ICMP echo请求(ping)
    iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
    
    # 记录所有被拒绝的连接
    iptables -A INPUT -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
    
    # 保存规则
    iptables-save > /etc/iptables/rules.v4
    
  3. 赋予脚本执行权限: 保存并关闭文件后,赋予脚本执行权限:

    chmod +x setup_iptables.sh
    
  4. 运行脚本: 运行脚本来应用防火墙规则:

    sudo ./setup_iptables.sh
    
  5. 持久化规则: 为了确保重启后规则仍然有效,可以将规则保存到/etc/iptables/rules.v4文件中,并在系统启动时自动加载这些规则。你可以使用iptables-persistent包来实现这一点。

    安装iptables-persistent

    sudo apt-get update
    sudo apt-get install iptables-persistent
    

    在安装过程中,选择“是”以保存当前规则,并选择“否”以避免在启动时提示配置IPv6规则。

通过以上步骤,你就可以创建一个自定义的iptables脚本,并在Debian系统中应用这些规则。根据你的具体需求,可以进一步修改和扩展脚本中的规则。

0
看了该问题的人还看了