Как защитить от вирусов домашнюю сеть: метод Pi-hole

21.12.2018

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

Защита от фишинга, инфицирования и отслеживания в большей степени зависит от конфигурации конечного устройства. Однако в условиях растущего числа ноутбуков, смартфонов, планшетов и умных устройств усиливается и значение блокировки любого взаимодействия домашней сети с вредоносными или нежелательными серверами. Ситуацию усложняет тот факт, что маршрутизатор и так достаточно плотно занят координацией трафика, а определенные задачи требуют неограниченного доступа в сеть. Отличная идея — переложить фильтрацию соединений на отдельный компьютер. Простым в обращении решением станет приложение Pi-hole, разработанное для бюджетного и нетребовательного мини-компьютера Raspberry Pi, однако способное работать на любой системе Linux.

Мы покажем процесс установки и принцип использования программы на примере RaspberryPi 1, мощности которого вполне хватает для работы Pi-hole. Преимущество: через eBay, от знакомых и через фонд-разработчик первое поколение этого мини-компьютера можно приобрести за несколько евро, а иногда даже получить бесплатно. Потребление же электроэнергии сводится к минимуму благодаря нашему трюку в конце этой статьи. Принцип обхождения с более новыми моделями Pi идентичен и схож с процедурой для других компьютеров Linux (Ubuntu), описанной в разделе «Дистанционное управление системой Linux» и на последующих страницах.

Подготовка Raspberry Pi

Помимо компьютера Pi вам понадобится корпус для защиты от пыли, источник питания с подключением через Micro-USB (сетевой блок USB2A или кабель к постоянно работающему устройству, например роутеру) и SD-карта объемом не менее 2 ГБ, подходящая для Raspberry Pi. Поскольку DNS-сервер должен надежно функционировать в течение длительного времени, мы рекомендуем остановиться на карте с высокой устойчивостью к нагрузкам записи, такой как Transcend TS16GUSDHC10V или Kingston Industrial. Оба варианта стоят от 1200 рублей и идут в формате MicroSD с переходником для полного формата SD. Благодаря этому они подходят к любым моделям Raspberry и карт-ридерам ПК. При длительной работе компьютера с постоянной записью лог-файлов (что происходит при работе Pi-hole) более дешевые карты могут быстро отказать, что выведет из строя Pi в качестве DNS-сервера, а вместе с ним и домашнюю сеть.

Установка Raspbian

Чтобы установить операционную систему Raspbian на SD-карту, вам понадобится компьютер с подходящим карт-ридером. Если карта памяти уже была прежде в использовании, отформатируйте ее кликом правой кнопкой мыши, выбором «Форматировать», а затем — настройки по умолчанию (FAT32). Скачайте образ Raspbian Strech Lite и программу Etcher Portable (оба файла вы найдете также на CHIP DVD). Запустите Etcher и выберите через команду «Select image» zip-файл с системой Raspbian.

Важно: с помощью центральной кнопки «Change» убедитесь, что выбрана нужная SD-карта, а затем нажмите на «Flash!». Когда Etcher завершит запись, ответьте отрицательно на вопрос от Windows, следует ли отформатировать носитель (как и всегда, когда карта вставлена в ПК).

Отсоедините карту и снова вставьте ее в ридер. В Проводнике вы увидите на карте лишь небольшой загрузочный раздел объемом в несколько десятков мегабайтов. Нажав на клавишу [Shift], кликните по буквам диска справа и выберите из Windows 10 «Открыть окно PowerShell здесь» (Windows 7: «Открыть окно команд»).

В окне командной строки введите «fsutil file createnew ssh 0» (последний символ — ноль). Это самый надежный способ создать пустой файл под названием «ssh» без расширения. Он необходим для того, чтобы впоследствии вы смогли получить доступ к Raspberry через сеть. Теперь извлеките SD-карту и установите ее в Raspberry Pi. Подключите этот компьютер сетевым кабелем к роутеру, а кабелем Micro-USB — к источнику питания (выполняя рекомендации из раздела «Экономия энергии с Pi-Hole»!), а затем загрузите готовую систему.

