Ostatnio Na Forum
Logowanie

Polityka prywatno?ci

Portal openrouter.info stosuje pliki cookies ("ciasteczka") pozwalające na dostosowanie zawartości portalu do indywidualnych potrzeb. Korzystanie z portalu bez zmiany ustawień dotyczących ciasteczek oznacza akceptację umieszczenia ich na urządzenia użytkownika. Zmianę ustawień pliku ciasteczek można wykonać zmieniając opcję w ustawieniach przeglądarki internetowej. Więcej informacji można znaleźć w Polityce prywatności.

MAC filter w routerze WR1043ND z OpenWrt

Email Drukuj

MAC filter w routerze WR1043ND z OpenWrt

Mo?e zdarzy? si? tak, i? b?dziemy chcieli ograniczy? dost?p do routera ju? w fazie logowania opieraj?c si? o adresy MAC jako dodatkowe zabezpieczenie. Niestety sterownik ath9 (atheros) nie wspiera tak jak w chipsecie broadcom sprz?towego ograniczenia po MAC adresach. Trzeba kombinowa? z iptables. W dokumencie tym przedstawi? mo?liwo?? ograniczenia logowania do routera opieraj?c si? o wbudowan? w?a?ciwo?? hostapd (wpad). Domy?lnie w OpenWrt nie jest to zdefiniowane. Poni?ej przedstawi? odpowiednie zmiany w systemie, ktre doprowadz? do uzyskania tej?e funkcjonalno?ci.

Ca?a konfiguracja testowana by?a na routerze WR1043ND. Jednak?e winna poprawnie dzia?a? na wszystkich routerach u?ywaj?cych sterownika ath9/ath5 (mac80211) - tu trzeba samemu sprawdzi?.

Ca?? konfiguracj? przeprowadzi?em w dwch wersjach:

  • zmiany w pliku mac80211.sh czyli konfiguracja jest identyczna jak w broadcom
  • zmiany w pliku hostapd.sh czyli konfiguracja przesuni?ta jest z wifi-device do wifi-iface przez co zwi?kszamy funkcjonalno?? o to, ?e ka?dy AP nawet wirtualny mo?e mie? w?asn? list? MAC

Ja proponuje korzysta? z wersji drugiej jako bardziej rozbudowanej.

WERSJA 1:

Instalacja:

cp /lib/wifi/mac80211.sh /root
rm /lib/wifi/mac80211.sh
wget http://rpc.one.pl/pliki/openwrt/backfire/10.03.x/atheros/hostapd/mac80211.sh -O /lib/wifi/mac80211.sh

I to w zasadzie wszystko je?li chodzi o instalacj?.

Plik mac80211.sh mo?esz pobra? rwnie? r?cznie z mojego repozytorium.

Konfiguracja:

Plik /etc/config/wireless mo?e wygl?da? nast?puj?co:

config 'wifi-device' 'radio0'
option 'type' 'mac80211'
option 'channel' '5'
option 'macaddr' '00:23:ce:31:b4:ba'
option 'hwmode' '11ng'
option 'htmode' 'HT20'
option 'ht_capab' 'HT40- HT40+ SHORT-GI-40 DSSS_CCK-40'
option 'disabled' '0'
option 'country' 'PL'
option 'maclist' '00:16:ea:49:23:fa 00:1c:bf:9e:d8:60'
option 'macfilter' 'allow'

config 'wifi-iface'
option 'device' 'radio0'
option 'network' 'lan'
option 'ssid' 'moje_ssid'
option 'mode' 'ap'
option 'encryption' 'psk2'
option 'key' 'xxxxxxxx'

Dosz?y dwie nowe opcje:

  • maclist
  • macfilter

w zasadzie to te opcje s? opisane na wiki OpenWrt ale dotycz? tylko broadcom. Dostosowa?em te opcje tak aby u?ycie ich wygl?da?o identycznie.

