理解防火墙的表及其配置功能

防火墙的表是网络流量管理的基础架构,通过不同的表和规则链实现各种网络安全功能。以下是主要防火墙表及其功能的深入解析:

主要防火墙表

1. filter表(过滤表)

  • 核心功能:数据包过滤(允许/拒绝流量)

  • 默认包含三条链

    • INPUT:处理进入本机的数据包

    • FORWARD:处理经过本机路由的数据包

    • OUTPUT:处理本机发出的数据包

  • 典型应用

    • 允许特定IP访问SSH服务

    • 阻止来自特定国家的流量

    • 限制内部用户访问某些网站

2. nat表(网络地址转换表)

  • 核心功能:IP地址和端口转换

  • 主要链

    • PREROUTING:数据包进入路由决策前修改

    • POSTROUTING:数据包离开路由决策后修改

    • OUTPUT:本地生成数据包的地址转换

  • 典型应用

    • 实现局域网共享公网IP(SNAT)

    • 端口转发(DNAT)

    • 负载均衡

3. mangle表(修改表)

  • 核心功能:修改数据包头部信息

  • 可操作所有链:可作用于所有五个链(PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING)

  • 典型应用

    • 设置QoS标记(如设置TOS字段)

    • 修改TTL值

    • 特殊的路由标记(配合iproute2使用)

4. raw表(原始表)

  • 核心功能:数据包连接跟踪豁免

  • 主要链

    • PREROUTING

    • OUTPUT

  • 典型应用

    • 对某些流量禁用连接跟踪(NOTRACK)

    • 提高高性能网络环境效率

    • 处理特殊协议数据包

表与链的处理顺序

数据包通过防火墙时的处理流程:

  1. PREROUTING链(raw → mangle → nat)

  2. 路由决策(判断是发给本机还是转发)

  3. INPUT链 (mangle → filter)或 FORWARD链(mangle → filter)

  4. OUTPUT链(raw → mangle → nat → filter)

  5. POSTROUTING链(mangle → nat)

实际配置示例

示例1:基本的Web服务器保护(filter表)

复制代码
# 清空现有规则
iptables -F

# 设置默认策略
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# 允许已建立的连接
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# 允许本地回环
iptables -A INPUT -i lo -j ACCEPT

# 开放HTTP/HTTPS
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# 限制SSH访问
iptables -A INPUT -p tcp --dport 22 -s 192.168.1.0/24 -j ACCEPT

示例2:NAT配置(nat表)

复制代码
# 启用IP转发
echo 1 > /proc/sys/net/ipv4/ip_forward

# 共享上网(SNAT)
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# 端口转发(DNAT)
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.100:80
iptables -A FORWARD -p tcp -d 192.168.1.100 --dport 80 -j ACCEPT

示例3:QoS标记(mangle表)

复制代码
# 标记VoIP流量
iptables -t mangle -A PREROUTING -p udp --dport 5060 -j MARK --set-mark 1
iptables -t mangle -A PREROUTING -p udp --dport 10000:20000 -j MARK --set-mark 1

# 然后可以使用tc进行流量控制

理解表之间的关系

  1. 分工协作:各表处理不同层面的网络流量问题

    • filter:安全决策(允许/拒绝)

    • nat:地址转换

    • mangle:数据包修改

    • raw:连接跟踪控制

  2. 处理顺序:数据包依次通过各表,前一表的处理结果会影响后表

  3. 性能考虑:简单规则放前面,复杂规则放后面;频繁匹配的规则放前面

通过合理配置这些表及其规则链,可以实现从基本访问控制到复杂网络服务的全方位网络安全防护。

相关推荐
鲨莎分不晴3 小时前
强化学习第五课 —— A2C & A3C:并行化是如何杀死经验回放
网络·算法·机器学习
Smartdaili China5 小时前
掌握Java网页抓取:技术与示例完整指南
java·网络·学习·指南·网页·住宅ip·爬虫api
雾削木5 小时前
k230 Pyhton三角形识别
运维·服务器·网络·stm32·智能路由器
郝学胜-神的一滴5 小时前
Python数据模型:深入解析及其对Python生态的影响
开发语言·网络·python·程序人生·性能优化
北京聚信万通科技有限公司5 小时前
传输协议:AS3
服务器·网络·安全·电子数据交换·as3
爬山算法6 小时前
Netty(12)Netty支持哪些协议和传输方式?
网络
yong99906 小时前
基于C#与三菱FX5U PLC实现以太网通信
网络·c#·php
遇见火星7 小时前
常见Systemctl语句
linux·服务器·网络·systemctl
专家大圣7 小时前
摆脱局域网束缚!Neko+cpolar 让跨网共享成日常
服务器·网络·docker·内网穿透·cpolar
Awkwardx8 小时前
Linux网络编程—数据链路层
linux·运维·网络