UFW是Ubuntu默认的防火墙管理工具,基于iptables封装,操作更简洁。恢复UFW配置的核心是通过重置命令清除自定义规则,恢复默认策略。
若需彻底清除所有自定义规则(包括入站/出站策略、端口允许规则等),可使用ufw reset命令。执行后:
sudo ufw reset
注意:此操作不可逆,请提前备份重要规则(如通过sudo ufw export > ufw_rules_backup.txt导出)。
若仅需调整默认策略(如将入站策略从“拒绝”改为“允许”),可使用ufw default命令,无需删除现有规则:
# 恢复默认策略:拒绝入站、允许出站
sudo ufw default deny incoming
sudo ufw default allow outgoing
此方法适用于保留现有自定义规则,仅修改默认行为的场景。
若UFW被禁用(sudo ufw status显示inactive),可通过enable命令重新启用,此时会恢复默认策略并设置开机自动启动:
sudo ufw enable
启用后,UFW会加载/etc/ufw/目录下的默认配置文件(如before.rules、after.rules)。
若直接使用iptables配置防火墙(非UFW前端),恢复方法需根据是否有备份选择:
若之前通过iptables-save命令备份了规则(如/etc/iptables/rules.v4),可直接用iptables-restore恢复:
# 恢复IPv4规则
sudo iptables-restore < /etc/iptables/rules.v4
# 恢复IPv6规则(若有)
sudo ip6tables-restore < /etc/iptables/rules.v6
注意:备份文件需提前创建(如sudo iptables-save > /etc/iptables/rules.v4)。
若安装了iptables-persistent服务(用于持久化iptables规则),可通过以下步骤恢复默认规则:
# 停止服务
sudo systemctl stop netfilter-persistent
# 删除现有规则文件
sudo rm /etc/iptables/rules.v4 /etc/iptables/rules.v6
# 重新启动服务(会加载默认规则)
sudo systemctl start netfilter-persistent
此方法适用于依赖iptables-persistent管理规则的场景。
若无备份且未使用iptables-persistent,可手动清除所有规则并设置默认策略:
# 清除所有现有规则
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 OUTPUT -o lo -j ACCEPT
# 允许已建立的连接
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# 允许常见服务(如SSH、HTTP、HTTPS)
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# 保存规则(需安装iptables-persistent)
sudo iptables-save > /etc/iptables/rules.v4
此方法适用于全新系统或完全自定义规则的场景。
sudo ufw export > ufw_backup.txt或sudo iptables-save > iptables_backup.v4),避免误操作导致规则丢失。sudo systemctl enable ufw或sudo systemctl enable netfilter-persistent),避免系统重启后规则失效。sudo ufw status(UFW)或sudo iptables -L -v -n(iptables)验证规则是否生效。以上方法覆盖了Ubuntu防火墙(UFW/iptables)的常见恢复场景,可根据实际情况选择使用。