Good

MikroTik Firewall

Базова структура

MikroTik firewall складається з:

  1. Filter - фільтрація пакетів
  2. NAT - трансляція адрес
  3. Mangle - маркування пакетів
  4. 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| PC1

Masquerade

/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

  1. Завжди використовуйте connection-state
  2. Логуйте дропнуті пакети для діагностики
  3. Використовуйте address-list для управління
  4. Регулярно перевіряйте правила

Шлях: networking/mikrotik/firewall.md

UMTC Wiki © 2026 | Ukrainian Military Tactical Communications