在Debian系統上,你可以使用iptables
或nftables
來配置防火墻規則。以下是一個簡單的示例腳本,用于設置基本的防火墻規則,允許SSH訪問,并拒絕所有其他入站連接。
iptables
的示例腳本#!/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 INPUT -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
# 記錄所有被拒絕的連接
iptables -A INPUT -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
# 保存規則
iptables-save > /etc/iptables/rules.v4
echo "防火墻規則已設置完成。"
nftables
的示例腳本#!/bin/bash
# 清除現有規則
nft flush ruleset
# 設置默認策略
nft add rule ip filter input drop
nft add rule ip filter forward drop
nft add rule ip filter output accept
# 允許本地回環接口的流量
nft add rule ip filter input iif lo accept
# 允許已建立的連接
nft add rule ip filter input ct state established,related accept
# 允許SSH訪問
nft add rule ip filter input tcp dport 22 accept
# 允許HTTP和HTTPS訪問
nft add rule ip filter input tcp dport 80 accept
nft add rule ip filter input tcp dport 443 accept
# 記錄所有被拒絕的連接
nft add rule ip filter input log prefix "nftables-Dropped: " level info
# 保存規則
nft list ruleset > /etc/nftables.conf
echo "防火墻規則已設置完成。"
setup_firewall.sh
。chmod +x setup_firewall.sh
sudo ./setup_firewall.sh
sudo
。通過這些腳本,你可以自動化地設置Debian系統的防火墻規則,確保系統的安全性。