Как правильно настроить межсетевой экран или Check Point Security Best Practices

Как правильно настроить межсетевой экран или Check Point Security Best Practices

Уверен, что у большинства системных администраторов или сетевых инженеров возникал вопрос: «Правильно ли я настроил межсетевой экран и что еще можно сделать для лучшей защиты?«. Естественно, в этом вопросе стоит опираться на различные руководства (PCI DSS, ISO, NIST и т.д.) и здравый смысл. Помощь более опытных коллег также приветствуется.

В рамках же данной статьи мы попробуем описать основные рекомендации или лучшие практики (best practices) по настройке межсетевых экранов. Это некий “чек-лист”, следуя которому можно существенно повысить качество защиты сети. Руководство составлено специально для оборудования Check Point, однако оно также может быть использовано, как основа для самостоятельного аудита сети, построенной на оборудовании других вендоров (Cisco, Fortinet, Palo Alto и т.д.). Если вас это заинтересовало, то добро пожаловать под кат…

Compliance Blade

Вообще говоря, в случае с Check Point аудит «правильности» настроек можно выполнять в автоматическом режиме. Осуществляется это с помощью программного блейда Compliance, который активируется на менеджмент сервере:

Данный блейд выполняет следующие функции:

    Мониторинг программных блейдов в режиме 24/7

  • Постоянный контроль за тем, чтобы система управления, программные блейды и шлюзы безопасности были настроены оптимально.
  • Показывает неправильные настройки конфигурации и уязвимости в защите.
  • Предоставляет рекомендации по укреплению безопасности.
  • Показывает, как изменение конфигурации повлияет на безопасность.
  • Уведомляет об изменениях политик, негативно влияющих на безопасность.
  • Обучает пользователей, какими будут последствия желаемых изменений.
  • Переводит тысячи требований регуляторов на язык практических рекомендаций.
  • Постоянная оценка совместимости с требованиями регуляторов (PCI DSS, ISO, NIST, DSD и так далее).

Оценка соответствия требованиям регуляторов:

Оценка производительности отдельных шлюзов и блейдов:

Блейд Compliance поставляется бесплатно с подпиской на 1 год при покупке сервера управления (будь то физический appliance Smart-1 или виртуальная машина). Этого времени вполне достаточно для комплексной настройки средств защиты с последующей оценкой конфигураций. Таким образом, в первый год вы получаете бесплатный аудит сетевой безопасности (настроек Check Point).

Если вы еще ни разу не активировали данный блейд, то это весьма просто сделать в свойствах сервера управления (Management Server), как это было показано на картинке выше. После этого проинсталлировать политики и подождать некоторое время (в зависимости от размеров сети и количества шлюзов). С результатом оценки конфигураций можно ознакомиться на соответствующей вкладке Compliance в консоли SmartDashboard:

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

Что же делать после окончания подписки?
Специально для таких случаев мы создали данное руководство, которое позволит в ручном режиме проверить “адекватность” и безопасность текущих настроек в соответствии с рекомендациями Check Point. При этом мы не будем рассматривать стандарты различных регуляторов (PCI DSS, ISO и т.д.), а лишь затронем лучшие практики (Best Practices) по настройке средств сетевой защиты.

Firewall Best Practices
1. Присутствует правило Management (название может отличаться):

Данное правило используется для доступа с сервера управления (Management Server) и компьютера администратора к шлюзу безопасности (Security Gateway). Остальным доступ должен быть запрещен.

2. Присутствует правило Stealth (название может отличаться):

Данное правило используется для блокирования любой попытки доступа к самому шлюзу, что делает его “невидимым” и исключает возможность несанкционированного доступа. Убедитесь, что это правило расположено ниже чем Management.

3. Присутствует правило Clean up rule (название может отличаться):

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

4. Присутствует правило Do Not Log (название может отличаться) для которого отключено логирование:

