ServerAdmin.ru
31.6K subscribers
846 photos
57 videos
23 files
2.99K links
Авторская информация о системном администрировании.

Информация о рекламе: @srv_admin_reklama_bot
Автор: @zeroxzed

Второй канал: @srv_admin_live
Сайт: serveradmin.ru

Ресурс включён в перечень Роскомнадзора
Download Telegram
После публикации на тему port knocking один читатель поделился шикарной утилитой, с помощью которой можно похожим образом открывать доступ на основе HTTP запроса, что во многих случаях удобнее отправки пакетов. Программа называется labean. Автор русскоязычный, поэтому подобное название не случайно (кто не понял, читайте наоборот).

Идея подобного функционала у меня давно сидела в голове, но до реализации дело не дошло. А готовых инструментов я раньше не встречал и даже не слышал о них. Labean работает очень просто и эффективно. С его помощью можно выполнить любое действие при определённом http запросе. Например, обращаемся на url http://10.20.1.56/labean/tuktuk/ssh/on, а labean выполняет проброс порта на нужный сервер. То есть выполняет конкретное действие:

iptables -t nat -A PREROUTING -p tcp --dport 31004 -i ens18 \
-s 10.20.1.1 -j DNAT --to 10.30.51.4:22

Я проверил работу labean, очень понравился результат. Настраивается быстро и легко. Рассказываю по шагам.

Сначала собираем утилиту из исходников. Написана на GO.
# apt install golang git nginx
# git clone https://github.com/uprt/labean.git
# cd labean
# go build

Копируем бинарник, конфиг и systemd unit.
# cp labean /usr/sbin
# cp examples/labean.conf.ex /etc/labean.conf
# cp examples/labean.service.ex /etc/systemd/system/labean.service

Рисуем примерно такой конфиг:

{
 "listen": "127.0.0.1:8080",
 "url_prefix": "tuktuk",
 "external_ip": "10.20.1.56",
 "real_ip_header": "X-Real-IP",
 "allow_explicit_ips": true,
 "tasks": [
  {
   "name": "ssh",
   "timeout": 30,
   "on_command": "iptables -t nat -A PREROUTING -p tcp --dport 31004 -i ens18 -s {clientIP} -j DNAT --to 10.30.51.4:22",
   "off_command": "iptables -t nat -D PREROUTING -p tcp --dport 31004 -i ens18 -s {clientIP} -j DNAT --to 10.30.51.4:22"
  },
  {
   "name": "postfix",
   "timeout": 0,
   "on_command": "systemctl start postfix",
   "off_command": "systemctl stop postfix"
  }
  ]
}

Не буду все настройки описывать, можно в репозитории посмотреть. Я для теста сделал 2 сервиса и 2 разных действия для них. Первое действие добавляет правило в iptables, второе - запускает службу. Проверил оба примера, всё работает. Привожу для наглядности, чтобы вы понимали функционал. Labean может делать всё, что угодно, а не только правила firewall изменять.

Теперь для любого хоста, к которому мы будем обращаться, добавляем в конфиг nginx ещё один location. Я добавил прямо в default, чтобы по ip обращаться.

location ~ ^/labean/(.*) {
  proxy_set_header X-Real-IP $remote_addr;
  proxy_pass http://127.0.0.1:8080/$1;
}

При желании можно добавить basic auth и закрыть паролем.

Перечитываем службы systemd и запускаем:
# systemctl daemon-reload
# systemctl start nginx labean

Идём по урлу http://10.20.1.56/labean/tuktuk/ssh/on и смотрим результат:
{
 "commandLine": "iptables -t nat -A PREROUTING -p tcp --dport 31004 -i ens18 -s 10.20.1.1 -j DNAT --to 10.30.51.4:22",
 "returnCode": 0,
 "timeoutInSeconds": 30,
 "clientIp": "10.20.1.1"
}

Зайдём в консоль сервера и посмотрим правила iptables:
# iptables -L -v -n -t nat | grep 31004
  0   0 DNAT    tcp -- ens18 *    10.20.1.1      0.0.0.0/0      tcp dpt:31004 to:10.30.51.4:22

