Белый список с брандмауэром Windows

Если паранойя подсказывает, что вы недостаточно защищены, а под рукой имеются только бесплатные инструменты для безопасности, то нужно это чувство удовлетворить! Под катом будем создавать белый список программ для выхода в сеть с помощью стандартного брандмауэра Windows, в том числе и на PowerShell.
Введение
Большинство энкодеров, троянов и других плохих вещей из мира киберугроз для своих темных делишек используют возможность выхода в сеть с устройства жертвы: получение ключа для шифрования файлов, отправка конфиденциальной информации и так далее. Антивирусные компании в борьбе с такими противниками натаскивают свои проактивные технологии, выпускают даже отдельные продукты для шифровальщиков, ну а для простых пользователей бесплатной защиты остается только более тонко настраивать свои рубежи самостоятельно. Со времен Vista встроенный в Windows брандмауэр стал неплох, но большую часть времени простаивает без дела, отбивая лишь неписаные входящие соединения в лучшем случае. Не все знают, но он умеет чуточку больше — фильтровать и исходящие соединения, стоит лишь только включить этот режим и правильно настроить.
Итак, приступим
Первым делом необходимо запретить все исходящие соединения (входящие, считаем, уже запрещены — нужное ПО само, как правило, прописывает для себя исключения). Для этого идем в Панель управления -> Система и безопасность -> Брандмауэр Windows -> Дополнительные параметры. Далее выбираем «Брандмауэр Windows в режиме повышенной безопасности» и через правую кнопку мыши открываем Свойства. В зависимости от вашего сетевого профиля (частный — локальная сеть с маршрутизатором, общий — напрямую в интернет, домен — доменная сеть) выбирается вкладка профиля и для исходящих соединений выбирается режим «Блокировать» (я настраивал для всех профилей одинаково).

На данный момент никакая программа выйти в сеть не может (кроме уже имеющих правила). Легко это проверить, открыв браузер с любым сайтом — наверняка получим ошибку сети. Чтобы загрузить страницу необходимо создать соответствующее правило. Рассмотрим Internet Explorer — имеется у всех на Windows. Нажимаем правой кнопкой на «Правила для исходящего подключения» -> Создать правило. Открывается окно с 4-мя типами правил, для IE подойдет первый — «Для программы». Далее нужно указать путь к программе — в нашем случае — C:\Program Files\Internet Explorer\iexplore.exe . Не забываем, что обладатели 64-битных систем должны создать еще одно такое же правило, только для Program Files (x86) (там IE тоже установлен). После выбора файла необходимо выбрать пункт «Разрешить подключение», далее отметить галками нужные сетевые профили. Осталось только придумать название для нашего правила. Рекомендую все правила писать с одного и того же слова/символа, потом искать будет удобнее. Созданное правило будет отображаться в общем списке.



Для программ правила делать научились, а что со службами? Пусть необходимо добавить в исключения службу Mozilla Maintenance Service. Создаем новое правило, выбираем тип «Настраиваемое». Далее нажимаем «Настроить», выбираем «Применять к службе» и ищем в списке нужную службу или чуть ниже вводим название службы вручную. Затем предлагается настроить протокол и порты, но в данном случае их можно оставить по умолчанию — программа доверенная и шут ее знает, чем она там пользуется при доставке и установке обновлений. IP-адреса аналогично не трогаем. Далее разрешаем подключение, выбираем профили и задаем название для правила.

