Как к полностью блокируют веб-сайт как Facebook?

Разве не было бы намного легче попытаться скомпилировать ядро Linux Android сначала и не только ванильное ядро из kernel.org? В принципе это должно быть доступно для каждого устройства на базе Android в дикой природе, так как ядро является GPL. Если Вы не можете получить источник ядра для своего целевого устройства, потому что производитель или невежествен или известный нарушитель GPL, Ваша следующая ставка должна загрузить и скомпилировать исходный код для устройства с подобным SoC (Tegra 3, RK3188, и т.д.).

Обратите внимание, что начальная загрузка на мобильном устройстве, выполняющем множество проектов SoC, является намного более сомнительным суждением, чем начальная загрузка от рабочего стола или ноутбука со знакомым AMD или Intel CPUs. Вы даже не на самом деле уверены, можно ли даже скопировать, или флэш-память, ядро в мобильное устройство (если, конечно, мобильное устройство не является ноутбуком). Таким образом, необходимо исследовать это также.

Таким образом, первой вещью, которую я исследовал бы, является целевое устройство. Это - хорошая идея выбрать устройство, которое может загрузиться от его внешней SD-карты, с тех пор в теории можно запустить Linux просто путем копирования ядра и другого материала ОС к SD-карте. Кроме этого, выберите устройство с рабочим разделом восстановления, который позволит Вам высвечивать ядро к соответствующему разделу начальной загрузки. Такое устройство будет эффективно иметь два раздела начальной загрузки, раздел начальной загрузки Android и раздел восстановления. Таким образом в случае, если что-то идет не так, как надо, который представляет Ваше незагрузочное устройство, можно нажать комбинацию кнопки специального оборудования на устройстве, таким образом, можно загрузиться к разделу восстановления и возвратить устройство применимому состоянию.

3
13.04.2017, 15:36
2 ответа

Прежде всего, если ваш дистрибутив предоставил или установил файл named.conf по умолчанию, который ссылается на эти файлы зоны, они должны определенно существовать в вашей системе. Может, вам стоит переустановить пакет? (или вы установили из источника?)

Если ваш DNS-сервер является авторитетным только

(Вы говорите о разрешении внешних доменов, поэтому я не думаю, что это так.)

Вам абсолютно не нужны зоны «местозаполнитель» «localhost», «localdomain», «0.in-addr.arpa» и «255.in-addr.arpa.» Их никогда не спросят.

Я не уверен в зоне корневых подсказок. Интересно, может ли BIND по-прежнему использовать его даже в авторизованной конфигурации. Я бы ошибся, оставив его.

Если на DNS-сервере включена рекурсия

Вам действительно нужна зона корневых подсказок. BIND имеет встроенные настройки по умолчанию, поэтому он все еще работает для вас даже без него, но информация корневых подсказок время от времени меняется, и встроенные подсказки могут устареть. Несмотря на то, что очень маловероятно, что корневые подсказки изменятся настолько, что больше не будет никакого перекрытия между встроенными подсказками и текущими расположениями корневого сервера, и ваш сервер начнет отказывать, вы все равно должны иметь файл корневых подсказок и поддерживать его в актуальном состоянии на (очень) случайной основе.

Что касается других зон-заполнителей, ничего не пойдет не так, если у вас их нет, но это означает, что если ваш сервер получает «мусорные» запросы на имена в этих доменах, он будет пересылать их в Интернет, тогда как с зонами-заполнителями он мог бы дать отрицательные ответы гораздо быстрее.

root hints filename

Что касается вашего второго вопроса о имени файла root hints, не имеет значения, вызываете ли вы файл named.root или named.ca или что-либо еще, если вы ссылаетесь на него в named.conf , используя правильное имя файла. Корневые подсказки меняются не очень часто, поэтому вы заметили, что у другого сервера есть идентичная копия.

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

Пересылки

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

-121--230338-

Это зависит от того, насколько безрассудным вы хотите, чтобы блок был, и насколько вы управляете системой. Поскольку вы говорите о своей «домашней системе» и модификации/etc/hosts, я предполагаю, что у вас есть законный доступ root, и он не должен быть полностью защищен.

Самый простой способ заблокировать доступ ко всему домену - это настроить локальный DNS «рекурсивный распознаватель» и настроить эти домены специально. В основном, вы настраиваете DNS-сервер (он может работать на том же хосте), указываете на него свою локальную систему и сообщаете, что DNS-сервер возвращает созданные ответы, например, для домена facebook.com (или зоны , как это известно в DNS parlace). Для них не настроены записи адресов, что приведет к любым попыткам разрешить любое имя узла в facebook.com, чтобы вернуть «узел не найден».

Такой DNS-сервер можно настроить либо для выполнения самого разрешения имен, либо для пересылки чего-либо, о чем он не знает (посредством его конфигурации), на какой-либо другой DNS-сервер; последняя конфигурация часто называется распознавателем «пересылки».

Это будет работать для всего доступа по имени под определенным доменом (www.facebook.com, m.facebook.com, touch.facebook.com, whatever.somewhere.facebook.com), но не для имен, которые не связаны в DNS (www.facebook.example.com все равно бы работали, если бы это было на Facebook). Это также не помешает доступу по IP-адресу. Однако это делает несколько менее простым поиск IP-адреса в первую очередь ( хост или nslookup также скажут «не найден»).

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


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