Данное правило используется для фильтрования “паразитного” широковещательного трафика. К такому трафику относятся: udp-high-ports (UDP ports > 1024-65535), domain-udp, bootp, NBT (NetBios), rip (список может отличаться, в зависимости от вашей сети). Логирование отключается намеренно, дабы не перегружать логи межсетевого экрана бесполезной информацией. Правило должно находиться как можно выше в списке (лучше первым).

5. В списках доступа в колонке источник (source) отсутствует значение Any, т.е. любой трафик. Всегда указывайте конкретный источник в правилах, будь то сеть или хост. За исключением правил Stealth, Clean up rule, Do Not Log.

6. Отсутствуют правила разрешающие весь трафик (any any accept).

7. Запрещен входящий Internet трафик для сегментов Бухгалтерии (Finance) и Отдела кадров (HR).

8. Запрещен FTP трафик из сети Internet в DMZ.

9. Отсутствуют неиспользуемые правила. В консоли SmartDashboard можно просматривать счетчик совпадений по каждому списку доступа:

Если счетчик показывает нулевое значение или последнее совпадение (Last hit) было более чем 6 месяцев назад, то рекомендуется удалить данное правило, дабы не перегружать общий список.

10. Для всех правил в поле Track выставлена опция Log. Кроме правила Do Not Log. Так вы сможете логировать все важные события исключая широковещательный трафик.

11. Для всех правил указано “адекватное” имя и присутствует комментарий, поясняющий назначение этого правила.

12. На всех шлюзах включено логирование.

В качестве Лог-сервера может выступать сервер управления (Management Server) либо другое стороннее решение (возможно использование SIEM или Log Management систем).

13. На всех шлюзах настроен резервный Лог-сервер. Это позволит сохранить важные сообщения в случае отказа основного Лог-сервера.

14. На всех шлюзах также включена функция локального хранения логов. Это позволит сохранить информацию о событиях в случае недоступности Лог-сервер.

15. На всех шлюзах настроено создание нового Лог-файла при достижении определенного размера старого.

Это значительно ускорит обработку логов (отображение, поиск). Вернуться к более старым логам можно будет переключив Лог-файл.

16. На всех шлюзах настроены уведомления сигнализирующие о заканчивающемся дисковом пространстве. Уровень срабатывания выбирается в зависимости от общего объема жесткого диска. Как правило порог выставляется в районе 50-100 МБайт.

17. На всех шлюзах настроено удаление старых Лог-файлов при заканчивающемся дисковом пространстве. Уровень срабатывания выбирается в зависимости от общего объема жесткого диска. Как правило порог выставляется в районе 50 МБайт.

18. На всех шлюзах настроены скрипты, которые выполняются перед удалением старых Лог-файлов.

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

19. В глобальных настройках включено логирование для “VPN packet handling errors”, “VPN successful key exchange”, “VPN configuration & key exchange errors”, “Administrative notifications”, “Packet is incorrectly tagged” и “Packet tagging brute force attack”:

20. На всех шлюзах включен Anti-Spoofing в режиме prevent (для всех интерфейсов):

21. В глобальных настройках (global properties) проверьте значения временных интервалов по умолчанию для stateful inspection:

В случае необходимости измените в соответствии с требованиями вашей сети.

22. Для полей “Drop out of state TCP packets”, “Drop out of state ICMP packets” и “Drop out of state SCTP packets” включено Log on drop (смотри картинку выше).

23. В свойствах каждого шлюза включен счетчик Hit Count:

Это позволит видеть кол-во совпадений по каждому правилу (списку доступа) и удалять неиспользуемые.

24. В настройках оптимизации шлюза укажите максимальное количество конкурентных сессий.

Этот параметр зависит от модели шлюза и позволяет предотвратить перегрузку.

25. В глобальных настройках (global properties) пароли учетных записей пользователей (User Accounts) и администраторов (Administartor Accounts) истекают не позднее чем через 180 дней.

Также должно быть настроено оповещение об истекающем пароле.

26. При интеграции с Active Directory настроена смена пароля:

