Привет Хабр!

Сегодня в статье расскажу о недооценённом и малоизвестном сервисе информационной безопасности в межсетевых экранах (МСЭ) Zyxel VPN / ATP / USG Flex.

Сервис называется Geo Enforcer (Гео IP). С прошлого года, ориентировочно с версии 5.10, он стал бесплатным, не требует лицензию и процедур активаций.

Что это такое и чем он полезен?

Мои предыдущие статьи:

В конце текста информация обо мне.

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

Заказчики ИТ-объектов неоднократно изъявляли желание ограничить интернет в гостевой сети от зарубежных сайтов и оставить только российские сайты. Кроме них, на разных независимых от них объектах произошло два события, после которого Гео-IP им явно потребовался.

1. После ввода режима самоизоляции в 2020 году учащихся перевели на дистанционку и лекции проводили на серверах видеоконференций, вскоре подвергшиеся DDoS-атакам, что вызывало проблемы при подключении к серверам и ширина интернет-канала значительно сужалась и приводило к задержкам воспроизведения видео и аудиопотоков. Анализ логов показал, что перед DDoS-атаками серверы видеоконференций сканировали на наличие свободных портов и спустя время ДДоСили найденные открытые порты. Сканирование и атаки велись с разных зарубежных IP, но ни разу не было IP из России и бывших советских республик.

Стали ли бы сканировать серверы видеоконференций из России, защищённого МСЭ с Гео-IP, который отбрасывает все входящие соединения от всех стран, кроме той, в которой учащиеся проживали? Всё равно в период карантина за границу никто не выезжал.

2. Сотрудников других разных объектов перевели на удалёнку. Чтобы их серверы не сканировали с последующими атаками, к ним необходимо запретить доступ от всех стран, кроме той, в которой сотрудники проживали.

Понимаю, что Гео-IP не подходит тем, у кого клиенты или сотрудники разбросаны по всему миру, но тем не менее, есть компании, у которой сотрудники находятся в пределах одной страны. Судя по тому, что массовый перевод на удалёнку продолжается по сегодняшний день и ходит много разговоров об ограничений гостей от зарубежных сайтов в гостевых Wi-Fi сетях, поэтому проведу знакомство с Гео-IP. Пусть он будет у вас всегда под рукой, чем полное его отсутствие и нечем будет противостоять в момент проявления угрозы. Тем более, он стал бесплатным, штатно присутствует в прошивке МСЭ Zyxel VPN / ATP / USG Flex. Ничего покупать и активировать не нужно.

Предупреждён, значит вооружён.

Теперь приступим к знакомству с сервисом Гео-IP на МСЭ Zyxel USG Flex 500 (версия прошивки 5.20 с дефолтным конфигом) с краткими пояснениями, к чему и для чего можно применить этот сервис для полного понимания.

С веб-интерфейсом МСЭ Zyxel можно познакомиться в виртуальной лаборатории Zyxel:

На странице Geo IP (рис.1) можно "пробить" IP адрес, какой стране принадлежит. При отсутствии принадлежности к стране, можно вручную добавить IP к стране, если обновление базы адресов "IP - страна" не помогает.

Рис.1 - Страница Гео-IP.
Рис.1 - Страница Гео-IP.

Или в консоли (рис.2 и 3).

Рис.2 - Узнаём страну по IP.
Рис.2 - Узнаём страну по IP.
Рис.3 - Добавление отсутствующего IP к стране.
Рис.3 - Добавление отсутствующего IP к стране.
Для консоли текст команд для копипаста:

show geo-ip geography address х.х.х.х (где х.х.х.х - это IP)

Для добавления отсутствующего IP:

configure terminal
geo-ip geography RU all address х.х.х.х (где х.х.х.х - это IP)

write
exit

Для работы с Гео-IP в различных сценариях создал профиль с названием "Russkie_IP", в котором IP принадлежат России (рис.4 и рис.5).

Рис.4 - Выбор страны в создаваемом профиле.
Рис.4 - Выбор страны в создаваемом профиле.
Рис.5 - Создан Гео-IP профиль с IP, принадлежащие России.
Рис.5 - Создан Гео-IP профиль с IP, принадлежащие России.

В консоли (рис.6).

Рис.6 - Создание Гео-IP профиля с IP, принадлежащие России.
Рис.6 - Создание Гео-IP профиля с IP, принадлежащие России.
Для консоли текст команд для копипаста:

configure terminal
address-object Russkie_IP geography RU all

write
exit

Где можно применить Гео-IP:

1) В файрволле (рис.7).

В правилах файрволла ("КОНФИГУРАЦИЯ -> Безопасность -> Политики") Гео-IP профиль "Russkie_IP" можно применить к "Источник:" (откуда запрос/соединение приходит) и к "Назначение:" (куда запрос/соедиение будет отправлено).

Рис.7 - Правило файрволла с применением профиля Гео-IP.
Рис.7 - Правило файрволла с применением профиля Гео-IP.

