百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

linux系统防火墙高级配置-Day 7:综合实战与排错

zhezhongyun 2025-04-02 00:27 11 浏览

1. 复杂网络环境实战

场景:多区域防火墙架构

拓扑需求

  • 公网
  • 公网IP:203.203.203.203运行nftables,暴露HTTP/HTTPS到互联网
  • VPN网关(IPsec)连接本地数据中心
  • 本地
  • 内部网络:192.168.10.0/24(VLAN 10),192.168.20.0/24(VLAN 20)
  • 防火墙运行iptables,实现VLAN间策略路由和NAT
  • 通过HAProxy实现DMZ区(172.16.1.0/24)负载均衡

核心配置代码

公网规则

# 允许VPN流量(UDP 500/4500,ESP协议)
nft add rule inet filter input udp dport {500, 4500} accept
nft add rule inet filter input ip protocol esp accept

# DNAT映射HTTP到后端HAProxy
nft add rule nat prerouting tcp dport {80, 443} dnat to 172.16.1.100

# 防DDoS规则(限制新建连接)
nft add rule inet filter input tcp dport 80 \
    ct state new \
    meter http_flood { ip saddr limit rate 50/second burst 100 packets } \
    counter accept

本地iptables规则

# VLAN间访问控制(允许VLAN10访问VLAN20的SSH)
iptables -A FORWARD -i vlan10 -o vlan20 -p tcp --dport 22 -j ACCEPT

# 出站SNAT(本地数据中心访问互联网)
iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o eth0 -j SNAT --to 10.0.0.200

# HAProxy健康检查放行
iptables -A INPUT -s 172.16.1.0/24 -p tcp --dport 1936 -j ACCEPT

2. 全链路故障排查

问题1:VPN建立成功但无法访问内网

排查步骤

# 1. 检查IPsec状态
ipsec status

# 2. 验证防火墙规则(nftables/iptables)
nft list ruleset | grep -i esp
iptables -L -n -v | grep 172.16.1.0

# 3. 抓包分析(VPN网关侧)
tcpdump -i eth0 'udp port 500 or 4500' -nn -vv

# 4. 检查路由表
ip route show table all

# 5. 验证NAT穿透配置
grep nat_traversal /etc/ipsec.conf

问题2:负载均衡流量不均

诊断工具

# 查看HAProxy实时会话
echo "show stat" | socat /var/run/haproxy.sock stdio

# 跟踪DNAT映射(nftables)
nft monitor | grep "dnat to"

# 统计后端服务器连接数
netstat -tn | awk '{print $4}' | grep ':80' | sort | uniq -c

3. 性能调优实战

连接跟踪优化

# 调整内核参数(/etc/sysctl.conf)
net.netfilter.nf_conntrack_max=2000000
net.netfilter.nf_conntrack_tcp_timeout_established=7200

# 监控连接跟踪表
conntrack -L -o extended | cut -d' ' -f1 | sort | uniq -c | sort -nr

规则集优化

# 1. 高频规则前置(nftables)
nft insert rule inet filter input position 1 tcp dport 443 accept

# 2. 合并相似规则(iptables)
iptables -A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT

# 3. 使用ipset加速黑名单匹配
ipset create blacklist hash:ip family inet maxelem 1000000 timeout 86400
iptables -A INPUT -m set --match-set blacklist src -j DROP

4. 安全策略验证

渗透测试验证

# 使用nmap扫描暴露端口
nmap -sS -Pn -T4 -p- 203.0.113.100

# SQL注入测试(验证WAF规则)
sqlmap -u "http://203.0.113.100/?id=1" --batch --level=5

# 暴力破解防护测试
hydra -L users.txt -P passwords.txt ssh://203.0.113.100 -t 4

日志关联分析

# 分析被拦截攻击(Fail2ban + 防火墙日志)
grep "FW_DENIED" /var/log/syslog | awk '{print $1,$2,$3,$11}' | sort | uniq -c

5. 排错工具箱

工具/命令

用途

示例

tcpdump

抓包分析网络流量

tcpdump -i eth0 'port 80' -w capture.pcap

conntrack -L

查看当前连接跟踪表

conntrack -L -d 114.114.114.114

nft monitor

实时监控nftables规则匹配

nft monitor trace

iptables -L -nv

查看规则命中计数器

iptables -t nat -L -nv

systemtap

内核级防火墙行为分析

stap -e 'probe kernel.function("ipt_do_table") {printf("%s\n", pp())}'

perf

性能瓶颈分析

perf record -g -p $(pidof nft)


6. 终极实战任务

任务:构建安全SD-WAN网关

  • 需求
  • 在2台服务器上部署高可用防火墙集群(Keepalived)
  • 实现分支节点(192.168.100.0/24)与总部(10.8.0.0/16)的IPsec VPN互联
  • 通过nftables实施零信任策略(仅允许加密流量穿越)
  • 关键配置
# IPsec隧道保护规则
nft add rule inet filter forward \
    ip saddr 192.168.100.0/24 \
    ip daddr 10.8.0.0/16 \
    ip protocol udp \
    meta l4proto udp \
    udp dport 4500 \
    counter accept