27. В глобальных настройках (global properties) активирована блокировка Администраторов. Учетная запись блокируется на 30 минут в случае 3-х неудачных попыток входа.

Также настроено уведомление о блокировке и сброс сессии управления, неактивной в течении 15 минут.

28. В свойствах шлюзов выставлена опция “Rematch connections”.

Это позволит блокировать запрещенные соединения сразу после установки новой политики и не ждать окончания сессии.

29. Настроена синхронизация времени (NTP)

Это позволит видеть актуальную дату и время для всех событий (логов).

Таковы рекомендации Check Point по настройке блейда Firewall. Но думаю многие заметили, что большинство советов применимы и к другим вендорам. Подобные рекомендации есть по всем блейдам (IPS, DLP, Application Control, URL Filtering и т.д.), которые мы возможно рассмотрим в следующих статьях.
Больше информации по Check Point можно найти в нашем корпоративном блоге. А чтобы бесплатно провести настроек безопасности Check Point, нажмите сюда.

Источник

Наилучшие методы настройки брандмауэра Защитник Windows брандмауэра

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

Чтобы открыть брандмауэр Windows, перейдите в меню Пуск, выберите Выполнить, введите WF.msc, а затем выберите ОК. См. также открыть брандмауэр Windows.

Сохранение параметров по умолчанию

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

Защитник Windows брандмауэра с расширенным обеспечением безопасности при первом открытии

Рис. 1. Защитник Windows брандмауэра

Профиль домена. Используется для сетей, в которых существует система проверки подлинности учетных записей в отношении контроллера домена (DC), таких как DC Azure Active Directory

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

Общедоступный профиль: разработан с учетом более высокой безопасности для общедоступных сетей, таких как Wi-Fi точки доступа, кафе, аэропорты, гостиницы или магазины

Просмотр подробных параметров для каждого профиля правой кнопкой мыши верхнего уровня брандмауэра Защитник Windows с узлом Advanced Security в левой области, а затем выбор свойств.

Читайте также:  Розетка с заземляющим контактом STEKKER пластик АВС 250В 16А IP44 черная PST16 21 44 RA 32741

Сохранение параметров по умолчанию в Защитник Windows брандмауэра по мере возможности. Эти параметры предназначены для обеспечения безопасности устройства для использования в большинстве сетевых сценариев. Одним из ключевых примеров является поведение блока по умолчанию для входящие подключения.

Снимок экрана с автоматически созданным описанием мобильного телефона

Рис. 2. Параметры исходящие и исходящие по умолчанию

Чтобы обеспечить максимальную безопасность, не измените параметр Блокировка по умолчанию для входящего подключения.

Дополнительные функции по настройке основных параметров брандмауэра см. в дополнительных приложениях Включить брандмауэр Windows и настроить поведение по умолчанию и контрольный список: Настройка базовых параметров брандмауэра.

Понимание приоритета правил для входящие правила

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

Это можно выполнить, щелкнув правой кнопкой мыши правила входящие или исходящиеправила , и выбрав новое правило. Интерфейс для добавления нового правила выглядит так:

Мастер создания правил

Рис. 3. Мастер создания правил

Эта статья не охватывает пошаговую конфигурацию правил. Общие рекомендации по созданию политики см. в брандмауэре Windows с расширенным руководством по развертыванию безопасности.

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

Явно определенные правила разрешить будут иметь приоритет над параметром блокировки по умолчанию.

Явные правила блокировки будут иметь приоритет над любыми противоречивыми правилами допуска.

Более конкретные правила будут иметь приоритет над менее конкретными правилами, за исключением случаев явных правил блокировки, как упоминалось в 2. (Например, если параметры правила 1 включают диапазон IP-адресов, в то время как параметры правила 2 включают один IP-адрес, правило 2 будет иметь приоритет.)

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

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

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

Создание правил для новых приложений перед первым запуском

Правила входящие разрешимые

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

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

