Posted: Fri Jun 09, 2017 8:17 Post subject: Re: Cron блокировка по времени
crusaders wrote:
Всем привет. Нужна небольшая помощь.
В админке dd-wrt добавил в cron такое правило
*/2 * * * * root /usr/sbin/iptables -I FORWARD -s 0.0.0.0/0 -m mac --mac-source "mac" -j DROP
*/1 * * * * root /usr/sbin/iptables -D FORWARD -s 0.0.0.0/0 -m mac --mac-source "mac" -j DROP
Ну как и положено минуту инет не работает, а минуту работает.
Как правильно составить правильно, чтобы 10 минут не работал, а 8 работал и так по кругу?
Потому что если сделать */10 и */8 , то с каждым разом будет работать 2, потом 4, потом 6,8 и опять 2,4,6,8.
Нужно именно, чтобы 10 не работал, а 2 минуты работал.
На вскидку все делаете в одном файле, дергаете его через интервал 2 минуты ( */2 ), в нем есть переменная которая сохраняете в файле, при каждом дерганье +1 к ней = 1+1+1+1+1+1=6 на шестом дерганье будет 10минута.
Не понятно зачем это, может есть другие варианты для реализации, например DHCP сроком на 2 минуты или еще пару.
Как правильно составить правильно, чтобы 10 минут не работал, а 8 работал и так по кругу?
Нужно именно, чтобы 10 не работал, а 2 минуты работал.
Так все таки нужно чтоб работал 8 или 2 ?
если 2 то скрипт примерно такой:
#! /bin/sh
/usr/sbin/iptables -I FORWARD -s 0.0.0.0/0 -m mac --mac-source "mac" -j DROP
sleep 120
/usr/sbin/iptables -D FORWARD -s 0.0.0.0/0 -m mac --mac-source "mac" -j DROP
и вызываете его кроном 5 раз в час, те:
*/12 * * * * root /tmp/bla-bla.sh
те чтоб 60 минут ровно делилось на период.
Если нет, то можно два скрипта по кругу:
#! /bin/sh
/usr/sbin/iptables -I FORWARD -s 0.0.0.0/0 -m mac --mac-source "mac" -j DROP
sleep 480
/tmp/off.sh
#! /bin/sh
/usr/sbin/iptables -D FORWARD -s 0.0.0.0/0 -m mac --mac-source "mac" -j DROP
sleep 600
/tmp/on.sh
один вызываем по старту после их создания и пойдет бесконечный цикл.
А можете написать как должно это выглядеть сам скрипт и что куда прописывать?
первое для MAC лучше использовать ebtables, трафик проверяется раньше чем iptables. например прикрыть клиента
ebtables -A FORWARD -s 00:11:22:33:44:55 -j DROP
или в обе стороны отдельно
Code:
ebtables -A FORWARD -s 00:11:22:33:44:55 -j ACCEPT
ebtables -A FORWARD -d 00:11:22:33:44:55 -j ACCEPT