Блокировка веб-сайтов по дням и часам с использованием Iptables в OpenWRT

Проблема заключалась в --efi-directory, это должно быть то же самое, что и grub-mkconfig

arch-root /mnt
grub-install --efi-directory=boot /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg
mkinitcpio -p linux

. Решено.

2
22.02.2016, 05:17
3 ответа

Вы можете создать несколько скриптов .sh, которые будут выполняться с помощью crontab. в crontab :

00 9 * * *  /somedir/blockfun.sh
00 18 * * * /somedir/unblockfun.sh

и добавьте в blockfun.sh что-то вроде этого: iptables -A INPUT -m string --string "facebook.com" --algo kmp --to 65535 -j DROP , или как вы предпочитаете блокировать URL

и, конечно, удалите это правило в unblock.sh

1
27.01.2020, 21:54

Возможно, вы пытаетесь использовать часы местного времени, а ядро, при использовании time модуля iptables, предполагает, что даты и время указаны в UTC.

Цитируя мою страницу руководства iptables о -m time:

   time
       This matches if the packet arrival time/date is within a given range.
       All options are optional, but are ANDed when specified. All times are
       interpreted as UTC by default.
2
27.01.2020, 21:54

Полагаю, вы имеете в виду этот и тот вопрос, когда речь идет о фактической блокировке Facebook.

Есть две вещи, которые там не обсуждаются.

  1. Предполагать, что каждый пакет, направляющийся в Facebook, содержит строку www.facebook.com - это слишком долго. Обратите внимание, что в связанных вопросах используется только строка facebook.com. Не самый лучший подход, но это, кажется, общественно приемлемый метод блокировки facebook, так что вы можете сделать это.

  2. После разрешения доменного имени, которое ваше правило не блокирует, ваш компьютер открывает TCP-соединение с Facebook. TCP квитирование не содержит строки www.facebook.com и поэтому ваше правило не препятствует этому. После этого весь трафик просто принимается каким-то правилом -m state --state related,established -j ACCEPT, которое у вас, скорее всего, есть.

    Следующий sceenshot показывает мою (по умолчанию) таблицу фильтров OpenWRT, где хорошо видно, что для любой цепочки вторым правилом является упомянутое related,established правило. В сочетании с успешным TCP квитированием, ваше правило никогда не оценивается для любого трафика данных к и от Facebook.

    Вам придется ввести свое правило перед этим общим -j ACCEPT.

    OpenWRT INPUT, FORWARD and OUTPUT chains of the filter table

2
27.01.2020, 21:54

Теги

Похожие вопросы