Если у пользователя есть разрешения администратора, они будут вызваны. Если они отвечают "Нет" или отменяют запрос, будут созданы правила блокировки. Обычно создаются два правила, по одному для трафика TCP и UDP.

Если пользователь не является локальным администратором, он не будет вызван. В большинстве случаев будут созданы правила блокировки.

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

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

Известные проблемы с автоматическим созданием правил

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

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

Чтобы определить, почему некоторые приложения не могут общаться в сети, ознакомьтесь со следующими словами:

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

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

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

Запрос брандмауэра Windows

Рис. 4. Диалоговое окно для доступа

Создание локальных правил слияния политик и приложений

Правила брандмауэра можно развернуть:

  1. Локальное использование оснастки Брандмауэра (WF.msc)
  2. Локальное использование PowerShell
  3. Удаленное использование групповой политики, если устройство является членом Active Directory Name, System Center Configuration Manager (SCCM) или Intune (с помощью рабочей группы).

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

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

Настройка параметров

Рис. 5. Параметр слияния правил

В поставщике услуг конфигурации брандмауэраэквивалентным параметром является AllowLocalPolicyMerge. Этот параметр можно найти в каждом соответствующем узле профиля, DomainProfile, PrivateProfileи PublicProfile.

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

Администраторы могут отключить LocalPolicyMerge в средах с высокой безопасностью, чтобы обеспечить более жесткий контроль над конечными точками. Это может повлиять на некоторые приложения и службы, которые автоматически создают локализованную политику брандмауэра при установке, как было рассмотрено выше. Чтобы эти типы приложений и служб работали, администраторы должны централизованно нажимать правила с помощью групповой политики (GP), управления мобильными устройствами (MDM) или обоих (для гибридной или совместной среды управления).

CSP брандмауэра и CSP политики также имеют параметры, которые могут повлиять на объединение правил.

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

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

Использование шаблонов подпольных карт, таких как *C:*\teams.exe, * не поддерживается в правилах приложения. В настоящее время мы поддерживаем только правила, созданные с использованием полного пути к приложению(ы).

Знать, как использовать режим "экраны" для активных атак

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

Защита может быть достигнута **** путем проверки блокировки всех входящих подключений, в том числе в списке разрешенных параметров приложений, найденных в приложении Параметры Windows или в устаревшем файлеfirewall.cpl.

Входящие подключения

Рис. 6. Параметры Windows App/Windows Security/Firewall Protection/Network Type

Брандмауэр cpl

Рис. 7. Устаревшие firewall.cpl

По умолчанию брандмауэр Защитник Windows блокирует все, если не создано правило исключения. Этот параметр переопределяет исключения.

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

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

Создание исходящие правила

Вот несколько общих рекомендаций по настройке исходящие правила.

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

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

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

Для задач, связанных с созданием исходящие правила, см. в списке Контрольный список: Создание исходящие правила брандмауэра.

Документировать изменения

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

Читайте также:  ТОП 16 Лучших парогенераторов Рейтинг 2021

Источник

Стена огня. Учимся настраивать файрвол на примере MikroTik

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

  • Filter — занимается фильтрацией трафика — определяет, пропустить пакет в сеть или отбросить его. Мы будем рассматривать работу только этой таблицы;
  • NAT — Network Address Translation. Изменяет проходящие пакеты. Поменять адрес источника или порт назначения — дело именно этой таблицы. В основном она используется для обеспечения доступа в интернет из локалки и обратно. Иногда без NAT невозможно работать в плохо спроектированных сетях, а еще его, бывает, используют в качестве «костыля»;
  • Mangle — классифицирует и маркирует трафик и может менять некоторые поля в заголовке (TTL, ToS, DF). Применяется для построения сложных путей трафика (например, когда подключено два провайдера или нужны разные пути трафика для RDP и VoIP);
  • Raw — обрабатывает пакеты до их попадания в Connection Tracking. Пригодится для защиты от DoS или при работе с большими объемами трафика.

