151

Odp: Luci- blokada dostępu do internetu w określonym czasie

w timequotas-clean.sh mam dwa hosty. tak to wygląda:

#!/bin/sh
    
    HOST1="AC:FD:CE:EA:73:7E"
    HOST="B8:3B:CC:51:95:6B"
    echo 0 > /tmp/timequota-$HOST
    uci set firewall.mac${HOST//:/}.enabled=0
    uci set firewall.mac${HOST1/:/}.enabled=0
    uci commit firewall
    /etc/init.d/firewall restart
    exit 0

152

Odp: Luci- blokada dostępu do internetu w określonym czasie

uci: Invalid argument oznacza tyle że nie ma w firewallu sekcji którą próbowałeś obdblokować. Więc coś ci nie działa, bo miałeś blokować dwa jednocześnie.

PS. Jak blokujesz 30:AB:6A:4C:13:54 a odblokowujesz coś innego to się nie dziw że masz taki komnunikat. We wszystkim masz mieć te same adresy MAC.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

153 (edytowany przez marek445 2023-11-17 19:25:45)

Odp: Luci- blokada dostępu do internetu w określonym czasie

Nie nie to nie jest tak, zmieniłem teraz i w timequota.sh adres mac i w timequotas-clean.sh na mac AC:FD:CE:EA:73:7E
Mam jeszcze jednpo pytanie w takiej konfiguracji jak mam teraz to w  /tmp powinienem mieć dwa pliki z dwoma adresami mac? bo ja właśnie tak mam. Tylko w jednym pliku czas leci a w drugim jest caly czas 0.

154

Odp: Luci- blokada dostępu do internetu w określonym czasie

Ja nie widzę co zmieniasz, raz pokazujesz jedno a raz drugie. Więc nie wiem jak ktoś jest w stanie pomóc jak to robisz i nie nie piszesz o tym tylko rzucasz tekst że nie działa.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

155

Odp: Luci- blokada dostępu do internetu w określonym czasie

Ok mam tak:
timequotas.sh

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

    # limit w minutach
    LIMIT=160

    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

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

timequotas-clean.sh

#!/bin/sh
    
    HOST1="AC:FD:CE:EA:73:7E"
    HOST="B8:3B:CC:51:95:6B"
    echo 0 > /tmp/timequota-$HOST
    uci set firewall.mac${HOST//:/}.enabled=0
    uci set firewall.mac${HOST1//:/}.enabled=0
    uci commit firewall
    /etc/init.d/firewall restart
    exit 0

Blokada działa ale w /tmp mam dwa pliki timequotas z adresami mac tymi co są wpisane w skrypt. Na timequotas-B8:3B:CC:51:95:6B licznik leci do przodu a na timequotas-AC:FD:CE:EA:73:7E licznik nie leci jest cały czas 0.

156

Odp: Luci- blokada dostępu do internetu w określonym czasie

I tak ma być. Wg tego co zrobiłeś jest tylko jeden licznik używany globalnie i jest to właśnie ten w timequotas-B8:3B:CC:51:95:6B. Ten drugi plik z AC... w ogóle nie powinien zaistnieć, więc coś kombinowałeś skoro jest.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

157 (edytowany przez marek445 2023-11-17 19:41:59)

Odp: Luci- blokada dostępu do internetu w określonym czasie

Właśnie go usunąłem i narazie się nie odbudowywuje. tylko mnie zastanawia jak wpisze: /usr/bin/timequota-clean.sh  to wyskakuje coś takiego:

root@OpenWrt:~# /usr/bin/timequotas-clean.sh
uci: Invalid argument
Section macB83BCC51956B is disabled, ignoring section

I teraz mnie ciekawi czy obydwa urządzenia bedą miały neta po 24-tej

MOże w timequota-clean.sh nie powinno być tego: uci set firewall.mac${HOST1//:/}.enabled=0

158

Odp: Luci- blokada dostępu do internetu w określonym czasie

Ale napisałem ci to już. Skrypt który masz odblokowuje OBA adresy mac. Jeżeli nie miałeś w firewallu jednego z nich bo tylko jeden był zablokowany to oczywiście nie odblokujesz czegoś czego nie zablokowałeś i nie masz reguły do tego. To nie jest oczywiste?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

159

Odp: Luci- blokada dostępu do internetu w określonym czasie

To w takim razie skrypt timequotas.sh nie tworzy regulek w firewollu dla HOST1 bo w /etc/config/firewall nie mam do tego HOST1 regulek

160

Odp: Luci- blokada dostępu do internetu w określonym czasie

Podłącz się jednym klientem, uruchom sobie skrypt i zobacz czy zrobił obie regułki w firewallu. Jeżeli uruchomisz skrypt ręcznie a coś będzie nie tak to to wypisze.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

161

Odp: Luci- blokada dostępu do internetu w określonym czasie

nie tworzy żadnej regułki a w skryptach nic nie przestawiałem nie kąbinowałem jest wszystko tak jak wyżej. Uruchomiłem skrypt ręcznie wpisałem w ssh /usr/bin/timequotas.sh Nic mi nie wypisało żadnych błedów.

162

Odp: Luci- blokada dostępu do internetu w określonym czasie

A podłączyłeś się najpierw do wifi tym czymś żeby widział podłączonego? Podłącz się i pokaż  wynik

sh -x /usr/bin/timequotas.sh

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

163

Odp: Luci- blokada dostępu do internetu w określonym czasie

root@OpenWrt:~# sh -x /usr/bin/timequotas.sh
+ HOST=B8:3B:CC:51:95:6B
+ HOST1=AC:FD:CE:EA:73:7E
+ LIMIT=160
+ F=/tmp/timequota-B8:3B:CC:51:95:6B
+ '[' -e /tmp/timequota-B8:3B:CC:51:95:6B ]
+ cat /tmp/timequota-B8:3B:CC:51:95:6B
+ USEDTIME=8
+ iw dev phy0-ap0 station dump
+ grep -i -A 1 B8:3B:CC:51:95:6B
+ awk '/inactive time/{print $3}'
+ T=
+ '[' -z  ]
+ iw dev phy1-ap0 station dump
+ grep -i -A 1 B8:3B:CC:51:95:6B
+ awk '/inactive time/{print $3}'
+ T=
+ '[' -z  ]
+ iw dev phy2-ap0 station dump
+ grep -i -A 1 B8:3B:CC:51:95:6B
+ awk '/inactive time/{print $3}'
+ T=1470
+ '[' -z 1470 ]
+ '[' -z 1470 ]
+ '[' -z 1470 ]
+ '[' -z 1470 ]
+ '[' -z 1470 ]
+ '[' -z 1470 ]
+ '[' 1470 -lt 60000 ]
+ USEDTIME=9
+ echo 9
+ '[' 9 -gt 160 ]
+ uci commit firewall
+ /etc/init.d/firewall restart
+ exit 0
root@OpenWrt:~#

