ServerAdmin.ru
26.4K subscribers
196 photos
24 videos
8 files
2.46K links
Авторская информация о системном администрировании.

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

Второй канал: @srv_admin_live
Сайт: serveradmin.ru
Download Telegram
​​Я тут недавно открыл для себя очень простой способ посмотреть все dns запросы какого-нибудь компьютера и приложения на нем. Не то, чтобы я не понимал или не знал как это делать. Понятно, что можно настроить свой dns сервер и включить логирование запросов. У меня уже 100 лет в обед есть статья на эту тему. Другое дело, что это требует некоторого времени и усилий.

Но мы то современные люди, пьем крафтовый кофе, растим бороду, изучаем devops. Хотим все делать быстро и эффективно. Рассказываю, как. Берем официальный докер контейнер с adguard и запускаем его, не забыв установить docker.

docker run --name adguardhome \
  -v /opt/adguard/workdir:/opt/adguardhome/work \
  -v /opt/adguard/confdir:/opt/adguardhome/conf \
  -p 53:53/tcp -p 53:53/udp \
  -p 80:80/tcp -p 3000:3000/tcp \
  -p 443:443/tcp \
  -p 853:853/tcp \
  -d adguard/adguardhome

Потом заходим в админку adguard на 3000-й порт машины, где его запустили и быстро делаем начальную настройку (занимает 30 секунд). После этого идем на целевую машину или виртуалку и прописываем там в качестве dns сервера нашу машину с adguard. Идем в статистику и смотрим запросы. Для примера я просто запустил виртуалку с виндой, открыл консоль и сделал ping ya.ru. Смотрим, куда полезла система (куда она только не полезла). Список там очень длинный, не влез весь.

Понятно, что adguard таким образом можно использовать не только для просмотра dns запросов. Рассказал то, зачем он нужен был мне. А вы можете использовать по своему назначению.

#gateway
​​Я уже неоднократно писал обзор на сайте на продукт под названием Интернет Контроль Сервер (ИКС). Это программный шлюз на базе Freebsd с очень интересным функционалом. Всё управление осуществляется через браузер. Очень кратко уточню, что он умеет:

Multi WAN с резервированием каналов.
Firewall с удобным управлением через браузер.
Прокси сервер с контролем доступа по группам, учет трафика, ограничение доступа.
Централизованное управление пользователями, группами пользователей, серверами ИКС.
Файловый сервер.
Почтовый и jabber сервер.
IP телефония.

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

Загрузить полнофункциональную версию шлюза можно по ссылке. Для 9-ти пользователей она бесплатна. Дальше оплачивается в зависимости от редакции и дополнительных модулей.

Я написал статью, в которой на практике показал, как настроить контентную фильтрацию https трафика по спискам Минюста и Госнаркоконтроля. А так же продемонстрировал все основные возможности контент-фильтра ИКС. Работа со списками госорганов только одна из возможностей ИКС. С его помощью можно очень гибко разграничивать доступ к контенту на основе категорий трафика, групп пользователей, ручных или автоматических списков доступа и т.д.

https://serveradmin.ru/filtracziya-https-trafika-kontent-filtrom-iks/

Технические подробности работы шлюза и системы Freebsd в целом можно почитать в корпоративном блоге ИКС на хабре.

#gateway #икс
Предлагаю к просмотру обзор программы для анализа и мониторинга сетевого трафика - Noction Flow Analyzer. Она принимает, обрабатывает данные NetFlow, sFlow, IPFIX, NetStream и BGP и визуализирует их.

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

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

Noction Flow Analyzer устанавливается локально с помощью deb или rpm пакетов из репозитория разработчиков. Никакой хипстоты, контейнеров, кубернетисов, облаков и saas. Программа платная с ежемесячной подпиской. Есть триал на 30 дней. Под капотом - Yandex ClickHouse. 

https://serveradmin.ru/analiz-setevogo-trafika-v-noction-flow-analyzer/