Таблицы состоят из цепочек. Цепочки в разных таблицах могут отличаться. Чуть позже станет ясно почему. В нашей таблице Filter три цепочки:

  • input — трафик к самому роутеру. Обязательное условие попадания в input — адресом назначения пакета должен быть один из адресов роутера, широковещательный адрес сети или широковещательный адрес работающей на роутере службы. Сюда попадает WinBox, SSH, WebFig, ping, VPN и другой трафик, предназначенный роутеру. Полный список можешь посмотреть в вики. В этой цепочке мы должны защищать сам роутер;
  • output — трафик от роутера. Ответы на прилетевшее в input или новые пакеты от роутера (пинг, VPN, SSH-сессия с самого роутера). Эта цепочка редко используется, так как часто роутер считается доверенным звеном и пакеты, генерируемые им, по умолчанию легитимны. Но, как показывает история взломов, контроль исходящего трафика может выявить заражение на начальных этапах;
  • forward — трафик, проходящий через роутер (когда пакет прилетел в один интерфейс и вылетел с другого или того же самого). Трафик из локалки в интернет, из интернета в локалку, из одного VLAN локалки в другой;
  • user chains — пользовательские цепочки. Админ может создавать цепочки правил по своему усмотрению. Это бывает полезно для декомпозиции больших конфигураций. К примеру, можно весь трафик на порты 80 и 443 завернуть в отдельную цепочку WEB и в ней уже делать десятки правил для фильтрации — это визуально упростит настройку, хотя качественно на прохождение трафика не повлияет.

Два важных момента, о которых нужно помнить.

Момент первый. У трафика в forward всегда есть входящий и исходящий интерфейсы — трафик влетел в input, обработался процессом маршрутизации и должен вылететь в output. У входного трафика не может быть исходящего интерфейса — он обработается внутри роутера и никуда дальше не полетит. Также у выходного трафика не может быть входящего интерфейса — этот трафик генерируется самим роутером (это либо новый трафик, либо созданный роутером ответ на трафик, пришедший в input).

Момент второй. У трафика не существует «внешнего» или «внутреннего» интерфейсов. Роутеру плевать, что ты считаешь внешним, — для него есть интерфейс, в который трафик вошел, и интерфейс, с которого трафик уйдет.

Правила образуют цепочки. У каждого правила может быть только одна цепочка. По умолчанию политика у всех цепочек — все разрешено. Правила срабатывают в таблицах в зависимости от их порядка: сначала пакет обработается первым правилом, затем вторым и так далее. Хорошим тоном считается упорядочивать правила внутри таблиц по цепочкам: сначала — пачка правил input, затем — forward, в конце — output.

Трафик будет проходить по правилам только в пределах своей цепочки. И если сначала идет input, потом forward, затем снова input, то трафик input все равно никогда не попадет в forward, то есть такое расположение правил не повлияет на прохождение трафика, а только запутает админа. В пределах одной таблицы пакет не перепрыгнет из одной цепочки в другую, пока админ это явно не укажет.

table_chain_rule

table_chain_rule

Xakep #253. Сканеры уязвимостей

Connection Tracking

Еще одна важная вещь для понимания работы файрвола — механизм определения состояния соединений — Connection Tracking (или просто ConnTrack). У RouterOS есть специальная таблица, в которой хранятся данные о состоянии соединений. Благодаря ей работает NAT и многие другие части файрвола.

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

ConnTrack

ConnTrack

