Как автоматически ограничить доступ к определенным доменам в рабочее время

Я знаю о приложении SelfControl, но его нужно запускать каждый раз и устанавливать часы блока.

Я хочу, например, запретить загрузку определенных сайтов в рабочее время, но сделать это возможным во время отдыха. Я хочу установить его один раз и забыть. Он должен переключаться автоматически каждый день.

Что может быть проще, если учесть, что я супер новичок.

0
задан 28 January 2014 в 15:19

2 ответа

Я бы порекомендовал вам взглянуть на что-то вроде Dansguardian:

http://dansguardian.org/

Документация довольно хорошая и есть некоторые ресурсы вовремя на основе ограничений просмотра.

0
ответ дан 28 January 2014 в 15:19

Мы будем использовать комбинацию Iptables, Bash Scripting и Cron для достижения этой цели.

Iptables

Команда Iptables для блокировки домена выглядит следующим образом:

iptables -I INPUT -p tcp --dport 80 -m string --string "Host: yourdomain.com" --algo bm -j DROP

Аналогично, команда разблокировки выглядит так:

iptables -I INPUT -p tcp --dport 80 -m string --string "Host: yourdomain.com" --algo bm -j ACCEPT

Bash Scripts

Создайте файл, скажем, block.sh, в котором вы определяете правила Iptables для блокировки исходящих соединений, домены, которые вы хотите заблокировать, и обратный сценарий, чтобы разблокировать их.

#! /usr/bin/env bash
iptables -I INPUT -p tcp --dport 80 -m string --string "Host: yourdomain.com" --algo bm -j DROP
# other stuff you want to do when you block a domain
# add blocking commands for each domain here

Запустите chmod +x block.sh, чтобы сделать сценарий исполняемым. Теперь вы можете запустить его как /path/to/file/block.sh.

Таким образом, у вас будет два сценария, например:

  1. /path/to/block.sh
  2. /path/to/unblock.sh

Cron

Теперь добавьте запись в crontab для запуска ваших сценариев следующим образом:

Run crontab-e. При первом запуске он попросит вас настроить текстовый редактор. Используйте nano, если вы не уверены.

Добавьте эти строки в конец файла:

0 9 * * * /path/to/block.sh
0 17 * * * /path/to/unblock.sh

Сохраните файл с помощью CTRL+O, нажмите ENTER, а затем, CTRL+X, чтобы выйти.

Теперь, каждый день в 9 часов утра первый скрипт блокирует все домены, а в 5 часов вечера второй скрипт разблокирует их обратно.

0
ответ дан 28 January 2014 в 15:19

Другие вопросы по тегам:

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