W opcji maclist definiujemy adresy MAC oddzielone spacj?.

W opcji macfilter mamy trzy opcje:

  • allow , 2 - mog? logowa? si? tylko komputery z adresami MAC wymienionymi w parametrze maclist
  • deny , 1 - mog? logowa? si? wszystkie komputery z wyj?tkiem tych, ktrych adresy MAC wymienione s? w parametrze maclist
  • disable, 0 - wy??cza opcj? MACFILTER (brak opcji macfilter oznacza domy?lnie disable)

Oczywi?cie wszystko co powy?ej mo?na przedstawi? za pomoc? komend UCI:

root@OpenWrt:/tmp/run# uci show wireless
wireless.radio0=wifi-device
wireless.radio0.type=mac80211
wireless.radio0.channel=5
wireless.radio0.macaddr=00:23:ce:31:b4:ba
wireless.radio0.hwmode=11ng
wireless.radio0.htmode=HT20
wireless.radio0.ht_capab=HT40- HT40+ SHORT-GI-40 DSSS_CCK-40
wireless.radio0.disabled=0
wireless.radio0.country=PL
wireless.radio0.maclist=00:16:ea:49:23:fa 00:1c:bf:9e:d8:60
wireless.radio0.macfilter=allow
wireless.@wifi-iface[0]=wifi-iface
wireless.@wifi-iface[0].device=radio0
wireless.@wifi-iface[0].network=lan
wireless.@wifi-iface[0].ssid=moje_ssid
wireless.@wifi-iface[0].mode=ap
wireless.@wifi-iface[0].encryption=psk2
wireless.@wifi-iface[0].key=xxxxxxxx

co oznacza ?e mo?emy dodawa? poprzez uci nasze opcje:

uci set wireless.radio0.maclist="00:16:ea:49:23:fa 00:1c:bf:9e:d8:60"
uci set wireless.radio0.macfilter=allow

W wyniku w/w operacji w katalogu /var/run w zale?no?ci od tego czy jest wybrana opcja allow czy deny powstanie ktry? z plikw:

  • /var/run/hostapd-phy0-mac.allow
  • /var/run/hostapd-phy0-mac.deny

zawarto?ci? ktrych b?d? nasze adresy MAC.

Co zosta?o zrobione:

Zosta? zmodyfikowany plik /lib/wifi/mac80211.sh nast?puj?co:

Index: package/mac80211/files/lib/wifi/mac80211.sh
===================================================================
--- package/mac80211/files/lib/wifi/mac80211.sh (wersja 22844)
+++ package/mac80211/files/lib/wifi/mac80211.sh (kopia robocza)
@@ -30,6 +30,26 @@
[ -n "$ht_capab" ] && append base_cfg "ht_capab=$ht_capab" "$N"
}
}
+ local macfile="/var/run/hostapd-${phy}-mac"
+ config_get macfilter "$device" macfilter
+ config_get maclist "$device" maclist
+ test -e $macfile.* && rm -f $macfile.*
+ case "$macfilter" in
+ allow|2)
+ append base_cfg "macaddr_acl=1" "$N"
+ for mac in $maclist; do
+ echo "$mac" >> $macfile.allow
+ done
+ append base_cfg "accept_mac_file=$macfile.allow" "$N"
+ ;;
+ deny|1)
+ append base_cfg "macaddr_acl=0" "$N"
+ for mac in $maclist; do
+ echo "$mac" >> $macfile.deny
+ done
+ append base_cfg "deny_mac_file=$macfile.deny" "$N"
+ ;;
+ esac
cat > "$cfgfile" <
ctrl_interface=/var/run/hostapd-$phy
driver=nl80211

odpowiedni patch pobierzesz tutaj: mac80211.diff

Zmiany dodaj? do pliku konfiguracyjnego /var/run/hostapd-phy0.conf nast?puj?ce opcje:

macaddr_acl=1
accept_mac_file=/var/run/hostapd-phy0-mac.allow