Для ConnTrack существуют четыре состояния пакетов:

  • new — новый пакет, не принадлежащий ни одному из известных потоков. Это может быть первый пакет для коннекта к серверу RDP, или первый пакет в потоке WinBox, или запрос к DNS. Система запоминает Source IP, Source Port, Destination IP, Destination Port и некоторые другие параметры и записывает эти данные в таблицу. Следующий пакет с такими же данными будет относиться к записанному потоку;
  • established — пакет, принадлежащий существующему потоку. То есть пакет, у которого Source IP, Source Port, Destination IP, Destination Port подходят под одну из записей таблицы ConnTrack (или обратный пакет);
  • related — пакет, порожденный другим потоком. Некоторые протоколы, такие как FTP, SIP, PPTP, используют для работы несколько потоков. Например, управляющие команды FTP ходят по порту TCP 21, но данные передаются с порта TCP 20. При попытке получения или отправки данных на FTP в потоке на порт 21 сервер сообщает: «А сейчас я открою 20-й порт, и ты забирай данные с него», после этого клиент посылает пакет на 20-й порт сервера. Этот пакет будет считаться related, так как он порожден потоком 21-го порта;
  • invalid — все, что не относится к перечисленным выше состояниям. Пример: сессия корректно закрылась, но из-за ошибок маршрутизации часть пакетов из середины сессии улетела другим путем. Когда они пришли, их сессия уже закрыта и роутер о них ничего не знает. Они не new и не относятся к существующим соединениям, поэтому считаем их invalid.

Состояние потока не связано с флагами TCP: SYN, ACK, FIN. Для UDP и других stateless-протоколов в таблице ConnTrack тоже содержатся все возможные состояния.

Connstate

Connstate

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

Нажав кнопку Tracking, можно отключить механизм ConnTrack или подкрутить таймеры. В большинстве случаев тебе не понадобится заходить в эти настройки, но знать о них нужно. Режима ConnTrack три: что такое yes и no , думаю, понятно, а в режиме auto ConnTrack выключен до тех пор, пока хотя бы один пакет не попадет в существующие правила таблицы NAT или Filter.

WARNING

Выключенный ConnTrack ломает NAT и фичи файрвола, основанные на трекинге потоков: connection-bytes, connection-mark, connection-type, connection-state, connection-limit, connection-rate, layer7-protocol, new-connection-mark, tarpit.

Рекомендации по настройке

Переходим к практике настройки. В этой статье я расскажу о таблице Filter — той, что занимается фильтрацией трафика. Как мы выяснили чуть выше, за трафик к самому роутеру отвечает цепочка input, а за трафик, который проходит через роутер, — forward. Займемся защитой самого роутера.

Первое и самое главное, что нужно помнить при работе с файрволом, было описано еще в утерянной главе «Слова о полку Игореве»: «удаленная настройка файрвола — к дальней дороге». Так что уважай предков — чти их заветы и используй Safe Mode.

Работает этот режим так: ты нажимаешь кнопку Safe Mode в интерфейсе, и она остается нажатой. Дальше ты делаешь все, что собирался, но применятся эти изменения, только когда ты снова кликнешь по кнопке. Если они приведут к обрыву взаимодействия роутера и конфигуратора WinBox (например, если ты зафильтровал свои же пакеты или отключил интерфейс), то роутер вернется в состояние, которое было до входа в Safe Mode.

Запоминается только 100 действий, но этого хватит на большинство случаев. Перезагрузки не будет — откат мгновенный. Из консоли этот режим активируется по Ctrl-X.

Safe Mode

Safe Mode

Есть два подхода к настройке файрвола:

  • разрешено все, что не запрещено;
  • запрещено все, что не разрешено.

Ни один из них нельзя назвать однозначно правильным. Я приверженец второго подхода, но в незнакомых сетях применяю первый.

Чтобы разрешить нужный трафик, нужно определиться с этим самым трафиком. В случае с input это сделать довольно просто. Вот что нужно для корректной работы роутера.

  1. Management: WinBox, SSH, в некоторых случаях WebFig, например для просмотра графиков нагрузки.
  2. Если провайдер выдает адрес по DHCP, то разрешить этот протокол на внешнем интерфейсе.
  3. Если роутер является сервером DHCP, то разрешить этот протокол на внутренних интерфейсах.
  4. То же самое с DNS.
  5. Если будем поднимать туннели, то разрешить их.
  6. OSPF.
  7. ICMP.
  8. NTP.
  9. Neighbor Discovery.
  10. SNMP. .

