Jeszcze jest coś nie tak bo cały czas siedzi na kompie

#!/bin/sh
    HOST="AC:FD:CE:EA:73:7E"
    HOST1="B8:3B:CC:51:95:6B" 

    # limit w minutach
    LIMIT=5

    F=/tmp/timequota-$HOST
    if [ -e $F ]; then
        USEDTIME=$(cat $F)
    else
        USEDTIME=0
    fi

    T=$(iw dev phy0-ap0 station dump | grep -i -A 1 $HOST | awk '/inactive time/{print $3}')
    [ -z "$T" ] && T=$(iw dev phy1-ap0 station dump | grep -i -A 1 $HOST | awk '/inactive time/{print $3}')
    [ -z "$T" ] && T=$(iw dev phy2-ap0 station dump | grep -i -A 1 $HOST | awk '/inactive time/{print $3}')
    [ -z "$T" ] && T=$(iw dev phy3-ap0 station dump | grep -i -A 1 $HOST | awk '/inactive time/{print $3}')

    [ -z "$T" ] && T=$(iw dev phy0-ap0 station dump | grep -i -A 1 $HOST1 | awk '/inactive time/{print $3}')
    [ -z "$T" ] && T=$(iw dev phy1-ap0 station dump | grep -i -A 1 $HOST1 | awk '/inactive time/{print $3}')
    [ -z "$T" ] && T=$(iw dev phy2-ap0 station dump | grep -i -A 1 $HOST1 | awk '/inactive time/{print $3}')
    [ -z "$T" ] && T=$(iw dev phy3-ap0 station dump | grep -i -A 1 $HOST1 | awk '/inactive time/{print $3}')


    [ -z "$T" ] && exit 0
    if [ $T -lt 60000 ]; then
        USEDTIME=$((USEDTIME + 1))
        echo $USEDTIME > $F
    fi
    if [ $USEDTIME -gt $LIMIT ]; then
        if [ "x$(uci -q get firewall.mac${HOST//:/}.enabled)" != "x1" ]; then 
            uci set firewall.mac${HOST//:/}=rule
            uci set firewall.mac${HOST//:/}.src='lan'
            uci set firewall.mac${HOST//:/}.dest='wan'
            uci set firewall.mac${HOST//:/}.src_mac=$HOST
            uci set firewall.mac${HOST//:/}.target='REJECT'
            uci set firewall.mac${HOST//:/}.enabled=1
        fi
        if [ "x$(uci -q get firewall.mac${HOST1//:/}.enabled)" != "x1" ]; then 
            uci set firewall.mac${HOST1//:/}=rule
            uci set firewall.mac${HOST1//:/}.src='lan'
            uci set firewall.mac${HOST1//:/}.dest='wan'
            uci set firewall.mac${HOST1//:/}.src_mac=$HOST1
            uci set firewall.mac${HOST1//:/}.target='REJECT'
            uci set firewall.mac${HOST1//:/}.enabled=1


            uci commit firewall
            /etc/init.d/firewall restart
        fi
    fi
    exit 0

Dokładnie o to mi chodzi, że nie ważne które urządzenie jest połączone z wifi to zużywa czas

To też jest jakieś rozwiązanie.

Czy dobrze dodałem drugiego HOSTA?

#!/bin/sh
    HOST="AC:FD:CE:EA:73:7E"
    HOST1="B8:3B:CC:51:95:6B" 

    # limit w minutach
    LIMIT=5

    F=/tmp/timequota-$HOST
    if [ -e $F ]; then
        USEDTIME=$(cat $F)
    else
        USEDTIME=0
    fi

    T=$(iw dev phy0-ap0 station dump | grep -i -A 1 $HOST | awk '/inactive time/{print $3}')
    [ -z "$T" ] && T=$(iw dev phy1-ap0 station dump | grep -i -A 1 $HOST | awk '/inactive time/{print $3}')
    [ -z "$T" ] && T=$(iw dev phy2-ap0 station dump | grep -i -A 1 $HOST | awk '/inactive time/{print $3}')
    [ -z "$T" ] && T=$(iw dev phy3-ap0 station dump | grep -i -A 1 $HOST | awk '/inactive time/{print $3}')

    [ -z "$T" ] && T=$(iw dev phy0-ap0 station dump | grep -i -A 1 $HOST1 | awk '/inactive time/{print $3}')
    [ -z "$T" ] && T=$(iw dev phy1-ap0 station dump | grep -i -A 1 $HOST1 | awk '/inactive time/{print $3}')
    [ -z "$T" ] && T=$(iw dev phy2-ap0 station dump | grep -i -A 1 $HOST1 | awk '/inactive time/{print $3}')
    [ -z "$T" ] && T=$(iw dev phy3-ap0 station dump | grep -i -A 1 $HOST1 | awk '/inactive time/{print $3}')


    [ -z "$T" ] && exit 0
    if [ $T -lt 60000 ]; then
        USEDTIME=$((USEDTIME + 1))
        echo $USEDTIME > $F
    fi
    if [ $USEDTIME -gt $LIMIT ]; then
        if [ "x$(uci -q get firewall.mac${HOST//:/}.enabled)" != "x1" ]; then 
            uci set firewall.mac${HOST//:/}=rule
            uci set firewall.mac${HOST//:/}.src='lan'
            uci set firewall.mac${HOST//:/}.dest='wan'
            uci set firewall.mac${HOST//:/}.src_mac=$HOST
            uci set firewall.mac${HOST//:/}.target='REJECT'
            uci set firewall.mac${HOST//:/}.enabled=1

       [ "x$(uci -q get firewall.mac${HOST1//:/}.enabled)" != "x1" ]; then 
            uci set firewall.mac${HOST1//:/}=rule
            uci set firewall.mac${HOST1//:/}.src='lan'
            uci set firewall.mac${HOST1//:/}.dest='wan'
            uci set firewall.mac${HOST1//:/}.src_mac=$HOST1
            uci set firewall.mac${HOST1//:/}.target='REJECT'
            uci set firewall.mac${HOST1//:/}.enabled=1


            uci commit firewall
            /etc/init.d/firewall restart
        fi
    fi
    exit 0

Jakieś rozwiązania są, ale jak będzie bystry to to obejdzie szerokim łukiem

Prawda. to najlepiej dopisać do skryptu jeszcze dwa HOSTY te na których ssidach go wpuszcza?

Tak tylko  jak się połączy z innym sidem to łączy się z innego adresu mac i go wpuszcza? Tak myślę żeby ustawić mu statyczny adres ip i go blokować po adresie ip

A jak przypisze mu w dohcp statyczną dzierżawe adresu ip oczywiście bez czasu dzierżawy?

Masz rację jak się połączyłem z innym ssidem to mam inny adres mac. Można to zrobić po adresie ip?

br-lan    Link encap:Ethernet  HWaddr 64:64:4A:A0:7C:D8
          inet addr:192.168.2.1  Bcast:192.168.2.255  Mask:255.255.255.0
          inet6 addr: fdab:33ac:3ac9::1/60 Scope:Global
          inet6 addr: fe80::6664:4aff:fea0:7cd8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:330567 errors:0 dropped:21 overruns:0 frame:0
          TX packets:728232 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:24366281 (23.2 MiB)  TX bytes:800196054 (763.1 MiB)

lan1      Link encap:Ethernet  HWaddr 64:64:4A:A0:7C:D8
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1446 errors:0 dropped:5 overruns:0 frame:0
          TX packets:4666 errors:0 dropped:0 overruns:0 carrier:0
          collisions:96 txqueuelen:1000
          RX bytes:240791 (235.1 KiB)  TX bytes:736067 (718.8 KiB)
          Base address:0x1600

lan2      Link encap:Ethernet  HWaddr 64:64:4A:A0:7C:D8
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Base address:0x1400

lan3      Link encap:Ethernet  HWaddr 64:64:4A:A0:7C:D8
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Base address:0x1200

lan4      Link encap:Ethernet  HWaddr 64:64:4A:A0:7C:D8
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Base address:0x1000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:916 errors:0 dropped:0 overruns:0 frame:0
          TX packets:916 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:80732 (78.8 KiB)  TX bytes:80732 (78.8 KiB)

phy0-ap0  Link encap:Ethernet  HWaddr 64:64:4A:A0:7C:DC
          inet6 addr: fe80::6664:4aff:fea0:7cdc/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3722 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:424863 (414.9 KiB)

phy1-ap0  Link encap:Ethernet  HWaddr 64:64:4A:A0:7C:D9
          inet6 addr: fe80::6664:4aff:fea0:7cd9/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:7515 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16366 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1302784 (1.2 MiB)  TX bytes:10299477 (9.8 MiB)

phy2-ap0  Link encap:Ethernet  HWaddr 64:64:4A:A0:7C:DA
          inet6 addr: fe80::6664:4aff:fea0:7cda/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:320542 errors:0 dropped:0 overruns:0 frame:0
          TX packets:713189 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:27149817 (25.8 MiB)  TX bytes:801776663 (764.6 MiB)

phy3-ap0  Link encap:Ethernet  HWaddr 64:64:4A:A0:7C:DB
          inet6 addr: fe80::6664:4aff:fea0:7cdb/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2292 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6416 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:378803 (369.9 KiB)  TX bytes:2842802 (2.7 MiB)

wan       Link encap:Ethernet  HWaddr 64:64:4A:59:5A:68
          inet addr:192.168.1.2  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::6664:4aff:fe59:5a68/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:729079 errors:0 dropped:3812 overruns:0 frame:0
          TX packets:327960 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:801722473 (764.5 MiB)  TX bytes:30265078 (28.8 MiB)
          Base address:0x1800

Dodałem kod ale niestety dalej jest tak samo. Jedno radio blokuje a pozostałe dwa działają i można korzystać z internetu.

Oto skrypt z dopisanymi kodami radii.

#!/bin/sh
    HOST="02:8C:52:FB:7C:84"

    # limit w minutach
    LIMIT=5

    F=/tmp/timequota-$HOST
    if [ -e $F ]; then
        USEDTIME=$(cat $F)
    else
        USEDTIME=0
    fi

    T=$(iw dev phy0-ap0 station dump | grep -i -A 1 $HOST | awk '/inactive time/{print $3}')
    [ -z "$T" ] && T=$(iw dev phy1-ap0 station dump | grep -i -A 1 $HOST | awk '/inactive time/{print $3}')
    [ -z "$T" ] && T=$(iw dev phy2-ap0 station dump | grep -i -A 1 $HOST | awk '/inactive time/{print $3}')
    [ -z "$T" ] && T=$(iw dev phy3-ap0 station dump | grep -i -A 1 $HOST | awk '/inactive time/{print $3}')
    [ -z "$T" ] && exit 0
    if [ $T -lt 60000 ]; then
        USEDTIME=$((USEDTIME + 1))
        echo $USEDTIME > $F
    fi
    if [ $USEDTIME -gt $LIMIT ]; then
        if [ "x$(uci -q get firewall.mac${HOST//:/}.enabled)" != "x1" ]; then 
            uci set firewall.mac${HOST//:/}=rule
            uci set firewall.mac${HOST//:/}.src='lan'
            uci set firewall.mac${HOST//:/}.dest='wan'
            uci set firewall.mac${HOST//:/}.src_mac=$HOST
            uci set firewall.mac${HOST//:/}.target='REJECT'
            uci set firewall.mac${HOST//:/}.enabled=1
            uci commit firewall
            /etc/init.d/firewall restart
        fi
    fi
    exit 0

Blokada działa super, tylko znowu jak się polacze z innym radiem to mogę normalnie korzystać z neta. W swoim routerze mam 4 radia z różnymi ssidami. I jak mi zablokuje to przełączam się na inny ssid i normalnie mogę korzystać z neta

Będę kąbinował dzisiaj wieczorem. Najpierw sprawdzę czy działa z jednym hostem, później spróbuję dodać drugiego hosta. Ogólnie chce uzyskać taki efekt żeby dwa urządzenia ( komputer i smartfon ) były blokowane tym samym skryptem. Chodzi mi o to żeby telefon i komputer były zablokowane po upływie zadanego czasu, nie ważne na jakim urządzeniu ten czas został wykorzystany.

Dzięki Cezary, jesteś wielki. Jak dzisiaj wrócę do domu to będę testował. A mogę dopisać drugiego hosta do tego skryptu, czy muszę osobny skrypt utworzyć?

Cezary napisał/a:

Przecież ci napisałem - zamiast jawnie wołać iptables robisz regułki przez uci i przeładowywujesz firewalla. Jak to będziesz zapisywał to jak zrestartujesz router to przecież regułki zostaną.

To jest openwrt w którym jak czegoś nie ma to musisz sobie zrobić. Ta ideologia nie ma nic wspólnego że jakiś soft producenta dowolnego routera ma coś w standardzie i można sobie to łatwo wykilkać. Więc jakiekolwiek porównywanie do tego czy fritzbox coś miał czy nie mija się z celem. To tak jak byś narzekał że skoda którą masz obecnie nie ma podgrzewanych foteli a ford który miałeś poprzednio miał. No innych sprzęt po prostu.

Witam ponownie. Jestem świerzakiem i nie mam w ogóle obycia z openwrt. Nie mogę sobie poradzić jak to zrobić przez UCI. Czytałem dużo na innych forach, stronach żeby się wdrożyć i zaczerpnąć wiedzy na ten temat, ale nie mogłem nic znaleźć.Też nie mam za bardzo czasu na szukanie z powodu wykonywanej przeze mnie pracy. Na ten czas router z openwrt leży odłączony bo dzieciaki pod moją nieobecność szalałyby w internecie zamiast się uczyć. Nie ukrywam że bardzo mi zależy na takiej opcji blokowania w openwrt.

Wszystko rozumiem. Wiem że openwrt ma nieskończoność możliwości, ale nie wiem czy sobie poradzę. Dziecko dla mnie jest najważniejsze a siedzi praktycznie cały dzień na kompie i to du późna w nocy.

A może jest coś takiego we wtyczce parental controls?

Czytałem już to wcześniej. Mam openwrt 23.05 więc odpada a druga sprawa to że po restarcie routera trzeba od nowa to ustawiać albo kopiować plik z konfiguracją. Wiesz może jak to zrobić w openwrt 23.05?
Wcześniej miałem fritzboxa tam jeśli chodzi o kontrolę rodzicielskaą to wszystko można było ładnie sobie skonfigurować

Witam, czy jest możliwość blokowania danego urządzenia np. po wykorzystaniu  3 h na dobę  z polaczenia? Chidzi mi że dziecko siedzi 3 h ipo tym czasie blokuje mu dostęp do internetu, a na następny dzień ma znowu do wykorzystania 3 h. Nie od godziny którejś do którejś.

44

(146 odpowiedzi, napisanych Sprzęt / Hardware)

Witam. Już wszystko ruszyło, wszystkie radia są w górze i z każdym mogę się połączyć. Musiałem przywrócić ustawienia fabryczne i od początku wygenerować plik i go rozpakować na routerze. Jak na razie wszystko pięknie chodzi. Dziękuję za pomoc. Pozdrawiam Marek.

45

(146 odpowiedzi, napisanych Sprzęt / Hardware)

Plik sie wygenerował poprawnie. Podmieniłem ten plik ręcznie i zadziałało. mogę się połączyć z radiem3 ale nie mogę uruchomić teraz radia1. W edycji radia1 nie mogę wybrać kanału i radio jest cały czas wyłączone.

46

(146 odpowiedzi, napisanych Sprzęt / Hardware)

Niestety ani na 80Mhz ani 40Mhz  nie mogę się połączyć.

47

(146 odpowiedzi, napisanych Sprzęt / Hardware)

a może mam za stary sprzęt chodzi mi o komputer telefon itd. ?

48

(146 odpowiedzi, napisanych Sprzęt / Hardware)

miałem przed generowaniem pliku do radia3 miałem włączone wszystkie radia. znajdowało mi radio3 widziałem nazwę sidd ale nie mogłem się z nią połączyć. myślałem żę jak wygeneruje ten plik i go podmienię to normalnie się z tym radiem połączę ale nie dało rady.

49

(146 odpowiedzi, napisanych Sprzęt / Hardware)

Po przywróceniu ustawień plik wireless wygląda tak:

config wifi-device 'radio0'
    option type 'mac80211'
    option path 'soc/10000000.pci/pci0001:00/0001:00:00.0/0001:01:00.0'
    option channel '36'
    option band '5g'
    option htmode 'VHT80'
    option disabled '1'
    option country 'PL'

config wifi-iface 'default_radio0'
    option device 'radio0'
    option network 'lan'
    option mode 'ap'
    option ssid 'OpenWrt'
    option encryption 'none'

config wifi-device 'radio1'
    option type 'mac80211'
    option path 'platform/soc/c000000.wifi'
    option channel '149'
    option band '5g'
    option htmode 'HE80'
    option disabled '1'
    option country 'PL'

config wifi-iface 'default_radio1'
    option device 'radio1'
    option network 'lan'
    option mode 'ap'
    option ssid 'OpenWrt'
    option encryption 'none'

config wifi-device 'radio2'
    option type 'mac80211'
    option path 'platform/soc/c000000.wifi+1'
    option channel '1'
    option band '2g'
    option htmode 'HE20'
    option disabled '1'
    option country 'PL'

config wifi-iface 'default_radio2'
    option device 'radio2'
    option network 'lan'
    option mode 'ap'
    option ssid 'OpenWrt'
    option encryption 'none'

config wifi-device 'radio3'
    option type 'mac80211'
    option path 'soc/20000000.pci/pci0000:00/0000:00:00.0/0000:01:00.0'
    option channel '36'
    option band '5g'
    option htmode 'HE80'
    option disabled '1'
    option country 'PL'

config wifi-iface 'default_radio3'
    option device 'radio3'
    option network 'lan'
    option mode 'ap'
    option ssid 'OpenWrt'
    option encryption 'none'

50

(146 odpowiedzi, napisanych Sprzęt / Hardware)

To przywrócić ustawienia fabryczne i od nowa próbować ? Czy to nic nie da i od nowa będę musiał wgrywać firmware ?