#gateway #статья #netflow
​​Пока у меня остался свежий стенд с ELK Stack, решил попробовать софт для разбора NetFlow потоков в Elasticsearch - Elastiflow. Идея там такая. Ставите куда угодно коллектор, который собирает NetFlow и принимаете трафик. А этот коллектор передаёт всю информацию в Elasticsearch. В комплекте с Elastiflow идёт все необходимое для визуализации данных - шаблоны, дашборды для Kibana.

Последовательность действий для настройки такая:

1️⃣ Устанавливаем Elastiflow, можно в докере. Я так и сделал. Главное не забыть все нужные переменные указать. Основное - разрешить передачу данных в elasticsearch и активировать сбор NetFlow. По дефолту и то, и другое выключено в конфиге, что идёт как пример. Запустить лучше сначала не в режиме демона, чтобы логи смотреть сразу в консоли.

2️⃣ Импортируем объекты Kibana. Шаблоны берём отсюда. Я сначала ошибся и взял шаблоны с репы в github. А там оказывается старая версия, которая больше не развивается. В итоге одни ошибки в веб интерфейсе были.

3️⃣ Направляем NetFlow поток на Elastiflow. Я со своего Mikrotik направил. Подождал пару минут, потом пошел в Kibana и убедился, что полились данные в индекс elastiflow-*

4️⃣ Теперь идём в Dashboard и открываем ElastiFlow: Overview. Это базовый дашборд, где собрана основная информация.

Вот такой простой, бесплатный и функциональный способ сбора и парсинга NetFlow. Я разобрался и все запустил примерно за час. Больше всего времени потратил из-за того, что не те объекты для Kibana взял.

Из минусов - немного сложно разобраться и все запустить тому, кто ELK Stack не знает. Ну и плюс по ресурсам будут высокие требования. Всё это на Java работает, так что железо нужно помощнее.

Недавно был обзор платного Noction Flow Analyzer. Многие спрашивали, как получить то же самое, но бесплатно. Вот бесплатный вариант, но, что ожидаемо, функционал не такой. NFA все же готовый, законченный продукт, а тут только визуализация на базе стороннего решения по хранению и обработке.

Сайт - https://elastiflow.com
Документация - https://docs.elastiflow.com/docs
Kibana Objects - https://docs.elastiflow.com/docs/kibana

#elk #gateway #netflow
​​Ntopng - анализатор сетевого трафика, в том числе в режиме реального времени. Также он умеет принимать и анализировать netflow потоки. Это достаточно мощная система, которая имеет в том числе бесплатную версию с открытыми исходниками под лицензией GPLv3.

Основные возможности ntopng:
Веб интерфейс для управления
Визуализация трафика в режиме реального времени
Фильтрация и группировка трафика по различным признакам
Группировка хостов по различным признакам (ГЕО, AS, система и т.д.)
Хранение исторических данных в БД
Формирование предупреждений на основе различных событий
Отправка оповещений по email, telegram, discord и т.д.

Ставится и настраивается ntopng очень просто. Для deb и rpm дистрибутивов есть репозитории. А сама программа поддерживает практически все современные ОС, среди которых Linux, Windows, MacOS, Freebsd. Запустить проще всего в Docker:

# docker run -it -p 3000:3000 \
-v $(pwd)/ntopng.license:/etc/ntopng.license:ro \
--net=host ntop/ntopng:stable -i ens18

После этого идём в веб интерфейс http://192.168.13.157:3000/, учётка admin / admin. Дальше уже разберётесь, там всё интуитивно понятно. Трафик с указанного интерфейса ens18 сразу же начнет анализироваться.

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

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

Сайт - https://www.ntop.org/
Исходники - https://github.com/ntop/ntopng
Dockerhub - https://hub.docker.com/r/ntop/ntopngs
Обзор - https://www.youtube.com/watch?v=sJkLmjaj02E

