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

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

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

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

2 ответа

Для этого мы будем использовать комбинацию 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

Сделайте файл, скажем, 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 для запуска ваших скриптов, например:

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

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

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

Сохраните файл с CTRL+O, Нажмите ENTER а потом, CTRL+X выходить.

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

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

http://dansguardian.org/

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

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