Удаленное управление системой Linux

Устройство RasPi управляется целиком и полностью с компьютера. Установите и запустите программу PuTTY (есть на CHIP DVD). Для «Host Name» и «Saved Sessions» укажите значение «raspberrypi» и нажмите на «Save», а затем — на «Open». Во время наших тестов с роутером Zyxel в конфигурации по умолчанию все работало, если же у вас что-то идет не так, в веб-интерфейсе маршрутизатора выясните IP-адрес устройства Pi и внесите его в программе PuTTY в строчке «Host Name», а затем нажмите «Save | Open». В этот момент откроется окно командной строки с подсказкой «login as:». Введите здесь «pi», после чего нажмите на [Enter] (как и для всех команд), а затем стандартный пароль «raspberry», которого не будет видно при вводе. Вы попадаете в командную строку Linux, где написание с большой или маленькой буквы уже имеет значение. Для начала задайте индивидуальный пароль командой «passwd». После чего обновите Raspbian вводом «sudo apt update» и «sudo apt -y upgrade».

Установка программы Pi-hole

Пришло время установить Pi-hole. Для этого необходимо ввести следующий текст один в один: «curl -sSL https://install.pi-hole.net | sudo bash». Команда curl скачивает установочный скрипт с соответствующего адреса и посредством оператора «|» (вертикальная линия; вводится комбинаций [Alt Gr] + [<] ) передает его в интерпретатор команд bash, запускаемый от имени администратора («sudo»). Сначала появится подобие таблицы ASCII, а затем скрипт начнет скачивать некоторые компоненты. Первые три запроса подтвердите нажатием на [Enter]. Для «Select Upstream DNS Provider …» пролистайте вниз [Стрелка вниз], пока не остановитесь на «Custom», а затем нажмите на [Enter]. Укажите IP-адрес своего роутера и подтвердите его. Тем самым осуществляется дальнейшее преобразование локальных имен компьютера и устройств. На запрос «Do you want to use your current network settings as a static address?» клавишей [Стрелка вниз] выберите вариант «<No>» и введите IP-адрес, последняя цифра которого выходит за пределы DHCP вашего роутера. В следующем окне для параметра «IPv4 default gateway» нажатием на [Enter] подтвердите настройку по умолчанию, как и для всех последующих запросов.

Подождите несколько минут, пока программа не установится. Всю дальнейшую информацию подтверждайте нажатиями на [Enter]. По возвращению в обычную командную строку командой «sudopihole -a –p» задайте собственный пароль для веб-интерфейса Pi-hole и введите «sudo reboot», чтобы перезагрузить устройство Pi. Окно PuTTY можно закрывать.

Интеграция Pi-hole в домашнюю сеть

После загрузки Pi сначала проверьте на своем компьютере, функционирует ли его DNS-сервер. Для этого запустите «Панель управления» (Windows 10: в меню Пуск введите «Панель управления» и нажмите на совпадение.). Теперь пройдите к разделу «Сеть и Интернет | Центр управления сетями и общим доступом» и оттуда нажмите на активное соединение с маршрутизатором. Если компьютер подключен к сети одновременно и кабелем, и по Wi-Fi, либо отсоедините кабель, либо отключите беспроводное соединение и займитесь конфигурацией оставшегося подключения. Нажмите на «Свойства», а затем найдите в списке пункт «Протокол Интернета версии 4» и дважды щелкните по нему мышью. Выберите опцию «Использовать следующие адреса DNS-серверов», в первой строчке укажите IP-адрес устройства Raspberry Pi и закройте все окна нажатием на [OK]. В окне браузера перейдите по адресу http://pi.hole. Если вы видите интерфейс Pi-hole и можете заходить и на другие сайты, значит Pi-hole работает должным образом.

Настройка DNS-сервера в маршрутизаторе

