# MikroTik Router Management Access Hardening

These commands restrict API, Winbox, and SSH access to only trusted subnets
(CGNAT, VNTX public IPs, and private RFC 1918 space).

Apply to **every router** in the fleet. The address list is the same on all
routers so the management ACL is consistent regardless of which tower you're
connecting from.

## 1. Create the trusted address list

```
/ip firewall address-list
add address=204.110.188.0/22 comment="VNTX public IPs" list=trusted
add address=100.64.0.0/10 comment="CGNAT pools" list=trusted
add address=10.0.0.0/8 comment="RFC 1918 private" list=trusted
add address=192.168.0.0/16 comment="RFC 1918 private" list=trusted
```

## 2. Drop non-trusted traffic to management services

Place these **at the top** of `/ip firewall filter chain=input` (before any
existing accept rules for management ports). The `place-before=0` puts them
at position 0 and 1 — adjust the number if you already have rules at the
top that must stay there.

```
/ip firewall filter
add action=accept chain=input comment="allow trusted to management services" dst-port=8728-8729,8291,22 protocol=tcp src-address-list=trusted place-before=0
add action=drop chain=input comment="drop untrusted to management services" dst-port=8728-8729,8291,22 protocol=tcp place-before=1
```

Ports covered:
- `8728` — API (plaintext, if ever used)
- `8729` — API-SSL
- `8291` — Winbox
- `22`   — SSH

## 3. Verify

```
/ip firewall address-list print where list=trusted
/ip firewall filter print chain=input where dst-port~"8728|8729|8291|22"
```

## Notes

- The `accept` rule must come before the `drop` rule (lower number = earlier
  in the chain).
- If a router already has an `accept` for `dst-port=22,8291` etc. without a
  source filter, remove it or place these new rules above it — otherwise
  the broad accept will match first and the drop will never fire.
- IPv6 management access is not covered here. If you want the same for v6,
  mirror the rules in `/ipv6 firewall filter chain=input` using the v6
  equivalents of those subnets.
- After applying, test from a trusted source IP before closing the session
  — a misordered rule can lock you out.
