✅ Good
MikroTik Firewall¶
Базова структура¶
MikroTik firewall складається з:
- Filter - фільтрація пакетів
- NAT - трансляція адрес
- Mangle - маркування пакетів
- Raw - обробка до conntrack
flowchart TB
subgraph Firewall ["MikroTik Firewall Tables"]
Raw[🔴 Raw<br/>Pre-conntrack]
Mangle[🟠 Mangle<br/>Packet marking]
NAT[🟢 NAT<br/>Address translation]
Filter[🔵 Filter<br/>Accept/Drop]
end
Packet([📦 Packet]) --> Raw
Raw --> Mangle
Mangle --> NAT
NAT --> Filter
Filter --> Decision{Accept?}
Decision -->|Yes| Forward([✅ Forward/Output])
Decision -->|No| Drop([❌ Drop])Packet Flow через Chains¶
flowchart LR
subgraph Input ["INPUT Chain"]
direction TB
I1[Packet to router]
I2[Filter rules]
I3[Local process]
I1 --> I2 --> I3
end
subgraph Forward ["FORWARD Chain"]
direction TB
F1[Transit packet]
F2[Filter rules]
F3[Route out]
F1 --> F2 --> F3
end
subgraph Output ["OUTPUT Chain"]
direction TB
O1[Local process]
O2[Filter rules]
O3[Send out]
O1 --> O2 --> O3
end
Internet((🌐)) -->|To router| Input
Internet -->|Transit| Forward
Output -->|From router| InternetБазовий захист¶
Input Chain (вхідний трафік на роутер)¶
/ip firewall filter
# Дозволити established, related
add chain=input action=accept connection-state=established,related
# Дозволити ICMP
add chain=input action=accept protocol=icmp
# Дозволити SSH з довірених мереж
add chain=input action=accept protocol=tcp dst-port=22 \
src-address-list=trusted
# Дозволити WireGuard
add chain=input action=accept protocol=udp dst-port=51820
# Дропнути все інше
add chain=input action=drop
Forward Chain¶
# Дозволити established, related
add chain=forward action=accept connection-state=established,related
# Дозволити LAN -> WAN
add chain=forward action=accept in-interface=bridge-lan \
out-interface=ether1-wan
# Дропнути invalid
add chain=forward action=drop connection-state=invalid
# Дропнути все інше з WAN
add chain=forward action=drop in-interface=ether1-wan
Address Lists¶
/ip firewall address-list
add list=trusted address=10.0.0.0/8
add list=trusted address=192.168.0.0/16
add list=blacklist address=1.2.3.4 comment="scanner"
NAT¶
flowchart LR
subgraph LAN ["LAN (192.168.1.0/24)"]
PC1[💻 PC1<br/>192.168.1.10]
PC2[💻 PC2<br/>192.168.1.11]
end
subgraph Router ["MikroTik Router"]
SRCNAT[SRCNAT<br/>Masquerade]
DSTNAT[DSTNAT<br/>Port Forward]
end
Internet((🌐<br/>1.2.3.4))
PC1 -->|src: 192.168.1.10| SRCNAT
PC2 -->|src: 192.168.1.11| SRCNAT
SRCNAT -->|src: 1.2.3.4| Internet
Internet -->|dst: 1.2.3.4:443| DSTNAT
DSTNAT -->|dst: 192.168.1.10:443| PC1Masquerade¶
/ip firewall nat
add chain=srcnat out-interface=ether1-wan action=masquerade
Port Forwarding¶
add chain=dstnat protocol=tcp dst-port=443 \
action=dst-nat to-addresses=192.168.1.10 to-ports=443
Best Practices¶
- Завжди використовуйте connection-state
- Логуйте дропнуті пакети для діагностики
- Використовуйте address-list для управління
- Регулярно перевіряйте правила
Шлях: networking/mikrotik/firewall.md