温馨提示×

如何在Debian Overlay中设置防火墙

小樊
44
2025-11-11 01:35:09
栏目: 智能运维

如何在Debian Overlay中设置防火墙
在Debian Overlay环境中,防火墙配置的核心是通过iptables(传统工具)或nftables(新一代工具)定义流量过滤规则,保障容器或节点的网络安全。以下是具体步骤:

1. 准备工作:更新系统并安装工具

首先确保系统软件包最新,然后安装所需的防火墙工具:

sudo apt update && sudo apt upgrade -y
sudo apt install iptables nftables -y  # 同时安装iptables(传统)和nftables(推荐)

2. 配置iptables防火墙规则

iptables是Debian默认的防火墙工具,适合需要兼容旧系统的场景。

2.1 设置默认策略

默认拒绝所有输入(INPUT)、转发(FORWARD)流量,允许所有输出(OUTPUT)流量(可根据需求调整):

sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT

2.2 允许本地回环接口

本地服务(如数据库、SSH)需要通过回环接口通信,必须允许:

sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT

2.3 允许已建立的连接

避免误杀已建立的连接(如下载、SSH会话),提升稳定性:

sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

2.4 开放必要端口

根据服务需求开放端口(以SSH、HTTP、HTTPS为例):

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT    # SSH远程管理
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT    # HTTP网站服务
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT   # HTTPS加密网站

2.5 保存iptables规则

Debian默认不保存iptables规则,需通过iptables-persistent工具持久化:

sudo apt install iptables-persistent -y
sudo netfilter-persistent save  # 保存当前规则到/etc/iptables/rules.v4
sudo netfilter-persistent reload  # 重启后自动加载规则

3. 配置nftables防火墙规则(推荐)

nftables是Linux内核新一代防火墙工具,语法更简洁、性能更优,适合新系统部署。

3.1 初始化nftables配置

编辑默认配置文件或直接通过命令创建规则集:

sudo nft add table ip filter  # 创建filter表(用于过滤流量)
sudo nft add chain ip filter input { type filter hook input priority 0 \; policy drop \; }  # 输入链,默认拒绝
sudo nft add chain ip filter forward { type filter hook forward priority 0 \; policy drop \; }  # 转发链,默认拒绝
sudo nft add chain ip filter output { type filter hook output priority 0 \; policy accept \; }  # 输出链,默认允许

3.2 添加基础规则

sudo nft add rule ip filter input iif lo accept  # 允许回环接口
sudo nft add rule ip filter input ct state established,related accept  # 允许已建立的连接
sudo nft add rule ip filter input tcp dport 22 accept  # 开放SSH端口
sudo nft add rule ip filter input tcp dport 80 accept  # 开放HTTP端口
sudo nft add rule ip filter input tcp dport 443 accept  # 开放HTTPS端口

3.3 保存nftables规则

将规则保存到配置文件,实现开机自启:

sudo nft list ruleset > /etc/nftables.conf  # 导出规则到配置文件
sudo systemctl enable nftables  # 开机启动nftables服务
sudo systemctl start nftables   # 启动nftables服务

4. 针对Overlay网络的特殊配置

若Overlay网络(如Docker Swarm、Kubernetes)跨主机通信,需额外开放Docker相关端口(以Docker Swarm为例):

# 允许Docker Swarm节点间通信(默认端口)
sudo iptables -A INPUT -p tcp --dport 2377 -j ACCEPT  # Swarm管理端口
sudo iptables -A INPUT -p tcp --dport 7946 -j ACCEPT  # 节点间通信端口
sudo iptables -A INPUT -p udp --dport 7946 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 4789 -j ACCEPT  # VXLAN隧道端口

对于Kubernetes集群,需开放API Server端口(6443)、**kubelet端口(10250-10255)**等:

sudo iptables -A INPUT -p tcp --dport 6443 -j ACCEPT  # Kubernetes API Server
sudo iptables -A INPUT -p tcp --dport 10250 -j ACCEPT  # kubelet只读端口
sudo iptables -A INPUT -p tcp --dport 10255 -j ACCEPT  # kubelet只读端口(旧版本)

5. 验证防火墙配置

通过以下命令检查规则是否生效:

sudo iptables -L -n -v  # 查看iptables规则及流量统计
sudo nft list ruleset   # 查看nftables规则集
sudo netstat -tulnp     # 查看监听端口(确认服务是否正常)

注意事项

  • 测试规则:应用规则前,在测试环境验证,避免误拦截合法流量(如SSH连接)。
  • 最小化开放:仅开放必要的端口(如业务需要的80、443,管理需要的22),减少攻击面。
  • 定期更新:及时更新iptables/nftables规则,适配业务变化或安全漏洞。

通过以上步骤,可在Debian Overlay环境中快速搭建防火墙,保障系统网络安全。

0