User Tools

Site Tools


mikrotik

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
mikrotik [2019/07/28 19:12]
ww [L2TP + IPsec]
mikrotik [2022/03/16 09:52] (current)
ww
Line 85: Line 85:
 /ip route add gateway=ether2-wan2 routing-mark=routing_mark_guests </code> Note: Gateway can also be a PPPoE connection (in case of DSL).  /ip route add gateway=ether2-wan2 routing-mark=routing_mark_guests </code> Note: Gateway can also be a PPPoE connection (in case of DSL). 
   - Set up masquerade for the second wan interface (assuming that masquerade was set up only for the ''ether1-wan1'').   - Set up masquerade for the second wan interface (assuming that masquerade was set up only for the ''ether1-wan1'').
 +
 +----
 +
 +===== IPv4 firewall stub =====
 +  /ip firewall filter
 +    add chain=forward  connection-state=established,related              action=fasttrack-connection  comment="Fasttrack"
 +    add chain=forward  connection-state=established,related,untracked    action=accept                comment="Allow ESTABLISHED, RELATED, UNTRACKED (FORWARD)"
 +    add chain=forward  connection-state=invalid                          action=drop disabled=yes     comment="Drop INVALID (FORWARD)"
 +    add chain=forward  connection-nat-state=!dstnat  \
 +                       connection-state=new \
 +                       in-interface-list=WAN                             action=drop disabled=yes     comment="Drop all from WAN not DST-NATted (FORWARD)" 
 +    add chain=input    connection-state=invalid                          action=drop disabled=yes     comment="Drop INVALID (INPUT)"
 +    add chain=input    connection-state=established,related,untracked    action=accept                comment="Allow ESTABLISHED, RELATED, UNTRACKED (INPUT)"
 +    add chain=input    protocol=icmp                                     action=accept                comment="Allow ICMP (INPUT)"
 +    add chain=input    in-interface-list=!LAN                            action=drop disabled=yes     comment="Drop all not coming from LAN (INPUT)"
  
 ---- ----
Line 90: Line 105:
 ===== IPv6 firewall stub ===== ===== IPv6 firewall stub =====
   /ipv6 firewall filter   /ipv6 firewall filter
-  add action=accept comment="Allow ESTABLISHED (FORWARD)" chain=forward connection-state=established disabled=no  +  add chain=forward connection-state=established                action=accept             comment="Allow ESTABLISHED (FORWARD)" 
-  add action=accept comment="Allow RELATED (FORWARD)" chain=forward connection-state=related disabled=no +  add chain=forward connection-state=related                    action=accept             comment="Allow RELATED (FORWARD)" 
-  add action=accept comment="Allow ICMPv6 (FORWARD)" chain=forward disabled=no in-interface=pppoe-out1 protocol=icmpv6  +  add chain=forward in-interface-list=WAN protocol=icmpv6       action=accept             comment="Allow ICMPv6 (FORWARD)" 
-  add action=drop comment="Drop everything else (FORWARD)" chain=forward disabled=no in-interface=pppoe-out1  +  add chain=forward in-interface-list=WAN                       action=drop disabled=yes  comment="Drop everything else (FORWARD)" 
-  add action=accept comment="Allow ESTABLISHED (INPUT)" chain=input connection-state=established disabled=no  +  add chain=input   connection-state=established                action=accept             comment="Allow ESTABLISHED (INPUT)" 
-  add action=accept comment="Allow RELATED (INPUT)" chain=input connection-state=related disabled=no  +  add chain=input   connection-state=related                    action=accept             comment="Allow RELATED (INPUT)" 
-  add action=accept comment="Allow ICMPv6 (INPUT)" chain=input disabled=no in-interface=pppoe-out1 protocol=icmpv6  +  add chain=input   in-interface-list=WAN protocol=icmpv6       action=accept             comment="Allow ICMPv6 (INPUT)" 
-  add action=accept comment="Allow DHCPv6 (INPUT)" chain=input disabled=no in-interface=pppoe-out1 protocol=udp port=546 +  add chain=input   in-interface-list=WAN protocol=udp port=546 action=accept             comment="Allow DHCPv6 (INPUT)" 
-  add action=drop comment="Drop everything else (INPUT)" chain=input disabled=no in-interface=pppoe-out1+  add chain=input   in-interface-list=WAN                       action=drop disabled=yes  comment="Drop everything else (INPUT)"
  
 ---- ----