164

Odp: Luci- blokada dostępu do internetu w określonym czasie

Ale to dopiero 9 minuta a masz 160. Nie robi przecież blokady.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

165

Odp: Luci- blokada dostępu do internetu w określonym czasie

OK to nic nie robię zobaczymy co będzie po upływie tego czasu.

166

Odp: Luci- blokada dostępu do internetu w określonym czasie

Możesz sobie limit zmienić na 8, uruchomić jeszcze raz to już powinno to złapać.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

167

Odp: Luci- blokada dostępu do internetu w określonym czasie

Działa!! Właśnie syn wyszedł z krzykiem z pokoju że mu internet nie działa ani na telefonie ani na kompie.

168

Odp: Luci- blokada dostępu do internetu w określonym czasie

Zobaczymy czy licznik się wyzeruje po 24-tej. Dzięki Cezary bez Ciebie bym się meczył albo w ogóle bym tego nie zrobił. Należy Ci się dobre piwko.

169 (edytowany przez Focus 2023-11-17 22:14:45)

Odp: Luci- blokada dostępu do internetu w określonym czasie

To będzie działać dopóki Twój syn nie wciśnie magicznego guzika od resetu :-)
A na Androidzie idzie zrobić, że adres MAC jest losowany i blokada po MAC-u odpada.
Jak to już nastolatek to za miesiąc będziesz znowu walczył z blokadami, bo już będzie wiedział jak to obejść  :-)

170

Odp: Luci- blokada dostępu do internetu w określonym czasie

Wiem o tym wszystkim i wiem że na wszystko jest sposób tylko trzeba pomyśleć i pewne kwestie zrozumieć.