#gateway #netflow
​​Когда речь заходит про бесплатный программный Firewall, сразу же на ум приходит старый, проверенный временем firewall на базе Freebsd - pfSense. Там все настройки можно натыкать мышкой, но всё равно получится хорошо.

А вот если вы заядлый консольщик и не уважаете нубские GUI, то вам подойдёт другое решение - VyOS. Там только консоль, как в суровых профессиональных железках, типа Cisco или Juniper. Причём VyOS очень сильно напоминает синтаксис JunOS.

Из функционала в VyOS есть практически всё, что можно только пожелать:
 Routing: BGP (IPv4 and IPv6), OSPF (v2 and v3), RIP and RIPng, policy-based routing.
 VPN: IPsec, VTI, VXLAN, L2TPv3, L2TP/IPsec and PPTP servers, tunnel interfaces (GRE, IPIP, SIT), OpenVPN in client, server, or site-to-site mode, Wireguard.
 Firewall and NAT: Stateful firewalls, zone-based firewall, all types of source and destination NAT (one to one, one to many, many to many).
 Network services: DHCP and DHCPv6 server and relay, IPv6 RA, DNS forwarding, TFTP server, web proxy, PPPoE access concentrator, NetFlow/sFlow sensor, QoS.
 High availability: VRRP for IPv4 and IPv6, ability to execute custom health checks and transition scripts; ECMP, stateful load balancing.

Если во всём этом разобраться и настроить, то не стыдно будет признаться кому-нибудь прилюдно. Это не про Mikrotik упомянуть, за который сразу могут нахамить те, кто не смог с ним разобраться.

Под капотом у VyOS Debian и Iptables. Хотя сейчас уже возможно Nftables. Есть два режима обновлений: rolling (для отважных) и long term (для всех остальных). В общем, продукт известный, надежный и зрелый. Тут без шуток, рекомендую попробовать. Отлично заходит в качестве шлюза виртуальных машин гипервизора.

Сайт - https://vyos.io

#gateway
Технический пост, который уже давно нужно было сделать, но всё руки не доходили. На канале много содержательных заметок по различным темам. Иногда сам через поиск ищу то, о чём писал. Ниже набор наиболее популярных тэгов по которым можно найти что-то полезное (и не очень).

#remote - все, что касается удалённого управления компьютерами
#helpdesk - обзор helpdesk систем
#backup - софт для бэкапа и некоторые мои заметки по теме
#zabbix - всё, что касается системы мониторинга Zabbix
#мониторинг - в этот тэг иногда попадает Zabbix, но помимо него перечислено много различных систем мониторинга
#управление #ITSM - инструменты для управления инфраструктурой
#devops - в основном софт, который так или иначе связан с методологией devops
#kuber - небольшой цикл постов про работу с kubernetes
#chat - мои обзоры на популярные чат платформы, которые можно развернуть у себя
#бесплатно - в основном подборка всяких бесплатностей, немного бесплатных курсов
#сервис - сервисы, которые мне показались интересными и полезными
#security - заметки, так или иначе связанные с безопасностью
#webserver - всё, что касается веб серверов
#gateway - заметки на тему шлюзов
#mailserver - всё, что касается почтовых серверов
#elk - заметки по ELK Stack
#mikrotik - очень много заметок про Mikrotik
#proxmox - заметки о популярном гипервизоре Proxmox
#terminal - всё, что связано с работой в терминале
#bash - заметки с примерами полезных и не очень bash скриптов или каких-то команд. По просмотрам, комментариям, сохранениям самая популярная тематика канала.
#windows - всё, что касается системы Windows
#хостинг - немного информации и хостерах, в том числе о тех, кого использую сам
#vpn - заметки на тему VPN
#perfomance - анализ производительности сервера и профилирование нагрузки
#курсы - под этим тэгом заметки на тему курсов, которые я сам проходил, которые могу порекомендовать, а также некоторые бесплатные курсы
#игра - игры исключительно IT тематики, за редким исключением
#совет - мои советы на различные темы, в основном IT
#подборка - посты с компиляцией нескольких продуктов, объединённых одной тематикой
#отечественное - обзор софта из реестра отечественного ПО
#юмор - большое количество каких-то смешных вещей на тему IT, которые я скрупулезно выбирал, чтобы показать вам самое интересное. В самом начале есть шутки, которые придумывал сам, проводил конкурсы.
#мысли - мои рассуждения на различные темы, не только IT
#разное - этим тэгом маркирую то, что не подошло ни под какие другие, но при этом не хочется, чтобы материал терялся, так как я посчитал его полезным
#дети - информация на тему обучения и вовлечения в IT детей
#развитие_канала - серия постов на тему развития данного telegram канала