Через 30 секунд правило исчезнет. За это отвечает параметр timeout. Если поставить 0, то само удаляться не будет, и нужно будет вручную зайти на закрывающий урл - http://10.20.1.56/labean/tuktuk/ssh/off.

Как вы уже поняли, обращение к url http://10.20.1.56/labean/tuktuk/postfix/on и http://10.20.1.56/labean/tuktuk/postfix/off будет запускать и останавливать службу postfix. Дергать эти адреса можно как в браузере, так и через curl.

В документации заявлена ещё одна возможность через дополнительный аргумент ?ip=123.56.78.9 указывать для обработки различные ip адреса, но у меня почему-то сходу не заработало. Пока не разбирался.

Вот такая простая и удобная программа. Рекомендую обратить внимание. Я точно буду пользоваться, так как это очень удобно. Заметка получилось полной инструкцией.

#security #gateway
👍145👎4
​​Думаю, многие знают про программный шлюза на базе Freebsd — pfSense. Он, мне кажется, безусловный лидер в этой нише с очень большой историей. У него есть клон, который отпочковался в 2015 году и получил название OPNsense. У этих продуктов первое время была какая-то война с дискредитацией друг друга, но в итоге закончилась.

У OPNSense более современный и функциональный веб интерфейс. Он и выглядит приятнее, и по факту более удобен в том числе компоновкой разделов. Особенно что касается обновления пакетов. Там всё очень подробно расписано по новым пакетам. Также удобен функционал поиска, который помогает быстрее найти нужные настройки. Да и банально, первый раз зайдя в интерфейс pfSense, вы вряд ли быстро найдёте раздел меню, перезагружающий или выключающий сервер. Он почему-то находится в Diagnostics.

Оба продукта на базе ОС Freebsd. Базовый функционал у них примерно одинаковый:
DNS Server;
DHCP Server, Relay;
NAT;
Zone based Firewall;
WAN Failover и load balancing, VLAN, WLAN;
VPN (OpenVPN, Ipsec и другие);
Web Proxy (squid), Netflow Exporter;
QoS;
HA кластер;
Логирование всех изменений и настроек. Возможность откатить их обратно.

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

В мониторинге Zabbix есть шаблон для сбора метрик с обоих систем по SNMP.

Если присматриваете себе программный шлюз, то посмотрите обоих. Базовый функционал у них примерно одинаков, а различия не критичные, хоть и в некоторых случаях существенные. Например, OPNSense умеет автоматически складывать свои шифрованные бэкапы в Nextcloud. Поддержка этого реализована в веб интерфейсе и настраивается просто и быстро. Мелочь, но весьма приятная. В pfSense этого просто нет. Можно только вручную сохранить xml файл с настройками. Ну а про веб интерфейс я в начале уже сказал. У OPNsense он приятнее, логичнее и современнее.

Сайт / Исходники

#gateway
👍125👎5
Вчерашняя заметка про OPNsense вызвала повышенную активность в комментариях. Решил немного подбить информацию по этой теме, чтобы было всё в одном месте.

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

🟢 Начнём со шлюзов на базе FreeBSD с веб интерфейсом.

PfSense — безусловный лидер всей этой отрасли шлюзов с веб интерфейсом. Несмотря на то, что ОС FreeBSD переживает не лучшие времена в плане развития и популярности, никаких проблем в самой pfSense с этим нет, если вы не используете какое-то специфическое железо. В виртуальных машинах популярных гипервизоров всё заводится без проблем.

OPNsense — форк pfSense с более интенсивным развитием и современным веб интерфейсом. У него есть некоторые замечания к работе, но в целом некритичные. Можно смело использовать, если понравится. Функционал примерно как у pfSense.

ИКС — отечественная разработка на базе FreeBSD. Это платный продукт. Включил его в эту подборку, потому что есть бесплатная версия для 9-ти устройств в сети. Мне нравится этот программный шлюз. Неплохо его знаю. Одно время использовал дома, но не захотелось держать железку постоянно включённой для него, удалил.

🟢 Шлюзы на базе Linux с веб интерфейсом. Основной их плюс в том, что там внутри более популярный и понятный линуксоидам (но не всем остальным людям) iptables.

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

