在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系统的防火墙规则,确保系统的安全性。