b?d?

macaddr_acl=0
deny_mac_file=/var/run/hostapd-phy0-mac.deny



WERSJA 2:


Instalacja:

cp /lib/wifi/hostapd.sh /root
rm /lib/wifi/hostapd.sh
wget http://rpc.one.pl/pliki/openwrt/backfire/10.03.x/atheros/hostapd/hostapd.sh -O /lib/wifi/hostapd.sh

I to w zasadzie wszystko je?li chodzi o instalacj?.

Plik hostapd.sh mo?esz pobra? rwnie? r?cznie z mojego repozytorium.

Konfiguracja:

Plik /etc/config/wireless mo?e wygl?da? nast?puj?co:

root@OpenWrt:/lib/wifi# cat /etc/config/wireless

config 'wifi-device' 'radio0'
option 'type' 'mac80211'
option 'channel' '5'
option 'macaddr' '00:23:cd:36:b4:ba'
option 'hwmode' '11ng'
option 'htmode' 'HT20'
list 'ht_capab' 'HT40-'
list 'ht_capab' 'HT40+'
list 'ht_capab' 'SHORT-GI-40'
list 'ht_capab' 'DSSS_CCK-40'
option 'disabled' '0'
option 'country' 'PL'

config 'wifi-iface'
option 'device' 'radio0'
option 'network' 'lan'
option 'ssid' 'siec_ssid1'
option 'mode' 'ap'
option 'encryption' 'psk2'
option 'key' 'xxxxxxxx'
option 'maclist' '00:16:eb:48:13:fe 00:2c:af:9e:dd:60'
option 'macfilter' 'allow'


config 'wifi-iface'
option 'device' 'radio0'
option 'network' 'lan'
option 'ssid' 'siec_ssid2'
option 'mode' 'ap'
option 'encryption' 'psk2'
option 'key' 'xxxxxxxx'
option 'maclist' '00:16:eb:48:13:fe 00:2c:af:9e:dd:60 00:12:34:ab:12:11'
option 'macfilter' 'allow'

Dosz?y dwie nowe opcje w sekcji wifi-iface:

  • maclist
  • macfilter

w zasadzie to te opcje s? opisane na wiki OpenWrt ale dotycz? tylko broadcom. Dostosowa?em te opcje tak aby u?ycie ich wygl?da?o identycznie i przesun??em do sekcji wifi-iface.

W opcji maclist definiujemy adresy MAC oddzielone spacj?.

W opcji macfilter mamy trzy opcje:

  • allow , 2 - mog? logowa? si? tylko komputery z adresami MAC wymienionymi w parametrze maclist
  • deny , 1 - mog? logowa? si? wszystkie komputery z wyj?tkiem tych, ktrych adresy MAC wymienione s? w parametrze maclist
  • disable, 0 - wy??cza opcj? MACFILTER (brak opcji macfilter oznacza domy?lnie disable)
  • radius, 3 - do autoryzacji MAC korzysta z serwera radius

Oczywi?cie wszystko co powy?ej mo?na przedstawi? za pomoc? komend UCI:

root@OpenWrt:/lib/wifi# uci show wireless
wireless.radio0=wifi-device
wireless.radio0.type=mac80211
wireless.radio0.channel=5
wireless.radio0.macaddr=00:23:cd:36:b4:ba
wireless.radio0.hwmode=11ng
wireless.radio0.htmode=HT20
wireless.radio0.ht_capab=HT40- HT40+ SHORT-GI-40 DSSS_CCK-40
wireless.radio0.disabled=0
wireless.radio0.country=PL
wireless.@wifi-iface[0]=wifi-iface
wireless.@wifi-iface[0].device=radio0
wireless.@wifi-iface[0].network=lan
wireless.@wifi-iface[0].ssid=siec_ssid1
wireless.@wifi-iface[0].mode=ap
wireless.@wifi-iface[0].encryption=psk2
wireless.@wifi-iface[0].key=xxxxxxxx
wireless.@wifi-iface[0].maclist=00:16:eb:48:13:fe 00:2c:af:9e:dd:60
wireless.@wifi-iface[0].macfilter=allow
wireless.@wifi-iface[1]=wifi-iface
wireless.@wifi-iface[1].device=radio0
wireless.@wifi-iface[1].network=lan
wireless.@wifi-iface[1].ssid=siec_ssid2
wireless.@wifi-iface[1].mode=ap
wireless.@wifi-iface[1].encryption=psk2
wireless.@wifi-iface[1].key=xxxxxxxx
wireless.@wifi-iface[1].maclist=00:16:eb:48:13:fe 00:2c:af:9e:dd:60 00:12:34:ab:12:11
wireless.@wifi-iface[1].macfilter=allow

co oznacza ?e mo?emy dodawa? poprzez uci nasze opcje:

uci set wireless.@wifi-iface[0].maclist="00:16:eb:48:13:fe 00:2c:af:9e:dd:60"
uci set wireless.@wifi-iface[0].macfilter=allow
uci set wireless.@wifi-iface[1].maclist="00:16:eb:48:13:fe 00:2c:af:9e:dd:60 00:12:34:ab:12:11"
uci set wireless.@wifi-iface[1].macfilter=allow

W wyniku w/w operacji w katalogu /var/run w zale?no?ci od tego czy jest wybrana opcja allow czy deny powstanie ktry? z plikw:

  • /var/run/hostapd-phy0-wlan0-mac.allow
  • /var/run/hostapd-phy0-wlan1-mac.deny

zawarto?ci? ktrych b?d? nasze adresy MAC.

Co zosta?o zrobione:

Zosta? zmodyfikowany plik /lib/wifi/hostapd.sh nast?puj?co:

Index: package/hostapd/files/hostapd.sh
===================================================================
--- package/hostapd/files/hostapd.sh (wersja 22871)
+++ package/hostapd/files/hostapd.sh (kopia robocza)
@@ -14,6 +14,31 @@
append "$var" "ap_isolate=$ap_isolate" "$N"
fi

+ config_get ifname "$vif" ifname
+ local macfile="/var/run/hostapd-${phy}-${ifname}-mac"
+ config_get macfilter "$vif" macfilter
+ config_get maclist "$vif" maclist
+ test -e $macfile.* && rm -f $macfile.*
+ case "$macfilter" in
+ allow|2)
+ append "$var" "macaddr_acl=1" "$N"
+ for mac in $maclist; do
+ echo "$mac" >> $macfile.allow
+ done
+ append "$var" "accept_mac_file=$macfile.allow" "$N"
+ ;;
+ deny|1)
+ append "$var" "macaddr_acl=0" "$N"
+ for mac in $maclist; do
+ echo "$mac" >> $macfile.deny
+ done
+ append "$var" "deny_mac_file=$macfile.deny" "$N"
+ ;;
+ radius|3)
+ append "$var" "macaddr_acl=3" "$N"
+ ;;
+ esac
+
# Examples:
# psk-mixed/tkip => WPA1+2 PSK, TKIP
# wpa-psk2/tkip+aes => WPA2 PSK, CCMP+TKIP

odpowiedni patch pobierzesz tutaj: hostapd.diff

Zmiany dodaj? do pliku konfiguracyjnego /var/run/hostapd-phy0.conf nast?puj?ce opcje:

macaddr_acl=1
accept_mac_file=/var/run/hostapd-phy0-wlan0-mac.allow

b?d?

macaddr_acl=0
deny_mac_file=/var/run/hostapd-phy0-wlan1-mac.deny



Najaktualniejsz? wersj? tego dokumentu znajdziesz zawsze pod adresem http://rpc.one.pl

 
Share
designed by digi-led.pl
góra
...Copyright © 2010-2013, Ekipa openrouter.info