В начале статьи приводил пример о сканировании серверов видеоконференций с последующими ДДоС-атаками. Для предотвращения получения информации о доступных IP и TCP/UDP портах лицам, находящиеся за пределами России или использующие сервисы с подменой публичного IP, закроем IP серверов видеоконференций от зарубежных запросов/соединений как на рис.9 или 10, при условии, что в штатном дефолтном правиле файрволла стоит "deny" (рис.11 или 12) и отсутствуют другие недефолтные разрешающие правила.

Заранее создадим расписание (рис.8) для включения/выключения правила файрволла, а потом перейдём к созданию правила файрволла (рис.9 или 10).

Рис.8 - Создание расписания.
Рис.8 - Создание расписания.
Для консоли текст команд для копипаста:

configure terminal
schedule-object Rabochii_grafik 07:45 18:00 mon tue wed thu fri sat

write
exit

Проверка добавленного расписания:

show schedule-object

Примечание: профиль "Rabochii_grafik" создавал в расписании для включения правила файрволла в 7:45 и выключения в 18:00, чтобы в вечернее, ночное время и в воскресенье все серверы видеоконференций всем были недоступны, всё равно занятий нет в такое время.

Теперь приступаем к созданию правила файрволла (рис.9 или 10) с применением профиля из Гео-IP "Russkie_IP" и из расписания "Rabochii_grafik".

Рис.9 - Создание политики (правила) в файрволле.
Рис.9 - Создание политики (правила) в файрволле.

В консоли (рис.10)

Рис.10 - Создание правила в файрволле.
Рис.10 - Создание правила в файрволле.
Для консоли текст команд для копипаста:
  1. configure terminal

  2. secure-policy insert 1

  3. description Tolko_iz_Rossii

  4. name WAN_to_DMZ

  5. from WAN

  6. to DMZ

  7. sourceip Russkie_IP

  8. schedule Rabochii_grafik

  9. action allow

  10. log

  11. exit

  12. write

  13. exit

    Проверка добавленного правила:

  14. show secure-policy 1

Рис.11 - Дефолтное правило файрволла.
Рис.11 - Дефолтное правило файрволла.

В консоли, рис.11

Рис.12 - Проверка действия в дефолтном правиле.
Рис.12 - Проверка действия в дефолтном правиле.
Для консоли текст команд для копипаста:

show secure-policy status

Примечание: не забудьте в дефолтном правиле "WAN_to_Device" (рис.13) в пункте "Источник:" выставить свой профиль Гео-IP или выключите правило, если не пользуетесь AH, ESP, IKE, NATT.

Рис.13 - Модернизация дефолтного правила "WAN_to_Device".
Рис.13 - Модернизация дефолтного правила "WAN_to_Device".

Теперь про другой вариант применения Гео-IP, в котором заказчики хотят ограничить гостевую сеть от зарубежных сайтов и оставить доступными только российские сайты. Немного модернизуем дефолтное правило "LAN1_Outgoing" (рис.14).

Рис.14 - Обновлённое правило, в котором доступны только российские ресурсы.
Рис.14 - Обновлённое правило, в котором доступны только российские ресурсы.

В консоли (рис.15).

Рис.15 - Модернизация дефолтного правила "LAN1_Outgoing", в котором доступны только российские ресурсы.
Рис.15 - Модернизация дефолтного правила "LAN1_Outgoing", в котором доступны только российские ресурсы.
Набранный текст команд для копипаста:
  1. configure terminal

  2. secure-policy 1

  3. description Tolko_v_Rossiu

  4. to WAN

  5. destinationip Russkie_IP

  6. log

  7. exit

  8. write

  9. exit

    Проверка правила:

  10. show secure-policy 1

2) В контроле сессий (рис.16).

В правилах контроля сессий ("КОНФИГУРАЦИЯ -> Безопасность -> Контроль сессий") профиль "Russkie_IP" можно применить к "IP-адрес".

Рис.16 - Создание профиля с лимитом сессий.
Рис.16 - Создание профиля с лимитом сессий.
Для консоли текст команд для копипаста:

configure terminal
session-limit insert 1
activate
address Russkie_IP
limit 512

write
exit

Таким образом, количество (лимит) соединений для хоста из профиля с российскими IP можно увеличить, как пример, до 4096 сессий, а у зарубежных IP будут дефолтные 1000 сессий , если есть угроза флуда с их стороны или со стороны гостевой сети.

Или, как вариант, ограничением количества сессий, обезопасим российские сайты от флуда со стороны непредсказуемых гостей в гостевой сети до 512 сессий, чтобы потом не досталось админу за гостей.

Напоминаю, правила действуют снизу вверх.

3) В веб-аутентификации (рис.17).

В правилах веб-аутентификации ("КОНФИГУРАЦИЯ -> Веб-аутентификация") профиль "Russkie_IP" можно применить к "IP-адрес источника" и "IP-адрес назначения".

Рис.17 - Создание политики (правила) веб-аутентификации.
Рис.17 - Создание политики (правила) веб-аутентификации.

Как правило, веб-аутентификация больше применима для авторизации гостей в гостевой Wi-Fi сети. У них при подключении к любому сайту выскакивает страница авторизации с просьбой ввести номер телефона. Подробнее об этом тут.

