在Debian系统中,您可以使用iptables或nftables来配置防火墙规则。如果您想要自定义脚本来管理防火墙规则,可以按照以下步骤操作:
安装iptables(如果尚未安装):
sudo apt update
sudo apt install iptables
创建自定义脚本:
使用您喜欢的文本编辑器(如nano, vim等)创建一个新的脚本文件。例如,创建一个名为custom-firewall.sh的脚本:
sudo nano /etc/iptables/custom-firewall.sh
编写脚本内容: 在脚本中添加您想要执行的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"
赋予脚本执行权限:
sudo chmod +x /etc/iptables/custom-firewall.sh
运行脚本:
sudo /etc/iptables/custom-firewall.sh
设置脚本开机自启动:
您可以将脚本添加到/etc/network/if-pre-up.d/目录下,以便在网络接口启动前自动运行:
sudo cp /etc/iptables/custom-firewall.sh /etc/network/if-pre-up.d/
安装nftables(如果尚未安装):
sudo apt update
sudo apt install nftables
创建自定义脚本:
使用文本编辑器创建一个新的脚本文件。例如,创建一个名为custom-firewall.nft的脚本:
sudo nano /etc/nftables/custom-firewall.nft
编写脚本内容: 在脚本中添加您想要执行的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;
}
}
赋予脚本执行权限:
sudo chmod +x /etc/nftables/custom-firewall.nft
加载脚本:
sudo nft -f /etc/nftables/custom-firewall.nft
设置脚本开机自启动:
您可以将脚本添加到/etc/network/if-pre-up.d/目录下,以便在网络接口启动前自动运行:
sudo cp /etc/nftables/custom-firewall.nft /etc/network/if-pre-up.d/
请注意,自定义防火墙脚本可能会影响系统的安全性,因此在应用更改之前,请确保您充分理解每个规则的作用,并在测试环境中进行验证。