Как и было сказано в первой части, блокировка нежелательного трафика с помощью hosts кроме плюсов – простота и низкие «накладные расходы», имеет и минусы: этот способ не отличается гибкостью и позволяет заблокировать доступ к определенному домену только для всех программ сразу.
Напротив, файрвол (от англ. firewall – противопожарная стена) позволяет гибко манипулировать трафиком, но создает некоторую дополнительную нагрузку на операционную систему и снижает скорость подключения к Интернету. Скорее всего, вы не заметите разницы, тем более на современном (не обязательно «игровом») компьютере, но упомянуть об этом стоит.
Хороший файрвол под Windows (об Android – ближе к концу) позволяет, например, разрешить только исходящие соединения с компьютера к определенному домену по определенному порту (протоколу) для определенной программы, а все остальные – запретить. Скажем, почтовый клиент (Outlook, Thunderbird или Bat) сможет получать и отправлять электронную почту с mail.ru, а все остальные программы к этому домену доступа не получат.
Почтовая программа (и только она) получит доступ к определенному серверу электронной почты (и только к нему) по протоколу отправки/получения электронной почты (и только по нему). Программы, которым нечего делать на почтовом сервере, доступа к нему не получат. Доступ к посторонним почтовым серверам, которыми не пользуется владелец компьютера, не получит даже почтовая программа. Доступа к протоколам связи, которые не предназначены для отправки/получения электронной почты, почтовая программа не получит (например, не сможет загрузить «трекер», встроенный в HTML-версию полученного письма).
Получается зона строгого режима, где шаг влево, шаг вправо, прыжок на месте – расстрел. Расстрел несанкционированного (пользователем) трафика средствами его компьютера, который и должен действовать исключительно в интересах своего владельца и по его команде, а не в интересах и по команде охочих до чужих данных компаний Microsoft, Google, Apple и других, о чем, благодаря повсеместной «телеметрии», уже начинают забывать. Кстати, «телеметрия» и прочие сования носа в пользовательские данные, файрволом тоже рубятся на ура.
Подробнее файрволы рассмотрим на примере одного из них – Comodo Personal Firewall (CPF). Сочтите за рекламу, ибо он мне, действительно, нравится, но выгоды с его восхваления я не получаю – продукт совершенно бесплатный (не имеет платной версии с расширенным функционалом, не содержит рекламы) и ссылка на него не реферальная.
Из плюсов CPF, кроме бесплатности, стоит выделить наличие интерфейса на разных языках, включая русский, совместимость с версиями Windows от XP до 10, долгую и положительную историю (первая версия была выпущена больше 10 лет назад), активное развитие и поддержку продукта, высокие места в рейтингах и тестах файрволов.
К минусам или, по крайней мере, спорным решениям стоит отнести тот факт, что производитель интегрировал CPF в состав бесплатного же пакета программ для обеспечения комплексной безопасности компьютера – Comodo Internet Security (CIS), куда также входят антивирус, «песочница» для запуска подозрительных программ в изолированной среде, модуль анализа поведения запущенных программ, модуль контентной фильтрации трафика и еще кое-что по мелочам, включая пару «партнерских» приблуд.
С одной стороны, большую часть программ из комплекта CIS, включая «партнерские», можно не устанавливать, с другой – часть из них является неотъемлемой частью пакета и может быть лишь отключена, но устанавливается всегда, что несколько перегружает интерфейс файрвола. Несмотря на это, мне CPF нравится и лично для себя не вижу альтернатив, хотя и пробовал конкурирующие продукты.
Итак, вы выбрали и установили файрвол, разумеется, внимательно читая вопросы установщика и отвечая на них в соответствии с собственными потребностями, а не бездумно соглашаясь с предложениями установить все подряд и настроить файрвол автоматически за вас. Допустим, вы остановили свой выбор на CPF/CIS, поскольку дальше я буду рассказывать на его примере, стараясь сделать рассказ максимально универсальным.
Итак, вы установили файрвол; первым делом – отключите его. Да, вы не ослышались: отключите, его нужно настроить прежде, чем начать пользоваться, а если вы будете заниматься первоначальными настройками на работающем файрволе, велика вероятность что все очень быстро закончится криком: ничего не работает, Интернет пропал, нахрен такой файрвол, с последующим удалением оного.
Файрвол (хороший файрвол) – мощный и многофункциональный инструмент, позволяющий тонко настроить его под свои нужды, что подразумевает наличие множества настроек, в которых следует сперва разобраться, чтобы понимать, как это работает и что вы делаете. Изучением настроек и следует заняться в первую очередь: пробегитесь по всем меню, изучите каждую настройку, если не понимаете ее смысла – поищите объяснение во встроенной справочной системе или на тематических форумах в Интернете, и только потом решайте, какое значение настройки подходит именно вам. Из универсальных советов я бы предложил следующее.
1. Удалите все предустановленные списки «надежных» программ, «доверенных» издателей программ и т.п. Кто надежен, кому вы доверяете – решаете вы и только вы, а не Comodo или кто-то иной за вас.
Крики файрвола типа «Приложение svchost.exe является важным, доверенным и безопасным ключевым компонентом ОС Windows, поэтому рекомендуется разрешить ему доступ в сеть!» – это лишь частное мнение, не более того. Компонент, действительно, важный, вот только куда ему нужен доступ – вас волновать не должно, вам нужно, чтобы этот важный компонент мог получить доступ к вашим DHCP и DNS серверам (иначе доступа к сети не будет), а не к серверам Microsoft, куда он радостно побежит сливать «телеметрию».
Вероятно, вам придется создать такие правила для svchost.exe:
- разрешить исходящее подключение к DHCP-серверу, порт 67;
- разрешить исходящее подключение к адресу 255.255.255.255, порт 67;
- разрешить исходящее подключение к DNS-серверу, порт 53;
- любые другие подключения – запретить.
Узнать IP-адреса своих DHCP и DNS серверов вы сможете, например, выполнив команду ipconfig /all в DOS-сессии (Google it!). Такой набор правил – типовой для обеспечения возможности подключения к локальной сети (а через нее – и выхода в Интернет), но может не подойти для вашего случая.
2. Отказывайтесь от всех предложений автоматически настроить файрвол за вас: таким образом вы можете задать настройки, которые вам не подходят, а потом долго искать, где изменить их значение. Настраивайте все только руками: это займет больше времени, но оно будет потрачено не впустую, а на изучение полезного программного продукта и его функций.
«Хотите автоматически настроить свою доверенную сеть с такими-то параметрами?» – услужливо спросит файрвол. Свою сеть – настроить хочу, а с какими параметрами – это я еще подумаю, спешить некуда, – рассуждаете вы и отвечаете «Нет, не хочу».
3. Вы должны знать не только что делаете, но и почему. В противном случае вы получите не защиту, а ложное чувство защищенности.
Нужно ли вам, чтобы файрвол фильтровал IPv6 трафик? Скорее всего, нет, но почему? Потому, что ваш интернет-провайдер, скорее всего, не поддерживает такие соединения и, соответственно, вам нечего будет фильтровать. А может и поддерживает, вы это должны выяснить сами, а не полагаться на мое мнение.
В CPF, как и во многих других файрволах, есть режим обучения – это когда каждая попытка соединения с сетью вызывает у него истошный вопль: «А-а-а, все пропало программа такая-то пытается подключиться к сети по такому-то адресу и порту!!! Что делать?» В первую очередь, не паниковать – это нормально ©, для того режим обучения и сделан. Внимательно читайте, что спрашивает файрвол.
Допустим, в сеть просится браузер – логично? Логично, можно подумать над этой просьбой: просили ли вы браузер выйти в сеть, то есть, набирали ли только что адрес какого-то сайта, или браузер полез «по своим делам»? А могут ли у браузера быть свои дела или только ваши? А на какой сайт браузер полез и по какому порту? Звучит муторно, знаю, но некоторое время помучайте себя игрой в детектива – потом будет намного проще.
Например, у меня для браузеров стоят такие правила:
- исходящие соединения на любой адрес (сайт) по портам 80 и 443 (стандартные порты для HTTP и HTTPS соединений) – разрешить;
- любые иные соединения (исходящие соединения на любые другие порты и любые входящие соединения) – запретить.
При таких правилах браузер может без спросу зайти на любой правильно настроенный сайт (в том числе по своим надобностям, но с этим я борюсь другими методами), а на шаг влево-враво-прыжок – автоматически получает по щам от файрвола, который уже не беспокоит меня лишними вопросами, а сам знает, что делать: блокировать. Но вы же помните, что этот пример – то, что удобно мне, а у вас могут быть иные потребности и решать только вам.
Другой пример: файрвол в режиме обучения сообщает, что приложение «Калькулятор» (между прочим, тоже доверенное – от корпорации Microsoft же!) желает выйти в сеть по адресу такому-то и порту такому-то. Ваша реакция? Будете играть в детектива или сразу нажмете кнопку «Агащаз»? Решать только вам, несмотря на кажущуюся мне очевидность ответа.
В итоге у вас должен получиться довольно скромный список приложений, которым разрешено подключение к сети по строго ограниченным адресам сайтов или протоколам и портам. Собственно, это уже упомянутый svchost.exe, через который Windows обеспечивает саму возможность программам подключаться к сети, браузер, почтовый клиент, мессенджер, качалка торрентов... Всему остальному в сети делать нечего, во всяком случае – в ваших интересах, а об интересах авторов этих программ вы печься не обязаны. Телеметрия? Автоматическое обновление приложений? Проверка лицензии? Не, не слышал – это не мои проблемы и на моем компьютере я их решать не позволю.
К сожалению, в процессе выяснения, кто с чем хочет соединиться, вы неизбежно столкнетесь с тем, что файрвол будет показывать вам IP-адрес (нечто вида 91.228.155.121), тогда как вы в браузере набирали «pikabu.ru» и знать не знаете, что такое IP-адрес и какой он у любимого сайта в данный момент.
Чтобы понять, куда лезет браузер (или другая программа) на самом деле, рекомендую бесплатную программу DNSQuerySniffer, которая покажет, к каким сайтам (сайтам, а не IP-адресам) в настоящий момент пытаются подключиться программы. Увы, программа не показывает, какое именно приложение к какому сайту хочет подключиться, придется немного поиграть в угадайку и пользоваться методом исключения (если кто знает лучший аналог – прошу в комменты).
Чтобы немного упростить себе жизнь, настройку файрвола лучше проводить в свободное время, когда можно посвятить себя этому священнодействию полностью, выгрузив все лишние программы, создающие «помехи» в процессе выяснения, кто куда лезет. Настраиваете правила для почтового клиента – перезагрузка компьютера, вручную выгружаете все лишние программы, запускаете только почтовый клиент, внимательно слушаете, куда он пытается подключиться, решаете – нужно ли это вам и вносите соответствующие правила в файрвол.
Теперь, как и обещано, о файрволе под Android, тем более, что разговор будет недолгим и грустным. Файрволы под Android существуют, но, увы, им далеко по функциональности до файрволов под Windows, к тому же для их функционирования требуется root.
Мне наиболее симпатичен AFWall+ но, по сути, все аналоги обладают тем же функционалом, сводящимся к простым правилам: запретить или разрешить определенному приложению доступ в Интернет. Отдельно можно разрешать или запрещать подключения через Wi-Fi и мобильную сеть, этим функционал и ограничивается. Прямо скажем, негусто, но хоть что-то, хотя технических препятствий для более гибкого управления трафиком на Android нет, но пока для этого придется руками править iptables, что явно задача не для рядового пользователя.
Для полноты картины стоит упомянуть и о файрволах для Linux и macOS/iOS, но тут совсем кратко: для Linux файрволы, разумеется, существуют, но я вряд ли скажу что-то новое тем мужественным людям, кто не забыл еще, как выглядит командная строка ;-) Что же касается маководов-айфонщиков... я никого не сужу, но если вы сознательно выбрали путь боли и страдания максимально закрытую от пользователя операционную систему, декларирующую в качестве нормы принцип: покорми собак и не ничего не трогай, все и так идеально, то... могу лишь поздравить вас с достижением идеала и не лезть в него своими грязными руками джейлбрейком.
Вопросы, замечания, битье ссаными тряпками? Пожалуйте в комменты!