Я хочу попытаться блокировать Facebook на своей машине.
Я начал использовать/etc/hosts, но это не ловит все субдомены, таким образом, я провел некоторое исследование и нашел это (и много аналогичных решений), которые приводят к этому оператору
/usr/bin/whois -h whois.radb.net '!gAS32934' | head -n -1 | tail -n -1 | /usr/bin/xargs --max-args=1 | /usr/bin/xargs -I {} --max-args=1 iptables -A OUTPUT -d {} -j REJECT
[редактирование], что я делаю здесь, который я сначала использую
whois -h whois.radb.net '!gAS32934'
получить все диапазоны IP, зарегистрированные Facebook, как предложенный этим artice. Затем я делаю некоторую обрезку, для удаления нежелательных символов вначале и конца результата. Это дает мне список диапазонов IP, разделенных пробелами. Используя xarg, я затем разделяю эти диапазоны IP и сборку, для каждого диапазона IP, оператора как
iptables -A OUTPUT -d {} -j REJECT
где {}
заменяется фактическим диапазоном. Я использую REJECT
, нет DROP
с тех пор 1. это намного быстрее 2. так как я на самом деле хочу запретить соединение, это кажется правильным мне. [/редактирование]
теперь, если я пробую ping facebook.com
Я добираюсь
From myname (xxx.xxx.xxx.xxx) icmp_seq=1 Destination Port Unreachable
который является точно, что я ожидаю. Но если я использую свой браузер (Firefox) для открытия facebook.com, сайт все еще открывается, который не является тем, что я ожидаю. Я пытался перезагрузить и открыть другой домен Facebook (facebook.de), который я не попробовал, прежде для исключения проблем с кэшем браузера но это не помогло.
Так как я часто вижу DROP
вместо REJECT
Я попробовал это также, но это не изменило результат.
Вопрос теперь, почему браузер может загрузить веб-страницу, если соответствующий IP заблокирован? Как браузер может пройти, если ping заблокирован? Это очевидно, что я пропускаю что-то, но я не могу выяснить, каково это.
Получите IP хоста:
host -t a facebook.com
Найдите CIDR
whois 173.252.120.68 | grep CIDR
И подсеть блока
iptables -A OUTPUT -p tcp -d 173.252.120.68/18 -j DROP
и домены блока:
iptables -A OUTPUT -p tcp -d www.fаcebook.com -j DROP
iptables -A OUTPUT -p tcp -d fаcebook.com -j DROP