У большинства роутеров параметры DNS можно менять в двух разных местах. Наиболее очевидная, но в принципе неверная настройка: в параметрах интернет-соединения роутера. Однако если вы внесете здесь описанную выше конфигурацию Pi-hole, все DNS-запросы просто зациклятся. Здесь стоит указать либо предписанный провайдером сервер, либо, что более предпочтительно, альтернативный публичный DNS-сервер (данные и IP-адреса см. слева). Публичные серверы, как правило, реагируют быстрее решений от провайдера, благодаря чему быстрее открывают и веб-страницы. Кроме того, некоторые альтернативные DNS-серверы блокируют вредоносные и фишинговые сайты.

Правильный, однако скрытый путь добавления Pi-hole — это конфигурация домашней сети роутера, а конкретно категория «DHCP-сервер». Здесь добавьте заданный во время установки Pi-hole IP-адрес компьютера, на котором установлена данная утилита. Таким образом маршрутизатор укажет Pi-hole только своему клиенту, но сам не будет работать через это приложение. Для того чтобы применить данную конфигурацию ко всем клиентам, необходимо отключиться от сети и подключиться заново или же перезагрузить устройство.

Тонкая настройка и особые функции

В конфигурации по умолчанию Pi-hole в первую очередь блокирует серверы, занимающиеся слежкой и рассылающие рекламу. Возможность какого-либо взаимодействия между ними и клиентами исключается. Вы можете обустроить дополнительную защиту от вирусных, фишинговых и вредоносных веб-сайтов, расширив списки фильтров, изначально состоящие всего из семи. Для этого откройте веб-интерфейс программы заходом на страницу Pi-hole и зайдите под своим паролем, который вы задали после первоначальной установки. В разделе «Settings | Block Lists» вы увидите списки заблокированных адресов. Через поле ввода можно добавить дополнительные списки. Большая коллекция таких данных находится, к примеру, по адресу wally3k.github.io. Поскольку слишком большое количество фильтров ограничивает быстродействие Pi-hole, тем самым замедляя работу браузера, выделите и скопируйте только адреса из категории «Malicious Lists», добавьте их в веб-интерфейсе Pi-hole через уже упомянутое поле ввода, а затем нажмите на «Save and Update». Спустя пару минут ваша домашняя система будет защищена от большинства известных вредоносных сайтов.

Поддержание Pi-hole в актуальном и стабильном состоянии

Раз в месяц необходимо подключаться к Pi-hole через PuTTY и устанавливать обновления для операционной системы и для программы Pi-hole, как описано выше в разделе «Удаленное управление системой Linux». После команд «sudo apt update» и «sudo apt upgrade» введите также «sudopihole –up», чтобы обновить Pi-hole. Для стабильной работы также важно выключать компьютер RasPi каждый раз перед отключением его от электросети, иначе его файловая система будет повреждена.

Выключение можно частично автоматизировать с помощью приложения ConnectBot на базе Android. Установите его на свой смартфон или планшет, подключенный по Wi-Fi к вашей домашней сети. После запуска нажатием на значок [+] добавьте новый хост. Для «Имени пользователя…» введите «pi@[IP-адрес вашего Pi]», для «Псевдонима» укажите «Выкл. Pi». Ниже задействуйте опцию «Close on disconnect» и для пункта «Автоматизация после авторизации» введите «sudo halt», после чего нажмите на значок ввода для перехода на новую строку. Теперь для отключения Pi достаточно в приложении ConnectBot нажать на «Выкл. Pi» и ввести соответствующий пароль.
Дело пойдет быстрее, если добавить на главный экран виджет (длительное нажатие на экран, выбор меню «Виджеты» и перетягивание иконки ConnectBot на главный экран) и выбирать хост «Pi выкл.» уже оттуда.

Обход Pi-hole

Для вызова заблокированных страниц вам понадобится доступ в сеть без фильтрации. Для этого подходит продукт Browser in the Box. Виртуальная машина этого браузера по умолчанию использует публичные DNS-серверы (не меняйте данную конфигурацию при установке). Менять DNS-настройки компьютера, с которым вы работаете через Pi-hole, на публичные серверы, как описано в первом абзаце раздела «Интеграция Pi-hole в домашнюю сеть», сложнее.

Читайте также:

Фото: CHIP, pexel.com, компании-производители