Все задачи Pandora FMS зависят – или должны быть связаны – с мониторингом портов.
Древняя Римская империя любила называть то, что сейчас является Средиземным морем Mare Nostrum (Нострум Маре), помещая то, что сейчас является портовым городом Барселона, как точку входа в Испанию (сейчас Пиренейский полуостров) из города Мизено, расположенного на юге нынешней Италии. Мониторинг портов был крайне важен для римлян, и сейчас он крайне важен для нас. Как? Вы можете спросить. Давайте посмотрим!
Модель римской триремы
https://commons.wikimedia.org/wiki/File:Trireme_1.jpg
Да, в реальной жизни каждый морской порт является воротами в большинство стран мира, поскольку морские перевозки в десятки раз дешевле наземных… хотя и гораздо медленнее воздушных. Римляне, а теперь и современные государства знают из тысячелетнего опыта, что мониторинг портов имеет первостепенное значение.
На компьютерах также есть физические порты: именно к ним мы подключаем все клавиатуры, мониторы и т.д. Так, их существует множество, например, последовательные порты (9 или 25 контактов или контактов разъема), USB, для видео, например, HDMI или старый добрый VGA. В этой статье мы пойдем на шаг дальше: виртуальные порты – абстракция (или, скорее, 65 535 абстракций, именно столько портов охватывает 16 бит), которую операционные системы создают на прикладном уровне, чтобы доставлять каждой программе необходимые данные или информацию. Но мы вернемся к этому вопросу позже.
Таким образом, в мире ИТ мониторинг портов – это не просто тривиальный вопрос:
- Такие компании, как @StatusCakeTeam (Twitter), ежедневно выполняют более 380 миллионов проверок веб-сайтов, разумеется, обращаясь к соответствующим портам каждого протокола (HTTP/HTTPS, TCP, SSH, DNS, SMTP, PING, PUSH).
- В таких странах, как Великобритания, Германия и Финляндия, к разведке портов относятся очень серьезно, настолько, что существуют соответствующие законы. Очевидно, что это не относится к мониторингу, даже если он осуществляется третьими лицами, с которыми мы заключили договор на выполнение этой задачи, так как это задачи по обоюдному согласию.
Поскольку мониторинг безопасности входит в число ближайших задач Pandora FMS (PFMS), я привожу здесь обзор мониторинга портов с учетом этого.
Устройства и мониторинг портов
Pandora FMS – это программное обеспечение для мониторинга компьютерных сетей и их инфраструктуры. Он может контролировать производительность и состояние сетевого оборудования, виртуальной инфраструктуры, операционных систем и различных типов чувствительных к безопасности приложений и систем, таких как базы данных, брандмауэры и веб-серверы.
Pandora FMS имеет главу, полностью посвященную задачам обнаружения, и включает инструмент сканирования сети под названием NetScan.
Вкратце, это функциональность, позволяющая отслеживать перечень устройств и услуг, предлагаемых каждым из них (концентраторы, приложения, модемы и т.д.). сканирование сетиОднако здесь я задаю риторический вопрос о том, как такой инструмент может определить, какие устройства подключены, а какие нет.
Для этого нам нужно рассмотреть немного теории, не много, но необходимое. Мы не пытаемся превзойти компьютерного ученого и/или квалифицированного академика, нам просто нужно быть практичными.
В 1970-х и 1980-х годах была создана эталонная модель взаимосвязи открытых систем (OSI Model). Поскольку она была заимствована из модели, предложенной Международной организацией по стандартизации (ISO, основанной в 1946 году более чем 70 странами), ее также называют моделью ISO/OSI.
Модель описывает семь (мое любимое число) уровней, которые лежат в основе концепций, необходимых для идеальной, всеобъемлющей и открытой сети:
- Физический уровень.
- Канальный уровень.
- Сетевой уровень.
- Транспортный уровень.
- Сеансовый уровень.
- Презентационный уровень.
- Прикладной уровень.
модель OSI
https://commons.wikimedia.org/wiki/File:Osi-model-jb.svg
Как программист я всегда помещаю себя в седьмой слой и могу спокойно забыть о нижних слоях, хотя благодаря моему многолетнему опыту это не всегда так. Для мониторинга портов мы должны “спуститься” на четвертый уровень, транспортный уровень, где находятся два протокола, связанные с портами. Эта пара – протокол управления транспортом (TCP) и протокол пользовательских дейтаграмм (UDP).
Чтобы снова проверить возможность подключения, мы спустимся, на этот раз всего на один шаг, на сетевой уровень, где находится интернет-протокол (Internet Protocol или IP) и его союзная пара – ICMP и IGMP. Я не буду перечислять имена, чтобы не наскучить вам; все это называется набором протоколов TCP/IP или просто TCP/IP.
Именно на этом третьем уровне мы можем использовать знаменитый ping, который, на мой взгляд, является краеугольным камнем мониторинга. В нем нет значения порта, и он отлично подходит для определения того, подключено ли устройство к сети. Редко сетевые администраторы отключают его или просто запрещают ему отвечать на какие-либо запросы, поэтому я принимаю как данность, что это действительно так и повсеместно.
Nmap
Nmap (думаю, сокращение от Network Mapper) был создан и опубликован Гордоном Лионом в 1997 году. Вскоре она была модифицирована, портирована и улучшена, достигнув в наши дни статуса программы-чемпиона, не только для решения “проблем”, таких как отключение пинга, о котором я упоминал, но и для сканирования целых сетей в диапазонах портов, демонстрируя всю спецификацию опций TCP/IP, немного шаткую, кстати.
Pandora FMS использует, например, Nmap для проверки связи и сервисов с помощью командной строки в конфигурации консоли; Nmap также имеет графический интерфейс под названием nmapfe. Существует ряд программ, которые также используют Nmap
Zenmap с использованием Nmap 4.5
https://commons.wikimedia.org/wiki/File:Zenmap_2.png
Ping, Nmap, Curl и многие другие сетевые инструменты были подтверждены командой Pandora FMS как незаменимые. В этой статье мы предлагаем краткое описание каждого из них, если вы хотите узнать немного больше – в техническом плане – о мониторинге портов.
Удаленный мониторинг
Как видно из названия, мы будем выполнять внешние проверки с помощью компонента Pandora FMS под названием Network Server. Хотя на него возложено множество работ и задач, мониторинг портов находится в рамках TCP Monitoring, одного из трех основных блоков его работы.
Если вы хотите посмотреть, как создать модуль TCP в Pandora FMS, вы можете взглянуть на это видео:
Первая задача – определить, открыт ли порт на удаленном хосте, и на основании этого выдать команды и/или предупреждения. Помните, я рассказывал вам о ping, а для этого существует ICMP Monitoring (хотя это и не относится к делу, скажу, что третий блок – это то, что охватывает SNMP Monitoring в сетевом сервере PFMS).
И, как говорится в “рекламных роликах”, подождите, это еще не все: в качестве своеобразного кота Шредингера, чтобы быть абсолютно уверенным, что порт открыт или нет, Pandora FMS также позволяет вам получить определенный ответ для запрашиваемого порта (“OK”, “200” или другой стандартный ответ от обычного приложения). Может быть даже несколько передач и соответствующих ответов, пока не будет найдено состояние или состояние, которое необходимо контролировать.
Всегда помните о безопасности: из-за природы этих протоколов такие сообщения не шифруются.
Версия для предприятий: “Спутниковый сервер
Pandora FMS, в своей корпоративной версии, используется многие лидеры отраслиНапример, муниципальная транспортная компания Empresa Municipal de Transportes de Мадрид (EMT), Министерство телекоммуникаций и информационного общества Республики Корея, Министерство телекоммуникаций и Республика Эквадор и Правительство Пово до АккоШтат Бразилии с 22 муниципалитетами и 700 000 жителей.
Как я уже сказал, удаленный мониторинг осуществляется сетевым сервером PFMS, который обладает особыми характеристиками. Satellite Server, в свою очередь, использует язык Perl и нуждается (помимо fping и Nmap, устанавливаемых отдельно) в wmic и braa (включаются при загрузке бинарного файла), чтобы соответствовать по функциональности сетевому серверу PFMS.
Учитывая все это и не вдаваясь в подробности, мы сможем осуществлять мониторинг портов в сетях, к которым по причинам безопасности и/или технологическим нарушениям мы не можем получить прямой доступ через наш сервер PFMS (к устройствам, на которых мы будем осуществлять мониторинг портов).
Да, вам может быть интересно, как Satellite Server может хранить собранные метрики в базе данных: Satellite Server должен иметь выход в Интернет и оттуда на PFMS Server через собственный протокол под названием Tentacle.
Для этого используется порт номер 41121 (официально присвоенный IANA), и это единственный номер порта, который, на мой взгляд, не стоит отслеживать: мы очень быстро заметим через консоль PFMS, если перестали получать соединения от наших спутниковых серверов.
Что заставляет устройства, которые необходимо контролировать, быть “изолированными” или недоступными для сетевого сервера PFMS? Давайте рассмотрим.
Брандмауэры и детекторы вторжений
Противопожарная стена, сеть сетей (Сет Кенлон, CC BY-SA 4.0)
И последнее, но не менее важное, я затронул страшную проблему брандмауэров. Они не только защищают нас, но и делают нашу жизнь несчастной, если они правильно настроены. Что я имею в виду?
Брандмауэр (программный или аппаратный) может иметь бесконечное количество конфигураций, но мне больше всего нравится модель, которая блокирует все входящее из Интернета, кроме того, что явно разрешено. И вот тут начинается наша большая работа, добавление всего необходимого, например, знаменитых портов 80 и 443 для веб-трафика, наиболее распространенных для веб-серверов (но мы всегда должны принимать во внимание различные типы существующих серверов).
Но дело идет дальше, брандмауэр также должен убедиться, что входящий пакет соответствует исходящему пакету из нашей локальной сети; другими словами, что он был запрошен нами (помните Satellite Server PFMS?). Какая работа.
С этой точки зрения, задачи брандмауэра очень сложны, и поэтому устройства брандмауэра были разработаны и созданы специально для этой цели; они основаны на аппаратном обеспечении, и PFMS имеет несколько дополнений для их мониторинга, обычно через SNMP.
Я также добавлю, что брандмауэр должен иметь список IP-адресов, которые разрешено перенаправлять на определенные серверы, как в нашем случае, если мы осуществляем мониторинг портов (извне компании). Если запрос получен с любого другого IP-адреса на порт, не входящий в список разрешенных, мы направим его на наш сервер “honeypot”– технологию, предназначенную для борьбы с неизвестными и нежелательными посетителями. Для поддержания списка разрешенных IP-адресов в актуальном состоянии мы должны иметь третий сервер в Интернете для подтверждения нашей личности брандмауэру.
Теперь, последнее касается TCP запросов, которые ориентированы на соединение (вернемся к теории), но UDP запросы не работают таким образом. Именно там мы можем подменить IP-адрес, чтобы мы были вынуждены стать жертвой другого веб-сервера, который не является нашим собственным. К счастью, ядро Linux специально задерживает такие запросы до предела в одну тысячу в секунду, поэтому атака на более чем 60 000 портов займет некоторое время. Это подводит нас к следующему пункту – детекторы вторжения.
Хотя эта технология существует уже некоторое время, я не видел особого смысла в ее использовании. Я не отрицаю, что мы можем интегрировать его в наши honeypots, но я рекомендую, чтобы они работали отдельно; если это будет аппаратное решение, тем лучше. Идея заключается в отслеживании пакетов, перемещающихся в локальной сети: Pandora FMS может пассивно контролировать порты в ней.
- Мы также сможем использовать технику морских судов: водонепроницаемые отсеки (но будьте осторожны, помните, что знаменитый корабль “Титаник” так и не добрался до Нью-Йорка, несмотря на наличие этой инновационной для того времени технологии). То есть, после основного брандмауэра создайте изолированные подсети с дополнительными брандмауэрами, повторяя вышеуказанные рекомендации.
- Каждый рабочий сервер, подлежащий мониторингу, также должен иметь собственный локальный брандмауэр, запускаемый операционной системой (рискуя быть утомительным “повторением вышеприведенных рекомендаций”). Какое отношение это имеет к мониторингу портов? Если у нас уже есть машина в инвентаризации, на которой установлена база данных MySQL (обычно порт 3306), и мы проверяем, что она открыта и работает, мы дополнительно проверяем, что ни одна другая машина не открыта. Вот что такое задачи мониторинга, избыточные в высшей степени. Такие локальные брандмауэры имеют дополнительную функцию: разрешать только определенным программам открывать и использовать свои порты по умолчанию (см. также мониторинг журналов для отслеживания изменений).
- Некоторые сетевые администраторы используют методы обфускации, такие как изменение предопределенных портов (я видел веб-серверы, использующие порт 28081 во всплывающих окнах, который хотя на данный момент и не назначен никому IANA, но они должны использовать порты выше 49152, динамические пользовательские порты). Это только подтверждает мое утверждение: мониторинг – это наука… и искусство.
- В случае с орхистраторами виртуальных машин (Docker с Kubernetes, самый известный случай) мониторинг портов отступит на второй план, так как эффективнее будет использовать инструкции API, несмотря на вышесказанное!
Прежде чем мы попрощаемся, вспомните, что Pandora FMS – это гибкое программное обеспечение для мониторинга, способное контролировать устройства, инфраструктуры, приложения, сервисы и бизнес-процессы.
Вы хотите узнать больше о том, что может предложить вам Pandora FMS? Узнайте об этом, нажав здесь.
Если вам необходимо контролировать более 100 устройств, вы также можете воспользоваться БЕСПЛАТНОЙ 30-дневной демонстрацией Pandora FMS Enterprise. Получите его здесь.
Наконец, помните, что если у вас небольшое количество устройств для мониторинга, вы можете использовать OpenSource версию Pandora FMS. Более подробную информацию можно найти здесь.
Programmer since 1993 at KS7000.net.ve (since 2014 free software solutions for commercial pharmacies in Venezuela). He writes regularly for Pandora FMS and offers advice on the forum . He is also an enthusiastic contributor to Wikipedia and Wikidata. He crushes iron in gyms and when he can, he also exercises cycling. Science fiction fan. Programmer since 1993 in KS7000.net.ve (since 2014 free software solutions for commercial pharmacies in Venezuela). He writes regularly for Pandora FMS and offers advice in the forum. Also an enthusiastic contributor to Wikipedia and Wikidata. He crusher of irons in gyms and when he can he exercises in cycling as well. Science fiction fan.