Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Mikrotik - konfiguracja podsieci oraz firewall

13 Lis 2020 16:14 507 10
  • Poziom 22  
    Witam,

    Mam problem z działaniem (a raczej z poprawnym zrozumieniem oraz konfiguracją) firewalla w Mikrotiku.

    Router jest skonfigurowany w następujący sposób:

    1) adres IP Mikrotika jest bez zmian, tj. 192.168.88.1
    2) utworzone zostały 2 VLANy - VLAN20 oraz VLAN50
    3) utworzone zostały podsieci
    - 192.168.20.0/32 (przypisana do bridge1, do którego są przypisane wszystkie porty ethernet - maska 32 bitowa była domyślnie ustawiona)
    - 192.168.20.0/24 (przypisana do VLAN20)
    - 192.168.50.0/23 (przypisana do VLAN50)

    W tym punkcie pewnie nie jest tak jak być powinno (zdublowana sieć 20.0), ale działa - inaczej nie potrafiłem :) Chodzi o to, że każde urządzenie fizycznie podłączone pod port ethernet (zmostkowałem jest w bridge1) ma dostać adres w podsieci 192.168.20.0. Jednym z urządzeń jest AP Ubiquiti, który sieje dwa SSID (jedno z VLAN ID=20 a drugie VLAN ID=50), i w zależności od wybranego SSID użytkownik dostaje IP w podsieci 20.0 albo 50.0.

    Wszystko działa - serwery DHCP, użytkownicy dostają odpowiednie IP itd. Problem pojawił się na etapie próby konfiguracji firewalla - przy domyslnej konfiguracji użytkownicy z podsieci 50.0 mogą pingować podsieć 20.0 i odwrotnie. Ja chciałbym całkowicie odciąć podsieć 50.0 od reszty sieci lokalnej (tam ma zostać tylko dostęp do Internetu), przy jednoczesnym zachowaniu dostępu w drugą stronę. Co zrobiłem:

    Code:

    add chain=forward action=accept src-address=192.168.50.0/23 dst-address=192.168.20.0/24 connection-state=established,related
    add chain=forward action=drop src-address=192.168.50.0/23 dst-address=192.168.20.0/24 connection-state=new,invalid


    Wpisy te znajdują się na samym końcu, za wpisami z domyślnej konfiguracji:

    Code:

    filter add chain=input action=accept connection-state=established,related,untracked comment="defconf: accept established,related,untracked"
    filter add chain=input action=drop connection-state=invalid comment="defconf: drop invalid"
    filter add chain=input action=accept protocol=icmp comment="defconf: accept ICMP"
    filter add chain=input action=accept dst-address=127.0.0.1 comment="defconf: accept to local loopback (for CAPsMAN)"
    filter add chain=input action=drop in-interface-list=!LAN comment="defconf: drop all not coming from LAN"
    filter add chain=forward action=accept ipsec-policy=in,ipsec comment="defconf: accept in ipsec policy"
    filter add chain=forward action=accept ipsec-policy=out,ipsec comment="defconf: accept out ipsec policy"
    filter add chain=forward action=fasttrack-connection connection-state=established,related comment="defconf: fasttrack"
    filter add chain=forward action=accept connection-state=established,related,untracked comment="defconf: accept established,related, untracked"
    filter add chain=forward action=drop connection-state=invalid comment="defconf: drop invalid"
    filter add chain=forward action=drop connection-state=new connection-nat-state=!dstnat in-interface-list=WAN comment="defconf: drop all from WAN not DSTNATed"


    Niestety po dodaniu tych regułek w dalszym ciągu można wysyłać ping z podsieci 50.0 do podsieci 20.0.

    Bardzo bym prosił o informację, czy taka konfiguracja podsieci (najbardziej mnie martwi zdublowana podsieć 20.0 w IP->Adresses) oraz poradę jak skutecznie zablokować ruch z podsieci 50.0 do podsieci 20.0.
  • Poziom 21  
    Firewall działa po kolei. Tzn pakiet przechodzi przez regułki po kolei. Jeśli wpadnie w jakąś accept to jest zaakceptowany, i to, że linijkę niżej wpadł by w drop to nie ma tu znaczenia, bo on już do tej regułki nie dochodzi. Jak sobie otworzysz Firewall w Winboxie, to możesz zobaczyć przy której regułce ten pakiet jest akceptowany przy pingowaniu, bo będzie tam rósł licznik pakietów. (Uwaga, pierwszy pakiet pingu może być zliczony na innej regułce niż kolejne pakiety, i ważniejsza jest ta pierwsza). Regułka do dropu musi być wcześniej niż regułka accept.
  • Poziom 9  
    Musisz kliknąć # żeby posortowało Ci się wg kolejności działania...
  • Poziom 22  
    Próbowałem, przeniosłem regułki z domyślnej konfiguracji poniżej moich - niestety w dalszym ciągu moje wpisy są ignorowane (licznik 0), a wpisy niżej są w użyciu...

    Na obrazku poniżej jest stan po pingowaniu adresu 192.168.20.1 z adresu 192.168.51.193 (pingi doszły)

    Mikrotik - konfiguracja podsieci oraz firewall
  • Poziom 39  
    W ustawieniach WiFi masz włączone "local forwarding"? To spróbuj wyłączyć ;)
  • Poziom 22  
    W kontrolerze Ubiquiti nie mam takiej opcji jak "local forwarding" - ogólnie AP przydziela vlanid, a router na tej podstawie przydziela adresację więc raczej na tym etapie nie powinno być problemu
  • Poziom 39  
    Nie zauważyłem, że używasz Ubiquiti - w Mikrotikach WiFi możesz decydować, czy jeśli dwa urządzenia podłączone do jednego AP chcą ze sobą "pogadać" to mogą to robić bezpośrednio (local forwarding), czy cały ruch puszczany jest przez router.

    W statystykach w ogóle nie ma niczego ciekawego na "forward", więc nie wiadomo, czy te pingi szły przez firewall... Dodaj gdzieś wcześniej "forward" "ICMP" "accept" i zobaczymy, czy coś się pojawi.
  • Poziom 22  
    To niczego nie zmieniło - za to włączyłem regułkę "drop all not coming from LAN" i 4 pingi wpadły do licznika tej regułki (brak odpowiedzi na ping (timed out).

    Mikrotik - konfiguracja podsieci oraz firewall
  • Poziom 11  
    Z tego co zrozumiałem to wszystkie podsieci masz spięte w bridge-u , jeśli tak to pakiety nie idą przez firewall a tylko przez bridge. Popatrz w ustawienia bridge-a i tam ustaw filtracje pakietów pomiędzy podsieciami.
  • Poziom 18  
    Daj pełny export, bo ciężko zrozumieć co masz teraz ustawione. Nie wklejaj obrazków z webfiga lub winboxa.
  • Poziom 22  
    Siedziałem trochę, zrobiłem porządek z podsieciami i wykombinowałem - działa zgodnie z założeniami. Została mi ostatnia rzecz, jaką chciałem zrobić - ograniczenie przepustowości dla każdego zalogowanego urządzenia/ip z podsieci 192.168.50.0 /23. Wiem, że takie coś można ustawić dodając hotspot do interfejsu, ale tego nie chcę robić 0 czy są jakieś inne sposoby?

    Code:
    # nov/23/2020 22:08:54 by RouterOS 6.45.8
    
    # software id = 98CM-6QW1
    #
    # model = RB3011UiAS


    /interface bridge
    add admin-mac=C4:AD:34:F9:FC:D4 auto-mac=no comment=defconf name=bridge
    add name=bridge1 protocol-mode=none vlan-filtering=yes
    /interface vlan
    add disabled=yes interface=bridge1 name=vlan20 vlan-id=20
    add interface=bridge1 name=vlan50 vlan-id=50
    /interface list
    add comment=defconf name=WAN
    add comment=defconf name=LAN
    /interface wireless security-profiles
    set [ find default=yes ] supplicant-identity=MikroTik
    /ip pool
    add name=default-dhcp ranges=192.168.88.10-192.168.88.254
    add name=pula_20.1 ranges=192.168.20.150-192.168.20.250
    add name=pula_50.1 ranges=192.168.50.10-192.168.51.200
    /ip dhcp-server
    add address-pool=default-dhcp disabled=no interface=bridge name=defconf
    add address-pool=pula_20.1 disabled=no interface=vlan20 name="DHCP 20.1"
    add address-pool=pula_50.1 disabled=no interface=vlan50 name="DHCP 50.1"
    add address-pool=pula_20.1 disabled=no interface=bridge1 name="DHCP 20.1 (bez vlan)"
    /interface bridge port
    add bridge=bridge1 comment=defconf interface=ether2
    add bridge=bridge1 comment=defconf interface=ether3
    add bridge=bridge1 comment=defconf interface=ether4
    add bridge=bridge1 comment=defconf interface=ether5
    add bridge=bridge1 comment=defconf interface=ether6
    add bridge=bridge1 comment=defconf interface=ether7
    add bridge=bridge1 comment=defconf interface=ether8
    add bridge=bridge1 comment=defconf interface=ether9
    add bridge=bridge comment=defconf interface=ether10
    add bridge=bridge comment=defconf interface=sfp1
    /interface bridge settings
    set allow-fast-path=no use-ip-firewall=yes use-ip-firewall-for-vlan=yes
    /ip neighbor discovery-settings
    set discover-interface-list=LAN
    /interface bridge vlan
    add bridge=bridge1 tagged=ether2,ether3,ether4,ether5,ether6,ether7,ether8,ether9,bridge1 vlan-ids=50
    add bridge=bridge1 disabled=yes untagged=ether2,ether3,ether4,ether6,ether7,ether8,ether9,ether5,bridge1 vlan-ids=20
    /interface list member
    add comment=defconf interface=bridge list=LAN
    add comment=defconf interface=ether1 list=WAN
    add interface=bridge1 list=LAN
    /ip address
    add address=192.168.88.1/24 comment=defconf interface=bridge network=192.168.88.0
    add address=192.168.20.1/24 disabled=yes interface=vlan20 network=192.168.20.0
    add address=192.168.50.1/23 interface=vlan50 network=192.168.50.0
    add address=192.168.20.1/24 interface=bridge1 network=192.168.20.0
    /ip dhcp-client
    add comment=defconf dhcp-options=hostname,clientid disabled=no interface=ether1
    /ip dhcp-server network
    add address=192.168.20.0/24 dns-server=192.168.20.1,8.8.8.8 gateway=192.168.20.1 netmask=24
    add address=192.168.50.0/23 dns-server=192.168.50.1,8.8.8.8 gateway=192.168.50.1 netmask=23
    add address=192.168.88.0/24 comment=defconf gateway=192.168.88.1
    /ip dns static
    add address=192.168.88.1 comment=defconf name=router.lan
    /ip firewall address-list
    add address=192.168.50.0/23 comment="Goscie" list="VLAN50 Z AP"
    add address=192.168.20.0/24 comment=Pracownicy="VLAN20 - pracownicy"
    /ip firewall filter
    add action=drop chain=input connection-state=established,new dst-address=192.168.20.0/24 protocol=!icmp src-address=192.168.50.0/23
    add action=drop chain=input dst-address=192.168.20.0/24 protocol=icmp src-address=192.168.50.0/23
    add action=drop chain=input dst-address=192.168.88.1 protocol=icmp src-address=192.168.50.0/23
    add action=drop chain=input comment="defconf: drop invalid" connection-state=invalid
    add action=accept chain=input comment="defconf: accept to local loopback (for CAPsMAN)" dst-address=127.0.0.1
    add action=accept chain=input comment=NTP protocol=udp src-address=153.19.250.123 src-port=123
    add action=drop chain=input comment="defconf: drop all not coming from LAN" in-interface-list=!LAN
    add action=accept chain=forward comment="defconf: accept in ipsec policy" ipsec-policy=in,ipsec
    add action=accept chain=forward comment="defconf: accept out ipsec policy" ipsec-policy=out,ipsec
    add action=fasttrack-connection chain=forward comment="defconf: fasttrack" connection-state=established,related
    add action=drop chain=forward comment="defconf: drop invalid" connection-state=invalid
    add action=drop chain=forward comment="defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat connection-state=new in-interface-list=WAN
    add action=accept chain=input comment="defconf: accept established,related,untracked" connection-state=established,related,untracked
    add action=accept chain=input comment="defconf: accept ICMP" protocol=icmp
    add action=accept chain=forward comment="defconf: accept established,related, untracked" connection-state=established,related,untracked
    /ip firewall nat
    add action=masquerade chain=srcnat comment="defconf: masquerade" ipsec-policy=out,none out-interface-list=WAN
    /ip service
    set telnet disabled=yes
    set ftp disabled=yes
    set api disabled=yes
    set api-ssl disabled=yes
    /system clock
    set time-zone-name=Europe/Warsaw
    /system ntp client
    set enabled=yes primary-ntp=153.19.250.123
    /tool mac-server
    set allowed-interface-list=LAN
    /tool mac-server mac-winbox
    set allowed-interface-list=LAN