Остальные тэги публикую общим списком без комментариев, так как они про конкретный софт, понятный из названия тэга:
#docker #nginx #mysql #postgresql #gitlab #asterisk #openvpn #lxc #postfix #bitrix #икс #debian #hyperv #rsync #wordpress #zfs #grafana #iptables #prometheus #1с #waf #logs #netflow
​​Посмотрел вчера отличное видео на тему плавающего IP (keepalived) и технологии VRRP. Автор очень понятно и доступно объясняет теорию на тему отказоустойчивого шлюза и тут же показывает практическую часть прям с конфигами, настройкой и запуском всего этого хозяйства. А потом тестирует работу при отказе одного из роутеров.

Очень качественный материал и подача. Мне хоть и не особо нужны подобные технологии, но всегда было интересно посмотреть, как это на практике выглядит и работает. Так что рекомендую. Поясню, что речь идёт о программных шлюзах на Linux. Если у вас микротики, можно не смотреть 😁

https://www.youtube.com/watch?v=YQvgO7jLJ7M

#видео #gateway
​​Продолжаю вас знакомить с софтом из списка отечественного ПО, который я пробовал лично. Сегодня речь пойдёт о программном межсетевом экране Интернет Контроль Сервер (ИКС), построенном на базе Freebsd (one love, one life ❤️)

Это программный шлюз с очень интересным функционалом. Всё управление осуществляется через браузер. Очень кратко перечислю, что он умеет:

◽️ Multi WAN с резервированием каналов.
◽️ Firewall с удобным управлением через браузер.
◽️ Прокси сервер с контролем доступа по группам, учет трафика, ограничение доступа.
◽️ Централизованное управление пользователями, группами пользователей, серверами ИКС.
◽️ Файловый сервер.
◽️ Почтовый и jabber сервер.
◽️ IP телефония.

❗️ИКС позволяет полностью закрыть все требования законодательства в плане обеспечения доступа в интернет в образовательных учреждениях. С его помощью можно успешно пройти проверку учебной сети. Но это не значит, что он нужен только для этого. Этот шлюз в целом закрывает все типовые задачи по организации упорядоченного и безопасного доступа в интернет. К моему удивлению, прокси сервера с подсчётом трафика до сих пор востребованы и актуальны. Буквально недавно у меня была заявка на перенос сервера на базе sams + squid с интеграцией в AD. Чуть не всплакнул от ностальгии при упоминании SAMS. Я очень плотно его использовал раньше, но проект давно заброшен.

У меня на сайте есть небольшой цикл статей с описанием установки и настройки ИКС, а также примеры некоторого функционала. Например, как настроить контроль трафика в том числе с подменой TLS сертификатов и полным контролем шифрованного трафика, а так же настройка VPN тоннелей с помощью ИКС.

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

Сайт - https://xserver.a-real.ru/
Habr - https://habr.com/ru/company/ics/blog/
Мои статьи - https://serveradmin.ru/tag/iks/
Реестр ПО - https://reestr.digital.gov.ru/reestr/301671/

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

#отечественное #gateway #икс
​​Сколько я себя знаю в профессии системного администратора, никаких прокси серверов, кроме Squid не доводилось ни видеть, ни настраивать. Если лет 15-20 назад он стоял почти везде (я даже себе домой ставил локально, когда модемом пользовался), так как трафик экономили.

Сейчас прокси ставят гораздо реже, но тем не менее используют. А в некоторых отраслях в обязательном порядке, но чаще какие-то готовые решения, типа шлюза ИКС или Ideco (и там, и там тоже squid). Я не раз получал заказы как на настройку, так и на перенос или обновление очень старых версий Squid. Люди до сих пор им пользуются, так как бесплатных альтернатив нет.

Squid полностью отвечает поставленным задачам, может быть поэтому и не возникло никаких альтернатив. Вопросы возникают только с управлением и просмотром статистики. Я видел и использовал огромное количество всевозможных решений. Начинал с SAMS. Это был отличный продукт как для управления, так и для статистики. Поддерживалась интеграция с AD. Это было очень удобно. Насколько я понимаю, этот проект давно мёртв.

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

Так же я настраивал работу squid на основе групп AD. Вручную создавались списки доступа в соответствии с группами в AD, потом людей просто по группам перемещали. Тоже управлять мог человек, далёкий от Linux и прокси серверов. Статистику делал с помощью lightsquid. Малофункциональная панель, мне не очень нравилась.

Как-то я издалека начал. Заметку хотел написать по поводу веб панели для формирования и просмотра статистики Squid - Screen Squid. Среди бесплатных решений она наиболее функциональна из тех, что знаю. Работает на базе стандартного стека php+perl+mysql. Проект не заброшен, в июне было очередное большое обновление. Автор панели помогает с настройкой в отдельном чате - https://t.me/screensquid.

Быстро посмотреть и попробовать Screen Squid можно в докере, чтобы не поднимать веб сервер вручную. Есть готовый docker-compose. Нужно понимать, что все логи Screen Squid хранит в SQL базе. При большом трафике будет большой объём базы. Нужно это отдельно продумать заранее. Есть вариант использовать PostgreSQL, вместо MySQL.

Если у кого-то есть Squid в хозяйстве, скажите, чем управляете и что используете для просмотра статистики.

Сайт - http://break-people.ru/cmsmade/?page=scriptology_screen_squid
Исходники - https://sourceforge.net/projects/screen-squid/
Docker - https://gitlab.com/dimonleonov/screensquid-compose

#squid #gateway
​​Когда речь заходит о программном шлюзе, первое, что приходит в голову это наиболее популярный Pfsense. Более продвинутые, кто предпочитает настраивать шлюзы через cli, вспомнят про VyOS. Но есть ещё один продукт, который я лично использовал - IPFire.

Это аналог Pfsense, только на Linux. Причём сделан не на основе готового дистрибутива, а собран из исходников самостоятельно авторами. То есть там под капотом не какой-то условный debian или centos. Поэтому там нет ничего лишнего. Разработчики заявляют, что всё собрано и оптимизировано конкретно под задачи маршрутизации и фаервола. Отсутствие лишних компонентов повышает безопасность и стабильность системы.

Всё управление через web браузер, в консоль ходить не надо. На мой взгляд IPFire проще сделан, меньше функционала, но и настроить, разобраться быстрее. Лично мне по логике работы и организации функционала IPFire понравился больше Pfsense, когда я его использовал. Но это субъективно, не претендую на какой-то анализ и сравнение.

Основные задачи, которые решает IPFire:
DHCP и DNS сервер.
Firewall. Сделан на базе iptables.
QOS.
Intrusion Prevention System (IPS). Построена на базе Suricata.
Web Proxy. Под капотом Squid.
Ipsec и OpenVPN.

В IPFire удобно организована настройка OpenVPN через браузер. Уже даже для одной этой задачи имеет смысл его рассмотреть и попробовать. Из необычного, там реализован функционал 2FA для соединений на базе типовых сертификатов (с паролем или без) и дополнительного pin кода.

