Обзор шлюза Artica v4.40
Мне попался очень интересный фрукт - Artica, который представляет что-то среднее между сетевым шлюзом и межсетевым экраном. Функционал у него немного странный:
- расширенный HTTP-прокси;
- веб-фильтрация;
- O-day;
- DNS-брандмауэр;
- обратный прокси;
- обратный SSH-прокси;
- службы VPN;
- генератор Proxy.pac;
- DNS;
- DHCP.
Почему в этом шлюзе (так они его называют) есть DNS-брандмауэр и веб-фильтрация, но нет самого обычного сетевого экрана? Что ты такое? Скорее-всего что-то некачественное, но заинтересовать у них получилось.
Начать знакомство я решил с готового образа виртуальной машины.
Стандартный загрузчик grub, но тут версия Artica 4.50 LTS. Наберитесь терпения! Обзор будет про версию 4.40.
Загрузилось ядро Linux и пошли запускаться службы. Какие-то проблемы с запуском менеджера пакетов AppArmor в готовом образе, что звучит очень странно. Еще более странно видеть, что он на интерфейс присвоил IP-адрес 192.168.1.139. По DHCP раздаётся 3-я подсеть, а не 1.
Предлагает открыть https://192.168.1.139:9000. Поменял IP вручную, но пинг до машины не проходит, указанный веб-интерфейс не открывается. Почему нет возможности получить по DHCP настройки? Весьма странно.
Пробовал перезагружать веб-интерфейс, обновлять и перезагружать весь шлюз, но толку нет. Тогда решил поставить из образа и максимально доступная версия в виде iso только 4.40.
Сразу вижу совершенно другой загрузчик... Может быть это от настроек самой виртуальной машины зависит.
Выбираем язык.
После выбора языка пошла загрузка дополнительных компонентов, но они никак не связаны с языком.
Просит указать IP. Даже не знаю, что логичнее - получение пакетов до настройки сети, или настройка сети без возможности получить их по DHCP. Хорошо, указываем IP, но тут ведь два интерфейса, а ip просит указать один. М-да...
Я еще при загрузке 4.50 заметил, но думал, что мне показалось. Видимо, не показалось. Посмотрите на версию ядра Линукс, которая используется этим шлюзом - 4.19.0-23. Она вышла в 2018 году. Также, в Artica используется python 2.7, но во время установки были пакеты и от python 3. В общем, я уже так с ходу могу себе представить список эксплоитов, которые будут работать с этим шлюзом.
Безопасным его считать нельзя, так как слишком много устаревших библиотек, в которых присутствует слишком много уязвимостей.
Вот именно на этом этапе я видел установку python 2.7, и много чего еще.
И опять та же ошибка про AppArmor.
Хорошо, установили, но доступ к машине не появился.
Пинг не проходит. Пытался с внешнего и с внутреннего интерфейса. На скриншоте пинговал два адреса, чтобы исключить вероятность ошибки.
Хотел показать, что он предлагает зайти по обоим адресам.
И тут меня осенило, а вдруг это "качественное" ПО просто не умеет работать с VMWare?
На virtualbox установилось и запустилось без этих проблем. У них нет готовых образом для virtualbox, но их софт поддерживает только его. К - Качество.
Веб-интерфейс без проблем запустился по указанному адресу, но только с внутреннего интерфейса. Это конечно правильно, но он то пишет совсем другое... Там даже правило межсетевого экрана есть, которое разрешает эти порты на все интерфейсы. Однако это я отвлекся. На данном этапе нас просят указать язык и часовой пояс.
Тут можно указать сетевые настройки, но зачем? Мы ведь их получили\указали еще на этапе установки.
Веб-интерфейс реализован фантастически бездарно. Такое чувство, что дизайнер веб-интерфейса не пробовал сам устанавливать их продукт. Вдумайтесь, у них с одного образа ставится платная и бесплатная версия. Уже после установки ты можешь ввести лицензию и получить корпоративный продукт.
Пролистал вниз, пока все норм. Сейчас буду листать в бок.
Вот теперь понимаете о чем я? Такой веб-интерфейс можно потерпеть в бесплатной версии, но не в платной.
Нас просят выбрать функционал сервера - выбираю минималистичный шлюз.
Кстати, ожидаешь, что будут заданы какие-то настройки по умолчанию, но нет. На этом этапе можно выбрать те компоненты, которые будут установлены, но тебе нужно их еще отдельно настроить, например, DHCP вообще не был установлен. Правильно, зачем в шлюзе автоматическая раздача сетевых настроек во внутренней сети, это ведь минималистичный шлюз. Однако хочет задать вопрос, а нафига он вообще тогда нужен? Странная прокладка между интернетом и компьютером.
Указываем логин, пароль, почту, название организации и лицензионный ключ, если он у вас есть. Если его нет, тогда будет активирована пробная версия, по истечении которой активируется community версия.
Пошла настройка пакетов. Я одного не понимаю, зачем показывать пользователям служебные сообщения над заголовком? Пользователю действительно нужно знать какая сейчас функция и из какой строчки wizard.php сейчас работает? Похоже на ошибку, но это не так.
Как говорится, это не баг, это фича.
Аутентификация. Вводим логин и пароль. Кстати, можно закрыть браузер и открыть - сессия не сбросится. Тоже не очень безопасно. Мне кажется это был сбой, но после перезагрузки он тоже открыл веб-интерфейс без ввода логина и пароля.
Главный экран - панель инструментов.
Я открыл вкладку License и специально сбросил пробную версию.
Дальше решил обновить систему. Я ожидал, что будет доступно обновление до 4.50, но тут только сервисный пакет был доступен. У меня стояла версия с sp140, а тут доступна ночная сборка sp162.
Ааа, тут же всё логично, я забыл. Обновление до версии 4.50 доступно только с ночной сборки.
От вкладки с названием "Возможности" ждешь какого-нибудь описания, а не менеджер пакетов. Однако доступных компонентов для установки тут очень много. Устанавливаются они легко, но делать это лучше с версии 4.50, так как с 4,40 совсем не хочется устанавливаться IDS.
Все доступные для установки компоненты перечислять не буду, так как их слишком много. Просто установлю самые интересные для меня и покажу их вам.
Больше интересного в этой вкладке нет. Watchdog это известная служба для слежки для службами.
Внимание, возможность установить компонент межсетевого экрана можно только из вкладки Интерфейсы! Тут доступны кнопки Enable и Disable, но по нажатию он именно устанавливает компонент. Даже не знаю как прокомментировать это решение и оценить логику.
Чуть ниже, под этими кнопочками можно увидеть настройки интерфейсов. Именно тут можно включить DHCP, который все равно не работает.
Открыл вкладку открытые порты и мне стало страшно... Посмотрите, эти все порты открыты во все интерфейсы. Веб-интерфейс доступен по переменной all, которая включает и wan интерфейс.
Странно, но я при помощи nmap не смог найти хоть один открытый порт из внешнего интерфейса.
Маршрутизация.
Не до конца понятно назначение вкладки Твои сети. Это список внутренних сетей или вообще всех доступных. Однако, возможность сделать сеть доверенной или разрешить пинг и скан очень интересная.
Если открыть вкладку System information, то можно увидеть много древних версий библиотек, например, php 7.4.33 или python 2.7.16, который вышел в 2019 году.
Так и не понял, как этот сервер отправить в перезагрузку из веб-интерфейса? И еще, обновил до версии 4.50, и он в веб-интерфейсе и в основной консоли пишет 4.50, но в загрузчике grub пишет 4.40.
И да, после перезагрузки он не просит заново ввести логин и пароль. Уверен, что можно просто украсть куки и зайти с другого компьютера, как делали некоторые лет 15 назад с социальными сетями.
Межсетевой экран для DNS.
Когда открываешь глобальные настройки этого сетевого экрана DNS становится понятно, что это просто пшик. По умолчанию очень короткий список доменов для защиты от подделки. Ограничения по количеству запросов и защита от плохих запросов. Всё это весьма неубедительно.
Функционал DNS-сервера.
Функционал безопасного поиска в DNS. Обратите внимание, что тут есть Яндекс.
Весьма непривычное название для межсетевых экранов. Разве нельзя тоже самое сделать в DNS? Странная возможность. Может быть это нужно на тот случай, если службу DNS тут не планируется использовать.
DHCP сервер, но было бы лучше, если бы он еще работал.
Оказывается мало включить сервис, нужно еще зайти в детальные настройки интерфейса и там его включить. И тогда он заработал. Странно, а что я тогда включал в интерфейсах?
Параметры межсетевого экрана. Тут можно разрешить пинг, указать тип сети, разрешить веб-интерфейс.
По умолчанию указано правило - все пропускать со всех интерфейсов. Из коробки он очень безопасен, и без уязвимостей.
Объекты сетевого экрана. Там указана внутренняя сеть с 24 маской.
Службы сетевого экрана. Почему назвали службами, ведь это порты для определенных протоколов.
Весьма интересная идея, но если упростить, то это маскарадинг. Иными словами, перенаправление пакетов с одного интерфейса на другой.
NAT.
Шейпер для ограничения скорости.
Система обнаружения вторжений.
Списки правил для IDS. Их много, но почти все от ET Open.
Категории выбраны, но список правил пуст.
Надеюсь, что это частоту обновлений можно менять только в платной версии, а не сами обновления получать.
Тут уже написано, что три часа назад обновились, но правила так и не появились.
Fail to Ban для блокировки любителей атаки грубой силой.
Радует возможность просто вручную подсунуть файлы обновлений ClamAV.
Сам ClamAV.
Универсальный прокси-сервер.
Хороший список протоколов для прокси-сервера.
Вывод
В шлюзе Artica очень много интересных компонентов, и это я еще даже не половину показал - только самые интересные. Их количество просто невероятное, и устанавливать их очень легко - просто нажми кнопку Install. Однако ничего не работает из коробки. Всё нужно настраивать с умом. На официальной вики странице нет толковых инструкций. Там даже не указано на базе чего сделана IDS - очень похожа на Snort. Там упоминается какая-то интеграция с CrowdSec, но о чем речь не понял.
Честно говоря, в Artica нет ни одного компонента, который бы просто работал как нужно. Везде нужно разбираться с бубном. Именно с бубном, потому что в документации ничего не описано толком. Кое-как костылями заставляешь работать хоть что-то.
Возможно он когда-нибудь станет конкурентом для того же pfsense (ссылка), opnsense (ссылка) или ipfire (ссылка), но в данный момент он не заслуживает внимания совсем.