本文从基础概念出发,详细介绍 MikroTik RouterOS 防火墙的配置方法,包括 Filter 规则表的设置、链的概念、连接跟踪的使用,以及完整的初始配置流程和安全建议。
# MikroTik RouterOS 防火墙基础配置指南
在网络安全日益重要的今天,一款功能强大且灵活的防火墙是每个网络管理员必不可少的工具。MikroTik RouterOS 自带的防火墙模块基于 Linux Netfilter 框架,能够实现精细的流量控制和安全策略配置。本文将从基础概念出发,带领读者一步步完成 RouterOS 防火墙的初始配置。
## 什么是 RouterOS 防火墙
RouterOS 的防火墙通过 `ip firewall` 模块实现,核心由四张规则表组成:Filter(过滤规则)、NAT(网络地址转换)、Mangle(流量标记)和 Raw(原始数据包处理)。其中 Filter 规则表是最常用的,用于控制数据包的放行与丢弃。
防火墙规则按照从上到下的顺序逐条匹配,一旦某条规则命中,后续规则不再执行。因此规则的排列顺序至关重要。RouterOS 中每条规则包含匹配条件(chain、protocol、src-address 等)和执行动作(accept、drop、reject 等)。
## 基本概念
### Chain 链
Filter 规则表中有三条预定义链:
- **input** — 处理目的地为路由器自身的流量
- **forward** — 处理经过路由器转发的流量
- **output** — 处理由路由器发出的流量
大多数安全策略都围绕这三条链展开。
### 连接跟踪(Connection Tracking)
RouterOS 默认启用连接跟踪,它能够识别数据包属于新连接、已建立连接还是相关连接。利用这一特性,我们可以编写非常简洁高效的规则——允许已建立和相关连接通过,拒绝所有无效连接。
## 基础防火墙配置
### 第一步:设置默认策略
在添加任何具体规则之前,先将所有链的默认动作设为 drop,确保在没有明确放行的情况下拒绝一切流量:
```routeros
/ip firewall filter
add chain=input action=drop comment="默认拒绝入站"
add chain=forward action=drop comment="默认拒绝转发"
add chain=output action=accept comment="默认允许出站"
```
### 第二步:接受已建立和相关连接
这是防火墙配置中最重要的一条规则,放在所有拒绝规则之前:
```routeros
/ip firewall filter
add chain=input action=accept connection-state=established,related comment="接受已建立连接"
add chain=forward action=accept connection-state=established,related comment="转发已建立连接"
```
### 第三步:丢弃无效数据包
```routeros
/ip firewall filter
add chain=input action=drop connection-state=invalid comment="丢弃无效连接"
add chain=forward action=drop connection-state=invalid comment="丢弃无效转发包"
```
### 第四步:允许局域网访问路由器
通常我们需要允许内网管理路由器:
```routeros
/ip firewall filter
add chain=input action=accept src-address=192.168.88.0/24 comment="允许内网管理"
```
### 第五步:允许 ICMP 协议
ICMP 用于网络诊断,建议有选择地放行:
```routeros
/ip firewall filter
add chain=input action=accept protocol=icmp comment="允许ICMP"
```
### 第六步:开放必要端口
如果路由器运行了 Winbox、WebFig 或 VPN 服务,需要放行对应端口:
```routeros
/ip firewall filter
add chain=input action=accept protocol=tcp dst-port=8291 comment="允许Winbox"
add chain=input action=accept protocol=tcp dst-port=80 comment="允许WebFig"
```
### 第七步:启用 NAT(如果路由器作为网关)
```routeros
/ip firewall nat
add chain=srcnat action=masquerade out-interface=ether1 comment="启用NAT伪装"
```
## 规则顺序优化建议
为了保证防火墙既能有效防护又不会影响性能,建议按照以下顺序排列规则:
1. 接受已建立和相关连接(最高优先级,性能最佳)
2. 丢弃无效数据包
3. 丢弃已知恶意地址(可配置地址列表)
4. 允许内网访问
5. 允许特定服务端口
6. 允许 ICMP
7. 默认拒绝规则(兜底)
## 常见安全建议
- 不要在公网暴露 Winbox 的默认端口,建议修改端口号或使用 VPN 接入管理
- 定期检查防火墙日志,使用 `log=yes` 参数记录被丢弃的流量
- 对 SSH 和 Winbox 访问启用限速,防止暴力破解
- 使用 `ip firewall address-list` 管理黑白名单,便于统一维护
## 结语
RouterOS 防火墙功能强大且灵活,掌握基础配置只是第一步。随着网络环境的变化,管理员还需要不断调整和优化规则,结合 NAT、Mangle 和 Raw 规则表构建更完善的安全体系。希望本文能为初学者提供一个清晰的入门路径,帮助大家快速上手 RouterOS 防火墙配置。