ClearOS — ещё одна коммерческая система, но есть Community версия с ограниченным базовым функционалом, которого во многих случаях хватает за глаза. Эту систему я одно время активно использовал, потому что она была на базе CentOS. Когда у меня везде стояли CentOS, мне это было удобно. В своё время написал статью про неё, которая была популярной.

Endian — ещё один шлюз на базе CentOS с большой историей. Первый релиз был в 2009 году. Мне трудно про него сказать что-то конкретное, потому что сам его не разворачивал и никогда не видел. В РФ он как-то не снискал популярности и малоизвестен. По описанию с сайта плюс-минус всё то же самое, что у остальных. Есть как коммерческая, так и Community версия.

Zentyal — это не совсем шлюз, скорее сборка всё в одном для малого бизнеса. Позиционируют себя как замена AD и Exchange для небольших компаний. Базовый функционал шлюза тоже представлен (dns, dhcp, nat, firewall, vpn и т.д.). Есть платная и Community версия. Построен на базе Ubuntu.

Шлюзы без веб интерфейса, только CLI.

VyOS — безусловный лидер и вообще единственный известный мне шлюз с настройкой через CLI. Построен на базе Debian, синтаксис максимально приближён к JunOS. VyOS заточен исключительно под сетевые функции, которых у него максимальное количество из всех программных шлюзов. Это не только уровень шлюза для офиса или виртуальной инфраструктуры. Он подойдёт и для провайдеров. VyOS больше инструмент сетевых инженеров.

❗️Все шлюзы, которыми я управлял лично, настраивал сам на базе стандартных дистрибутивов. Благодаря этому очень быстро прокачал свои навыки в этой сфере и без проблем могу заходить в консоль всех описанных шлюзов, разбираться с проблемами, что-то править. Я понимаю как работу фаерволов, в том числе в FreeBSD, так и отдельных пакетов. Рекомендую начинать с этого. А потом уже выбирать какие-то готовые сборки для упрощения и экономии времени. Мои статьи по шлюзам на freebsd, centos, debian.

#подборка #gateway
👍104👎2
​​Думаю, многие из вас знают такую компанию, как Sophos и её популярный продукт Sophos Firewall. Они продаются как отдельные устройства для монтажа в стойку, и как программные продукты для виртуальных машин. Я сам никогда не покупал и не настраивал их, но видел в одной компании подобный шлюз. Очень понравился своим функционалом.

Есть бесплатная версия Sophos Firewall Home Edition для домашних пользователей. Единственное ограничение — возможность использовать не более 4 процессорных ядер и 6 гигабайт оперативной памяти. Для очень многих ситуаций этого будет за глаза. Функционал сопоставим с коммерческой версией!

Основные возможности:
приоритизация трафика, двойной WAN
веб-фильтрация с контролем посещаемых сайтов по спискам, в том числе с использованием mitm.
графики использования, ограничения и квоты для различных пользователей
встроенный vpn сервер (разные реализации, в том числе openvpn)
антивирус для веб и почтового трафика

Я одно время не мог найти бесплатную версию на сайте. Думал, её убрали. Недавно решил ещё раз проверить и сразу нашёл. Скачать можно вот с этой страницы: https://www.sophos.com/en-us/free-tools/sophos-xg-firewall-home-edition Там нет проверки вводимых в форму данных. Можно написать всё, что угодно и сразу получить ссылку на скачивание. Но на почту придёт серийный номер, который нужен для активации продукта. Без него можно только триал на 30 дней запустить. Загрузка с IP адресов РФ заблокирована, я скачал через VPN. Это ограничение было и в 2020 году, не в 2022 появилось.

Я не буду подробно рассказывать про возможности этого файрвола, так как в интернете по нему очень много информации. Из бесплатных решений ничего лучше нет. Расплатиться придётся вероятностью того, что ваши данные будут куда-то сливаться. Продукт коммерческий и закрытый. Что он делает на самом деле, никак не узнать. Там встроенный антивирус, который не только сканирует весь трафик, но и регулярно обновляется.

Для тех, кто будет пробовать, подскажу несколько моментов. Первый сетевой интерфейс по умолчанию используется как LAN, второй как WAN. После установки через LAN интерфейс зайдите на https://172.16.16.16:4444, учётка admin / admin, в консоли она же используется.

#gateway
👍57👎7
​​Среди бесплатных анализаторов трафика (NTA — network traffic analysis) наиболее известные и функциональные (Elastiflow и Arkime) используют в качестве базы для хранения информации тяжёлый elasticsearch, к репозиторию которого ещё и доступ для РФ закрыт, что создаёт дополнительные трудности.

Есть ещё один бесплатный аналог — Akvorado, который хранит данные в более легковесном хранилище clickhouse.

📌 Он умеет:
принимать данные через Netflow, IPFIX, sFlow;
насыщать данные по ip адресам geo информацией от сервиса MaxMind;
показывать статистику через веб интерфейс.

Посмотреть, как всё это работает, можно в публичном demo. Поиграйтесь там с фильтрами, чтобы понять, какую информацию сможете получить. В принципе, она типовая, так как во всех подобных продуктах используются стандартные потоки, типа Netflow. Развернуть продукт у себя тоже никаких проблем, так как есть готовый docker-compose. Можно сразу оценить, что там под капотом.

Автор — француз Vincent Bernat. По сути, это его личный проект, так что по идее, он не должен стать платным, как это происходит с подобными продуктами. Например, с Ntopng или с тем же Elastiflow. Последний вроде бы полностью бесплатным был, а сейчас уже с кучей ограничений.

Сайт / Исходники / Demo

#gateway #netflow
👍47👎3
​​Могу посоветовать необычную связку для доступа извне к внутренним ресурсам без необходимости настройки VPN или программных клиентов. Всё будет работать через браузер. Подход нестандартный, но вполне рабочий. Я реализовывал лично на одиночном сервере для безопасного и простого доступа к виртуалкам.

Задача стояла настроить на Proxmox несколько виртуальных машин: Windows Server для работы с 1С, Debian для PostgreSQL + 1С сервер, Debian для локальных изолированных бэкапов. Плюс я добавил сюда одну служебную виртуалку для шлюза с iptables. Задача была максимально упростить доступ клиентов к 1С без дополнительных настроек, но при этом обезопасить его.

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

1️⃣ Labean — простой сервис, который при обнаружении открытия определённого url на установленном рядом веб сервере, добавляет временное или постоянное правило в iptables. Для настройки надо уметь работать с iptables.

2️⃣ Apache Guacamole — шлюз удалённых подключений, через который с помощью браузера можно по RDP или SSH попасть на сервер.

Работает всё это очень просто. Пользователю отправляются две ссылки. При переходе по первой ссылке labean создаёт правило в iptables для ip адреса клиента, разрешающее ему подключиться к Apache Guacamole. А вторая ссылка ведёт к веб интерфейсу Apache Guacamole, куда пользователю открылся доступ. В Apache Guacamole настраивается учётка для каждого пользователя, где добавлены сервера, к которым ему можно подключаться.

Ссылки для labean настраиваются вручную с не словарными путями, которые невозможно подобрать. Нужно точно знать URL. В данном случае Apache Guacamole выступает для удобства подключения пользователей. Если они готовы настраивать себе клиенты RDP, то можно в labean настраивать сразу проброс по RDP. А можно и то и другое. И каждый сам решает, как он хочется зайти: через RDP клиент или через браузер. Работа в браузере накладывает свои ограничения и не всем подходит.

Вместо labean можно использовать port knocking или настроить HTTP доступ через nginx proxy, закрыв его basic auth. Лично мне реализация через url для labean кажется наиболее простой и удобной для конечного пользователя.

Разумеется, помимо labean, должен быть ещё какой-то путь попасть на эти сервера для управления. Белые списки IP или тот же VPN. Администратору, думаю, будет не трудно настроить себе VPN. Я, кстати, на данном сервере в том числе настроил и OpenVPN для тех, кто готов им пользоваться в обход описанной выше схемы.

#security #gateway #network
👍84👎7
Существует отдельный класс файрволов - NGFW (Next Generation Firewall). Они либо работают в связке с IDPS (Intrusion Detection and Prevention System), либо включает её в себе. Если говорить простыми словами, то это файрвол, интегрированный с системой обнаружения и предотвращения вторжения.

Наиболее известный бесплатный представитель этого класса - Suricata. Она интегрирована в софтовые файрволы Pfsense, OPNsense, IPFire и некоторые российские продукты. Если не ошибаюсь, то в IDECO и ИКС тоже она. Но ниже речь пойдёт не о ней, а о Zenarmor. Это коммерческий продукт, у которого есть функциональная бесплатная версия.

Обратил на него внимание, потому что он интегрирован в OPNsense, легко и быстро устанавливается и настраивается. Я сделал это, проверил работу, всё получилось с первого раза. Сразу скажу, какие задачи умеет решать бесплатная версия Zenarmor:

▪️ Просмотр текущей сетевой активности в режиме реального времени. Видно, какой хост куда обращается. Во время просмотра можно настроить различные блокировки на уровне хоста, адреса или домена назначения, tcp портов.
▪️ Сбор сводной статистики по сетевой активности с возможностью экспорта.
▪️ Блокировка доступа по сформированным спискам сайтов или типам трафика. Можно заблокировать весь трафик voip или https. Можем заблокировать конкретный сайт vk.com или применить сразу готовый список с сайтами, относящимся к социальным сетям или другим категориям.
▪️ Zenarmor регулярно обновляет сигнатуры угроз со своих серверов и теоретически может их предотвращать. На практике я это не проверял, потому что не знаю как. По идее, он должен автоматически блокировать вредоносную активность вирусов.

Всю основную функциональность я проверил. Развернул по небольшому руководству из этого видео:

▶️ Установка Next Generation FireWall Zenarmor в OPNsense

Собственно, оно и было отправной точкой в этой теме. Установил OPNsense, далее плагин Zenarmor. Подключил тестовую машину с виндой к шлюзу и погонял трафик с неё. Настройка очень простая. В приведённом видео всё есть. Там же примеры возможностей, дашбордов, отчётов. Если вам нужны красивые картинки со статистикой для руководства, то это будет неплохим решением.

Все возможности бесплатной версии Zenarmor перечислены на странице со сравнением тарифных планов. Для использования у себя не нужны никакие регистрации. Просто ставим OPNsense и соответствующий плагин из интерфейса шлюза. На выходе получается более удобный и эффективный продукт, нежели существующая в pfsense связка на базе snort+suricata.

Сайт

#gateway #security
👍85👎4
Думаю, многие из вас знают или слышали о бесплатном продукте Suricata – это система обнаружения вторжений (IDS) и система предотвращения вторжений (IPS) с открытым исходным кодом. Её обычно используют в программных шлюзах и анализаторах трафика. Например, в IPFire, OPNsense, PfSense, Arkime и т.д.

На базе Suricata построен известный продукт SELKS, который является отличным дополнением к бесплатному же Wazuh - это SIEM система (Security Information and Event Management). Получается хорошая связка:

◽️SELKS мониторит сетевой трафик в режиме реального времени, выявляет угрозы на уровне сети и пытается их предотвратить.
◽️Wazuh ставит агенты на конечные системы, собирает данные об ОС, софте, уязвимостях, о событиях из логов, об изменениях с уровня файловой системы и т.д.

Вместе эта бесплатная парочка закрывают базовые потребности малого и среднего бизнеса. Хотя не уверен, что малому это в принципе нужно, но тем не менее. Это хорошая рабочая связка.

В январе этого года SELKS прекратил своё развитие в том виде, как он был. Его переименовали в Clear NDR – Community и немного пересобрали. Заменили Elastic Stack (Elasticsearch, Logstash, Kibana) на OpenSearch и Fluentd. Также изменили веб интерфейс с Kibana на тот, что есть в Enterprise-версии. Но при этом версия осталась бесплатной с той же функциональностью. Разработчики обещают более активное развитие, так как теперь у
Community и Enterprise версии общая кодовая база и одинаковый веб интерфейс.

Для Clear NDR - Community пока нет собранного ISO файла, как это было у SELKS. Его можно было развернуть с помощью установщика, как отдельную, новую систему. Clear NDR ставится поверх уже установленной с помощью утилиты stamusctl и работает на базе Docker.

