2

Я хочу заблокировать каждый сайт в сети stackexchange (поскольку я часто трачу на них много времени). Как мне это сделать?

Одно из решений - это, очевидно, записать все записи сайтов вручную в файл hosts, но есть ли лучшее решение?

Обратите внимание, что просто блокировка на регулярном выражении *.stackexchange.com не будет работать, так как многие веб-сайты имеют уникальные имена, такие как superuser и askubuntu .

Я использую Ubuntu 16.04.

Редактировать:

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

Пожалуйста, напишите причину отрицательных голосов в комментариях, чтобы я мог действовать в соответствии с этим!

1 ответ1

6

Во-первых, если потратить время на обмен стеками, это вряд ли трата времени. Либо вы получаете ответы на вопросы, которые вы задаете, либо помогаете другим пользователям. Никто из моих знакомых не считает, что ни самообразование, ни помощь своему мужчине / женщине не требуют времени.

Во-вторых, с репутацией 121, я сомневаюсь, что вы потратили часть времени здесь, как и я, с репутацией 5000 и считая.

Whois показывает это, поэтому блокируйте этот диапазон, и вы не получите его. Если ваш брандмауэр поддерживает нотацию CIDR, единственная строка ниже заблокирует все это.

NetRange:       151.101.0.0 - 151.101.255.255
CIDR:           151.101.0.0/16

Команда для блокировки доступа к этому диапазону IP:

iptables -I OUTPUT 1 -d 151.101.0.0/16 -j DROP

Вам придется сохранить конфигурацию iptables, иначе при перезагрузке она будет потеряна. Я не знаю, есть ли в Ubuntu автоматическое оборудование для этого.

iptables-save ><somewhere>/iptables.save
iptables-restore <<somewhere>/iptables.save

при использовании systemd создайте файл с именем iptables.service в /etc /systemd /system /

[Unit]
Description=IPtables load rules
DefaultDependencies=no
After=ipset.service network-pre.target
Before=network-online.target network.target

[Service]
Type=oneshot
ExecStartPre=-/bin/echo 'Starting iptables'
ExecStart=/usr/sbin/iptables-restore <somewhere>/iptables.save
ExecReload=/usr/sbin/iptables-restore <somewhere>/iptables.save
ExecStop=/usr/lib/systemd/scripts/iptables -flush
RemainAfterExit=yes
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_RAW

[Install]
WantedBy=basic.target

затем systemctl включить iptables

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .