RSS Feed

Posts Tagged ‘rb’

  1. Mikrotik i konfiguracja wifi dla gości – część 1: rb w trybie routera

    Grudzień 12, 2013 by 0verlord

    Czasem przychodzą do nas znajomi/krewni/rodzina i chcą się na chwilę podpiąć do naszej sieci bezprzewodowej. W większości domowych zastosowań nie ma z tym problemów – podajemy hasło i już. Tym przypadkiem nie będziemy się zajmować 😉 W końcu mamy urządzenie sieciowe, które może wiele – Mikrotika.

    Będziemy się zajmować rozwiązaniem firmowym albo rozwiązaniem dla ludzi, którzy nie chcą wpuszczać nikogo na stałe do swojej sieci domowej.

    Jednym z takich przypadków jest np. sala konferencyjna, do której przychodzą ludzie spoza firmy, coś tam prezentują, potrzebują się dostać do swoich sieci czy do swojej poczty.
    Ale nie powinni, i nie mogą mieć dostępu do reszty firmowego lanu.

    Jak zapewne wiedzą posiadacze urządzeń typu Mikrotik, np. z serii 951Ui-2HnD albo 751Ui-2HnD, urządzenia te oferują dwa typy pracy: routera i bridge’a – czyli „tryb pomostu”.
    W tej notce rozważymy jednak wariant prostszy w konfiguracji i zrozumieniu, tj. tryb routera.

    UWAGA: wklejenie tak po prostu konfiguracji, którą pokazuję niżej raczej nic nie popsuje, a w niektórych przypadkach konfiguracji domyślnych może nawet zadziałać. Ten wpis nie jest dla tych, którzy szukają prostej recepty na konfigurację. Ale po niewielkich modyfikacjach wszystko powinno zadziałać jak należy.

    Schemat ideowy tej konfiguracji jest pi*oko taki:

      [ router do netu ] 
              \---  [ lanu ] 
                        \--- [ mikrotik z wifi jako router ] 
                                     \--- ( ludzie, dużo ludzi)
    
    

    Minusy takiej konfiguracji to dostęp do wifi dla ludzi – jedno hasło i wlezą wszędzie.
    Możemy to oczywiście ograniczać, np. uruchamiając Mikrotika jako router, uruchamiając na nim NAT i korzystając z dobrodziejstw filtrowania ruchu po IP.

    Ktoś przytomny zauważy, że przecież w ten sposób skomplikujemy sobie setup, bo oprócz odfiltrowania złych, trzeba wpuścić tez dobrych i zaczyna się kombinowanie. A potem zaczyna się bałagan.
    Kolejnym minusem takiego konfiga jest podwójny NAT. Pierwszy na wifi, drugi na wyjściu. Czyli np. żegnajcie VOIPy. Dopuszczalne, ale ogólnie słabe.

    Czyli lepszy schemat byłby taki:

      [ router do netu ]
             \--- [ lan ] --- [ wifi dla gosci ]
                      \--- [ wifi dla pracowników ]
    
    
    

    Ktoś powie – banalne. Kupujemy dwa Mikrotiki, jeden konfigurujemy w trybie pomostu, zakładamy mocne hasło albo podpinamy do serwera Radiusa i wpuszczamy pracowników. Potem kupujemy drugiego, stawiamy go w trybie routera i filtrujemy we wszystkich kierunkach. Skuteczne, ale cóż za przerażające marnowanie zasobów ;-).
    Lepiej pokazać kto wymiata i zrobić to na jednym urządzeniu.

    Czyli będziemy realizować będziemy następujący scenariusz:

    1. stworzymy dwa interfejsy typu VirtualAP – nie będziemy używać interfejsu głównego (wlan1)
    2. stworzymy dwa interfejsy typu bridge – nazwiemy je bridge-local i bridge-remote
    3. dodamy serwer dhcp – żeby goście dostali adresację
    4. dodamy nat – żeby goście wyszli w świat. Raczej nie będą korzystali z VOIPów, więć podwójny nat raczej im nie zaszkodzi.
    5. nałożymy filtry, żeby goście nie rozleźli się po naszym lanie.


    Nie użyjemy głównego interfejsu wifi (wlan1), ponieważ potrzebujemy dwie sieci wifi, które nie będą we wspólnym lanie. Gdybyśmy próbowali ten sam konfig zrobić na głównym i podrzędnym interfejsie wifi, RSTP natychmiast uzna naszą konfigurację za pętlę w sieci i rozłączy drugi interfejs radiowy. A na dwóch podrzędnych interfejsach już się taka sztuka uda.

    Krok 1. tworzymy dwa ifejsy typu VirtualAp (oraz security-profile do nich, czyli osobna, hasła, osobne ssidy, itp).

    Profile nazywają się „guest-wlan” i „firma-wlan” żeby się potem nie pogubić w tej dość zawiłej konfiguracji. Hasła to odpowiednio: DlaObcych i DlaZiemian.

    /interface wireless security-profiles
    add authentication-types=wpa-psk,wpa2-psk management-protection=allowed mode=dynamic-keys name=guest-wlan supplicant-identity=MikroTik wpa-pre-shared-key=DlaObcych wpa2-pre-shared-key=DlaObcych
    add authentication-types=wpa-psk,wpa2-psk management-protection=allowed mode=dynamic-keys name=firma-wlan supplicant-identity=MikroTik wpa-pre-shared-key=DlaZiemian wpa2-pre-shared-key=DlaZiemian

    potem czyścimy główny interfejs wlan1 z SSIDa:
    /interface wireless
    set [ find default-name=wlan1 ] band=2ghz-b/g/n channel-width=20/40mhz-ht-above country=russia disabled=no distance=indoors frequency=2462 ht-rxchains=0,1 ht-txchains=0,1 l2mtu=2290 mode=ap-bridge ssid="" wireless-protocol=802.11

    i dodajemy dwa nowe, slave’y:

    /interface wireless
    add disabled=no l2mtu=2290 mac-address=D6:CA:6D:A8:0C:7C master-interface=wlan1 name=firma-virtual-ap security-profile=firma-wlan ssid=wifi-firmowa wds-default-bridge=bridge-local
    add disabled=no l2mtu=2290 mac-address=D6:CA:6D:A8:0C:7B master-interface=wlan1 name=guest-virtual-ap security-profile=guest-wlan ssid=wifi-guest wds-default-bridge=bridge-local

    Krok 2.tworzymy dwa bridge, -local i -remote, które później wykorzystamy go magii sieciowej:

    /interface bridge
    add admin-mac=D4:CA:6D:A8:0C:77 auto-mac=no name=bridge-local protocol-mode=rstp
    add l2mtu=1598 name=bridge-remote
    /interface bridge port
    add bridge=bridge-local interface=ether2-master-local
    add bridge=bridge-local interface=guest-virtual-ap
    add bridge=bridge-remote interface=ether1-gateway
    add bridge=bridge-remote interface=firma-virtual-ap

    do bridge-local dodaję także lokalne ethernety. Urządzenia z serii (7,9)51 mają kilka portów ethernetowych do wykorzystania.
    Natomiast cała magia jest w pogrubionych linijkach – tutaj dodajemy firmową sieć wifi do bridga do naszego lanu firmowego. A ponieważ to urządzenie w L2 – przeniesie nam dhcp. A ruch wychodzący zamaskaraduje nam NAT na bridge-remote, który nałożymy w kroku 4.

    Krok 3. dodamy serwer DHCP.

    Dodamy go dla gości, i tylko dla gości. DHCP w naszej sieci firmowej (mamy je prawda?) zapewnia inny serwer, tj. albo nasz router, albo nasz serwer AD, albo nasz inny serwer zapewniający DHCP.

    /ip dhcp-server
    add address-pool=default-dhcp disabled=no interface=bridge-local name=guest-server
    /ip dhcp-server network
    add address=192.168.88.0/24 comment="default configuration" dns-server=192.168.88.1 gateway=192.168.88.1

    nie byłem tutaj oryginalny – po prostu użyłem domyślnej konfiguracji.

    Żeby wszytko działało, musimy jeszcze dodać adresację do interfejsu.

    do głównego (teraz to bridge-remote, który spina ether1-gateway i wlan firmowy) – można włączyć dhcp, albo po prostu ustawić statycznie (w tym drugim przypadku należy pamiętać o dodaniu default route) oraz adresacji dla slave (dałem spójne z poprzednimi konfigami)

    /ip address
    add address=192.168.88.1/24 comment="default configuration" interface=bridge-local network=192.168.88.0

    Krok 4. skoro mamy dhcp i interfejsy i wlany – dodajemy nat

    /ip firewall nat
    add action=masquerade chain=srcnat comment="default configuration" out-interface=bridge-remote to-addresses=0.0.0.0 src-address=192.168.88.0/24
    </pre>

    Ale dlaczego bridge-remote a nie ether1-gateway? Ano dlatego, że adresację, oraz nat konfigurujemy na bridgu, a nie na interfejsach podrzędnych.

    Krok 5. a na koniec – odfiltrowujemy element niepożądany:

    (jeżeli oczywiście nasza sieć firmowa ma adresacje 192.168.1.0/24)

    /ip firewall filter
    add action=drop chain=forward dst-address=192.168.1.0/24 src-address=192.168.88.0/24

    A w kolejnym odcinku pokażę, jak to zrobić w druga stronę, tj. jeżeli MT jest w trybie bridge’a. To jest bardziej skomplikowane i zamotane i służy tylko do utrwalenia własnej manii wielkości ;-).


  2. OpenVPN, Mikrotik i Bad LZO decompression header byte

    Marzec 25, 2013 by 0verlord

    mikrotik

    Mikrotik to ogólnie fajny sprzęt i sporo może. Niestety kilka rzeczy jest nie do końca zaimplementowanych. Jedną z tych rzeczy jest OpenVPN.

    Mimo najnowszej wersji softu i na wydawałoby się – poprawnego konfiga, tym razem nie chciał się połączyć.
    Objawy były takie, że łączyło mnie, a po jakimś czasie do loga szedł komunikat
    Inactivity timeout (--ping-restart)
    i oczywiście rozłączało, potem łączyło znowu, znowu nie mogłem nic pingnąć po drugiej stronie i tak w kółko.

    Logi śmiecił jeszcze komunikat pt:
    Bad LZO decompression header byte: (numerek)

    To już w ogóle było pozornie bez związku, ale poszedłem tropem tegoż węża. Po stronie klienta próbowałem to wyłączyć ustawiając
    use-compression=no

    w /ppp profile, ale to nic nie dało. Rzut oka do konfiga po stronie serwera ujawnił straszliwa prawdę – była tam odkomentowana dyrektywa comp-lzo.
    Zakoment, restart openvpna i tadam.wav.

    Podsumowując:

    1. mikrotik obsługuje OpenVPNa w trybie klienta, ale tylko po TCP, udp nie jest zaimplementowane.
    2. … za to obsługuje autoryzację zarówno po certyfikacie, jak i po userze/haśle.
    3. klient nie rozumie kompresji – po stronie serwera trzeba wyłaczyć comp-lzo
    4. jeżeli nie mamy kontroli nad serwerem, i nie możemy tam dodać trasy do podsieci zza naszego vpna, trzeba dodać regułkę maskarady na interfejsie ovpn-out1 (czy też jakkolwiek się u Was nazywa)