Установка Clear NDR - Community:

# wget https://dl.clearndr.io/stamusctl-linux-amd64
# chmod +x ./stamusctl-linux-amd64
# mv ./stamusctl-linux-amd64 /usr/local/bin/stamusctl

У меня напрямую не скачался бинарник на сервере. Не знаю почему, не стал разбираться. Скачал через браузер даже без VPN и закинул на сервер вручную.

# mkdir /opt/ClearNDR && cd /opt/ClearNDR
# stamusctl compose init

Выбираем сетевой интерфейс, на котором будем слушать трафик. Запускаем сервис:

# stamusctl compose up -d

Можно идти в веб интерфейс по HTTPS и настраивать систему. Учётка по умолчанию - selks-user / selks-user.

К сожалению, на Clear NDR нельзя напрямую подать NetFlow трафик для простого и удобного анализа, поэтому если сервер с ней не является шлюзом, то нужно будет каким-то образом реализовывать подачу нужного трафика на сетевой интерфейс сервера с Clear NDR. В зависимости от топологии сети, задача может решаться по-разному.

Для ручных проверок готовых дампов трафика в формате pcap, можно сделать вот так:

# stamusctl compose readpcap fulltraf.pcap

Система при запуске заберёт себе и проанализирует весь трафик из файла.

Проверить работу можно с помощью набора проверок отсюда: https://github.com/3CORESec/testmynids.org

Отдельно отмечу, что в составе Clear NDR есть полнофункциональный Arkime.

🌐 Сайт / Исходники

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#security #gateway
👍109👎3
Одним из самых популярных, если не самый популярный, программных шлюзов является pfSense. Хотел тут оставить ссылку на заметку о нём, но оказалось, что её никогда не было. Это очень старое, проверенное временем решение на базе FreeBSD - программный шлюз с файрволом, который настраивается и управляется через веб интерфейс.

Недавно знакомый попросил скачать образ, так как без VPN он недоступен, и у него не получалось скачать. Прислал ссылку. Я зашёл по ссылке и ничего не понял. Сайт вроде тот. Жму кнопку Download и попадаю в магазин Netgate. Не понимаю, что тут надо качать.

Пошёл в документацию pfSense, всё там перечитал по установке и понял, что надо каким-то образом оформлять покупку за нулевую стоимость, предварительно зарегистрировавшись и отдав кучу личной информации. Иначе свежий ISO образ с pfSense не получить. Плюнул на это дело и предложил скачивать предыдущую версию, которая существует в виде обычной ссылки для загрузки.

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

Несмотря на то, что продаётся этот установщик за 0$, оформить покупку всё равно не очень просто. Во-первых, там надо зарегистрироваться, а во время оформления заказа ещё и адрес с телефоном указать. Во-вторых, там заблокирован доступ с IP адресов РФ, причём так, что я даже через американский VPN сейчас зайти не могу.

В связи с этим я бы рекомендовал использовать OPNsense, как наиболее близкий и функциональный аналог. Там посвежее веб интерфейс, никаких ограничений и блокировок загрузки. Идёшь на сайт и качаешь любой подходящий ISO образ. При таких вводных не вижу ни одной причины, почему стоит отдать предпочтение pfSense, а не OPNsense.

Походу Netgate начала свою бесплатную систему потихоньку хоронить. Такой способ распространения многим не понравится. Люди будут отказываться в пользу аналогов. Кратко упомяну ещё несколько бесплатных программных шлюзов:

▪️VyOS (только CLI, без веб интерфейса)
▪️IPFire
▪️OpenWrt

Эти шлюзы я сам в то или иное время устанавливал и настраивал. Есть ещё те, что я лично не тестировал. Плюс, они частично бесплатные, то есть существуют более функциональные платные редакции, а те, что бесплатны, сильно урезаны. Но если ограничения для вас будут некритичны, то можно пользоваться:

◽️RouterOS
◽️ИКС
◽️Ideco
◽️Sophos Firewall Home Edition
◽️Endian Firewall Community
◽️Smoothwall Express

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