Казалось бы, основные моменты пройдены, что теперь? А теперь подводные камни. Если кто-нибудь использует в своей деятельности программу удаленного управления TeamViewer, которая ставит с собой службу, то вроде бы достаточно найти в списке службу и добавить правило для нее. Но это не сработает. Необходимо вместо службы добавлять правило «Для программы» и выбирать исполняемый файл службы C:\Program Files (x86)\TeamViewer\TeamViewer_Service.exe (путь для 64-битной системы). Это частая ситуация, поэтому не спешите добавлять службы, начинайте с exe. Кроме этого в нашей системе перестанет работать ping. Для него необходимо добавить правило по типу «Настраиваемое», все оставлять по умолчанию, только протокол выбрать ICMPv4 и внизу нажать «Настроить», где поставить галочку только рядом с «Эхо-запрос». Теперь ping и tracert будут работать. Для IPv6 повторить, но уже с протоколом ICMPv6. Если правило уже создано, но необходимо что-то в нем изменить, это легко можно сделать, выбрав нужное правило в списке и зайдя в его свойства. На вкладках можно все настроить на любой вкус — привязать службу к определенному exe, ограничить программу в портах и т.д.
Свойства уже созданного правила для ping
Обновив систему с Windows 8.1 до Windows 10, я не мог создать работоспособное правило для OneDrive. Вроде бы простое правило для %USERPROFILE%\AppData\Local\Microsoft\OneDrive\OneDrive.exe и все должно работать. Но, потратив несколько месяцев, я пришел к тому, что, оказывается, надо было прописывать прямой путь C:\Users\ProfileName\AppData\Local\Microsoft\OneDrive\OneDrive.exe , хотя в предыдущих ОС того же семейства все благополучно работало и с первым вариантом (загадка?).
Накопленный опыт и PowerShell
Список правил, накопленный за N-ое время, я представлю в виде команд для PowerShell — легче автоматизировать. Чтобы можно было запустить в PowerShell скрипт на исполнение, необходимо дать на это разрешение для неподписанных скриптов в системе (для параноиков можно потом вернуть на место):
Блокировка всех исходящих соединений брандмауэром выглядит так:
Команда для добавления правила для всех профилей и исходящего направления для explorer.exe — обновление плиток на Windows 8.1. Полагаю, что и на 10-ке используется:
Пусть у нас первая ячейка содержит название правила, а вторая ячейка хранит путь до программы. И у нас будет N таких двухячеечных строк — сколько штук правил. Все это будем хранить в $programs . Начнем с простого: Internet Explorer, Google Chrome, Tor Browser, Yandex.Browser, Notepad++, Visual Studio 2015, qBittorrent, HWMonitor, OneDrive, PowerShell, PowerShell ISE, Steam, CS GO, TeamViewer и так далее — все более-менее простые приложения, которым для выхода в сеть нужен доступ из 1-2 файлов exe.
Также в табличку можно при желании добавить хитрый Avast (ему еще нужна служба) и Firefox (+служба).
Все строки таблицы будем обрабатывать поштучно следующим образом:
Кроме этого необходимо разобраться с нестандартными правилами и службами. Например, центр обновления работает через svchost.exe по протоколу TCP через порты 80 и 443. А магазин приложений использует для обновления отдельную службу WSService. Помимо этого не забываем про пинг и службы для нужных приложений:
Вот и, пожалуй, все. На этом повествование можно заканчивать. Передаю инициативу теперь в ваши руки, дерзайте! Надеюсь, Вы узнали что-то новое или хотя бы вспомнили хорошо забытое старое. Итоговый скрипт (.ps1) можно обнаружить под спойлером ниже.
Записки IT специалиста
Настройка черного и белого списков в роутерах Mikrotik
- Автор: Уваров А.С.
- 04.10.2019
Ограничение доступа к тем или иным ресурсам сети интернет на основе списков достаточно популярный способ фильтрации, несмотря на его недостатки. Действительно, в большинстве случаев требуется заблокировать достаточно небольшой список ресурсов, скажем, соцсети, с чем данный метод вполне успешно справляется. В данной статье мы поговорим о том, как настроить фильтрацию по спискам на роутерах Mikrotik, тем более что RouterOS предоставляет нам для этого достаточно широкие возможности.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Прежде всего поговорим об особенностях фильтрации в условиях современного интернета. Основной тенденцией последних лет является массовый переход на протокол HTTPS. Что это означает? В отличие от HTTP, который передает данные открытым текстом, HTTPS использует SSL-шифрование и все, что мы можем увидеть для такого соединения — это домен назначения. Какие именно страницы посещает пользователь на указанном домене и какие данные оттуда передаются мы видеть не можем.
Из этого следует, что мы не можем блокировать отдельные страницы, но можем заблокировать домен целиком. Для большинства сценариев этого вполне достаточно. Но здесь нас подстерегает другая неприятность, многие сайты используют CDN (Content Delivery Network, сеть доставки контента), такие как CloudFlare и заблокировав нужный вам сайт вы можете также ограничить доступ к большому количеству сторонних ресурсов. Что из этого может выйти все мы видели во время ковровых блокировок РКН против Телеграм.
Также следует понимать, что блокировка посредством черных списков применима лишь к небольшому числу ресурсов, например, популярные соцсети, попытка таким образом фильтровать весь нежелательный трафик выливается в необходимость постоянной актуализации списков и может привести к высокой нагрузке на оборудование. Для таких целей лучше использовать специализированные сервисы.
Другой вариант — белые списки, при всей видимой простоте и надежности, сталкиваются с другой проблемой. Многие сайты активно используют внешние ресурсы, с которых подгружают скрипты, шрифты, стили и т.д. и т.п. и некоторые из них могут являться критичными для обеспечения полноценной работы. Также могут возникнуть проблемы с HTTPS, если браузер не сможет проверить статус SSL-сертификата. Все это потребует грамотного анализа и добавления в белый список всех тех узлов, которые необходимы для нормальной работы каждого из разрешенных сайтов.
Создаем списки
Для настройки фильтрации нам понадобятся минимум два списка: список доменов и список пользователей. С доменами понятно, это те сайты, к которым мы хотим запретить доступ или, наоборот, разрешить. Создаются такие списки просто: IP — Firewall — Address Lists где добавляем новый адрес, в поле Name вписываем имя листа, если это первая запись, либо выбираем его из выпадающего списка. В поле Address указываем IP-адрес или доменное имя ресурса, при указании доменного имени в список будут внесены все IP-адреса сайта, и они будут обновляться с периодичностью указанной в TTL домена.
![]()
В нашем случае мы добавили домен yandex.ru в список WL (whitelist, белый список). Обратите внимание, что адреса www.example.com и example.com — это разные доменные имена, которые могут иметь разные IP-адреса (в целях балансировки нагрузки) и поэтому следует добавлять оба варианта (или проверять что между ними нет расхождений).
В командной строке это же действие можно выполнить так:
Таких списков мы можем создать сколько нам нужно, причем один и тот же адрес может входить сразу в несколько списков. Это удобно, если нужно обеспечить для разных групп пользователей доступ к разному набору сайтов. В итоге у вас должно получиться примерно следующее:
![]()
В данном примере реализовано два списка: WL — белый список и BL — черный список. Обычно в реальной жизни используется что-то одно, в нашем случае создание данных списков обусловлено сугубо учебными целями.
С доменами разобрались, остались пользователи. Существуют две политики применения правил: разрешено всем, кроме группы пользователей и запрещено всем, кроме группы пользователей. В любом случае у нас имеется группа пользователей, которая либо подвергается ограничениям, либо выводится из-под их действия. В грамотно спроектированной системе такая группа должна являться меньшинством, что обеспечит минимальную нагрузку на сетевое оборудование.
Также вспомним, что в руках у нас роутер, т.е. устройство, работающее на сетевом уровне (L3), а значит основные параметры, с которыми он может работать — это адрес источника и адрес назначения. Адрес назначения — это домен, выше мы его уже разобрали. Адрес источника — это как раз пользователь, точнее — сетевое устройство пользователя. В самом простом случае мы можем создать еще один список и добавить туда IP-адреса нужных устройств.
Но на практике адреса раздаются сервером DHCP, это не проблема, создаем резервирование IP-адреса, для чего следует перейти в IP — DHCP-Server — Leases и открыв запись нужного адреса нажать Make Static.