Line 121: Line 136:
 ''local-address'' = IP adresa routeru, kterou bude mít v rámci VPN, musí být mimo pool! (tj. pokud je VPN pool třeba 100-200, tak router bude mít třeba 201) \\ ''local-address'' = IP adresa routeru, kterou bude mít v rámci VPN, musí být mimo pool! (tj. pokud je VPN pool třeba 100-200, tak router bude mít třeba 201) \\
 ''remote-address'' = Pool vytvořený v kroku 2 \\ ''remote-address'' = Pool vytvořený v kroku 2 \\
-''dns-server'' = buď adresa routeru nebo jiného DNS serveru ve vzdálené síti+''dns-server'' = buď adresa routeru nebo jiného DNS serveru ve vzdálené síti \\
 ''interface-list=LAN'' = po vytvoření spojení se VPN vloží do interface listu LAN (kvůli firewallu) ''interface-list=LAN'' = po vytvoření spojení se VPN vloží do interface listu LAN (kvůli firewallu)
  
Line 137: Line 152:
 6) Zapnout arp-proxy na bridge (aby router odpovídal klientům na ARP dotazy i skrze tunel) 6) Zapnout arp-proxy na bridge (aby router odpovídal klientům na ARP dotazy i skrze tunel)
 <code>/interface bridge1 set arp=proxy-arp</code> <code>/interface bridge1 set arp=proxy-arp</code>
 +
 +==== Router za 1:1 NAT ====
 +
 +''X.X.X.X'' = skutečná veřejná adresa \\
 +''L.L.L.L'' = LAN adresa od ISP, na kterou je veřejná adresa NATována
 +
 +1) Přidat dummy interface s dummy MAC adresou (aby router věděl o své veřejce) \\
 +2) Nastavit prerouting tak, aby příchozí pakety vůči routeru vypadaly, že přišly na veřejnou adresu.
 +
 +  /interface bridge
 +    add admin-mac=02:00:00:00:00:01 auto-mac=no name=bridge-pubip protocol-mode=none
 +  /ip address
 +    add address=L.L.L.L/24 interface=ether1
 +    add address=X.X.X.X/32 interface=bridge-pubip
 +  /ip firewall nat
 +    add action=dst-nat chain=dstnat dst-address=L.L.L.L dst-port=500,4500 protocol=udp to- 
 +    addresses=X.X.X.X
 +    add action=dst-nat chain=dstnat dst-address=L.L.L.L protocol=ipsec-esp to-addresses=X.X.X.X
 +
 +----
 +
 +===== Failover (2 WAN) =====
 +
 +Výchozí setup:
 +<code>
 +/ip route
 +add gateway=10.0.1.1 distance=1 check-gateway=ping  comment=Primary
 +add gateway=10.0.2.1 distance=2                     comment=Secondary
 +</code>
 +
 +Rekurzivní failover:
 +<code>
 +/ip route
 +add dst-address=8.8.8.8/32 gateway=10.0.1.1 scope=10                        comment="Validate Primary"
 +add                        gateway=8.8.8.8  distance=1 check-gateway=ping   comment=Primary
 +add                        gateway=10.0.2.1 distance=2                      comment=Secondary
 +</code>
 +
 +Vysvětlení:
 +  * U výchozího setupu je problém, že MikroTik zjišťuje dostupnost Internetu jen pomocí pingu brány (tj. první hop). Pokud upadne Internet někde dále za prvním hopem, MikroTik toto nepozná a bránu (a tudíž routu) neshodí.
 +  * U rekurzivního přístupu se pro účely přístupu na Internet vybere spolehlivá a dostupná IP adresa v Internetu (tj. jako příklad Google DNS). Jako výchozí routa se pak použije právě tato IP, tj. dokud je Google DNS dostupné přes první rozhraní, směruje se Internet přes něj. Jakmile Google DNS přes GW1 dostupné není (linka spadla), routa se automaticky shodí a použije se GW2.
 +  * Nevýhoda: Google DNS NEbude dostupné přes GW2.
 +  * [[https://www.prinmath.com/ham/mikrotik-failover.htm|Zdroj]]
 +
 +----
 +
 +===== Ban list =====
 +<code>
 +/ ip firewall filter 
 +add chain=input in-interface=ether1-wan protocol=tcp dst-port=22 \
 +    connection-state=new connection-limit=5/1m;1:packet \
 +    action=add-src-to-address-list address-list=ssh_logins \
 +    address-list-timeout=12h comment="" disabled=no 
 +add chain=input protocol=tcp dst-port=22 src-address-list=!ssh_logins \
 +    action=accept comment="" disabled=no 
 +</code>
mikrotik.1564333951.txt.gz · Last modified: 2022/03/16 09:38 (external edit)