防火墙概论
防火墙部署于两个网络之间。它依据预设规则,对所有跨网数据流进行管控与过滤,从而保护特定网络或局部网段免受未经授权的访问
- 防火墙使用一到多个“规则”集检查网络数据包,在数据包进入或离开网络连接时决定允许通过还是阻止
- 规则可检查数据包的一个或多个特征,如协议类型、源地址与目标地址、源端口与目标端口
- 防火墙主要由服务访问规则、验证工具、包过滤和应用网关(连接两个不同的计算机网络)四个部分组成
使用防火墙规则时,务必 小心谨慎。某些配置可能会导致管理员无法登录服务器 为了安全起见,建议通过本地控制台执行初始防火墙配置,而不是通过 SSH 远程配置
防火墙可以增强主机或网络的安全性。它们可以执行以下一项或多项操作:
- 保护并隔离内部网络的应用程序、服务和主机,使其免受公共互联网不良流量的侵扰
- 限制或禁用内部网络的主机访问公共互联网服务
- 支持网络地址转换 NAT ,内部网络可使用私有 IP 地址,并通过单一 IP 地址或共享地址池中的公共地址连接公共互联网
FreeBSD 内置三种防火墙:PF、IPFW 和 IPFILTER(也称 IPF) 此外还提供两种流量整形工具以控制带宽:altq(4) 和 dummynet(4)
流量整形
流量整形 Traffic Shaping 旨在优化或保障网络性能,其核心是对网络数据流的特征进行主动调节
具体而言,它通过对部分数据包进行限速和缓冲延迟,将原本不规则的流量重塑为平滑的输出流 从而确保网络传输严格符合预设应用在速率、延迟及抖动等方面的服务质量(QoS)标准
服务质量 QoS 标准是计算机网络对数据包传输质量的一种承诺,通常通过带宽、延迟及丢包率等性能指标来衡量
然而,现代互联网在架构设计上采用的是“尽力而为(Best-Effort)”的传输模式 这意味着网络节点会竭尽全力去转发每一个数据包,但在机制上并不提供任何绝对的送达或性能担保
交替队列 Alternate Queuing,ALTQ 通常与 PF 紧密关联,*dummynet* 则与 IPFW 紧密关联。三种防火墙均通过规则控制进出 FreeBSD 系统的数据包访问,但实现方式各异,规则语法也不相同
所有防火墙均通过检查数据包控制字段的值来工作 因此规则集的编写者需要了解 TCP/IP 的工作原理、数据包控制字段中各值的含义,以及这些值在正常会话中的使用方式
规则集
规则集 包含一组规则,依据数据包中所含值决定 允许通过还是 阻止
- 主机之间的双向数据包交换构成一次会话
- 防火墙规则集既处理来自公共互联网的数据包,也处理系统对这些数据包作出的响应数据包
每个 TCP/IP 服务由其协议和监听端口定义。指向特定服务的数据包源自非特权端口,目标为特定地址上的服务端口
上述参数均可作为选择标准来创建规则,从而允许或阻止服务
要查找未知的端口号,请参阅 /etc/services (源代码位于 usr.sbin/services_mkdb/services )
此外,特洛伊木马也可能使用未知端口,需要额外留意
包容性
防火墙规则集可分为 排他性 与 包容性 两类
- 除非流量与规则集匹配,排他性防火墙对所有流量一律允许通过
包容性防火墙则反之:仅允许匹配规则的流量通过,阻止其余所有流量
包容性防火墙能更好地控制出站流量,对提供公共互联网服务的系统是更合适的选择 它同时控制来自公共互联网的流量,决定哪些流量可以访问私有网络,所有不匹配规则的流量均被阻止并记录 包容性防火墙因降低了允许不良流量通过的风险,通常比排他性防火墙更安全 除非另有说明,本章中的所有配置和示例规则集均采用包容性防火墙规则集
有状态
有状态 防火墙可增强安全性
- 有状态防火墙会跟踪打开的连接,仅允许与现有连接匹配的流量,或用于建立新连接的数据包
- 有状态过滤将流量视作一次双向数据包交换的会话。规则中指定状态后,防火墙会动态生成每个预期数据包的内部规则,能够匹配并判定数据包是否属于该会话
- 如果数据包不符合会话模板,即自动拒绝
- 会话完成后,即从动态状态表中移除该会话
有状态过滤使用户专注于阻止或允许新的会话
新会话一旦允许,所有后续数据包自动放行,任何伪造的数据包均自动拒绝 若阻止新会话,则任何后续数据包均不会允许通过
- 有状态过滤具备强大的匹配能力,可防御各种攻击方法
NAT
NAT 网络地址转换 是一项核心的网络路由技术,其主要功能是在局域网的私有 IP 地址与互联网的公网 IP 地址之间,执行动态的映射与报文头部替换
- NAT 使防火墙后的私有局域网可以共享 ISP the Internet service provider ,互联网服务提供方分配的单一 IP 地址(即便该地址是动态分配的)
- NAT 使局域网中每台计算机均能访问互联网,无需为多个互联网账户或 IP 地址支付额外费用
数据包经防火墙发往公共互联网时,NAT 自动将各系统的私有局域网 IP 地址转换为单一公共 IP 地址 返回的数据包则执行反向转换
根据 RFC 1918,以下 IP 地址范围保留供私有网络使用,这些地址永远不会直接路由到公共互联网,因此可与 NAT 配合使用:
| 地址范围 | 备注 |
| 10.0.0.0/8 | RFC 1918 私有地址 |
| 172.16.0.0/12 | RFC 1918 私有地址 |
| 192.168.0.0/16 | RFC 1918 私有地址 |
| Next: ipfirewall | Home: 防火墙 |