Благодаря присутствующему здесь Гео-IP, можно реализовать другой сценарий для рабочей сети. Например, сотрудников к российским сайтам допустить без авторизации, а к зарубежным только после ввода логина и пароля, ранее выданные им. Их можно локально создать там же в МСЭ ("КОНФИГУРАЦИЯ -> Объект -> Пользователи/группы" или "КОНФИГУРАЦИЯ -> Хотспот -> Биллинг") или подключить к внешнему RADIUS серверу и т.д. Вариантов множество.

О биллинге немного написано тут.

Таким образом, кому не разрешено выдать учётку, тот не сможет сёрфиться по зарубежным сайтам. Пример настройки сценария на рис.18 или в консоли на рис.19.

Рис.18 - Настройка веб-аутентификации, в котором запрашивается авторизация при выходе на зарубежные ресурсы. Для российских ресурсов не запрашивает.
Рис.18 - Настройка веб-аутентификации, в котором запрашивается авторизация при выходе на зарубежные ресурсы. Для российских ресурсов не запрашивает.
Рис.19 - Настройка веб-аутентификации, в котором запрашивается авторизация при выходе на зарубежные ресурсы. Для российских ресурсов не запрашивает.
Рис.19 - Настройка веб-аутентификации, в котором запрашивается авторизация при выходе на зарубежные ресурсы. Для российских ресурсов не запрашивает.
Для консоли текст команд для копипаста:

configure terminal
web-auth activate
web-auth policy insert 1
activate
interface lan1
destination Russkie_IP
no authentication
exit

web-auth policy insert 2
activate
interface lan1
authentication force
exit

write
exit

Проверка дефолтного правила веб-аутентификации:

show web-auth default-rule

Привести дефолтное правило в дефолтное состояние:

web-auth default-rule authentication unnecessary no log

4) В BWM (Bandwidth Management) (рис.20).

Это управление пропускной способностью. Ограничение скорости силами МСЭ любому устройству/учётке/подсети или группе устройств/учёток/подсетей.

В правилах BWM ("КОНФИГУРАЦИЯ -> BWM") профиль Russkie_IP можно применить к "Источник" и "Назначение".

Рис.20 - Создание политики (правила) BWM.
Рис.20 - Создание политики (правила) BWM.

Здесь вроде всё понятно. Установка ограничений в Кбит/с на входящую/исходящую скорость к хостам и от хостов по конкретно выбранной стране или группе выбранных стран.

5) В маршрутизации (рис.21).

В правилах маршрутизации ("КОНФИГУРАЦИЯ -> Сеть -> Маршрутизация") профиль "Russkie_IP" можно применить к "IP-адрес источника" и "IP-адрес назначения".

Рис.21 - Создание политики (правила) маршрутизации.
Рис.21 - Создание политики (правила) маршрутизации.

Как пример, при наличии двух провайдеров с разными тарифами и лимитами, можно направлять/принимать весь российский трафик только на первый WAN порт. Весь остальной трафик направить на второй WAN порт.

А как в логах? (Рис.22).

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

На сегодня всё.

Об авторе:

Кто я? Меня зовут Александр. 16 лет профессионально занимаюсь СКС и сетевым оборудованием. Получил много опыта работы с сетевым оборудованием различных вендоров. Приветствую простоту и дружелюбность конфигурирования/мониторинга сетевого оборудования, ответственность вендора за качество выпускаемой продукции и готовность исправлять недостатки, чтобы не тормозили сдачу новых проектов в назначенные сроки. Меня можно встретить и лично пообщаться в Телеграме - @NSanchez13, так что, если будут вопросы, комментарии, мнения – милости прошу.

Полезные ссылки:

Комментарии (5)


  1. Dukat
    10.03.2022 13:10
    +1

    И пользователи, использующие VPN с сервером в другой стране, например, из соображений гигиены, идут лесом.


    1. Zyxel_South Автор
      10.03.2022 14:15

      И пользователи, использующие VPN с сервером в другой стране, например, из соображений гигиены, идут лесом.

      Такому пользователю правило-исключение можно создать в файрволле или отдельную учётку для веб-аутентификации, если руководитель и отдел ИБ разрешают.


  1. Maxim_Q
    10.03.2022 17:09

    Для быстрой работы фаервола все адреса допустим из России хранятся в памяти? Сколько они места в RAM занимают? И на сколько стран хватит памяти Zyxel USG Flex 500 что рассмотрен в обзоре?


  1. algerka
    11.03.2022 06:53

    У меня сложилось впечатление, что автор ошибочно считает будто Geo-IP защитит от DDOS атаки.


  1. Zyxel_South Автор
    11.03.2022 08:24

    Для быстрой работы фаервола все адреса допустим из России хранятся в памяти? Сколько они места в RAM занимают? И на сколько стран хватит памяти Zyxel USG Flex 500 что рассмотрен в обзоре?

    У USG Flex 500 4 гб оперативки. База всех адресов хранится локально и периодически обновляется. Сколько места занимает, не знаю.