Определились? Открываем нужное и закрываем все остальное.

Файрвол работает по принципу «если [условие], то [действие]». Если выполняются условия, заданные во вкладках General, Advanced, Extra, то к пакету применяется действие из вкладки Action. На сегодня нам будет достаточно условий src/dst address, protocol, src/dst port, in/out interface, connection-state. Их значения понятны по названию, но если вдруг неясно — вперед, читать про основы TCP/IP. Самые распространенные действия: accept — разрешено, drop — запрещено (пакет просто уничтожится), reject — запрещено, но отправитель получит информацию, что пакет был уничтожен по причине, указанной в reject-with.

Читайте также:  Как российские операторы обманывают нас со скоростью интернета

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

В этом случае при попытке подключиться к роутеру по SSH с адреса 10.11.0.11 файрвол будет шесть раз обращаться к CPU с вопросом, пропустить ли этот трафик. Выглядит это примерно так: «8291 — не наш порт — пропускаем дальше. 10.0.0.0/24 — не наша подсеть, пропускаем дальше. То же для 10.10.0.0/24, и только шестое правило подходит». На шестом шаге файрвол поймет, что трафик легитимный и его можно пропустить.

Пакеты FTP и весь другой неразрешенный трафик будет дергать CPU семь раз — первые шесть и последний дроп. И это в выдуманном примере из семи правил. В реальной жизни правил на порядок или два больше.

Первое, что мы можем сделать, — объединить два порта в одном правиле:

Немного снизили нагрузку. Но осталось три идентичных правила с разницей лишь в адресах. С помощью списка адресов (Address List) мы можем объединить их в одно.

Address List — фича RouterOS, которая позволяет объединять IP-адреса, подсети и DNS-имена в одну запись.

Создаем три записи в одном Address List.

Make Address List

Make Address List

И применяем его к нашему правилу.

Так из семи правил мы получили два и избавились от лишней нагрузки. По аналогии со списками адресов работают списки интерфейсов (я рассматривал их в предыдущей статье — «Защищаем MikroTik»): объединяем в один interface list интерфейсы разных провайдеров и вешаем правила уже не на сами интерфейсы, а на списки. Так мы не только уменьшим нагрузку, но и упростим жизнь админа: чем меньше правил, тем удобнее обслуживать систему.

Еще один способ облегчить работу файрволу — использовать ConnTrack. Понятно, что established-пакетов будет намного больше, чем new, related и invalid, вместе взятых. А раз мы разрешили первый пакет из потока, то все остальные пакеты в этом потоке можно считать легитимными. Поэтому просто создаем правило «разрешить established» и помещаем его в самом верху.

Выбирай нужные тебе протоколы и порты, создай соответствующие списки адресов и интерфейсов. Открой все, что нужно, и поставь последним правилом drop all. На этом основную настройку цепочки input можно считать завершенной.

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

Для примера конфигурации можешь взять мой шаблон.

Траблшутинг

Когда файрвол не работает или работает не так, как подразумевалось при настройке, виноват админ. Магии не бывает. Первое, на что стоит обратить внимание при траблшутинге, — счетчики пакетов. Если счетчик не увеличивается, значит, трафик в него не попадает. А если трафик не попадает, значит, либо этого трафика просто нет, либо он был обработан стоящим выше правилом.

Счетчики

Счетчики

Ты же помнишь, что правила файрвола работают по принципу «кто первый встал — того и тапки»? Если пакет попал под действие правила, то дальше он уже не пойдет. Значит, нужно искать проблему выше. Просто копируем наше правило, action ставим accept (для траблшутинга не делай дроп — так при проверке можно сломать себе доступ или нарушить работу сети) и постепенно двигаем его наверх до первого увеличения счетчиков в этом правиле. Если через это правило уже проходил трафик, то счетчики будут ненулевые и можно пропустить нужные нам пакеты, — просто сбрось счетчики в этом правиле или во всех кнопками Reset Counters.

Reset Counters

Reset Counters

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

