Лучший друг фаервола
В прошлых статьях мы настроили ssh сервер и клиент,обезопасили как могли так же,познакомились очень близко с этим замечательным инструментом.Но что если у нас имеются и другие сервисы,которые можно банально забрутить? Обезопасить все порты можно отличной утилитой fail2ban.
Как и к любой другой статье-конечно же я готовлюсь,проверяю информацию,а то вдруг я ошибаюсь.Эта статья не стала исключением.Под windows мною был найден аналог wail2ban,на который не так много мануалов-при желании можете его опробовать (https://github.com/glasnt/wail2ban).Так же я нашёл под windows IPban,с него и начнём:
2)Внесём изменения в политику безопасности:
Аудит входа в систему и аудит событий входа в систему
Включите в этих политиках регистрацию сбоев
3)Добавим приложение в службы:
sc.exe create IPBAN type= own start= auto binPath= c:\»Каталог с программой»\IPBan.exe DisplayName= IPBAN
Перейдите в службы и запустите IPBAN
Чтобы разблокировать адреса-зайдите в брандмауэр,откройте свойства IpBan,во вкладке «Область»,подпункт «Удалённый Ip-адрес» располагаются забаненные IP.
Под Windows имеются стандартные правила,при которых блокирование происходит с 5 подряд неудачными попытками входа.
Не будем же тянуть и рассмотрим настройку под Linux:
Или любой ваш менеджер пакетов
2)Основной файл настроек:
findtime=секунды интервала активности
maxretry=количество попыток входа
systemctl start fail2ban.service
systemctrl enable fail2ban.service
В заключение вам история моего опыта.После настроек на ssh fail2ban на серве,я пренебрёг белым листом IP-адресов.Как результат-однажды не имел доступа к серверу на 2 часа.Всего доброго!
Защита терминального сервера от подбора пароля
Итак, что мы имеем:
- терминальный сервер на Windows 2008R2
- реальный IP адрес сервера
- нет возможность всех клиентов заставить работать по VPN
- события о подборе пароля в журнале безопасности.
Трудности в том, что:
- при включенной NLA (Network Level Authentication) в логах отсутствует IP адрес источника;
- в отличии от Windows Server 2012 r2 в журнале Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational есть только запись «Прослушиватель RDP-Tcp получил соединение» но нет IP адреса источника.
Вариант 1: отключить NLA (в конфигурации сервера узла удалённых рабочих столов, с свойствах подключения убрать галоску «Разрешить подключаться только с компьютеров, на которых работает удалённый рабочий стол с проверкой подлинности на уровне сети»), после чего можно будет использовать DRPDefender — но это не наш метод.
Вариант 2: При успешном подключении (код события 4624 в журнале безопасности) выполняется запись айпишника в «белый лист». На всякий случай, чтоб его случайно не заблокировать. Так как некоторые терминальные клиенты (с MacOS и Linux) при подключенном состоянии к серверу но не работы на самом терминальном сервере (т.е. работе на локальном компьютере) пытаются переподключиться к серверу, создавая события 261 из Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational , и рискуют попасть в бан.
При создании нового события с кодом 261 из Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational выполняем скрипт. Который берёт айпиадреса которые сейчас активны на порту нашего терминального сервера (net stat с фильтрами), сравнивает их с IP адресами с которых за последние 7дней были успешные подключения по RDP, если с адреса были успешные подключения — тогда не трогаем его (скрипт закрывается). Если за 7 дней с этого IP адреса небыло успешных подключений — тогда «берём его на карандаш» а точнее записываем его в отдельный файлик (отдельный файлик для каждого адреса). Если в файлике более 20 строк (было 20 попыток подключиться) тогда добавляем этот адрес в правило фаервола (виндового) и создаётся отдельное задание (само, автоматически) на разблокировку через 15 минут.
P.S. 1: Для блокировки нужно в виндовом фаерволе создать запрещающее правило с названием BlockAttackers
P.S. 2: Задание в шедуллере должно иметь право на чтение виндовых журналов. По идеи должно хватать роли «Читатели журнала событий».
P.S. 3: Задание в шедуллере должно иметь право на изменение правил фаервола. Запускаю от имени системы.
Собрал оба скрипта в один файл. вынес ключевые параметры в переменные в начале файла
Инструкция по установке:
1. создаём правило в Брандмауере с названием «BlockAttackers»:
- действие «блокировать»;
- тип протокола — любой (ну или можно указать только порт RDP подключения, настроенный в виндовой службе);
- область — Удалённый IP адрес — указанные IP-адреса — добавьте адрес к примеру 1.1.1.1 (вероятность подключения вашего сотрудника с такого IP близится к нулю);
- профиль безопасности — все.
2. создаём задание в виндовом шедуллере, выполнять от имени «система» к примеру, при возникновении события с кодом 261 в журнале Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational выполняем действие «запуск программы» powershell.exe с аргументом
3. создаём задание в виндовом шедуллере, выполнять от имени «система» к примеру, при возникновении события с кодом 4624 в журнале «безопасность» источник «Microsoft Windows security auditing.» выполняем действие «запуск программы» powershell.exe с аргументом
4. создаём задание в виндовом шедуллере, выполнять от имени «система» к примеру, по расписанию в полночь (или около того) выполняем действие «запуск программы» powershell.exe с аргументом
По итогу в папке Temp создаются файлики с айпишниками успешных и неуспешных подключений.
— Добавил ключ устаонвки
— Подправил некоторые моменты относящиеся к описанию внутри кода.
— опитимизирован процесс установки в зависимости от версии ОС.
Защищаем RDP Windows Server без VPN
Часто у наших клиентов (обычно это небольшие организации без собственной IT службы) возникает необходимость предоставить доступ к своему серверу терминалов (о настройке и обеспечении отказоустойчивости будет отдельная статья) через глобальную сеть Интернет. Мы конечно же советуем так не делать, а использовать для подключения VPN (рекомендуем любимый нами SoftEther VPN Server), но если уж клиент настаивает, то стараемся максимально его обезопасить. И вот как раз про средства, которыми мы этого достигаем и пойдет речь в этой статье.
Первая программа, о которой мы расскажем называется Cyberarms Intrusion Detection and Defense Software (IDDS).
К сожалению, судя по всему, разработка была прекращена в 2017-м году, но тем не менее программа (с некоторыми нюансами — о них далее) работает даже на ОС Windows Server 2019.
Принцип действия довольно таки простой, но в тоже время эффективный: после нескольких неудачных попыток ввода пароля(количество для блокировки определено в параметрах) срабатывает Soft lock(подозрение в брутфорсе), в журнале создается инцидент и IP помечается как подозрительный. Если новых попыток не последовало, то спустя 20 минут адрес убирается из списка наблюдаемых. Если же перебор паролей продолжается, то IP адрес «злоумышленника» добавляется в запрещающее подключения правило брандмауэра Windows (должен быть в активированном состоянии) и тем самым подбор пароля с этого адреса временно прекращается, так как подключения полностью блокируются. Блокировка Hard lock продлится 24 часа — такой параметр выставлен по умолчанию. Вечную блокировку,»Hard lock forever», включать не рекомендуем, иначе количество IP в правиле брандмауэра быстро «распухнет» и программа будет тормозить.
Soft and Hard lock threshold — counts and duration
Устанавливается программа просто — скачиваем архив с установщиком, распаковываем во временную папку. Cкачиваем и устанавливаем Microsoft Visual C++ 2010 x64 (vcredist_x64.exe) и только после этого запускаем пакет установщика Windows —Cyberarms.IntrusionDetection.Setup.x64.msi, потому как у setup.exe скачать и установить автоматически Visual C++ не получается.
Далее производим настройку — активируем агент для защиты RDP сессий «TLS/SSL Security Agent«, во вкладке «AGENTS«:
Enable «TLS/SSL Security Agent»
Вторая программа — Duo Authentication for Windows Logon and RDP
это инструмент для мультифакторной аутентификации от Duo Security (Cisco), коммерческий многофункциональный продукт, который безупречно работает и позволяет использовать смартфоны, токены и коды для 2FA.
Настраивается ПО немного сложнее предыдущей программы, но благодаря хорошей документации от разработчика довольно таки быстро.
Зарегистрируйте себе административный аккаунт, для доступа к панели управления (Личный кабинет). Рекомендуем сразу добавить еще одного администратора, потому как восстановить доступ с помощью разработчика довольно таки проблематично, а прецеденты с неожиданной утратой смартфона администратора возникают часто.
Войдите в панель администратора Duo и перейдите в Приложения (Applications).
Нажмите «Защитить приложение» и найдите в списке приложений запись для Microsoft RDP. Щелкните Защитить в крайнем правом углу, чтобы настроить приложение и получить ключ интеграции, секретный ключ и имя хоста API. Эта информация понадобится вам для завершения настройки (в процессе установки Duo Authentication for Windows Logon).
Мы рекомендуем установить политики по умолчанию для новых пользователей приложения Microsoft RDP значение «Запрет доступа«, поскольку ни один незарегистрированный в Duo пользователь не должен успешно проходить авторизацию. Но для этого вам будет необходимо добавить всех пользователей в Duo через панель управления вручную или, что намного удобнее, через импорт из Active Directory (об этом расскажем позже) и выслать им ссылку для активации приложения Duo Security, предварительно установленному на их смартфонах.
4. Загрузите и установите пакет установщика Duo Authentication for Windows Logon. Во время установки введите данные, полученные на предыдущем шаге.
Если вы хотите включить автономный доступ с помощью Duo MFA, вы можете сделать это сейчас в разделе «Настройки автономного доступа» на странице приложения Duo или вернуться в панель администратора позже, чтобы настроить автономный доступ после первой проверки успешного входа в систему с помощью двух-факторной аутентификации.
Также во время установки рекомендуем установить все 3 галки в чекбоксах — эти настройки позволят вам получать доступ в ОС без 2FA, например при использовании консоли гипервизора или при отсутствии подключения к серверам Duo (частый случай — большое расхождение по времени):
не лишним будет напоминание о безопасном хранении всех ключей:
Treat your secret key like a password
The security of your Duo application is tied to the security of your secret key (skey). Secure it as you would any sensitive credential. Don’t share it with unauthorized individuals or email it to anyone under any circumstances!
После установки Duo Authentication for Windows Logon можно добавить пользователя (своего, без привилегий администратора) и активировать приложение на смартфоне. Для этого переходим в раздел Users, жмем Add User — заполняем необходимые поля. Далее добавляем пользователю телефон (раздел Phones — Add Phone) и активируем Duo Moibile (ссылку для активации пользователю можно отправить SMS, если есть деньги на балансе или вручную через Email или другим удобным способом).
Теперь при подключении и успешной авторизации (по логину и паролю) пользователю будет отправлено Push уведомление на смартфон с активированным приложением Duo Mobile:
Если на смартфоне нет доступа в Интернет (и соответственно Push приходить не будут), то можно подтвердить авторизацию сгенерированным кодом (Passcode ) из приложения:
Настройка синхронизации пользователей с глобальным каталогом (Azure AD — Active Directory — LDAP) хорошо описана в документации разработчика, хочу лишь уточнить что это платный функционал. Основной компонент для синхронизации пользователей, это Duo Authentication Proxy — ПО, которое обеспечивает подключение к каталогу.
Если вы используете RDWEb (клиентский доступ или шлюз), то вам пригодится еще один компонент — Duo Authentication for Microsoft Remote Desktop Web. Настройка его аналогична Duo Authentication for Windows Logon и не должна вызвать затруднений.
Подводя итоги заметим, что рассмотренное ПО не является панацеей от всех бед для публичных сервисов (доступных из сети Интернет), потому как бывают уязвимости, эксплуатация которых позволяет злоумшленникам обходить даже такие меры по обеспечению безопасности ОС\инфраструктуры в целом. Поэтому требуется всегда комплесно подходить к этому вопросу — мониторинг, аудит и регламентные процедуры по обновлению позволят вам почувствовать себя защищенными в этом неспокойном мире. Берегите свои данные!
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.