Функционал можно расширять с помощью дополнений. Их там довольно много. Можно реализовать типовой функционал для linux дистрибутивов: Samba, NFS Server, Bacula, Borg Backup, Postfix и т.д. Можно поставить Zabbix Agent, чтобы организовать нормальный мониторинг системы. В веб интерфейсе есть русский язык.

Проект живой, регулярно обновляется. Последний релиз - 17 сентября этого года. Сам софт бесплатный, исходники открыты. Компания зарабатывает продажей готового железа с преднастроенной системой.

Думаю, среди читателей найдётся немало людей, кто использовал или использует IPFire. Поделитесь, почему остановились именно на нём, а не каком-то другом продукте.

Сайт - https://www.ipfire.org
Исходники - https://github.com/ipfire/ipfire-2.x

#gateway #firewall
Небольшая информация из практической деятельности. Мне давно знакома проблема, когда не устанавливается SIP соединение для регистрации пира или транка с регистрацией. Возникает она в моём случае либо после проблем с интернетом или переключения каналов, либо при работе через VPN вместе с указанными выше проблемами. В общем, когда возникают какие-то неполадки со связью, есть небольшая вероятность, что внешне транки и пиры отвалятся.

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

Если у вас по неведомым причинам не регистрируются транки и пиры, проверьте активные соединения на шлюзе, связанные с SIP и удалите их. Отфильтруйте либо по адресу voip сервера, либо по адресу внешнего сервера, либо просто по портам, к примеру, 5060, если используется стандартный.

В роутерах Mikrotik это делается на вкладке:
IP ⇨ Firewall ⇨ Connections

Если у вас шлюз на Linux, то соединения можно посмотреть в /proc/net/nf_conntrack:
# cat /proc/net/nf_conntrack
Либо с помощью утилиты conntrack (ставится из реп, либо как conntrack, либо как conntrack-tools). Смотрим:
# conntrack -L -p udp --src 10.1.4.23 --dport 5060
и удаляем:
# conntrack -D -p udp --src 10.1.4.23 --dport 5060
После этого регистрации успешно состоятся.

В чём причина подобных проблем, я не знаю. Теорию не изучал и не исследовал. Просто знаю, что вот это помогает. Возможно есть другое решение. Лично сталкивался с подобными проблемами только с VOIP.

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

#gateway #voip #asterisk
​​Существует не так много бесплатных продуктов по анализу трафика. Это в основном коммерческая ниша - NTA (network traffic analysis) с серьезными и дорогими решениями, интегрированными с системами информационной безопасности.

У меня на канале было пару заметок про бесплатные варианты:

Elastiflow
Ntopng

У этих бесплатных программ довольно скудный функционал. В этом плане приятно удивляет другой Open Source проект - Arkime, про который пойдёт речь далее. Это целостное функциональное решение с управлением через веб интерфейс.

Arkime умеет парсить трафик и складывать его в Elasticsearch. Там его удобно анализировать через веб-интерфейс. Плюс, он имеет интеграцию с Suricata, что позволяет связать из неё события с сессиями из статистики. И нетипичный для бесплатного продукта функционал - возможность работать с различными выборками и сигнатурами. Последнее как раз и делает подобные продукты востребованными в среде безопасников.

Установить Arkime очень просто. Есть готовые rpm/deb пакеты под популярные системы, так что даже с докером связываться не придётся. Достаточно скачать пакет и установить. Проверить, что все службы запущены и отправиться в веб интерфейс для настройки и работы с системой. Единственная проблема, для работы Arkime нужен пакет elasticsearch-7, а доступ к репозиторию с адресов РФ заблокирован. Так что нужно будет вручную это сделать, например, используя mirror.yandex.ru. Я так и поступил.