Если даже в самом верху в правиле не будут увеличиваться счетчики, убирай правила из условия по одному. Начинай с интерфейсов — админы часто путаются в своих представлениях о том, откуда или куда должен идти трафик (например, при коннекте к провайдеру через PPPoE или в туннелях между филиалами или сложном роутинге). Счетчики пошли? Включаем лог и смотрим интерфейсы и другие параметры.

Если и это не помогает — пришло время тяжелой артиллерии. Идем в Tools → Torch и изучаем трафик на роутере. Может, ожидаемого трафика вовсе нет. Еще один крутой инструмент — аналог tcpdump — Tools → Packet Sniffer. Разбор работы этих инструментов тянет на отдельную статью (если она тебе интересна — сообщи об этом в комментариях к статье).

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

Inline Comments

Inline Comments

Также рекомендую распределять правила по порядку, следуя какой-то определенной логике. И старайся ее поддерживать на всех роутерах.

Итоги

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

Источник



Firewall: настройка межсетевого экрана сервера

Инструкция по настройке правил Firewall для виртуальных серверов в панели управления Serverspace.

Что это такое?

С помощью межсетевого экрана прямо из панели управления можно управлять доступом к серверу, сетевыми пакетами данных. Данная опция отдельно не тарифицируется и входит в стоимость сервера.

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

Сетевая архитектура

Для избежания конфликта правил межсетевого экрана и его правильной настройки необходимо понимать порядок действия существующих брандмауэров. Во-первых, вы можете настроить брандмауэр для частной сети. Во-вторых, для сервера через панель управления. В-третьих, вы можете настроить внутренний брандмауэр, например, для Linux через iptables, для Windows — встроенный.

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

Мы не рекомендуем одновременно использовать межсетевой экран на уровне сервера и внутренний программный:

Создание правила

Конфигурация брандмауэра доступна для всех VPS и находится в настройках сервера в разделе Firewall.

Важно:
— порядок правил имеет значение, чем меньше порядковый номер правила (чем выше он в списке), тем выше его приоритет. Изменять последовательность правил можно с помощью Drag and Drop, перетащив правило левой кнопкой мыши на нужную позицию;
— по умолчанию — все пакеты данных, как входящие, так и исходящие разрешены.

Для создания правила нажмите кнопку Добавить:

Перед вами откроется окно добавления правила. Необходимо заполнить следующие поля:

  • Name — понятное для пользователя название (не более 50 символов), как правило кратко описывает назначение правила;
  • Direction — направление пакетов, для которых необходимо применить правило, принимает одно из двух значений: Incoming или Outgoing. Incoming — правило распространяется на входящие пакеты данных, Outgoing — на исходящие;
  • Source/Destination — в зависимости от направления содержит IP-адрес сервера или одно из значений: IP-адрес, CIDR, диапазон IP-адресов и any;
  • SourcePort/DestinationPort — при выборе протокола TCP, UDP или TCP and UDP возможно указать порт, диапазон портов, либо Any;
  • Action — действие, которое необходимо применить, принимает одно из двух значений: Allow или Deny. Allow — разрешение пересылки пакетов данных, Deny — запрет пересылки;
  • Protocol — тип протокола, доступно ANY, TCP, UDP, TCP and UDP и ICMP.

Для создания правила нажмите Сохранить.

В нашем примере правило блокирует все входящие на сервер пакеты:

Чтобы созданное правило вступило в силу необходимо сохранить изменения с помощью кнопки Сохранить. Вы можете создать несколько правил и затем сохранить все разом:

После этого страница будет выглядеть следующим образом:

Приоритет правил

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

Для изменения приоритета правил перетащите с помощью левой кнопки мыши разрешающее правило на первое место и сохраните изменения:

После сохранение порядковые номера правил изменятся, а также изменится их приоритет:

Теперь конфигурация брандмауэра позволяет получать пакеты по протоколу Tcp по 80 порту, остальные пакеты проходить не будут.

Источник