LibreCMC - client mode na TP-Link TL-WR841N

Ostatnio udało mi się kupić dość tanio (za 20PLN to nic się nie kupi, a za flaszkę wódki można router! :) ) bardzo fajny model TP-Linka, a dokładnie TL-WR841N. Oczywiście, zainteresowałem się nim z powodu jego możliwości - jest na liście wspieranych urządzeń OpenWRT oraz… libreCMC!

LibreCMC to projekt, który dąży do stworzenia dystrybucji, która pozbawiona jest binarnych blobów (więc mamy router, który w pełni korzysta z wolnego oprogramowania). A ponadto pozwala na dostęp do niesamowitych możliwości, których nie daje nam producent urządzenia.

Konfiguracja Client Mode Wireless

Będę korzystać z NAT - a konkretnie z ustawień domyślnych w /etc/config/firewall (dokładnie masquerading). Wynika to z tego, że nie mam dostępu do routera, z którym się łączę. Istnieje możliwość wyznaczenia tras między sieciami, ale wtedy trzeba skonfigurować oba routery.

W zasadzie różnica jest taka, że hosty za moją siecią nie będą widoczne dla innych podłączonych do sieci, z którą ma się łączyć moja sieć. Poniżej topografia, którą chcę osiągnąć:

                                     (ESSID: HUE)
    (Moja sieć)      (przez WiFi)       (LAN)         (Ethernet)    (WAN)
    172.16.0.0/24  <--------------> 192.168.1.0/24 <--------------> ISP

Zakładając świeżą instalację libreCMC (w moim przypadku wersja 1.3.2 Elegant Eleanor) będziemy musieli edytować następujące pliki:

Przygotowanie do konfiguracji

Zanim cokolwiek zaczniemy potrzeba nam się połączyć z routerem. W webgui trzeba ustawić połączenie przez ssh oraz nowy adres dla podsieci. Druga część jest bardzo istotna, ponieważ nie chcemy mieć kolizji z siecią, do której mamy się połączyć.

Po połączeniu się z routerem przez SSH musimy włączyć i ustawić radio w station mode (aby móc zobaczyć sieci znajdujące się w pobliżu). Wystarczy wywołać następujące polecenia z konta roota:

    uci del wireless.@wifi-device[0].disabled
    uci del wireless.@wifi-iface[0].network
    uci set wireless.@wifi-iface[0].mode=sta
    uci commit wireless
    wifi

Co się dzieję po kolei:

Informacje o dostępnych sieciach

Potrzebujemy znaleźć ustawienia naszej sieci dla przykładu niech to będzie HUE.

Jeśli możemy wydajemy polecenie iwlist scan powinno wyrzucić coś co wygląda jak :

    root@libreCMC:~# iwlist scan
    wlan0       Scan completed :
              Cell 01 - Address: 00:1D:19:0E:03:8F
                        ESSID:"HUE"
                        Mode:Managed
                        Channel:9
                        Quality:3/5  Signal level:-69 dBm  Noise level:-92 dBm
                        IE: IEEE 802.11i/WPA2 Version 1
                            Group Cipher : TKIP
                            Pairwise Ciphers (2) : TKIP CCMP
                            Authentication Suites (1) : PSK
                           Preauthentication Supported
                        IE: WPA Version 1
                            Group Cipher : TKIP
                            Pairwise Ciphers (2) : TKIP CCMP
                            Authentication Suites (1) : PSK
                        Encryption key:on
                        Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 6 Mb/s; 9 Mb/s
                                  11 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s
                                  48 Mb/s; 54 Mb/s

Ja musiałem skorzystać z iw, żeby nie przedzierać się przez wszystkie możliwe sieci polecam sobie przefiltrować output:

    iw wlan0 scan | grep -A 50 -B 8 HUE

Wyrzuca to coś co wygląda następująco:

    BSS fc:94:e3:11:9c:5c(on wlan0) -- associated
        TSF: 8390318242 usec (0d, 02:19:50)
        freq: 2462
        beacon interval: 100 TUs
        capability: ESS Privacy SpectrumMgmt ShortSlotTime (0x0511)
        signal: -62.00 dBm
        last seen: 0 ms ago
        Information elements from Probe Response frame:
        SSID: HUE
        Supported rates: 1.0* 2.0* 5.5* 11.0* 18.0 24.0 36.0 54.0 
        DS Parameter set: channel 11
        Country: EU Environment: Indoor/Outdoor
            Channels [1 - 13] @ 20 dBm
        Power constraint: 0 dB
        TPC report: TX power: 17 dBm
        ERP: Barker_Preamble_Mode
        ERP D4.0: Barker_Preamble_Mode
        RSN:     * Version: 1
             * Group cipher: TKIP
             * Pairwise ciphers: CCMP TKIP
             * Authentication suites: PSK
             * Capabilities: 16-PTKSA-RC 1-GTKSA-RC (0x000c)
        Extended supported rates: 6.0 9.0 12.0 48.0 
        HT capabilities:
            Capabilities: 0x18bc
                HT20
                SM Power Save disabled
                RX Greenfield
                RX HT20 SGI
                TX STBC
                No RX STBC
                Max AMSDU length: 7935 bytes
                DSSS/CCK HT40
            Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
            Minimum RX AMPDU time spacing: 4 usec (0x05)
            HT RX MCS rate indexes supported: 0-15
            HT TX MCS rate indexes are undefined
        HT operation:
             * primary channel: 11

Konfiguracja

Po pierwsze zmiany w /etc/config/network - należy wykomentować/usunąć wszelkie linijki zawierające ifname w sekcji 'wan'.

    config interface 'wan'
        #ifname ...
        option proto    'dhcp'

Po drugie zmiany w /etc/config/wireless - należy znaleźć sekcję wifi-iface i wyedytować w niej opcję network tak żeby wskazywała na interfejs WAN, opcję mode w tryb station oraz zmienić ssid i encryption tak, żeby zgadzały się z siecią, z którą chcemy się połączyć.

    config 'wifi-iface'
            option 'device'     'wlan0'
            option 'network'    'wan'
            option 'mode'       'sta'
            option 'ssid'       'HUE'
            option 'encryption' 'psk2'
            option 'key'        'hasło_do_wifi' 

Nie pozostaje nic innego jak tylko zastosować zmiany:

    ifup wan
    wifi

I cieszyć się działającą siecią :)

Źródła

Ten artykuł został napisany bardzo dawno temu. Istnieje duże prawdopodobieństwo, że od tego czasu autor zmienił swoje poglądy!


Napisz mi co myślisz przez e-mail

Newest in technical