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

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

主要防火墙表

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. 性能考虑:简单规则放前面,复杂规则放后面;频繁匹配的规则放前面

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

相关推荐
滴水之功8 分钟前
OpenWrt的WAN和LAN的切换
linux·网络·openwrt
莹莹学编程—成长记1 小时前
预备知识socket
网络
winfreedoms1 小时前
java-网络编程——黑马程序员学习笔记
java·网络·学习
零基础的修炼2 小时前
Linux网络---网络层
运维·服务器·网络
开开心心就好2 小时前
键盘改键工具免安装,自定义键位屏蔽误触
java·网络·windows·随机森林·计算机外设·电脑·excel
旖旎夜光2 小时前
Linux(13)(上)
linux·网络
郝学胜-神的一滴2 小时前
深入解析Linux网络编程之bind函数:从基础到实践的艺术
linux·服务器·网络·c++·websocket·程序人生
pythonchashaoyou3 小时前
静态住宅ip是什么,静态住宅IP选型全解
网络·网络协议·tcp/ip
相思难忘成疾3 小时前
通向HCIP之路:第三步:动态路由协议OSPF(全)
服务器·网络·智能路由器·hcip
REDcker3 小时前
HTTP请求数据包流转详解:localhost、127.0.0.1、公网 IP、公网域名访问时的数据流转
网络·tcp/ip·http