После чего закрываем и снова открываем запись и в поле Address List вводим, если это первая запись, или выбираем имя списка, куда будет добавлен IP-адрес данного компьютера, в нашем случае это список USER.

Либо через командную строку:
Таким образом мы получаем список пользователей, либо несколько списков, в которых указанные адреса будут находиться до тех пор, пока на сервере активно резервирование.
Черный список
Начнем с самого простого сценария — черного списка. Сначала настроим вариант, когда такой список применяется ко всем пользователям, кроме членов списка USER. Для этого перейдем в IP — Firewall — Filter Rules и создадим новое правило. На закладке General укажем Chain — forward и In. Interface — bridge1:
![]()
На закладке Advanced указываем Src. Address List — USER и ставим перед ним восклицательный знак (символ инверсии правила), что будет означать кроме входящих в группу. В поле Dst. Address List указываем BL — т.е. наш черный список доменов.
![]()
И наконец на закладке Action указываем действие, обычно везде в интернете указывают drop, хорошо, укажем и мы.
![]()
Данное правило должно располагаться самым первым в цепочке FORWARD, выше FastTrack.
Теперь попробуем посетить запрещенный сайт:
![]()
Страничка не грузится, однако браузер не понимает в чем дело и продолжает попытки ее грузить (т.е. в заголовке вкладки постоянно крутится колесико), это нагружает ресурсы ПК и не вносит ясности пользователю. Так происходит из-за того, что мы просто убиваем пакеты — действие drop, и отправитель не понимает почему нет ответа. Поэтому для внутренних ресурсов лучше использовать действие reject, которое отправляет назад пакет с сообщением что ресурс недоступен.
После замены действия при повторной попытке посетить ресурс мы сразу увидим сообщение о его недоступности:
![]()
Быстро добавить правило через командную строку можно так:
Теперь немного изменим задачу, применим черный список только к группе USER. Для этого немного изменим условия на закладке Advanced, а именно укажем Src. Address List — USER без восклицательного знака, в итоге условие будет читаться как: если источник в группе USER и назначение в группе BL.
![]()
Или в командной строке:
Таким образом фильтрация по черным спискам не представляет особых сложностей. Все упирается в эти самые списки, которые нужно составлять и поддерживать в актуальном состоянии. Загрузить в роутер готовые списки из интернета также не очень хорошая идея, потому как каждый пакет будет проверяться на вхождение в список, что может вызвать серьезную нагрузку на роутер, при том, что подавляющее большинство адресов из этого списка ваши пользователи могут никогда не посещать. Поэтому следует трезво оценивать собственные ресурсы и возможности и применять списки там, где это действительно нужно.
Белые списки
На первый взгляд организация доступа в сеть по белым спискам ничем принципиально не отличается от черных, однако это не так, выше мы уже говорили почему и далее покажем это на примерах. А пока реализуем схему с доступом по белым спискам для всех, кроме группы USER.
Снова перейдем в IP — Firewall — Filter Rules и создадим новое правило. На закладке General также укажем Chain — forward и In. Interface — bridge1 , на Advanced указываем Src. Address List — !USER и Dst. Address List — !WL:
![]()
И на закладке Action указываем действие reject. Таким образом данное правило будет блокировать все соединения, если адрес отправителя не входит в группу USER и адрес назначения не входит в белый список WL.
Аналогичное действие через консоль:
Данное правило также следует располагать первым в цепочке FORWARD.
Добавим к разрешенным несколько адресов, в нашем случае yandex.ru и interface31.ru и попробуем открыть один их них. Яндекс открывается, но выглядит довольно непривычно.
![]()
Многие картинки, которые располагаются на иных серверах, включая сервера самого Яндекса, но имеющего другие IP-адреса просто не подгружаются. Хотя никаких фатальных последствий это не несет, как поисковик Яндекс работает. А вот в почту войти уже не получится, для этого придется разрешить как минимум mail.yandex.ru и passport.yandex.ru.
Теперь попробуем открыть наш сайт. А вот тут первый неприятный сюрприз:
![]()
Что это значит? Браузер не может проверить подлинность сертификата, а так как наш сайт использует HSTS, то доступ к нему будет невозможен, потому как подобные действия могут указывать на атаку с понижением степени защиты, чему HSTS должен препятствовать.
Для того, чтобы браузер смог проверить сертификат нам нужно разрешить доступ к сведениям центра сертификации, адреса нужных узлов можно найти в самом сертификате сайта:

В нашем случае оказалось достаточно добавить узел ocsp.int-x3.letsencrypt.org, сайт загрузился, но без комментариев, так как они реализованы на стороннем ресурсе и разрешение доступа к нему не решило проблемы. В этом случае вам придется либо заниматься долгим и кропотливым выяснением необходимых для работы ресурсов и занесением их в белый список, либо отказываться от части функционала сайтов.
Чтобы применить белый список только к участникам группы немного изменим правило: в Adwanced указываем Src. Address List — USER, т.е. без восклицательного знака. Теперь логика правила изменится и будут блокироваться все соединения для группы USER, кроме тех, которые разрешены белым списком.
![]()
Либо в командной строке:
Как видим, технически организовать доступ по белым спискам не так уж сложно, гораздо сложнее обеспечить полноценную работу разрешенных сайтов, что требует достаточно долгой и кропотливой работы по выявлению и добавлению в список связанных ресурсов.
Layer 7 protocol
Layer 7 protocol — это методика поиска определенных вхождений в ICMP/TCP/UDP потоках при помощи регулярных выражений. На первый взгляд достаточно интересная возможность, существенно расширяющая степень контроля над проходящим трафиком, но есть один существенный недостаток. Как уже понятно из названия, данный вид фильтрации работает на прикладном (L7) уровне, т.е. полностью обрабатывается CPU и даже при небольшом количестве правил способен создать сильную нагрузку на оборудование, особенно старые (не ARM) модели.
Использовать L7 для блокировки сайтов не рекомендуют сами разработчики Mikrotik, справедливо замечая, что в большинстве случаев это не будет работать так, как задумано, но при этом вы будете впустую растрачивать вычислительные ресурсы роутера. На наш взгляд использовать L7 для задач, связанных с доступом к сайтам вообще бессмысленно. Современный трафик в подавляющем большинстве шифрованный и различного рода конструкции для анализа URL просто не будут работать, а управлять доступом на основе доменного имени вполне можно и на L3 (чем мы занимались выше).
По этой же самой причине не будут работать многие размещенные в интернете инструкции, где трафик фильтровался по содержимому, типам файлов или потоков, использовал параметры запросов и т.д. и т.п. Хотя мы до сих пор встречаем статьи, в которых по L7 пытаются блокировать соцсети или Youtube, мотивируя это большим числом адресов, использованием CDN, поддоменов и т.д. и т.п. Однако все это не выдерживает никакой критики, соцсети и видеохостинги прекрасно блокируются по доменному имени.
Мы не рекомендуем использовать L7 во всех тех случаях, когда задачу можно решить иным образом, применяя его только для решения специфичных задач. Например, выявления и блокировки какого-либо вида трафика.
Поставим для примера следующую задачу: заблокировать возможность установления SSH-соединений для клиентов сети. Решение в лоб — заблокировать исходящие соединения на 22 порт не принесет успеха, так как SSH-сервер может работать на произвольном порту. Поэтому нужно при помощи специальных паттернов определить наличие именно SSH-трафика и каким-то образом его блокировать.
Где брать паттерны? Опытные пользователи могут запустить сетевой сканер (tcpdump, Wireshark) и проанализировать доступное содержимое пакетов и на основании полученной информации составить регулярное выражение. Либо воспользоваться сайтом l7-filter.sourceforge.net, однако большая часть паттернов оттуда работать не будет. Во-первых, сайт достаточно старый, последний раз обновлялся в 2009 году, во-вторых, очень многие протоколы перестали использоваться в открытом виде, а используют SSL-шифрование. В этом случае вы просто увидите SSL-поток, блокировать который бессмысленно, так как вы заблокируете практически весь интернет.
Для решения нашей задачи сначала перейдем в IP — Firewall — Layer 7 protocol и создадим новый фильтр: в поле Name напишем произвольное имя, в нашем случае SSH, а в поле Regexp внесем регулярное выражение паттерна:

Также можно выполнить команду в терминале:
Что делать дальше? Самое очевидное решение — использовать данный фильтр в правилах брандмауэра является примером того, как делать не надо. В этом случае через L7 фильтр будет проходить каждый пакет, что вызовет сильную нагрузку на CPU роутера.
Поэтому мы пойдем другим путем и на основании L7 фильтра будем маркировать соединения, которых гораздо меньше, чем пакетов. Перейдем в IP — Firewall — Mangle и создадим новое правило: на закладке General выставляем Chain — prerouting, Protocol — tcp и Сonnection Mark — no mark:
![]()
На закладке Advanced указываем использование созданного нами фильтра Layer 7 Protocol — SSH:
![]()
В Action указываем действие mark-connection, задаем марку соединения New Connection Mark — SSH-CONN и обязательно ставим флаг Passthrough для прохождения пакета далее по цепочке:
![]()
Затем добавим еще одно правило: General — Chain — prerouting, Protocol — tcp и Connection Mark — SSH-CONN:
![]()
А в действиях добавим mark packet, New Packet Mark — SSH-PCK и снимем флаг Passthrough:
![]()
Все тоже самое быстро делается в командной строке:
Многие читатели не работают с брандмауэром дальше таблицы Filter, поэтому что, что мы сейчас сделали в Mangle может показаться им какой-то особой магией. Коротко поясним наши действия. Первое правило проверяет все немаркированные соединения и те из них, которые сосуществуют фильтру L7, т.е. SSH-соединения получают метку SSH-CONN и продолжают движение по цепочке. Следующее правило проверяет соединения и все пакеты соединений, промаркированных как SSH-CONN снабжает меткой SSH-PCK.
Таким образом мы пометили все пакеты, относящиеся к SSH-соединениям, но L7 фильтр мы используем только для соединений, не нагружая роутер проверкой каждого пакета. Теперь запретим транзит таких пакетов, для этого вернемся в IP — Firewall — Filter Rules и создадим правило, на закладке General которого укажем: Chain — forward, Рrotocol — tcp, In Interface — bridge1 и Packet Mark — SSH-PCK:
![]()
На закладке Action ставим действие drop. То же самое в консоли:
Ставим это правило также в начало цепочки FORWARD и если вы все сделали правильно, то установить SSH-соединение из вашей сети больше никому не удастся.

Следует понимать, что выше был лишь пример того, как можно использовать Layer 7 protocol на Mikrotik, в реальной ситуации следует несколько раз подумать и прибегать к возможностям L7 только тогда, когда все остальные варианты исчерпаны. Также старайтесь как можно более подробно описывать условия, для правил использующих L7 фильтры, чтобы максимально уменьшить нагрузку на процессор роутера.
Фильтрация по MAC-адресам
Наши читатели с завидным постоянством спрашивают нас как можно организовать фильтрацию по MAC-адресам. Мы уже говорили и повторим еще раз, что считаем такую фильтрацию не самым оптимальным способом, потому что для идентификации следует использовать более высокоуровневые параметры: пользователя или IP-адрес. Но если сильно хочется, то почему бы и нет.
Среди условий в правилах брандмауэра есть опция MAC-адреса, но в одном правиле можно указать только один адрес, т.е. для каждого MAC вам придется создать свою копию правила, что увеличит нагрузку на устройство и сделает набор правил трудночитаемым.
В тоже время MAC-адрес нам нужен для одной единственной цели — идентифицировать пользователя, что мы также можем сделать и по IP-адресу, для этого нам нужно будет преобразовать MAC в IP, который уже можно добавить в один из списков и использовать представленные нами выше правила. В этом нам снова поможет таблица Mangle.
Откроем IP — Firewall — Mangle и добавим правило, на закладке General укажем Chain — prerouting, In Interface — bridge1, на Advanced в поле Src. MAC Address укажем MAC-адрес нужного устройства.

И на закладке Action добавим действие add src to address list, где в поле Address List укажем требуемый список пользователей, в нашем случае USER, а в поле Timeout укажите требуемое время жизни записи, это нужно для того, чтобы запись обновилась при смене обладателем MAC IP-адреса. На скриншоте мы, в тестовых целях, использовали 5 секунд, в реальной жизни руководствуйтесь здравым смыслом и выбирайте более высокие значения.

Это же правило в командной строке:
Теперь первый пришедший с данного устройства пакет добавит его IP-адрес в указанный нами список, тем самым связав его с текущим MAC на время указанное в Timeout. Для каждого следующего устройства необходимо создать подобное правило, также не забывайте снабжать каждое из них комментарием, чтобы впоследствии вам и вашим коллегам было понятно о каком именно устройстве идет речь.
Заключение
Как видим возможности RouterOS позволяют решать достаточно сложные задачи используя даже недорогие роутеры. Но следует понимать ограничения всех вышеперечисленных методов, осознавая их достоинства и недостатки. А также соотносить свои требования с возможностями оборудования. Если понимать и принимать во внимание эти факторы, то фильтрация по спискам на Mikrotik будет эффективным инструментом в руках администратора. В противном случае вы получите только разочарование и иные негативные последствия. Поэтому пожелаем вам благоразумия и напомним: хороший администратор выбирает для каждой задачи наиболее подходящий инструмент, что является признаком профессионализма. А фанатизм еще никого до добра не доводил.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Как разрешить доступ к определенным IP-адресам в WordPress
Безопасность является важной частью управления сайт. К сожалению, вполне вероятно, что кто-то в конечном итоге попытается войти в вашу панель управления без вашего согласия. Вы должны поставить достаточно защиты, чтобы они не сработали.
Есть много способов защитить ваш сайт WordPress. В большинстве случаев вам следует сосредоточиться на защите своей страницы входа и панели управления, поскольку они являются наиболее вероятными целями атак. Имея это в виду, в этой статье вы узнаете, как «внести IP-адрес в белый список», чтобы получить доступ к панели управления. Давай приступим к работе!
Что такое белый список (и почему это эффективная мера безопасности)
Когда вы добавляете IP-адрес в белый список для доступа к определенной странице, это означает, что никто, кроме компьютеров с этим адресом, не сможет получить доступ к вашей панели управления. Например, если вы работаете в одиночку, вы можете указать WordPress заблокировать доступ к любому IP-адресу, который не принадлежит вам, чтобы никто, кроме вас, не мог получить доступ к панели управления.
«Черный список», с другой стороны, заключается в предотвращении доступа определенных IP-адресов к странице. Это так же эффективно, но не так эффективно, как добавление в белый список. В конце концов, легче занести в белый список несколько адресов, чем занести в черный список сотни потенциальных злоумышленников. Давайте поговорим еще немного о других преимуществах белых списков:
- Вы полностью контролируете, кто имеет доступ к вашим страницам. До сих пор мы говорили только о вашей информационной панели, но вы можете реализовать эту функцию для любой части вашего Веб-сайт.
- Злоумышленники не могут получить доступ к вашей панели управления, даже если у них есть учетные данные. Если кто-то сможет найти ваше имя пользователя и пароль, он все равно не сможет получить доступ к вашей панели управления без физического доступа к вашему компьютеру.
- Вы можете занести в белый список столько IP-адресов, сколько захотите. WordPress позволяет добавлять в ваш главный список столько адресов, сколько вы хотите.
В любом случае, если вы являетесь частью большой команды, часто бывает сложнее настроить IP-адреса из белого списка. Иногда вам или вашим товарищам по команде может потребоваться работать с другого компьютера, что означает, что вам нужно будет занести в белый список другие адреса и т. Д. С точки зрения безопасности это фантастический вариант, но вам необходимо проанализировать, жизнеспособен ли он для вашего сайта, прежде чем внедрять его.
Как добавить IP-адрес в белый список (в шагах 2)
Прежде чем идти дальше, вам следует создать резервную копию своего веб-сайта, если у вас нет последней доступной. Мы будем изменять один из основных файлов WordPress в разделах ниже. Поэтому вам следует убедиться, что у вас есть копия на случай, если все не работает нормально.
Шаг 1: убедитесь, что у вас (и ваших коллег) есть статический IP-адрес
Не у всех есть статический IP-адрес, что может сделать невозможным создание белого списка, не создавая головной боли. Перед реализацией этой функции вы должны убедиться, что каждый член вашей команды имеет статический IP-адрес (или знает, как установить его на своем компьютере).
Если кому-то не удается присвоить себе статический IP-адрес, не отчаивайтесь. В некоторых случаях ваш интернет-провайдер (ISP) настроит его за вас. Если ничего не помогает, вы можете использовать службу виртуальной частной сети (VPN), которая предлагает выделенные IP-адреса в качестве функции.
Имейте в виду, что большинство провайдеров VPN взимают с вас дополнительную плату за выделенный IP-адрес, этот вариант имеет смысл только в том случае, если вам нужна такая услуга для работы.
Шаг 2. Откройте и отредактируйте файл .htaccess
В этом разделе мы настроим ваш белый список IP-адресов, добавив несколько строк кода в ваш файл WordPress. .htaccess. Чтобы получить к нему доступ, вы должны для использования клиента FTP (протокол передачи файлов) , Тел дие FileZilla .
Сначала войдите на свой сайт, используя свои учетные данные FTP, и перейдите в свою папку. основой WordPress, который также можно назвать public_html, www, или название вашего сайта:

Как только вы войдете, найдите файл .htaccess и щелкните по нему правой кнопкой мыши. Теперь выберите вариант Просмотр / редактирование , который откроет файл с помощью локального текстового редактора по умолчанию. Ваш файл .htaccess должен выглядеть как на изображении ниже. Однако некоторые провайдеры веб-хостинга устанавливают исходные настройки для своих пользователей, поэтому не паникуйте, если есть дополнительный код:

В любом случае не вносите никаких изменений в код, если вы не уверены, что он будет делать. А пока ищите строку # END WordPress и вставьте следующий фрагмент чуть выше:
Вы заметите, что есть два заполнителя для IP-адресов, которые вы можете добавить в свой белый список. Просто замените значения FIRST_IP_ADDRESS et SECOND_IP_ADDRESS по IP-адресам, которые вы хотите добавить, и все.
Если вы хотите добавить больше IP-адресов, просто скопируйте и вставьте дополнительные строки в код перед строкой, которая заканчивается: [R = 403, L]. Это говорит WordPress, что делать с адресами, которых нет в списке. В этом случае он возвращает ошибку 403 Запрещено .
Чтобы еще больше защитить свой сайт, вы можете попросить WordPress заблокировать доступ к вашей панели управления. et на страницу входа в систему для адресов, которых нет в вашем белом списке. Вот код, который вам понадобится:
Заключение
Когда вы добавляете IP-адрес в белый список, вы говорите WordPress, чтобы он предоставил только этому компьютеру доступ к вашей панели управления. Это означает, что адреса, которых нет в вашем главном списке, вообще не смогут загрузить панель управления. Другими словами, даже если кому-то удастся украсть ваши учетные данные, он не сможет получить доступ к вашему сайту.
Самое приятное то, что реализация этой функции довольно проста и состоит из двух этапов:
- Убедитесь, что у вас и ваших коллег есть статические IP-адреса.
- Откройте и отредактируйте файл .htaccess .
У вас есть вопросы о том, как добавить IP-адрес в белый список на WordPress? Вы можете задать свои вопросы в комментариях!
Использование консоли управления Exchange для управления белым списком IP-адресов
Запись «Функции защиты от нежелательной почты» в разделе Разрешения транспорта.
-
В дереве консоли щелкните узел Пограничный транспортный сервер.
На вкладке Общие отображаются следующие сведения о функциональной возможности белого списка IP-адресов.
-
Состояние. Служит для отображения включенного или отключенного состояния белого списка IP-адресов.
-
Добавить — IP-адрес Чтобы ввести IP-адрес без маски подсети или указать маску подсети с помощью нотации CIDR, нажмите кнопку Добавить или стрелку в раскрывающемся списке, расположенную рядом с кнопкой Добавить, и выберите пункт IP-адрес. В диалоговом окне Добавить разрешенный IP-адрес — CIDR введите отдельный IP-адрес или укажите подсеть с использованием нотации CIDR. Например, если ввести 192.168.1.1, только этот узел будет добавлен в белый список IP-адресов, однако если ввести 192.168.1.0/24, в белый список IP-адресов будет добавлена вся подсеть 192.168.1.0 класса C.
Добавить — IP-адрес и маску Чтобы ввести IP-адрес или подсеть и маску подсети в виде чисел, разделенных точками, щелкните стрелку в раскрывающемся списке, расположенную рядом с кнопкой Добавить, и выберите пункт IP-адрес и маска. В диалоговом окне Добавить разрешенный IP-адрес — IP-адрес и маска укажите IP-адрес и маску подсети.
Добавить — Диапазон IP-адресов Чтобы указать диапазон IP-адресов с помощью первого и последнего IP-адресов в диапазоне, щелкните стрелку в раскрывающемся списке, расположенную рядом с кнопкой Добавить, и выберите пункт Диапазон IP-адресов. В диалоговом окне Добавить разрешенный IP-адрес — диапазон IP-адресов укажите начальный и конечный адрес диапазона IP-адресов.
Использование командной консоли для управления белым списком IP-адресов
Запись «Функции защиты от нежелательной почты» в разделе Разрешения транспорта.
Используйте командлеты Add-IPAllowListEntry и Remove-IPAllowListEntry для управления адресами в белом списке IP-адресов. Можно указать отдельные IP-адреса, IP-подсети с помощью нотации CIDR или IP-диапазоны.
В приведенном ниже примере в белый список IP-адресов добавляется IP-адрес 192.168.0.100.
| Скопировать код |
|---|
В приведенном ниже примере в белый список IP-адресов добавляется подсеть IP-адресов 192.168.1.1/24.
| Скопировать код |
|---|
В приведенном ниже примере в белый список IP-адресов добавляется диапазон IP-адресов 10.0.0.100-10.0.0.255.
| Скопировать код |
|---|
При добавлении записей в белый список IP-адресов Exchange автоматически присваивает этим записям идентификаторы. Этот идентификатор следует использовать при удалении адреса из белого списка IP-адресов с помощью командной консоли. Однако более простым способом удаления адреса является передача выходных данных командлета Get-IPAllowListEntry в командлет Remove-IPAllowListEntry. Например, если необходимо удалить IP-адрес 192.168.0.100 из белого списка IP-адресов, выполните следующую команду:
| Скопировать код |
|---|
Если необходимо удалить диапазон IP-адресов, укажите IP-адрес в этом диапазоне в качестве значения параметра IPAddress командлета Get-IPAllowListEntry. В следующем примере показано удаление подсети 192.168.1.1/24.
| Скопировать код |
|---|
При использовании командной консоли для добавления IP-адреса в белый список IP-адресов можно также указать срок и время действия. С наступлением указанной даты и времени сообщения с указанного адреса не будут обрабатываться привилегированно. В приведенном ниже примере в белый список IP-адресов добавляется IP-адрес 10.0.10.25 со сроком действия 1 января 2010 г. 10:00.