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

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

主要防火墙表

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

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

相关推荐
星马梦缘12 分钟前
计算机网络7 第七章 网络安全
网络·计算机网络·安全·web安全·非对称加密·对称加密
2401_8884230923 分钟前
51单片机-串口通信
网络·嵌入式硬件·51单片机
ggaofeng24 分钟前
k8s网络原理
网络·容器·kubernetes
wangjialelele38 分钟前
Linux匿名管道和命名管道以及共享内存
linux·运维·网络
qinyia1 小时前
解锁服务器网络配置新姿势:Wisdom SSH 助力之旅
服务器·网络·ssh
我登哥MVP1 小时前
Java 网络编程学习笔记
java·网络·学习
名誉寒冰2 小时前
TCP, 三次握手, 四次挥手, 滑动窗口, 快速重传, 拥塞控制, 半连接队列, RST, SYN, ACK
网络·tcp/ip·php
塵觴葉2 小时前
Linux内核网络的连接跟踪conntrack简单分析
linux·网络·conntrack
嘿嘿-g2 小时前
华为IP(9)
网络·华为
半桔2 小时前
【Linux手册】管道通信:从内核底层原理到使用方法
java·linux·服务器·网络·c++