Monday, 25 May 2020

Диагностика приложений протокола DHCP в Scapy.

Всем привет.

Вторая часть практики со  Scapy от Бражука Андрея. Сегодня будет проведена активная диагностика приложений протокола DHCP. Первую часть читаем здесь.

Оригинал статьи вы найдете в журнале "Системный администратор" №12 (109) 2011 года.

Введение

Протокол динамической конфигурации узла DHCP (Dynamic Host Configuration Protocol) повсеместно используется для автоматизации процесса получения настроек протокола IP на сетевых узлах. Средства, обеспечивающие функциональность DHCP-сервера, существуют для всех программных платформ, реализующих те или иные удаленные службы (серверные версии Windows, Linux/Unix, операционные системы маршрутизаторов, шлюзов, межсетевых экранов и т. д.). Клиент этого протокола обычно имеется в любом оборудовании, работающем в сети.

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

В ряде случаев нестандартные задачи активной диагностики DHCP, а также автоматизация их решения требуют привлечение технологий программирования. Учитывая то, что в практике системного администрирования обычно основная цель программирования - быстрый результат, решать данный класс задач лучше с помощью специальных инструментов. Рассмотренный в статье генератор сетевых пакетов Scapy собственно и есть такое средство. Данная утилита одновременно является расширяемой библиотекой языка программирования Python и ориентирована на протоколы без установления соединения, к которым относится и DHCP, использующий протокол UDP в качестве транспорта.

Разведка боем: имитируем DHCP-клиент

Ввиду того, что принципы функционирования DHCP общеизвестны и описаны в литературе, теоретические выкладки пропустим и сразу перейдем к программированию DHCP-клиента в Scapy.

Тестовый стенд, использовавшийся для написания данной статьи, построен на основе ПО с открытым исходным кодом: виртуальная машина (ВМ) VirtualBox на основе Debian GNU/Linux с установленным ISC DHCP. Утилита Scapy запускалась с хостовой системы, объединенной с ВМ с помощью виртуального адаптера «Виртуальная сеть хоста». При этом, DHCP-сервер VirtualBox для этого режима был отключен. Разумеется, описанные в статье упражнения можно повторить в «физической» сети с использованием службы DHCP, встроенной в маршрутизатор, реальный сервер или модем.

Для получения минимальной работоспособной конфигурации сервера ISC DHCP достаточно в файле /etc/dhcp/dhcpd.conf описать подсеть (subnet):
subnet 192.168.56.0 netmask 255.255.255.0 {
  range 192.168.56.10 192.168.56.30;
  option domain-name-servers 192.168.56.1;
  option domain-name "local.test";
  option routers 192.168.56.1;
  option broadcast-address 192.168.56.255;
  default-lease-time 600;
  max-lease-time 7200;
}

Wednesday, 20 May 2020

Основы конструирования сетевых пакетов в Scapy.

Всем привет.

Сегодня будет сетевая вкусняшка по имени Scapy. Несмотря на то что оригинал статьи был опубликован в журнале "Системный администратор" №10 (107) еще в далеком 2011-м году Бражуком Андреем сама Scapy популярности не утратила.

Его статья является введением в многофункциональный расширяемый генератор сетевых пакетов Scapy, работающий в интерпретируемой среде языка программирования Python.

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

Примером многофункционального расширяемого генератора пакетов и является рассматриваемая в статье утилита Scapy. По сути, Scapy предназначена для конструирования, отправки, перехвата и анализа сетевых пакетов, а также для манипулирования единицами передачи протоколов транспортного уровня (UDP-датаграммами и TCP-сегментами) и сообщениями прикладных протоколов [1].

Средой выполнения данной утилиты выступает интерпретатор языка программирования Python, что позволяет использовать ее как в интерактивном режиме, так и в виде модуля (подключаемой библиотеки) в скриптах, написанных на Python. Фактически, с помощью Scapy можно воспроизвести функции любой сетевой утилиты, начиная от простейших ICMP-команд типа ping и traceroute и заканчивая реализациями сложных алгоритмов поиска уязвимостей безопасности [2]. При чем, по заверениям автора этого открытого проекта, то, для чего на языке программирования C потребуется написать сто строк кода, в Scapy делается буквально двумя строками.

Немного дегтя

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

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

Во-вторых, Scapy неразлучна с языком программирования Python. И для всего, что сложнее, чем примеры, описанные в руководстве пользователя, желательно хотя бы понимание базовых конструкции и подходов, характерных для Python. Правда, с позиций человека, имеющего некоторое представлении о процессе программирования, этот язык выглядит ни чуть не сложнее других, и при наличии желания и хорошего руководства [3] вполне «постигаем». Лишь забавный дискомфорт (субъективно) вызывает замена ставших привычными разделителей синтаксических конструкций (всевозможных скобок, ключевых слов и т. д.) на отступы от начала строки.

В-третьих, если имеет место личная несовместимость с Python, то, разумеется, Scapy не единственный в этом мире генератор пакетов [4] и можно подобрать средство или сетевую библиотеку, привязанную к предпочитаемой технологии или языку программирования.

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

В-пятых, Scapy в большей степени ориентирована на протоколы, не требующие установления соединения (об этом еще будет сказано ниже).

В-шестых, Scapy является типичным представителем так называемых проектов одного разработчика, со всеми их недостатками и достоинствами.

Monday, 18 May 2020

The extension volume of LVM disk online.

Hi all.

The problem that I have received that my Zabbix was unvaliable:
"Database error. Error connecting to database: No such file or directory"



I know this is a very old thread and I hope you managed to extend your disk drive. I found some manuals in Internet about process of extension volume of Linux LVM disk. I tried to do it, but I had some bad results as <initframs> boot failed after reboot.

Ok, but since nobody prompted and I was running into the same problem just now I wanted to write the solution in case somebody else runs in to it. NOTE: the deletion of any partitions is not necessary! Unfortunately the Zabbix documentation has not beet updated yet.

What you actually need to do is create a new primary partition on the avaiable disk space, add that partition to the logical volume and extend the filesystem. 

Saturday, 16 May 2020

LDAPS и Zabbix - нужные моменты.

Всем привет.

Не так давно была моя заметка про включение аутентификации LDAPS в Zabbix. На повторную проверку этой операции всплыли некоторые моменты, которые надо выполнить.

Со стороны сервера Zabbix.

Во первых в файл /etc/ldap/ldap.conf надо добавить строку:

TLS_REQCERT never

Во вторых, в файл /etc/hosts дописать DNS на свой контроллер домена dc01.forza.com:

192.168.10.1 dc01.forza.com

В третьих получить сертификат контроллера домена выполнив:

openssl s_client -showcerts -connect 192.168.10.1:636

Со стороны контроллера домена.

Во первых, фаерволле сервера разрешить входящие соединения по 389 и 636 TCP-портам.

Во вторых с помощью ldp.exe проверить  что сервер слушает по 636-му порту.



Friday, 15 May 2020

Интеграция MSDaRT в Windows 10.

Всем привет.

На днях у меня состоялась краткая практика с интеграцией Microsoft DaRT в Windows 10. 

Microsoft Diagnostics and Recovery Toolset (он же MsDaRT или DaRT) – набор утилит для восстановления и диагностирования операционных систем семейства, интегрированный в специальный загрузочный диск Windows. MSDaRT обычно нужен в экстренных случаях, когда Windows повреждена и не может корректно загрузится (это могут быть последствия установки некорректного драйвера, службы, повреждения или удаления системных файлов, заражения компьютера и т.д.).

Microsoft DaRT – это преемник ERD Commander компании Wininternals (входил в комплект Winternals Administrator Pack). Именно под названием ERD Commander этот продукт и знаком большинству пользователей Windows. Однако после поглащения компании Wininternals Microsoft-ом, ERD Commander в качестве компонента был отнесен к пакету Microsoft Desktop Optimization Pack (MDOP), и в дальнейшем переименован в Diagnostics and Recovery Toolset (DaRT).

Пакет MDOP доступен только подписчикам MSDN/TechNet и корпоративным пользователям продуктов Microsoft по программе Microsoft Software Assurance.  

Версия на печать

Популярное