Как заблокировать фейсбук
Я хочу попробовать заблокировать 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-диапазоны, зарегистрированные на фейсбуке, как это предложено в этой статье. Затем я делаю некоторые обрезки, чтобы удалить ненужные символы в начале и конце результата. Это дает мне список 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 заблокирован? Как браузер может пройти, если пинг заблокирован? Очевидно, что я что-то упускаю, но не могу понять, что это.
1 ответ
Получить 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