MikroTik RouterOS防火墙入站规则配置实战
本文详细讲解MikroTik RouterOS防火墙入站规则的配置方法,从Filter规则链基础概念到实战部署,帮助你构建安全可靠的边界防护策略,有效抵御外部未授权访问。
## MikroTik RouterOS防火墙入站规则配置实战
MikroTik RouterOS作为一款功能强大的路由器操作系统,其内置的防火墙功能是网络安全防护的核心组件。对于任何连接互联网的网络环境而言,合理配置入站(Input)防火墙规则是保护路由器自身安全的第一道防线。本文将从基础概念出发,逐步讲解如何配置一套安全可靠的RouterOS防火墙入站规则。
### 防火墙规则链基础
RouterOS防火墙基于规则链(Chain)机制工作,共有三条预定义链:
- **Input链**:处理发往路由器自身的流量
- **Forward链**:处理穿越路由器的转发流量
- **Output链**:处理从路由器自身发出的流量
入站规则即针对Input链的配置,主要控制外部网络对路由器的访问权限。
### 配置原则
配置入站规则时,应遵循"默认拒绝,按需放行"的原则:
1. 将Input链的默认策略设为drop
2. 逐一放行必要的服务端口
3. 限制管理端口的访问来源
### 实战配置步骤
#### 第一步:建立基础规则结构
进入`/ip firewall filter`,按以下顺序创建规则。规则从上到下匹配,因此顺序至关重要:
```routeros
/ip firewall filter
# 放行已建立及相关连接
add chain=input action=accept connection-state=established,related comment="Accept Established/Related"
# 丢弃无效连接
add chain=input action=drop connection-state=invalid comment="Drop Invalid"
# 放行ICMP(可选,用于诊断)
add chain=input action=accept protocol=icmp comment="Accept ICMP"
# 限制内网访问管理端口
add chain=input action=accept protocol=tcp dst-port=8291,22,80,443 src-address-list=LAN comment="Accept Management from LAN"
# 默认丢弃所有入站流量
add chain=input action=drop comment="Drop All Other Input"
```
#### 第二步:创建地址列表
需要定义内网地址列表,供管理规则引用:
```routeros
/ip firewall address-list
add list=LAN address=192.168.88.0/24
```
如果你的内网网段不同,请替换为实际网段。
#### 第三步:防护暴力破解
针对SSH和Winbox端口,建议增加暴力破解防护规则:
```routeros
/ip firewall filter
# 标记暴力破解尝试
add chain=input action=add-src-to-address-list protocol=tcp dst-port=22 address-list=SSH-Blacklist address-list-timeout=1d connection-state=new comment="SSH Brute Force Protection"
add chain=input action=add-src-to-address-list protocol=tcp dst-port=22 src-address-list=SSH-Stage3 connection-state=new
add chain=input action=add-src-to-address-list protocol=tcp dst-port=22 src-address-list=SSH-Stage2 connection-state=new address-list=SSH-Stage3 address-list-timeout=1m
add chain=input action=add-src-to-address-list protocol=tcp dst-port=22 src-address-list=SSH-Stage1 connection-state=new address-list=SSH-Stage2 address-list-timeout=1m
add chain=input action=add-src-to-address-list protocol=tcp dst-port=22 connection-state=new address-list=SSH-Stage1 address-list-timeout=1m
# 拒绝黑名单
add chain=input action=drop src-address-list=SSH-Blacklist comment="Drop SSH Blacklist"
```
此规则组会在1分钟内检测到多次SSH登录尝试后,将源IP加入黑名单并封禁1天。
### 关键注意事项
1. **规则顺序**:accept规则必须放在drop规则之前,否则所有流量都会被丢弃
2. **远程管理风险**:如果通过Winbox或SSH远程配置,务必先添加放行规则再设置默认drop,否则会锁死自己
3. **定期审查**:建议定期检查防火墙日志和地址列表,调整规则策略
4. **备份配置**:修改防火墙前务必备份当前配置,可使用`/system backup save`
### 验证配置
配置完成后,可以通过以下方式验证:
```routeros
# 查看防火墙规则及匹配计数
/ip firewall filter print stats
# 从外部IP测试端口访问
tool bandwidth-test protocol=tcp 8291
```
### 总结
RouterOS防火墙的入站规则配置看似简单,但细节决定成败。合理的规则顺序、精确的源地址控制、暴力破解防护这三者缺一不可。建议从最小化放行开始,逐步开放必要服务,同时保持日志监控,才能构建真正安全的网络边界。网络安全从来不是一劳永逸的工作,持续优化和审查才是正确的态度。