Существует множество различных пакетов DNS-серверов, но, возможно, наиболее известным (безусловно, одним из наиболее известных) в мире * nix является BIND, который в настоящее время находится в версии 9. Вы не говорите, какая именно версия Ubuntu вы работаете, поэтому я сделаю удар, что вы работаете 14.04/trusty, который является текущей версией Ubuntu LTS. Другие не должны существенно отличаться.

Для установки BIND откройте окно терминала и введите команду (при появлении запроса необходимо указать пароль)

sudo apt-get update
sudo apt-get install -u bind9

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

Программное обеспечение установлено и нуждается в конфигурировании. Основной файл конфигурации -/etc/bind/named.conf; открыть в редакторе (здесь используется gedit , но это будет делать любой текстовый редактор):

sudo gedit /etc/bind/named.conf

Запишите значение directory настроек в блоке options . Затем замените весь конфигурационный файл следующим образом:

options {
  directory "** PAST VALUE GOES IN HERE **";
  forwarders { ** YOUR UPSTREAM DNS SERVER IPS HERE, SEE BELOW ** };
  forward only;
  allow-transfer { "none"; };
  allow-query { "localhost"; };
  allow-update { "none"; };
};

Для каталога используйте предыдущее значение (таким образом, вероятно, будет каталог «/etc/bind »; но не говори мне об этом).

Для пересылающих устройств {} формат имеет несколько большее значение. Здесь перечисляет DNS-серверы поставщика услуг Интернета (или других восходящих) по IP-адресу, каждому IP-адресу, за которым следует точка с запятой. Вероятно, их можно найти в файле/etc/resolv.conf. Обратите внимание, что если у вас есть маршрутизатор NAT или аналогичный, вполне возможно, что он также предоставляет услуги пересылки DNS, и если это так, вы хотите использовать IP-адрес маршрутизатора здесь. Например, если восходящими DNS-серверами являются 192.168.100.1 и 192.168.200.1, то они станут пересылками {192.168.100.1; 192.168.200.1;}; включая заключительную точку с запятой как внутри, так и за пределами скобок (они служат различным целям, которые сейчас не нужно полностью понимать; просто поверьте мне, что они оба должны быть там). После редактирования любого файла конфигурации, связанного с BIND, выполните команду sudo rndc reload , чтобы запустить перезагрузку конфигурации.

При наличии плотно настроенного брандмауэра необходимо разрешить локальный трафик в систему по протоколам TCP и UDP, 53 локального порта. Что-то вроде:

sudo iptables -A INPUT -i lo -p udp --dport 53 -j ACCEPT
sudo iptables -A INPUT -i lo -p tcp --dport 53 -j ACCEPT

Теперь убедитесь, что вы указываете системные функции распознавателя имен на этот DNS-сервер. Скорее всего, это можно сделать путем редактирования/etc/resolv.conf непосредственно для замены директивы nameserver на одну директиву, указывающую на 127,0,0,1, но вы можете спросить отдельно об этом, потому что я на самом деле не знаком с способом Ubuntu делать вещи. Они, вероятно, имеют GUI для этого, и это возможно/etc/resolv.conf переписывается автоматически, например, при загрузке.

Это обеспечивает очень простую настройку DNS-распознавателя пересылки. Чтобы заблокировать доступ к определенным доменам, который в терминах DNS означает, что вы для этих имен авторитетно обслуживаете пустую зону, добавьте строфы зоны {} в файл конфигурации BIND, указывая на файл db.empty , который для удобства предоставляется bind9 пакетов. Например, чтобы заблокировать все в facebook.com (включая голое имя), добавьте:

zone "facebook.com" { type master; file "db.empty"; };

Снова выполните sudo rndc reload , чтобы загрузить его. Теперь вы не можете получить доступ ни к одному имени узла в разделе facebook.com.

Если вы запутались, просто сбросьте параметры настройки DNS сети, чтобы использовать вышестоящий DNS-сервер, или отмените последнее изменение/etc/bind/named.conf и снова загрузите конфигурацию. Можно написать // в любом месте строки (за исключением кавычек), чтобы превратить остальную часть этой строки в комментарий; это хороший способ, например, временно отменить изменение.

Развлекайтесь!

1
27.01.2020, 21:31

Простой метод, который будет достаточно хорошо работать для обычных пользователей, заключается в следующем: заблокировать IP-адреса, возвращаемые поиском DNS. Предположим, у вас есть несовершеннолетние, которым не следует заходить в Facebook. Используйте ping -4 facebook.comи ping -6 facebook.com, чтобы узнать IP- и IPv6-адреса, которые необходимо отфильтровать. Тогда

a )добавьте их в фильтр брандмауэра вашего маршрутизатора. В случае маршрутизатора MikroTik просто используйте winbox для входа в систему, нажмите «Новый терминал» и выполните

/ip firewall filter add chain=forward src-address=185.60.217.35 action=drop
/ipv6 firewall filter add chain=forward src-address=2a03:2880:f136:83:face:b00c:0:25de action=drop

, конечно, с IP-адресами, которые вы получите вместо этого, или нажмите на свой путь через интерфейс.

b )Если вы просто хотите заблокировать эти серверы на своем компьютере, используйте ufwили iptablesдля блокировки этих IP-адресов.

Возможно, вам придется время от времени проверять, меняются ли IP-адреса, а затем просто добавлять новые.

Надеюсь, это поможет.

0
12.10.2021, 20:57

Теги

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