# 拒绝非加密跨站点流量
nft add rule inet filter forward \
    ip saddr 192.168.100.0/24 \
    ip daddr 10.8.0.0/16 \
    counter drop

7. 注意事项

  • 分段测试原则
  • 使用iptables -N TEST_CHAIN创建测试链
  • 通过iptables -A INPUT -j TEST_CHAIN临时挂载
  • 验证后合并到主规则集
  • 配置变更
# nftables批量更新
nft -f new_rules.nft && echo "success" || (nft -f backup.nft && echo "rollback")
  • 镜像备份
# 全量配置备份
nft list ruleset > /backup/firewall-$(date +%s).nft
iptables-save > /backup/iptables-$(date +%s).rules

相关推荐

JPA实体类注解,看这篇就全会了

基本注解@Entity标注于实体类声明语句之前,指出该Java类为实体类,将映射到指定的数据库表。name(可选):实体名称。缺省为实体类的非限定名称。该名称用于引用查询中的实体。不与@Tab...

Dify教程02 - Dify+Deepseek零代码赋能,普通人也能开发AI应用

开始今天的教程之前,先解决昨天遇到的一个问题,docker安装Dify的时候有个报错,进入Dify面板的时候会出现“InternalServerError”的提示,log日志报错:S3_USE_A...

用离散标记重塑人体姿态:VQ-VAE实现关键点组合关系编码

在人体姿态估计领域,传统方法通常将关键点作为基本处理单元,这些关键点在人体骨架结构上代表关节位置(如肘部、膝盖和头部)的空间坐标。现有模型对这些关键点的预测主要采用两种范式:直接通过坐标回归或间接通过...

B 客户端流RPC (clientstream Client Stream)

客户端编写一系列消息并将其发送到服务器,同样使用提供的流。一旦客户端写完消息,它就等待服务器读取消息并返回响应gRPC再次保证了单个RPC调用中的消息排序在客户端流RPC模式中,客户端会发送多个请...

我的模型我做主02——训练自己的大模型:简易入门指南

模型训练往往需要较高的配置,为了满足友友们的好奇心,这里我们不要内存,不要gpu,用最简单的方式,让大家感受一下什么是模型训练。基于你的硬件配置,我们可以设计一个完全在CPU上运行的简易模型训练方案。...

开源项目MessageNest打造个性化消息推送平台多种通知方式

今天介绍一个开源项目,MessageNest-可以打造个性化消息推送平台,整合邮件、钉钉、企业微信等多种通知方式。定制你的消息,让通知方式更灵活多样。开源地址:https://github.c...

使用投机规则API加快页面加载速度

当今的网络用户要求快速导航,从一个页面移动到另一个页面时应尽量减少延迟。投机规则应用程序接口(SpeculationRulesAPI)的出现改变了网络应用程序接口(WebAPI)领域的游戏规则。...

JSONP安全攻防技术

关于JSONPJSONP全称是JSONwithPadding,是基于JSON格式的为解决跨域请求资源而产生的解决方案。它的基本原理是利用HTML的元素标签,远程调用JSON文件来实现数据传递。如果...

大数据Doris(六):编译 Doris遇到的问题

编译Doris遇到的问题一、js_generator.cc:(.text+0xfc3c):undefinedreferenceto`well_known_types_js’查找Doris...

网页内嵌PDF获取的办法

最近女王大人为了通过某认证考试,交了2000RMB,官方居然没有给线下教材资料,直接给的是在线教材,教材是PDF的但是是内嵌在网页内,可惜却没有给具体的PDF地址,无法下载,看到女王大人一点点的截图保...

印度女孩被邻居家客人性骚扰,父亲上门警告,反被围殴致死

微信的规则进行了调整希望大家看完故事多点“在看”,喜欢的话也点个分享和赞这样事儿君的推送才能继续出现在你的订阅列表里才能继续跟大家分享每个开怀大笑或拍案惊奇的好故事啦~话说只要稍微关注新闻的人,应该...

下周重要财经数据日程一览 (1229-0103)

下周焦点全球制造业PMI美国消费者信心指数美国首申失业救济人数值得注意的是,下周一希腊还将举行第三轮总统选举需要谷歌日历同步及部分智能手机(安卓,iPhone)同步日历功能的朋友请点击此链接,数据公布...

PyTorch 深度学习实战(38):注意力机制全面解析

在上一篇文章中,我们探讨了分布式训练实战。本文将深入解析注意力机制的完整发展历程,从最初的Seq2Seq模型到革命性的Transformer架构。我们将使用PyTorch实现2个关键阶段的注意力机制变...

聊聊Spring AI的EmbeddingModel

序本文主要研究一下SpringAI的EmbeddingModelEmbeddingModelspring-ai-core/src/main/java/org/springframework/ai/e...

前端分享-少年了解过iframe么

iframe就像是HTML的「内嵌画布」,允许在页面中加载独立网页,如同在画布上叠加另一幅动态画卷。核心特性包括:独立上下文:每个iframe都拥有独立的DOM/CSS/JS环境(类似浏...