Если кто-то использовал Endian Firewall Community и Smoothwall Express, дайте, пожалуйста, обратную связь по ним. Я их лично не видел. Думаю попробовать, но не хочется время тратить, если это ерунда и существенно хуже того же OPNsense.

#gateway
👍103👎3
Я не так давно делал подборку инструментов для учёта трафика в сети. Сейчас наиболее функциональное и бесплатное решение - Akvorado. У него одна существенная особенность. Он на базе Elasticsearch и очень прожорлив до ресурсов.

Сразу скажу, для чего подобные продукты могут быть полезны, даже если у вас очень простая инфраструктура. Банально, хочется понимать, что вообще происходит в сети и желательно хотя бы с небольшой ретроспективой. Когда всё нормально работает, вроде как и не нужна никакая статистика. А если что-то идёт не так и где-то тормозит? А у вас нет ничего, что анализировало бы трафик. Надо идти на шлюз, что-то там запускать, смотреть в консоли кто куда ходит и из-за чего всё тормозит. Может и не из-за сети.

Упомянутой в начале подборке очень не хватает в составе Xenoeye. Это полностью бесплатный Netflow/IPFIX/sFlow коллектор и анализатор от российских разработчиков. Я его запустил у себя и попробовал. Очень классное решение, особенно для небольших инфраструктур. Расскажу обо всё по порядку.

Сразу перечислю основные особенности Xenoeye:

▪️Полностью бесплатное решение.
▪️Есть готовый LXC контейнер и шаблон на его базе для Proxmox, ничего вручную устанавливать не надо.
▪️Для базовой функциональности достаточно просто запустить контейнер и смотреть графики в Grafana.
▪️Простые и гибкие настройки для детализации по объектам и событиям.
▪️Относительно небольшое для такого рода продуктов потребление ресурсов.

По Xenoeye особо нет инструкций или подробного описания, кроме статьи на хабре от разработчика. Я сначала бегло посмотрел репозиторий и немного приуныл, так как показалось, что надо долго и муторно разбираться с системой. Потом заметил шаблон для Proxmox и решил развернуть систему из него.

Вот прямая ссылка на шаблон. Скачал в Proxmox и развернул в привилегированном контейнере. Установил туда openssh-server, чтобы можно было подключиться по SSH.

Зашёл в систему, открыл документацию и не очень понял, что надо сделать, чтобы начать собирать трафик. Открыл конфигурацию, посмотрел её, закрыл. Посмотрел список открытых портов, которые слушает приложение. Увидел там открытый порт UDP 2056. Сходил на свой Mikrotik, в раздел IP ⇨ Traffic Flow ⇨ Targets и добавил IP адрес LXC контейнера Xenoeye и порт 2056.

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

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

Более детальную статистику с выделением нужных вам подсетей, хостов или направлений можно сделать самостоятельно. В репозитории есть документация на русском языке с примерами. Настраивается всё довольно просто.

Данные хранятся в PostgreSQL, а дашборды в Grafana рисуются запросами напрямую в базу. Соответственно, вывести себе на дашборд вы можете всё, что угодно, предварительно создав нужные вам сущности в конфигурации. Покажу пример из документации.

Допустим, вам надо отследить тех, кто из вашей сети ходит на внешние SSH сервера. Описываете такие хосты в отдельном файле конфигурации /var/lib/xenoeye/mo/ssh_scanners/mo.conf:

{
"filter": "src net my-nets and dst port 22",

"fwm": [
{
"name": "hosts",
"fields": ["packets", "src host", "dst host", "proto"]
}
]
}

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

$ select src_host, count(src_host) from (select distinct src_host, dst_host from ssh_scanners where time >= now() - interval '1 day' order by src_host desc) as x group by src_host order by count desc;

То же самое можно сделать для исходящих SMTP запросов не с ваших почтовых серверов и т.д.

Я для своей небольшой тестовой сети из нескольких хостов запустил контейнер с 2 CPU и 4 Gb RAM. Нагрузки почти никакой не было. Можно было и в 2 раза меньше ресурсов выделить.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки, а разработчикам ⭐️ в 4️⃣

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX

#netflow #gateway
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍121👎3