Ниже полная инструкция без пояснений для установки последней версии Arkime на Ubuntu 22.04.
# echo "deb [trusted=yes] https://mirror.yandex.ru/mirrors/elastic/7/ stable main" \
| sudo tee /etc/apt/sources.list.d/elastic-7.x.list
# apt update && apt install elasticsearch
# systemctl start elasticsearch.service
# wget https://s3.amazonaws.com/files.molo.ch/builds/ubuntu-22.04/arkime_4.0.2-1_amd64.deb
# dpkg -i arkime_4.0.2-1_amd64.deb
# /opt/arkime/bin/Configure
Указываем имена сетевых интерфейсов, которые будем парсить, от установки elasticsearch отказываемся.
# /opt/arkime/db/db.pl http://localhost:9200 init
# /opt/arkime/bin/arkime_add_user.sh admin "Admin User" THEPASSWORD --admin
# systemctl start arkimecapture.service
# systemctl start arkimeviewer.service

Идём в веб интерфейс http://212.193.52.150:8005 и логинимся под учёткой admin, THEPASSWORD. Если что-то не работает, то смотрите логи в /opt/arkime/logs. У меня всё получилось почти сразу. Немного с зависимостями разобрался, установил elasticsearch. Сначала не заработало, так как забыл инициализировать elasticsearch и добавить туда пользователя. Потом ещё раз внимательно почитал инструкцию и всё получилось.

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

🔥 Программа реально крутая. Мне неизвестно что-то подобное забесплатно. Поставил, развернул очень быстро. Отлично работает, трафик парсится, анализируется. Всё доступно через веб интерфейс. Меня часто спрашивали в комментариях рекомендацию на что-то подобное. Вот она и есть. Весь трафик сервера как на ладони.

Сайт / Исходники / Инструкция / Загрузка

#gateway #netflow
​​Расскажу про технологию, которую возможно не все знают. Речь пойдёт про port knocking, который я иногда использую. Это очень простой способ защитить подключение к какому-то сервису через интернет.

Суть метода в том, что разрешающее правило на firewall создаётся после поступления определённой последовательности пакетов. Чаще всего в качестве такой последовательности выбирают icmp пакеты определённой длины. Но совсем не обязательно ограничиваться только этим. Тут можно придумать любую последовательность и использовать различные порты, протоколы, tcp флаги и т.д.

Вот простейший пример реализации port knocking на Mikrotik.

add action=add-src-to-address-list \
address-list=winbox_remote \
address-list-timeout=30m \
chain=input comment="icmp port knocking" \
in-interface=ether1-wan packet-size=144 protocol=icmp

Создаём правило в firewall, которое будет на 30 минут добавлять в список winbox_remote все ip, откуда придёт пакет размером 144 байта по протоколу icmp.

Теперь разрешим всем ip адресам из этого списка подключаться по winbox:

add action=accept chain=input \
comment="accept winbox_remote" \
dst-port=8291 in-interface=ether1-wan \
protocol=tcp src-address-list=winbox_remote

Важно поставить эти два правила выше блокирующего правила для input. Теперь достаточно выполнить с любого устройства ping:

ping 1.2.3.4 -l 116 -n 1
(размер пакета ставим 116, потому что 28 байт добавит заголовок)

И роутер откроет доступ к tcp порту 8291, чтобы можно было подключиться по winbox. Через 30 минут адрес будет удалён из списка и новое подключение будет сделать невозможно. По такому же принципу, можно сделать и закрывающее правило. Поработали, отправили определённую последовательность и очистили список winbox_remote.

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

В Linux реализацию port knocking тоже настроить не сложно. Есть готовый софт для этого. Например, knockd. При желании, можно и вручную написать правила для iptables, если хорошо разбираетесь в них. Реализаций может быть тоже великое множество, в том числе с использованием списков ipset или более современных nftables. Тема легко гуглится и решается.

#mikrotik #security #gateway
После публикации на тему 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
​​Думаю, многие знают про программный шлюза на базе 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
Вчерашняя заметка про 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
​​Думаю, многие из вас знают такую компанию, как 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
​​Среди бесплатных анализаторов трафика (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
​​Могу посоветовать необычную связку для доступа извне к внутренним ресурсам без необходимости настройки 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