debian

如何配置Debian防火墙规则

小樊
57
2025-10-03 18:48:59
栏目: 智能运维

Debian防火墙配置指南(以UFW和iptables为例)

Debian系统中,UFW(Uncomplicated Firewall) 是推荐的轻量级防火墙工具(基于iptables封装,简化操作),而iptables 则提供更底层的网络包过滤功能。以下是两者的详细配置步骤及注意事项:

一、UFW(推荐新手使用)

UFW的设计目标是“简单易用”,适合大多数日常场景(如家庭服务器、小型网站)。

1. 安装UFW
sudo apt update && sudo apt install ufw
2. 启用UFW
sudo ufw enable

系统会提示“Command may disrupt existing ssh connections”,输入 y 确认(若已通过SSH连接,UFW会自动允许SSH端口,无需担心断开)。

3. 配置默认策略

设置默认拒绝所有入站连接(防止未授权访问),允许所有出站连接(保障服务器正常访问外网):

sudo ufw default deny incoming
sudo ufw default allow outgoing
4. 允许常用服务端口
5. 允许/拒绝特定IP访问
6. 查看与管理规则
7. 启用日志记录(可选)

日志可帮助排查防火墙拦截的问题(如误拦截正常访问):

sudo ufw logging on

日志默认存储在 /var/log/ufw.log

二、iptables(底层网络过滤,适合高级用户)

iptables是Linux内核自带的防火墙工具,功能强大但配置复杂,适合需要精细控制流量的场景(如企业级服务器)。

1. 安装iptables
sudo apt update && sudo apt install iptables
2. 配置基础规则

编辑规则文件(避免直接操作命令行,防止误操作):

sudo nano /etc/iptables.rules

添加以下内容(示例:允许SSH、HTTP、HTTPS、ICMP(ping),拒绝其他入站):

*filter
# 允许本地回环接口(本地服务通信)
-A INPUT -i lo -j ACCEPT
# 允许已建立的连接和相关的流量(如SSH反向隧道)
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 允许所有出站流量
-A OUTPUT -j ACCEPT
# 允许SSH(端口22)
-A INPUT -p tcp --dport 22 -j ACCEPT
# 允许HTTP(端口80)
-A INPUT -p tcp --dport 80 -j ACCEPT
# 允许HTTPS(端口443)
-A INPUT -p tcp --dport 443 -j ACCEPT
# 允许ping(ICMP类型8:echo请求)
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
# 拒绝所有其他入站流量
-A INPUT -j REJECT --reject-with icmp-host-prohibited
# 拒绝所有转发流量(若服务器不作为路由器)
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

保存并退出(Ctrl+OEnterCtrl+X)。

3. 应用规则
sudo iptables-restore < /etc/iptables.rules
4. 设置开机自动加载

创建启动脚本,确保系统重启后规则依然生效:

sudo nano /etc/network/if-pre-up.d/iptables

添加以下内容:

#!/bin/sh
/sbin/iptables-restore < /etc/iptables.rules

赋予执行权限:

sudo chmod +x /etc/network/if-pre-up.d/iptables
5. 保存与恢复规则

三、注意事项

  1. 备份规则:修改前备份现有规则(如 sudo cp /etc/iptables.rules /etc/iptables.rules.bak),避免配置错误导致无法访问。
  2. 测试规则:生产环境应用新规则前,先在测试环境验证,防止误拦截正常服务(如SSH端口被拦截会导致无法远程登录)。
  3. 最小化开放端口:仅开放必要的服务端口(如网站只需开放80/443,数据库只需开放3306给特定IP),减少攻击面。
  4. 定期审查规则:每月检查一次防火墙规则,移除不再使用的端口或IP授权(如旧项目的数据库端口)。
  5. 结合其他安全措施:防火墙只是安全体系的一部分,还需配合强密码、SSH密钥认证、系统更新等措施,提升整体安全性。

通过以上步骤,你可根据需求选择UFW或iptables配置Debian防火墙,有效保护服务器免受非法访问。

0
看了该问题的人还看了