cover04(137)
Анонсирован апрельский номер № 4 (137) журнала Системный Администратор за 2014 год со спецприложением «БИТ. Бизнес & Информационные технологии».
В номере:

  • Виртуализация на уровне ОС. Теория и практика LXC
    Рассмотрим технические особенности широко обсуждаемой платформы Linux Containers. Выполним ее установку и настройку и обсудим проблемы и сильные стороны платформы.
  • Установка Redmine и интеграция его с SVN
    Рассмотрим основные настройки, возможности, достоинства и недостатки SCCM 2012 SP1 по управлению обновлениями.
  • Запускаем внутренний чат
    Построение корпоративного сервиса обмена сообщениями с прозрачной авторизацией пользователей по протоколу XMPP. Решение предназначено для крупных и средних компаний.
  • Redo Backup and Recovery. Изящный инструмент для снятия образов с дисковой подсистемы
    Сравним различные типы архитектуры систем резервного копирования для предприятий разного масштаба и выдадим рекомендации для построения и модернизации систем сохранения данных.
  • Сканер уязвимости OpenVAS
    Сканеры уязвимости позволяют в автоматическом режиме произвести оценку эффективности защиты систем. Open Source-решение OpenVAS по своим возможностям не уступает коммерческим аналогам.
  • AIX Security Expert, или Как настроить безопасность AIX в один клик
    Как защитить критичную для бизнеса систему? Поговорим о способах настройки защиты в операционной системе IBM AIX, а конкретно – о встроенном средстве AIX Security Expert (сокращенно AIXpert).
  • DLP-комплекс DeviceLock DLP Suite для решения актуальных проблем безопасности данных
    Какие угрозы информационной безопасности с точки зрения сохранности корпоративных данных сегодня наиболее актуальны? Правильный ответ – все. Неактуальных угроз в информационной безопасности не существует.
  • Современный ИТ-монтажник
    Что должен знать и уметь специалист линейно-кабельных сетей? Какие трудности приходится преодолевать? Рассмотрим некоторые основы СКС (структурированно-кабельных сетей), принципы монтажно-соединительных работ, необходимый для этого инструмент, а также обязанности специалиста данного направления.
  • Электрическая сеть для системного администратора
    Без знаний о том, как устроена электрическая сеть, невозможно наладить работу компьютерной сети.
  • РАУЗ в 1С – друг или враг? Часть 2. Детальный учет – несмотря ни на что!
    В некоторых ситуациях нужно организовать учет себестоимости продукции с точностью до конкретной партии материала, из которого она произведена. Посмотрим, влияет ли использование РАУЗ на такую возможность.
  • «1С:Розница 8.2». Настройка скидок по дисконтным картам
    Сети магазинов требуется увеличить продажи, для этого используются пластиковые дисконтные карты, по которым начисляются накопительные скидки, а за привлеченных людей – бонусы. Как можно изменить информационную систему под эти нужды?
  • «1С:ERP 2.0». Что нового? Часть 1. Подсистемы «Маркетинг» и «Продажи»
    В конце 2013 года на рынок вышло флагманское решение от 1С – «ERP 2.0», которое пришло на замену «1С:УПП». Рассмотрим основные новшества этого продукта.
  • Праздничные котята от VK.com. kPHP – PHP со скоростью C++
    В преддверии Международного женского дня проект ВКонтакте открыл исходные коды своих внутренних разработок. Очевидно, таким образом решили преподнести праздничный подарок всем женщинам-программисткам. Исторически сложилось, что все продукты имеют префикс kitten, так что речь пойдет о разных котятах.
  • CSS-препроцессоры – решение проблем стиля
    Веб-программист и HTML-верстальщик – это совершенно разные специализации, по определению неодинаковые люди. Но это в идеале. На практике программистам часто приходится сталкиваться с версткой. Они давно придумали способы облегчить себе жизнь и справляться с этой нудной задачей, оставаясь программистами.
  • Маленькие помощники сайтостроителя. От тестирования ссылок к поисковой оптимизации
    В статье рассматриваются основные средства работы с потоками (threads) и процессами в языке и стандартной библиотеке Ruby.
  • Защита информационного содержания цифровых фотографий методом многократной маркировки цифровыми водяными знаками
    В статье излагается метод защиты цифровых изображений от модификации. Изображение разделяется на прямоугольные блоки, каждый из которых подписывается двумя цифровыми водяными знаками. Первый водяной знак служит для поиска блоков и контролирует их взаимное расположение. Второй является цифровой подписью и контролирует неизменность содержимого блока изображения. Метод позволяет определять не только изменения всего изображения в целом, но и какая именно часть изображения подвергалась модификации (искажению, вставке постороннего изображения, реплицированию).
  • Экологические проблемы электронной отрасли и экопроектирование
    В статье рассматриваются некоторые экологические вопросы, возникающие на разных стадиях жизненного цикла изделий, применяемых в процессе использования современных ИТ-технологий.
  • Как перестать беспокоиться и начать вести безопасную переписку в социальных сетях?
    Автоматизированные инструменты проверки кода не ограничиваются синтаксическим анализом и поиском нарушений, связанных со стилем и форматированием. Многие из них способны отлавливать реальные ошибки, которые не всегда удается выявить с помощью обычных тестов.
  • Система распределения секрета на основе кодов, исправляющих ошибки
    Новая система распределения секрета, представленная в статье, работает на основе кодов, исправляющих ошибки. Целью исследования является разработка высокопроизводительной системы, которая будет использовать разные коды, исправляющие ошибки.
  • Анимированная капча с использованием жестов рук
    Статья посвящена созданию капчи нового типа с использованием трехмерных анимированных жестов, которая обладает повышенной сложностью для автоматического распознавания.
  • Кого выберем? Взгляд работодателя
    Резюме – это ваша визитная карточка и первое, что видит работодатель. Изучает его и, не зная кандидата лично, принимает решение, приглашать на собеседование или нет. Просматривает послужной список и перечень освоенных технологий и оценивает ваш профессиональный уровень.
  • Вакансия: программист Java
    Продолжаем публикацию цикла статей в помощь ИТ-специалистам, начинающим и опытным, которые ищут работу. В этом номере представители компаний рассказывают, какие навыки они хотели бы видеть у программистов Java.
  • Великая китайская Байду
    Baidu – именно так «в переводе» на латиницу пишется название крупнейшего китайского поисковика. Впрочем, на забавно звучащем – на русский слух – названии, как говорится, шутки заканчиваются. Третье место по количеству обрабатываемых запросов – и не в Китае, а в мире! – какие уж тут шутки…
  • Биг-Мак
    Очередной экспонат нашего виртуального музея компьютеров и ИТ – Macintosh 128K. Тот самый, наипервейший, провозвестник новой компьютерной эры (Macсовой эры). И последний оглушительный хлопок дверью Стива Джобса перед тем, как покинуть родную компанию (к счастью для обоих, не навсегда).

Виртуальная машина VirtualBox распространяемая бесплатно уже давно пользуется популярностью среде админов и разработчиков, позволяя быстро создавать нужные окружения. Это очень удобная и понятная система, ориентированная на использование в десктопы. А поэтому все управление производится при помощи графического интерфейса, разобраться с которым под силу и новичку. Если МЬ не много проблем здесь никаких, но современные проекты имеют свойство обрастать конфигурациями и в итоге получается весьма сложная инфраструктура, управлять которой при помощи мыши становится не просто. Вот эту проблему и призван решить менеджер виртуальных окружений для разработки Vagrant (vagrantup.com), позволяющий из командной строки создавать копии виртуальных машин с заранее определенной конфигурацией и создавать конфигурации VM (Provisioning) по мере необходимости на лету. В базовой поставке Vagrant работает с VirtualBox, но система плагинов позволяет подключить другую систему виртуализации. НА сегодня открыт код плагинов для AWS (github.com/mitchellh/vagrant-aws) и Rackspace Cloud (github.com/mitchellh/vagrant-rackspace), по коммерческой подписке доступен плагин для поддержки VMware Fusion/Workstation.
Код самого Vagrant распространяется под лицензией MIT.
При этом Vagrant не создает виртуальную машину с нуля. Для удобства разработчиков проект предлагает несколько базовых образов (boxes), которые импортируются и в последствии используются для быстрого развертывания системы. И уже на основе boxes собирается гостевая ОС с нужной конфигурацией.
Настройка проекта в Vagrant производится при помощи специального файла

Для упрощения развертывания приложений в boxes предустанавливаются Chef и Puppet. Кроме этого нужные установки можно задавать при помощи shell. В состав окружений включается полный комплект для запуска и разработки приложений на Ruby.
Для доступа к VM используется SSH, возможен обмен файлами через расшаренную директорию.
Написан Vagrant на Ruby, установить можно в любой платформе для которой есть компоненты VirtualBox + Ruby. На странице загрузки (downloads.vagrantup.com) доступны пакеты для Win, Linux (deb и rpm) и Mac OS X.
Процесс установки и использования в Ubuntu прост. Скачиваем пакеты VirtualBox и Vagrant и ставим:

$ sudo dpkg -i virtualbox-4.2.10_amd64.deb
$ sudo dpkg -i vagrant_1.2.2_x86_64.deb

Этот вариант рекомендуется разработчиками для новой версии 1.2.x.
На момент написания статьи с последней актуальной версией VirtualBox 4.2.14 были проблемы при запуске Vagrant, поэтому пока лучше использовать 4.2.12 или тестовую 4.2.15. Как вариант выполнить:

$ cd ~/.vagrant.d/boxes/BoxName/virtualbox 
$ openssl sha1 *.vmdk *.ovf > box.mf

Альтернативно для установки Vagrant можно использовать Ruby:

$ sudo apt-get install ruby1.8 ruby1.8-dev rubygems1.8
$ sudo gem install vagrant

Vagrant по сути удобная надстройка над VirtualBox
Все настройки проекта производятся в специальном файле Vagrantfile (docs.vagrantup.com/v2/vagrantfile/). Чтобы не создавать шаблон вручную, его проще сгенерировать:

$ mkdir project
$ cd project
$ vagrant init

Теперь можно просмотреть внутрь и заполнить: установки VM (config.vm.*), подключение по SSH (config.ssh.*), параметры самого Vagrant (config.vagrant). Все они хорошо документированы, значение некоторых понятно и без объяснений.
На самом деле в процессе запуска используется несколько таких файлов, каждый последующий переопределяет предыдущий: встроенный в Vagrant (его изменить нельзя), поставляемый с boxes (упаковывается при помощи —vagrantfile), расположенный в ~/.vagrant.d и файл проекта. Такой подход позволяет использовать установки по умолчанию, переопределяя в конкретном проекте только то что необходимо.
Все установки производятся при помощи команды vagrant, список всех ключей можно просмотреть при помощи «-h». После установки мы не имеем ни одного образа, запуск «vagrant box list» выведет пустой список. Готовый box может находиться в локальной ФС или на удаленном сервере, в качестве параметра задается его имя по которому будем обращаться в проектах. Например, используем официальный Box Ubuntu 12.04 LTS предлагаемый разработчиками Vagrant.

$ vagrant box add precise64 http://files.vagrantup.com/precise64.box

Теперь к нему можно обращаться из Vagrantfile:

config.vm.box = "precise64"

Или проще сразу указать его при инициации проекта:

$ vagrant init precise64

Самый простой способ не требующий изучения Chef и Puppet это использовать для конфигурирования VM, стандартные команды оболочки, которые прописать прямо в Vagrantfile или еще лучше объединить в скрипт, который подключается так:

Vagrant.configure("2") do |config|
 config.vm.provision :shell, :inline => "script.sh"
end

Теперь все команды указанные в script.sh будут выполнены при запуске VM.
При старте проекта будет создан ovf файл, можно просмотреть установки внутри при помощи графического интерфейса VirtualBox или команды VBoxManage:

$ VBoxManage import /home/user/.vagrant.d/boxes/precise64/virtualbox/box.ovf
 
Virtual system 0:
 0: Suggested OS type: "Ubuntu_64"
 (change with "--vsys 0 --ostype <type>"; use "list ostypes" to list all possible values)
 1: Suggested VM name "precise64"
 (change with "--vsys 0 --vmname <name>")
 2: Number of CPUs: 2
 (change with "--vsys 0 --cpus <n>")
 3: Guest memory: 384 MB
 (change with "--vsys 0 --memory <mb>")
</mb></n></name></type>

Не всегда они удовлетворяют конкретным условиям, но используя настройки провайдера, можно легко изменить установки конкретной VM (что писать покажет пункт change with …):

config.vm.provider :virtualbox do |vb|
 vb.customize ["modifyvm", :id, "--memory", "1024"]
end

Запускаем и подключаемся к системе по SSH:

$ vagrant up
$ vagrant ssh

Чтобы остановить VM используется параметр halt или destroy (второй с очисткой всех файлов, в следующий раз все операции будут выполнены с начала), если нужно отправить в спячку «vagrant suspend» (вернуть resume).
Для примера работы с Chef можно использовать готовый рецепт, при помощи которого настроить APT и Apache2:

config.vm.provision :chef_solo do |chef|
		chef.recipe_url = "http://files.vagrantup.com/getting_started/cookbooks.tar.gz"
		chef.add_recipe("vagrant_main")
	end

Чтобы обращаться к VM из вне, потребуется настроить проброс портов. По умолчанию производится проброс 22 -> 2222 позволяющий подключаться по SSH.
Добавляем в Vagrantfile:

Vagrant::Config.run do |config|
 config.vm.forward_port 80, 1111
end

Теперь к вебсерверу можно обратиться перейдя по адресу http://127.0.0.1:1111/. Чтобы не настраивать окружение каждый раз, лучше собрать на его основе готовый пакет (package).

$ vagrant package --vagrantfile Vagrantfile--output project.box

Теперь файл project.box можно распространить среди остальных разработчиков, которые подключат его при помощи «vagrant box add project.box».
Это конечно самые простые примеры, всю остальную информацию можно найти на сайте проекта.

Настройку большого количества серверов, упрощают системы управления конфигурациями Chef, Puppet, CFEngine, позволяющие быстро привести сервер в нужное состояние. Но задачи автоматизации часто выходят за возможности инструментов. В сложных средах параметров и флажков к рецептам становится больше, чем самих рецептов. И инструменты сами становятся источником проблем. Использование Rundeck позволяет объединить и контролировать, все что есть.

Возможности Rundeck

Rundeck представляет собой кросс-платформенный инструмент, позволяющий автоматизировать в ЦОД любые команды, скрипты и процедуры. Созданные при помощи командной строки или через веб-интерфейс задачи могут быть запущены по требованию или по расписанию на любом количестве узлов, администратор получает полную информацию о ходе и результате выполнения. Доступны и другие необходимые в распределенных средах возможности: контроль доступа, создание цепочки событий (многошаговый сценарий), планирование, история и аудит.
Проект не возник на новом месте. Его основой является ControlTier (controltier.org), от которого Rundeck отделился в 2010 году. Со временем большинство разработчиков перешли в новый проект, как более перспективный. В Rundeck был опробован и реализован так называемый сценарий-ориентированный подход, создан интерфейс для фильтрации команд и скриптов для наборов узлов и возможность использования внешних поставщиков данных. В отличие от монолитного ControlTier Rundeck поддерживает возможность интеграции с другими инструментами Puppet, Chef, Vagrant, Jenkins, Nexus, Git и Amazon EC2. Практически все дополнительные функции подключаются в качестве плагинов, представляющих собой файлы обеспечивающие поддержку одного или нескольких сервисов (Service Provider). Реализовано несколько типов плагинов позволяющих: добавить шаг рабочего процесса, описания нодов (Resource Model), механизм исполнения и копирования файлов, предупреждения. Правда в настоящее время реализованы в основном плагины дающие возможность получать информацию о нодах. Ссылки на некоторые плагины можно найти перейдя по адресу rundeck.org/plugins.
По сути Rundeck является связующим звеном объединяющим все средства управления, позволяющий администратору с одной точки управлять заданиями и отслеживать результат. То есть информацию об узлах мы можем брать прямо с аккаунта Amazon EC2, а сервис разворачивать при помощи shell или Chef, но запускать все это средствами Rundeck, объединяя в единое задание с другими скриптами и командами. Сами задания объединяются в проекты, а проекты в группы. Задания можно выполнять параллельно сразу на всех узлах или последовательно. Предусмотрено оповещение о результате выполнения работы посредством email или отправки POST запроса по определенному URL.
Кроме этого GUI и CLI также представлен Web API позволяющий взаимодействовать с сервером Rundeck в программах и скриптах.
Rundeck представляет собой серверное приложение. Информация и история заданий хранится в базе данных, выходные данные команд и задания сохраняются в виде XML-файлов на диске.
Принцип работы прост. Администратор вводит команду и выбирает по фильтру узлы, запуская задание (Node Execution). Каждый узел представлен как «Resource Model», каждый имеет определенные признаки (параметр: значение), которые могут быть расширены. Например, теги позволяют быстро отобрать группу нодов по некоторому критерию.
Развертывание Rundeck упрощает отсутствие необходимости установки на нодах клиентского ПО (этим он отличается от ControlTier). Для управления удаленными системами и передачи файлов по умолчанию используется SSH/SCP. Это очень удобно, так как даже для того чтобы выполнить простую команду, не потребуется логиниться на каждом сервере. Но довольно просто можно подключить любой другой механизм (среди плагинов доступен WinRM) или использовать внешний скрипт.
При создании проекта доступен вариант Stub позволяющий просто просмотреть команды, вместо их выполнения. Это очень полезно когда требуется разобраться, что именно будет сделано.
Поддерживается контроль доступа на основе политик, интеграция с LDAP и AD.
Написан Rundeck на Java, поддерживается установки на все популярные ОС — Linux, Windows, Solaris и Mac OS X.

Ставим Rundeck

Для установки в Linux предлагается DEB пакет, RPM репозиторий и универсальный launcher. Рекомендуется использовать возможности пакетных менеджеров дистрибутива, в этом случае будут созданы все необходимые файлы. В Ubuntu и Debian процесс очень прост.

$ wget -c http://download.rundeck.org/deb/rundeck-1.5.3-1-GA.deb
$ sudo dpkg -i rundeck-1.5.3-1-GA.deb

Конфигурационные файлы сервиса находятся в каталоге /etc/rundeck, здесь можно установить параметры среды и работы сервиса, настроить ACL (admin.aclpolicy), включить SSL, указать настройки проекта по умолчанию (project.properties) и так далее. Их можно пока не трогать, достаточно просто познакомится чтобы знать что, где лежит.
По умолчанию демон не запущен:

$ sudo service rundeckd start

Если для дистрибутива не собран пакет то, придется использовать launcher. После запуска инсталятора необходимо будет ответить на пару вопросов.

# java -jar rundeck-launcher-1.5.3.jar

Подключаемся к веб-интерфейсу localhost:4440 (при необходимости порт можно изменить в файле framework.properties параметр framework.server.url), по умолчанию создается две учетные записи «admin» и «user» с паролям аналогичными логинам.
Интерфейс очень прост и несмотря на отсутствие локализации разобраться с ним друда не составит. После регистрации мы видим три вкладки: Run (выполнение команд для нодов отобранных при помощи фильтра), Jobs (просмотр, создание и запуск заданий) и History (просмотр выполняемых и выполненных заданий).
Выпадающий список позволяет выбрать проект. Но проектов пока нет. При первом входе пользователь будет сразу переброшен на страницу создания нового проекта. В самом простом случае достаточно ввести имя, остальные периметры можно заполнить потом. Для создания проекта в консоли используется утилита rd-project:

$ rd-project -a create -p examples
 
Project structure created: /var/rundeck/projects/examples

Только при использовании консоли есть небольшая проблема. Владельцами каталогов проекта являются пользователь и группа rundeck. Под обычной учеткой у пользователя не будет прав. В некоторых случаях достаточно себя добавить в эту группу, но помогает не всегда. Если использовать ”sudo” владельцем каталога будет пользователь и группа root. В этом случае нужно обязательно проверить и установить нужные права доступа иначе правильная работа будет невозможна.

$ sudo chown -R rundeck:rundeck /var/rundeck/projects/examples

Основные настройки проекта содержатся в конфигурационном файле project.properties, который находится в подкаталоге etc папки проекта. В нем настроек пока немного.

$ sudo cat /var/rundeck/projects/examples/etc/project.properties
 
#Project examples configuration, generated
project.name=examples
project.resources.file=/var/rundeck/projects/examples/etc/resources.xml

В документации расписано большое количество дополнительных параметров, позволяющих переопределить установки по умолчанию, некоторая часть устанавливается при помощи веб-интерфейса.
Нажимаем в браузере F5 и видим вновь созданный проект. Чтобы познакомиться с интерфейсом, можем просмотреть процесс выполнения любой команды на локальной системе. Вводим ее в поле Command, появляется секция «Now running» отображающая процесс и позволяющая просмотреть подробную информацию (в консоли это можно произвести введя rd-jobs). Ссылка рядом дает возможность убить задание.

 Создаем новый проект

По окончании видим статус подсвеченный цветом, что упрощает восприятие (если все нормально — Success, зеленым) и результат выполнения, его можно просмотреть в нескольких представлениях и сохранить в виде txt-файла. Чуть ниже видим окно History в котором выводится информация по всем заданиям выполненным в проекте.
Ссылка «Save As Job» позволяет сразу сохранить команду (ad-hoc command) для последующего быстрого вызова или создать новую задачу. Просто заполняем предложенные поля или устанавливаем, где нужно чекере: указываем имя, группу, выбираем проект, вводим описание, отсылку оповещения о результате, периодичность выполнения и уровень журналирования (Log level).
Чтобы добавить дополнительные команды и скрипты выбраем ссылку «Add step». Часть параметров понятна и без описания, другие требуют объяснения:

  • Флажок «Multiple Executions?» разрешает одновременное выполнение задания.
  • Параметр «Workflow: Strategy:» определяет порядок выполнения — последовательно (Node-oriented) или параллельно (Step-oriented).
  • «Workflow: Keepgoing:» — установлена в «No», т.е. в случае ошибки на любом из этапов, выполнение прерывается, переопределить можно изменив на «Yes».

Если флажок «Dispatch to Nodes» снят команда или задание выполняется только на локальной системе. После его установки открывается поле позволяющее задать другие системы и установить Include/Exclude фильтры (тег, ОС, версия ОС, архитектура и другие), в том числе поддерживаются и регулярные выражения. Фильтры можно сохранять для дальнейшего использования (ссылка «save this filter…»).
Добавляем команды, подключаем фильтры
По нажатию Options активируется безопасный вывод (позволяет скрыть пароли), можем указать дополнительные параметры, которые задаются локально (в JSON формате — Имя: значение) или подгружаются с удаленного узла.
Результат может быть показан в нескольких видах и сохранен в файл

Подключаем ноды

Каждый проект содержит как минимум один файл описания ресурсов resources.xml (Resource Model), но при необходимости можно использовать несколько файлов рассортировав по каталогам или URL. Каждое описание позволяет однозначно определять ноды. Минимально требуется указать только имя узла под которым оно будет показано в интерфейсе и его сетевое имя или IP, опционально задаются и другие параметры — теги, ОС, архитектура и др. В resources.xml уже будет описание локальной системы:

$ sudo cat /var/rundeck/projects/examples/etc/resources.xml
 
<project>
 <node name="localhost" description="Rundeck server node" tags="" hostname="localhost" osArch="amd64" osFamily="unix" osName="Linux" osVersion="3.2.0-23-generic" username="rundeck"></node>
</project>

Конфигурационные файлы проекта

Если учетная запись входит в групу «Admin» справа вверху появится надпись «Admin» и значок гаечного ключа. Выбрав этот пункт можно просмотреть состав групп, добавить плагины, изменить и экспортировать настройки проекта.
По умолчанию предлагается получать список ресурсов с удаленного узла, URL которого прописывается в «Resource Model Source URL». Чтобы задать файл ресурсов, каталог содержащий файлы с описаниями, скрипт и URL выбираем «Resource Model Sources». Очень удобно, что проект может поддерживать сразу несколько источников. Например часть нодов выбирается из статического файла, а часть генерируется CGI скриптом.

Утилиты командной строки Rundeck

Rundeck включает ряд инструментов командной строки, позволяющих выполнять и отслеживать задания, взаимодействовать с диспетчером очереди. Их можно использовать как альтернативу GUI и в своих скриптах.
- dispatch — выполнение команд и сценариев.
- rd-queue — запрос и соатновка заданий в очереди.
- rd-jobs — просмотр заданий и загрузка в файл.
- run — выполнение сохраненного задания.
- rd-project – создание нового проекта
- rd-setup — перенастройка Rundeck

Файл ресурсов самый простой способ, он может быть в формате XML или YAML. Для небольших проектов достаточно прописать нужное количество нодов добавив новую секцию «node name» в resources.xml. При помощи дополнительных параметров: username, password, port указываются учетная запись и порт для соединения с узлом, если отличаются от установок по умолчанию.
Плагины позволяют расширить эти возможности подключая Resource Model прописанные в файлах Chef, Puppet, Amazon EC2 и других. Например, плагин Amazon EC2 (github.com/gschueler/rundeck-ec2-nodes-plugin) подключается очень просто:

$ sudo apt-get install gradle
$ wget -c https://github.com/gschueler/rundeck-ec2-nodes-plugin/archive/master.zip
$ unzip master.zip
$ cd rundeck-ec2-nodes-plugin-master
$ ./gradlew
$ cp rundeck-ec2-nodes-plugin-1.3.jar $RDECK_BASE/libext

Теперь при выборе «Add Source» появится новый тип «AWS EC2 Resources«. Плагин поддерживает большое количество дополнительных опций, например автоматическую расстановку тэгов.
В данный момент мы подключили все узлы, и можем выполнять на них команды и скрипты, через веб-интерфейс или в командной строке.
Получаем список всех текущих ресурсов проекта и выполняем команду по фильтру os-family:

$ sudo dispatch -p examples -v
$ sudo dispatch -I os-family=unix -- uptime

Используем Chef

Основная мощь Rundeck проявляется совместном использовании с другими средствами автоматизации вроде Chef, или Puppet. Принцип взаимодействия ни чем не отличается от обычной работы. При создании задания указываем скрипт в котором расписаны все шаги или прописываем их отдельно при помощи «Add step». Например, у нас есть готовый cookbooks, и два файла (solo.rb,node.json) необходимые для работы chef-solo, которые загружены на веб-сервер. Необходимо установить Chef и выполнить. Прописываем в проект несколько новых шагов:

echo "deb http://apt.opscode.com/ precise-0.10 main" | sudo tee /etc/apt/sources.list.d/opscode.list
apt-get update
apt-get -y --force-yes install opscode-keyring chef git
chef-solo -c http://example.com/solo.rb -j http://example.com/node.json -r http://example.com/chef-cookbooks.tar.gz

По окончанию задания администратор будет осведомлен о результате.
Как минимум два плагина позволяют легко управлять Win машинами при помощи WinRM: Rundeck WinRM Plugin (github.com/dtolabs/rundeck-winrm-plugin) и Knife-windows (github.com/opscode/knife-windows). Второй использует утилиту knife из Chef. Ставим:

$ sudo gem install knife-windows

Добавляем новый источник Resource Model
Прописываем в проект информацию о Windows сервере:

$ nano resources.xml
 
<project>
<node name="win2008" description="Windows server node" tags="win2008" hostname="win2008" osArch="Windows" osFamily="windows" osName="windows" osVersion="2008" username="Administrator" password="p@ssw0rd" port="80"></node>
</project>

На Win2008 сервере настраиваем возможность удаленного подключения:

C:\Users\Administrator> winrm quickconfig -q

Проверяем из консоли:

$ winrs -u:administrator -p: p@ssw0rd -r:http://win2008 dir 
$ knife winrm -m win2008 -P 'p@ssw0rd' -p 80 -x Administrator dir

Если получаем ответ, можем подключать к проекту, изменив программу выполнения (NodeExecutor) используемую по умолчанию:

$ nano project.properties
 
service.NodeExecutor.default.provider=script-exec
plugin.script-exec.default.command=knife winrm -m ${node.hostname} -P '${node.password}' -p ${node.port}-x ${node.username} ${exec.command}

Теперь можно отдавать команды удаленной Windows системе.
На сайте проекта даны ссылки не на все плагины. Поискав в интернет можно найти много полезного. Например, скрипт для удобного бэкапа Rundeck – github.com/ersiko/rundeck-backup. Единственное, что при выборе плагина, следует проверять с какой версией Rundeck он будет работать. Некоторые плагины давно не поддерживаются и не работают с последними релизами Rundeck.

Просмотр узлов проекта в командной строке

Вывод

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

Анонсирован мартовский номер № 3 (136) журнала Системный Администратор за 2014 год со спецприложением «БИТ. Бизнес & Информационные технологии».

cover03(136)

В номере:

  • От Москвы до самых до окраин. И даже дальше
    Конкурс «СА» – ПрофИТ, 2013» завершен, итоги подведены. Мы сделали это! Нам удалось привлечь в свои ряды ИТ-специалистов со всей России, а также из-за рубежа. Ближнего и дальнего.
  • FOSDEM 2014. Впечатления о крупнейшей Open Source-конференции в Европе
    Что представляет собой европейское сообщество Open Source, чем живет, и велико ли оно? Мне выпала возможность оценить все это, побывав в феврале в Брюсселе на FOSDEM 2014.
  • ZEN Load Balancer. Построение отказоустойчивых сервисов
    Рассмотрим основы балансировки сетевой нагрузки, а также практическую ее часть на примере ZEN Load Balancer – продукта с открытым исходным кодом.
  • Сладкая парочка, или Как настроить работу SCCM с WSUS
    Рассмотрим основные настройки, возможности, достоинства и недостатки SCCM 2012 SP1 по управлению обновлениями.
  • Microsoft Excel 2013. Работаем быстро и создаем отчеты наглядно
    В статье речь пойдет о тех преимуществах, которые получили пользователи, применяющие программу Microsoft Excel из пакета Microsoft Office 2013 или Office 365, по сравнению с предшественником – Excel 2010.
  • Резервное копирование для больших и маленьких
    Сравним различные типы архитектуры систем резервного копирования для предприятий разного масштаба и выдадим рекомендации для построения и модернизации систем сохранения данных.
  • Мобильная торговля
    Рассмотрим на примере компании, занимающейся оптовой торговлей соками, как можно автоматизировать работу торговых представителей.
  • Кому уходят СМС?
    Разговоры о том, что Интернет все больше входит в нашу жизнь, наверное, уже давно набили оскомину. Но, хотим мы этого или нет, это реальность
  • BYOD и безопасность: мифы и реальность
    Активное распространение стратегии Bring Your Own Device (BYOD, использование персональных устройств в рабочих целях) во всех секторах экономики существенно ускоряет темпы «мобилизации» бизнес-процессов.
  • Ускоряем запуск 1С (для разработчика)
    Рассмотрим несколько приемов, которые позволяют в десятки раз ускорить время запуска 1С, особенно после обновления конфигурации.
  • РАУЗ в 1С – друг или враг? Часть 1. Развенчание мифов и поиск правды
    С момента введения нового режима учета затрат в 1С прошло достаточно времени, чтобы взглянуть на него беспристрастно, основываясь на реальной практике.
  • Концепции моделирования MongoDb на примере разработки социальных игр
    Подход к проектированию данных в документно-ориентированных БД немного отличается от подобной работы в традиционных СУБД. Суть этих отличий мы сегодня и рассмотрим.
  • Меньше кода, больше дохода. Часть 2. Разработка back-end слоя
    Продолжаем изучать веб-фреймворк Tapestry для создания Java EE-приложений. Рассмотрим некоторые вопросы, связанные с разработкой back-end слоя (серверная часть веб-приложения). Этот слой включает в себя систему для работы с базами данных, инструменты для аудита (логирование и т.д.) и многое другое.
  • Ruby и многозадачность
    В статье рассматриваются основные средства работы с потоками (threads) и процессами в языке и стандартной библиотеке Ruby
  • CamStudio в руках тестировщика. Применение видеофайлов на этапе разработки и отладки ПО
    Предлагается улучшение менеджмента ИТ-проекта: на этапе разработки и отладки ПО документацию о прохождении тестирования сохранять в форме видеоматериалов. Это будет полезно программистам при фиксировании ошибок, обнаруженных тестировщиками, и для создания презентаций и видеоинструкций.
  • Программная реализация редуцированной вычислительной схемы численного интегрирования системы линейных дифференциальных уравнений на основе методов Эйлера
    В работе рассмотрена реализация основных алгоритмов построения редуцированной вычислительной схемы численного интегрирования системы линейных дифференциальных уравнений на основе методов Эйлера. Приведены временные затраты на построение и расчет по редуцированной схеме по сравнению с традиционными численными методами. Расчет по вычислительной схеме больших математических моделей происходит на два-три порядка быстрее используемых в специализированном программном обеспечении методов.
  • Вакансия: системный администратор Linux
    Продолжаем публикацию цикла статей в помощь ИТ-специалистам, начинающим и опытным, которые озабочены проблемой своего трудоустройства. На этот раз мы обратились к представителям компаний, чьи сотрудники занимаются, в частности, и администрированием операционной системы Linux. Расспросили, какие требования они предъявляют к соискателям.
  • От каждого – по труду, или Каким сисадминам больше платят
    Исследовательский центр рекрутингового портала Superjob.ru изучил предложения работодателей и ожидания претендентов на позицию «Системный администратор UNIX» в Москве и Санкт-Петербурге.
  • Чему и как у нас учат. Разговор о преподавании информатики в школе
    Однажды со мной произошел такой случай: накануне сессии знакомый попросил объяснить своему сыну, студенту первого курса одного московского вуза, как работать со ссылками на языке Си…
  • Качество программного кода. От выявления стилистических огрехов к поиску ошибок
    Автоматизированные инструменты проверки кода не ограничиваются синтаксическим анализом и поиском нарушений, связанных со стилем и форматированием. Многие из них способны отлавливать реальные ошибки, которые не всегда удается выявить с помощью обычных тестов.
  • Лабораторная работа. Представление текстовой информации в ЭВМ. Часть 1
    Теоретические сведения о способах представления текстовой информации в памяти ЭВМ, в том числе и кириллицы.
  • Леди-адмирал виртуальных морей
    В мартовском номере журнала естественно представить читателю не героя, а героиню «компьютерного фронта» – их тоже хватает в сравнительно недолгой, но уже славной истории компьютерной техники и ИТ.
  • Гарвардская марка
    Очередной экспонат создаваемого на страницах журнала виртуального музея компьютеров и ИТ стоит в ряду претендентов на звание первого компьютера в истории. Ответ на вопрос, почему разные источники называют «первым компьютером» разные вычислительные машины (с некоторыми читатели уже смогли познакомиться), прямо вытекает из точного наблюдения кого-то из великих: «Все споры начинаются либо потому, что одну и ту же вещь называют разными именами, либо потому, что разные вещи называют одним и тем же именем». Иначе говоря, корень всех этих приоритетных споров – в определении, что же считать компьютером.

Статья опубликована в журнале Linux Format

Как то с видеоредактором пользователям Linux не очень везло. Нет, конечно был Kino, PiTiVi, Cinelerra, Avidemux, которые вполне успешно выполняли возложенную на них функцию, но большинство пользователей они все равно не устраивали, кто функционально, а кто запутанным интерфейсом. Именно отсутствие простого видеоредактора и стало причиной появления в 2008 году еще одного решения получившего имя OpenShot (http://www.openshot.org/). Изначально у проекта стоял один разработчик Джонатан Томас (Jonathan Thomas), сумевший в относительно короткие сроки, не только создать полноценный редактор видео, но и мощное сообщество. В итоге OpenShot быстро развивается и из простого редактора превратился в продвинутый по возможностям и стабильно работающий продукт. Проект завоевал популярность и буквально через два года стал использоваться по умолчанию во многих дистрибутивах Linux.

Возможности OpenShot

Изначально OpenShot работает только в Linux, поддержка библиотеки FFmpeg позволяет обрабатывать видео, аудио и графические файлы во всех популярных форматах – AVI, MPEG, DV, MOV, FLV, MP3 и другие. Доступны все необходимые функции: обработка нескольких треков, изменение размеров, обрезка и изменение скорости видео, наложение титров, микширование и редактирование аудио и многое другое. Кроме экспорта видео в любой из поддерживаемых форматов, возможна загрузка видео на сервисы вроде YouTube и Vimeo (шаблон для экспорта на любые другие легко написать самому).
Разработан OpenShot с использованием Python, GTK+ и фреймворка Media Lovin Toolkit, ориентированного на телевизионное вещание Первые версии работали не всегда стабильно (но проект не терялся даже в случае краха программы), сейчас его использование нареканий не вызывает.
Интеграция с GNOME обеспечивает возможность вставки любого объекта в проект и перемещение при помощи перетаскивания перетаскиванием (Drag`n`Drop). Использование другого рабочего стола отличного от GNOME тоже не должно останавливать, так как OpenShot везде работает и без проблем. Я например использую OpenShot в Linux Mint с XFce, Drag`n`Drop и прочие удобства там тоже присутствуют.
Интерфейс корректно локализован (за исключением пары терминов). Многие операции выполняются интуитивно и не требуют чтения документации, именно поэтому этот видеоредактор любим новичками и теми кто хочет быстро обработать видео не разбираясь с многочисленными настройками.
Изначально OpenShot поставляется с большим количеством эффектов (включая 3D-анимацию), переходов и титров, которые также можно редактировать при помощи встроенных средств или внешних программ — Inkscape (обычные) и Blender (3D). При экспорте видео используются готовые шаблоны, поэтому не нужно задумываться о настройках и будет ли воспроизводиться видео на выбранном устройстве. И главное, все установки, эффекты, субтитры, шаблоны описываются в виде обычных XML файлов, которые легко редактировать при помощи штатных инструментов или в обычном редакторе и переносить в другую систему.
В последнее время Джонатан Томас занимался разработкой нового движка на C++, который будет использовать библиотеки FFmpeg, LibAV, JUCE и ImageMagick, проведена оптимизация производительности и потребления памяти. После сбора средств на Kickstarter, было принято решение переводить интерфейс с GTK+ на Qt5, что позволит создавать кроссплатформенное решение. Большая часть функций будет доступна через специальный API, что позволит использовать OpenShot в качестве программируемого фреймсервера и создавать практически любые приложения для обработки видео. Новая версия ожидается к концу 2013 года, именно этим объясняется временное затишье на сайте проекта.

Знакомимся с интерфейсом

В репозитариях большинства дистрибутивов нужный пакет уже имеется, поэтому установка в современных версиях проблем не вызывает. В Ubuntu/Debian и производных используем команду sudo apt-get install openshot, в Fedora — yum install openshot. Для более ранних версий этих систем проект предлагает установочные пакеты и репозитарий, также доступны исходные тексты. Все подробные инструкции необходимые в этом случае, можно найти на сайте проекта.
Выбрав одноименный пункт в меню запускаем редактор. Интерфейс для подобных программ можно назвать классическим, пользователь с некоторым опытом общения с видеоредакторами быстро сориентируется. В левой части находятся поле с тремя вкладками: Файлы проекта, Переходы и Эффекты. В первой пока пусто, здесь будут отображаться все объекты привязанные к проекту – видео, аудио, графические файлы и добавленные титры. В остальных найдем все доступные переходы и эффекты, чтобы понять назначение любого достаточно посмотреть значок и прочитать описание, которое появляется если задержать мышку над ним. В правой части – окно предосмотра видео (в реальном времени), внизу – временная линейка, содержащая треки. Пропорции окон меняются при помощи мышки, можно подогнать под любое разрешение монитора и как удобнее.
Все действия производятся при помощи панели инструментов расположенной по середине, (ее можно убрать Вид — Панель инструментов) и контекстного меню. Последнее доступно не для всех элементов (только для дорожек треков и объектов проекта). После вызова настроек элемента появляется окно в котором необходимо просто задать параметры, поэтому сложностей здесь никаких.

Окно OpenShot

Окно OpenShot

Основные настройки

Перед тем как создать свой первый проект в OpenShot, лучше познакомиться с основными настройками. Некоторые из них влияют на удобство работы и конечный результат. Выбираем Правка — Preferences, открывается окно с четырьмя вкладками. Назначение большинства в Общие понятно и без объяснений, нас же интересуют только некоторые. Так Продолжительность импортированного изображения устанавливает время (с секундах) в течение которого будут по-умолчанию отображаться все субтитры, эффекты, изображения и прочие элементы. Время продолжительности затем можно настроить индивидуально для каждого, но лучше сразу задать здесь среднее время по проекту, чтобы потом не перестраивать. Значение по умолчанию — 7 сек, я обычно использую OpenShot для создания видеоуроков, поэтому устанавливаю 2, редко когда его потом приходится менять персонально. В OpenShot поддерживается отмена операций при помощи Undo/Redo количество шагов регулируется параметром Глубина истории. По умолчанию установлено в 20, этого точно хватает для небольших проектов. Проверяем чтобы в поле Melt executable стояло melt, а в Исполняемый файл Blender – blender.
Во вкладке AV Форматы перечислены все известные OpenShot видео и аудио кодеки и форматы. Он их находит самостоятельно, но после установки в системе новых кодеков, следует перезагрузить список, нажав кнопку внизу.
Переходим во вкладку Автосохранение и активируем эту функцию установив флажок Разрешить автосохранение и указываем нужный интервал.
Профили это одна удобных функций OpenShot, они содержат готовые предустановки (размера видео, соотношения сторон, частота кадров). Это удобно так как пользователю не нужно разбираться с настройками, при создании нового проекта или экспорте видео просто выбирает профиль. Перед тем как начинать, нужно познакомиться с доступными преднастройками, чтобы определиться в том что есть и главное чего нехватает. Назначение некоторых понятно из названия, подробности доступны если нажать кнопку Управление профилями. Для удобства профиль которым чаще всего пользуемся устанавливаем по умолчанию.
Если уже есть то что нужно, можно идти дальше, иначе следует создать новый профиль под свою ситуацию. Выбираем в редакторе профилей наиболее близкий, нажимаем кнопку с изображением плюса и создаем профиль, просто указав понятное имя и изменив доступные параметры. Через интерфейс доступны не все значение, но выход прост. Профили сохраняются в виде файлов в /usr/share/pyshared/openshot/profiles, их можно править в любом текстовом редакторе.

В OpenShot профили это обычные XML файлы

В OpenShot профили это обычные XML файлы

Первый проект

Проект в OpenShot состоит из файла с расширением OSP (его название совпадает с именем проекта) и подкаталога thumbnail (общий для всех проектов). После загрузки программы создается проект по умолчанию, при этом все файлы будут сохраняться на рабочем столе. Это неудобно, лучше под все проекты создать отдельный каталог, чтобы легче было переносить. Поэтому выбираем Файл — Сохранить проект и указываем название проекта, папку проекта, длительность проекта и выбираем профиль. Последнее влияет на окно предварительного просмотра, поэтому лучше сразу использовать в тот же самый профиль, который будет применяться и при экспорте. Хотя это необязательно, но в этом случае будет получен лучший результат (не будет сюрпризов в виде смещения титров, эффектов). Чтобы добавить файл в проект следует просто перетащить его в окно OpenShot (или меню Файл — Импортировать …), после чего появится новый эскиз. Когда файлов много и выбрать нужный тяжело можно переключаться по фильтрам (Видео, Звук, Изображение), использовать поиск или создать из контекстного меню папки по которым распределить файлы.
Особенностью OpenShot является возможность импортирования, создания и обработки последовательности изображений, которые могут представлять собой например видео разложенное по кадрам. Выбираем Файл — Импортировать набор изображений и заполняем поля, указав папку, шаблон имени файлов и количество кадров на изображение (по умолчанию 1 кадр = 1 изображение). Создание шаблона можно упростить если перетащить один из файлов в окно OpenShot.
Начинаем редакторирование, для этого просто захватываем файл из библиотеки и перетаскиваем на трек. Трек это своего рода слой в графическом редакторе, трек с большим номером, является верхним слоем и полностью закрывает нижний. Например, если видео расположить на втором треке, а титры или изображение на первом, то их не будет видно. Поэтому поступаем с точностью наоборот. Также на треке с большим номером следует размещать видео которое будет изображаться как часть основного кадра (картинка в картинке). Если ошиблись не страшно, использовав контекстное меню трек можно переместить вверх/вниз и переименовать.
По умолчанию проект содержит два трека, нажав кнопку с изображением “+” (Добавить дорожку) можно добавить любое их количество. Две кнопки возле названия трека и на каждом добавленном видео позволяют отключить/включить видео или звук. Таким образом можно полностью убрать оригинальную аудиодорожку, а вместо нее использовать другую. Возможно частичное приглушение звука, которое настраивается в свойствах (об этом далее).
Чтобы изменить расположение файлов на дорожке или между дорожками просто захватываем его и перетаскиваем по временной линейке. Переходы и эффекты добавляются аналогично, выбираем нужный и просто перетаскиваем на место. При этом переход будет визуально отмечен значком расположенным между двумя соседними дорожками. Эффект применяется к тому файлу на который он был сброшен, о его наличии можно судить по появлению третьего значка в виде звездочки на треке. Если видео маленькое то значков бывает не видно, поэтому можно заглянуть в меню свойств видео, откуда эффекты настраиваются и удаляются.

Редактируем файлы

Редактирование производится при помощи кнопок на панели инструментов и контекстного вызываемом щелчком на клипе в треке. Назначение кнопок понятно: Добавить дорожку, Указатель, Бритва, Изменение размера, Привязка и Добавить маркер. Например чтобы разделить видео на части нажимаем Бритва, внешний вид курсора изменится, теперь просто отмечаем нужное место на видео и в этом месте образуется разрыв. Новый кусок можно удалить или переместить. Для более точной резки файла следует растянуть временную линию при помощи ползунка справа.
Маркеры позволяют визуально разбить файлы на метки, это помогает при редактировании файлов большого проекта. Перемещаясь между маркерами можно легко находить нужные участки. Если видео или рисунок нужно растянуть нажимаем Изменение размера и при помощи курсора указываем новые размеры.
Более тонкие настройки вызываются при помощи пунктов контекстного меню. Отсюда мы можем дублировать видео, применить эффекты (затемнение, анимация, вращение, расположение), скрыть видео, приглушить звук, преобразовать в последовательность изображений (они будут помещены в отдельную папку). Например, чтобы видео с верхнего трека размещалось в виде окна (из меню 1\4 размера), выбираем Расположение и в следующем подменю пункт, куда его поместить (центр, сверху справа/слева, снизу справа/слева). Чтобы разобраться достаточно немного поэкспериментировать, если результат не нравится, то просто отменяем операцию.
Выбрав пункт Свойства (Properties) получаем еще больше установок: расположение на шкале, включить/отключить видео и звук, установить длительность, скорость и направление воспроизведения, расположение и размер кадра, установить настройки звука, пропорции видео и настроить эффекты.

Работаем с титрами

Титры являются файлами в формате SVG или XML (3D), которые после создания сохраняются в отдельной папке и добавляются к видео. Для редактирования обычных титров OpenShot интегрируется с векторным редактором Inkscape, для окончательного рендеринга 3D титров понадобится Blender. Установить их в Ubuntu/Linux Mint проще простого:

$ sudo apt-get install inkscape blender

Теперь чтобы добавить подпись или заголовок к видео переходим в меню Титры, здесь два пункта Создать титры и Новые анимированные титры. Назначение их понятно из названия. После выбора нужного появляется окно редактора титров, в котором отмечаем шаблон, указывается имя (оно будет и названием файла в который он сохранится), затем вводим текст, меняем шрифт и цвет. Окно предосмотра позволяет увидеть результат. Для анимированных титров настроек чуть больше, но каких либо сложностей нет.
Пункт Расширенный редактор позволит вызвать Inkscape, где титр настраивается более тонко. Его можно повернуть под любым углом, втиснуть большой текст, изменить положение и так далее. Вот здесь как раз и важен правильно указанный профиль, так как редактор показывает рамки кадра и в случае последующего изменения рисунок титров может не попасть. Вообщем с титрами можно сделать все, что позволяет Inkscape. Сохраняем результат. После создания титра они сохраняются в отдельной папке и показываются как новый файл в окне OpenShot. Рендеринг анимированных титров на маломощных ПК займет некоторое время.
Затем титры переносим в проект (на дорожку с большим номером), где им как и любым другим объектом можно управлять при помощи пунктов контекстного меню.
В большинстве случаев этого достаточно, но иногда имеющиеся шаблоны не подходят и их приходистя каждый раз долго править в Inkscape. В этом случае лучше сразу заготовить свои, создав шаблон на основе имеющегося, просто скопировав и изменив его, затем вернув назад с другим названием. OpenShot в их поисках субтитров просматривает папку /usr/share/pyshared/openshot/titles/ в котором расположены два каталога соответственно для соотношения сторон 16:9 и 4:3. Хотя внутри только символические ссылки, сами файлы находятся в /usr/lib/pymodules/python2.7/openshot/titles.

Редактор анимированных титров

Редактор анимированных титров

Экспортируем результат

Теперь все готово, для получения результата. Экспортировать можно в видеофайл, последовательность изображений или загрузить на видеохостинг. Нажимаем в меню кнопку Экспортировать видео и в появившемся окне указываем каталог и имя файла, выбираем профиль, кодек (подписан как цель) и качество (низкое, среднее, высокое). Более тонкая настройка производится во вкладке Дополнительно. Здесь уже задается формат и кодек для видео и аудио, устанавливается битрейт. По коончании нажимаем Экспортировать видео и ждем пока закончится процесс.

Настройка экспорта видео

Это всё. Конечно некоторое время придется потратить чтобы набить руку, но в итоге полученное видео будет выглядеть не хуже чем в коммерческих видеоредакторах.

Анонсирован сдвоенный январь-февраль номер № 1-2 (134-135) журнала Системный Администратор за 2014 год со спецприложением «БИТ. Бизнес & Информационные технологии».
cover01-02(134-135)
В номере:

  • Кибервалюта будущего или финансовая пирамида XXI века?
    Многомесячный взлет курса Bitcoin, недавно вошедшей в моду электронной криптовалюты, вызвал самые неоднозначные отклики в мировых СМИ. Одни эксперты склонны называть эти виртуальные деньги валютой будущего, другие находят в биткоинах объективные признаки финансовой пирамиды.
  • Пять альтернатив Bitсoin: в какую инвестировать, и почему этого делать не стоит
    Перспектива иметь кошелек с постоянно растущими в цене монетами, позволяющими анонимно приобретать товары в Интернете, не может не будоражить умы. Криптоплатежные системы привлекают инвесторов, людей, стремящихся быстро разбогатеть, и, конечно же, криминальные структуры и киберпреступников.
  • Ричард Столлман: «У меня есть работа и идеалы, и я полон решимости довести их до логического завершения»
    Об истории и идеалах Open Source и движения за свободные программы, о стремлении помочь ближнему и желании писать «правильные программы», о свободе как главной человеческой ценности рассказывает Ричард Мэттью Столлман, американский общественный деятель и хакер, основатель Free Software Foundation и GNU Project.
  • Администрирование «белой» техники. Для тех, кто раньше ее не видел
    Системный администратор, никогда ранее не видевший оборудования Hewlett-Packard, Dell, IBM, предназначенного для средних и крупных предприятий, может быть немало озадачен тем, что даже простейшие операции типа обновления BIOS или установки Windows проходят на нем совсем не так, как он привык.
  • HP Network Node Manager i 9x. Разбираемся и устанавливаем
    Проактивное управление гетерогенной IP-сетью малого предприятия с помощью бесплатной редакции HP Network Node Manager i 9x.
  • VMware vSphere 5.5. Новые возможности и новые проблемы
    В новой версии платформы для виртуализации дата-центра немало приятных обновлений. Какие новшества стали доступны в этом релизе, и с какими проблемами придется столкнуться первопроходцам?
  • Средства резервного копирования для виртуальных систем
    В статье идет речь о разных направлениях систем резервного копирования виртуальных сред, дается их краткий обзор, а также некоторые рекомендации при организации защиты данных.
  • Мониторинг серверов Hewlett-Packard с помощью Net::iLO
    Модуль для Perl, реализующий класс Net::iLO, позволяет написать датчики для мониторинга аппаратных серверов Hewlett-Packard через Nagios, получая всю информацию, которую может предоставить iLO, – температура, скорость вращения вентиляторов, состояние блоков питания и потребляемая мощность.
  • Эпоха DOS vs эпохи UEFI. Взаимодополняющие антагонисты
    Чем ближе находится уровень абстракции приложения к реальному аппаратному обеспечению, тем больше возможностей по управлению железом и по доступу к недокументированным функциям.
  • Мини-АТС Siemens HiPath 3800. Особенности, внедрение, результат
    Достоинства и недостатки внутренней телефонной связи, построенной на основе мини-АТС Siemens HiPath 3800, ее описание, подключение и администрирование.
  • Не храните важные данные в памяти холодильника. Заочный круглый стол «Технологии безопасности и угрозы — 2014 год»
    «Черный список» негативных тенденций и киберугроз в Интернете динамично пополняется все новыми и новыми пунктами. Среди них – увеличение мобильных угроз, атаки на Bitcoin, покушение на тайну частной жизни, взломы облачных хранилищ, воровство разработок ПО, киберугрозы, создаваемые государством, фрагментация Интернета, корпоративный шпионаж. Проблемы, актуальные для всех, кто работает со Всемирной паутиной.
  • Автоматизируем реализацию товаровна основе «1С:Предприятие 8.2. Управление торговлей»
    Поэтапно рассмотрим процессы подключения сканера штрих-кода, его настройки, генерации штрих-кодов и их присвоения номенклатуре, рисования этикеток и ценников, настройки документов реализации товаров на основе «1С:Управление торговлей» ред. 11.1.
  • Как избежать ошибок учета в 1С. Часть 9. Амортизация основных средств
    В отличие от материально-производственных запасов, основные средства входят в состав себестоимости продукции через амортизацию. Но не все так просто. Сегодня мы расскажем, какие существуют тонкости в процессе оформления.
  • Подбор оборудования для систем на платформе 1С
    Рассмотрим основные критерии выбора серверного оборудования для 1С и представим методику подбора оборудования посредством бенчмаркинга.
  • Обмануть время. RunAsDate в помощь тестировщику
    Как сократить сроки и сделать более удобным проведение тестовых сценариев, связанных с обработкой проверки значений времени и даты в программах?
  • Тестирование приложений при разработке. Функциональное и модульное тестирование
    Практические рекомендации по использованию модульных и функциональных тестов с использованием NUnit и Rhino Mocks для тестирования C#-приложений.
  • Индексы в MongoDb
    Изучая особенности СУБД MongoDb, нельзя не отметить такой важный момент, как индексирование. Правильное построение индексов и оптимизация запросов определяют общую производительность системы.
  • Меньше кода, больше дохода. Часть 1. Создание проекта и конфигурирование
    Веб-фреймворк Tapestry – самый гибкий и удобный из известных Java-веб-фреймворков, с большим возможностями и богатым функционалом для создания Java EE-приложений.
  • Сервер на платформе Node.js. HTTP и не только
    Продолжаем осваивать серверную JavaScript-платформу Node.js. Разберемся, почему она именно «серверная» и насколько справляется с этой ролью. TCP, UDP, HTTP, HTTPS – если честно, для Node доступно все.
  • Блоки и контекст в Ruby, или Что стоит за идентификатором в данном окружении
    Давайте разберемся с программным контекстом в Ruby: какие переменные и другие объекты доступны в конкретном месте программы, и как интерпретатор их ищет? Что обозначает конкретный идентификатор, откуда он берется? Почему отсюда, а не оттуда? И чему, наконец, в этом трижды перекинутом блоке будет равен self?
  • PowerShell: работа с Active Directory
    Управление группами безопасности в каталоге Active Directory. Рассмотрим как простые операции с группами: создание, поиск групп, чтение свойств, так и сложные: копирование списков безопасности.
  • Вакансия: разработчик ядра Linux. Что нужно знать, чтобы успешно пройти собеседование
    В помощь нашим читателям, которые только начинают штурмовать карьерную лестницу ИТ-профессии, мы предлагаем цикл статей, в которых представители компаний-работодателей подробно рассказывают, какие именно требования они предъявляют к кандидатам на трудоустройство. Итак, читайте первый материал цикла.
  • Безопасное трудоустройство. Часть 3. Что помогает или мешает работать и зарабатывать
    Цель данной статьи – не только помочь соискателю избежать ошибок при трудоустройстве и не попасть, что называется, «как кур в ощип», но и посмотреть на работодателей и вакансии в более дальней перспективе, понять, какое будущее ждет конкретного ИТ-специалиста.
  • Продолжаем публиковать информацию о курсах, которые находятся в открытом доступе. Начнем с основ сетевых технологий, перейдем к курсу по компьютерным сетям, уделим вниманием протоколу IPv6, а завершим курсом, посвященным сетям Wi-Fi.
  • Учеба – виртуальная, знания – реальные
    Актуальные знания об ИТ-технологиях – кровь профессии системного администратора. Иначе наступают застой и, как следствие, карьерная неконкурентность и пониженная самооценка. Если же не сидеть сложа руки, то несложно быть постоянно в курсе динамично меняющейся ситуации с программным и аппаратным обеспечением.
  • Качество программного кода. Позаботьтесь о долгой жизни ваших программных продуктов!
    Понятие «качество программного продукта» включает в себя не только полноту и корректность реализации требуемого функционала, но и простоту поддержки и модификации программы. Как же обезопасить себя и коллег от кошмара поддержки нечитаемого кода?
  • Странная формула. Часть 3. Правила хорошего тона
    Для передачи информации люди используют различные языки (письмо, жесты, рисунки и т.п.). В математике тоже существуют свои языки – они могут быть очень разными, но все используют принципы рассуждений, кодифицируемые математической логикой.
  • Мэр Силиконовой долины
    В последний год уходившего века и тысячелетия Нобелевскую премию по физике разделили россиянин Жорес Алферов, немец Герберт Кремер и американец Джек Килби. Но в списке лауреатов должен был быть еще один человек – американец Роберт Нойс.
  • Акио Морита
    Имя и фамилия этого человека даже на его родине известны далеко не всем – только тем, кто профессионально связан с бизнесом и бытовой электроникой. Но если добавить, что он – создатель Sony, а в значительной степени и всего послевоенного «японского чуда», то уважительно закивают головами не одни только жители Страны восходящего солнца, но и многие миллионы покупателей продукции с четырьмя магическими буквами на корпусе. «Восходящим солнцем» японского бизнеса стал и сам Морита. Во всяком случае, за без малого восемь десятков лет жизни (он родился в 1927 году и умер в 1999-м) основатель и глава Sony успел превратиться в настоящего гуру для поколений предпринимателей не только у себя на родине, но и далеко за ее пределами.

БИТ. Бизнес & Информационные технологии специальное приложение. Тема номера: Технологии безопасности

Выходит отдельным приложением. В № 1(34) 2014.

BIT_cover1(34)

  • Операционная безопасность – технические составляющие и не только
    Насколько хорошо работает служба ИБ в вашей организации? Поговорим об операционной безопасности.
  • Прогнозирование и использование отказов системы для повышения безопасности
    Как при правильном подходе можно использовать выход системы из строя для усиления защиты.
  • Это СОРМ, детка. Часть 1. Возможности современных средств шифрования
    Обзор безопасности семейства протоколов TLS/SSL, в котором также будут рассмотрены последовательные стратегии ослабления данных протоколов со стороны спецслужб.
  • Безопасность систем SAP
    Системы SAP содержат критичные для компании данные и активы. Однако всегда ли сами системы надежно защищены?
  • Безопасность-2014 – за угрозами в кильватере
    Опрос. На вопросы «БИТа» отвечают эксперты ведущих ИТ-компаний.
  • Итоги 2013 года в сфере информационной безопасности
    Итоги в целом можно назвать предсказуемыми: это рост направленных атак в контексте промышленного шпионажа, дискредитация целых информационных систем, как на уровне корпораций, СМИ, так и на государственном уровне, а также утечки персональных данных и атаки на мобильные приложения.
  • Классификация программного обеспечения для экспресс-оценки состояния ИТ-инфраструктуры
    Иногда информационные системы предприятия начинают «жить своей жизнью», а для поддержания их работоспособности требуется все больше и больше трудовых и финансовых затрат… Как исправить ситуацию и навести порядок? Разбираемся в ПО.
  • Как открыть интернет-магазин. Часть 1. Пять правил для начинающих
    …Где-то годам этак к тридцати системный инженер – руководитель проектов начинает понимать, что в жизни идет что-то не совсем так.

Подробности на сайте журнала samag.ru
Журнал можно получить в электронном виде подробнее

Как известно, большинство *nix-приложений развивается по принципу KISS (Keep It Simple Stupid), когда разработчики занимаются только самыми необходимыми, на их взгляд, функциями. Остальные возможности отданы на откуп третьим сторонам. В итоге проекты обрастают субпроектами, предлагающими все необходимое, и в их многообразии подчас разобраться совсем не просто.

СУБД MySQL

Долгое время MySQL поддерживала так называемые пользовательские функции (User-Defined Function, UDF), которые по своему применению напоминают плагины, хотя их применение ограничено обработкой данных. Существовали, конечно, и плагины, но их применение требовало пересборки серверной части. Возможность простого добавления расширения при помощи специального plug-in API появилась в MySQL, начиная с версии 5.1. Это позволило на лету подключать и отключать плагины при помощи команд INSTALL PLUGIN и UNINSTALL PLUGIN, и главное, теперь не требуется перекомпиляция сервера. Плагины размещаются в каталоге, указанном в переменной plugin_dir, в конфиге my.cnf. Просмотреть список доступных плагинов можно так:

mysql> show variables like 'plugin_dir';
mysql> show plugins;

В ответ получим название нужного каталога и список плагинов.

Смотрим список доступных плагинов MySQL

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

mysql> INSTALL PLUGIN daemon_memcached SONAME 'libmemcached.so';
mysql> UNINSTALL PLUGIN daemon_memcached;

Возможности плагинов, по сравнению с UDF, гораздо шире и затрагивают практически все сферы применения СУБД. C каждым новым релизом возможности plug-in API расширялись, и в последней версии MySQL 5.7 (development milestone release) поддерживается уже 8 типов плагинов:

  • Storage engines — для реализации хранения специфических типов данных, которые будут доступны через SQL;
  • Daemons — запуск фоновых процессов;
  • Full-text parsers — может быть использован для индексирования текстовых данных и специализированной обработки выражений FULLTEXT запросов;
  • INFORMATION_SCHEMA tables — для организации «виртуальной базы данных» в таблице information_schema (обеспечивает доступ к метаданным БД) при помощи специальной функции information_schema (появилась в MySQL 5.1);
  • Semisynchronous replication — по умолчанию в MySQL используется асинхронная репликация, эти плагины позволяют использовать полусинхронную репликацию (поддержка появилась в 5.5), когда коммит на мастере происходит еще до того, как транзакция отправляется на реплику. Следует помнить, что в сетях с большой задержкой производительность при использовании semisynchronous падает;
  • Auditing — плагины для регистрации событий аудита;
  • Authentication — плагины, расширяющие возможность аутентификации;
  • Password-Validation — интерфейс для создания плагинов, позволяющих проверять пароли на прочность.

Еще два нюанса, о которых нужно знать: плагины бывают для серверной и клиентской части, необходимо отслеживать совместимость с текущей версией MySQL. Причем плагины для MySQL нередко работают и в клонах — Drizzle, MariaDB и Percona Server.
Сегодня можно найти десятки готовых решений в каждой категории, первые три особенно популярны.
Необходимость в обработке больших объемов данных привела к тому, что все более популярной становится концепция NoSQL (Not Only SQL — не только SQL). Большинство NoSQL решений разработаны с нуля, но параллельно доступны разработки для популярных СУБД, расширяющие их возможности. Для MySQL наиболее популярны: Memcached (goo.gl/D59kY, разработка Oracle, поддержка появилась в MySQL 5.2.6) и HandlerSocket (github.com/DeNA/HandlerSocket-Plugin-for-MySQL), хотя это не весь список. Например, HandlerSocket позволяет обращаться к MySQL, так же как к NoSQL, избегая накладных расходов, связанных с SQL. Чтобы ускорить обработку, HandlerSocket не закрывает таблицы по окончанию операций, а оставляет их открытыми для повторного использования. В итоге производительность возрастает примерно в 5-6 раз, по сравнению с обработкой обычного SQL запроса.
Яркими примерами плагинов из второй категории являются проекты, которые даже не нуждаются в особом представлении: Sphinx (sphinxsearch.com) и поисковый движок mnoGoSearch (mnogosearch.org), используемые на многих веб-сайтах. В рамках проекта Sphinx (кстати, автор проживает в России) реализована поддержка полнотекстового поиска для любых типов хранилищ MySQL (в том числе MyISAM, InnoDB, NDB, архив и т.д.), его характеризует масштабируемость, высокая скорость индексации и поиска, распределенная возможность поиска.
Для поиска по шаблону MySQL поддерживает расширенную версию предложенной Генри Спенсером (Henry Spencer) реализации регулярных выражений (оператор REGEXP, подробнее bit.ly/10KQcIe), которая, по признанию самих же разработчиков, не корректно работает с мультибайтными кодировками. Для некоторых задач лучше подходят PCRE-совместимые выражения (Perl Compatible Regular Expressions), реализованные в lib_mysqludf_preg (mysqludf.org/lib_mysqludf_preg).
Отслеживание состояние сервиса — важная часть администрирования СУБД, знать все параметры поможет распространяемый по лицензии GNU GPL плагин мониторинга от Percona (bit.ly/17zktCa), который совместим с Cacti, Nagios и некоторыми другими специализированными решениями. Кстати, Percona выпускает незаменимый в работе каждого DBA инструмент — Percona Toolkit for MySQL (ранее Maatkit), представляющий собой набор из более чем 30 Perl-скриптов, упрощающих многие операции при работе с MySQL: репликация, резервирование и восстановление информации, мониторинг, анализ запросов, исследование эффективности настроек сервера баз данных, контроль привилегий и многое другое.
Сегодня доступ к серверу баз данных может требовать большое количество пользователей. Встроенный (native) механизм аутентификации через плагин mysql_native_password, проверяющий username/password в таблице mysql.user, не всегда удобен (есть, кстати, и плагин mysql_old_password, совместимый с паролями MySQL до 4.1.1). Особенно если уже имеется готовая база учетных записей. Но все это легко организовать при помощи плагинов, в которых реализованы любые политики аутентификации пользователей, не привязанные к схеме MySQL и предоставляющие большее количество возможностей и механизмов. Например, для коммерческой версии MySQL Oracle предлагает два плагина:

  • PAM Authentication Plugin (authentication_pam) — использует механизмы аутентификации PAM Unix и LDAP в различных приложениях и контекстах, с гибко настраиваемыми правилами. В качестве параметров доступны все методы PAM — логин, пароль, имя хоста и т.п.
  • Windows Native Authentication Plugin — использование механизмов аутентификации Windows, после регистрации пользователь может без дополнительного ввода учетных данных подключиться к СУБД.

Исходный код этих модулей достался Oracle по наследству, поэтому многие считают неправильным, что в настоящее время его нет в свободном доступе. Но есть простой выход: аналогичные плагины предлагают форки MariaDB, Drizzle (bit.ly/10KQAXh) и Percona Server, но в отличие от MySQL, они выпущены под GNU GPL. Учитывая родство, собрать любой из них для работы с MySQL труда не составит. Причем Percona предлагает и свой вариант PAM модуля для MySQL (bit.ly/18zbpNd), поддерживающий, кроме указанных выше, также аутентификацию при помощи RSA SecureID. Вариант от Drizzle интересен тем, что у него PAM и LDAP реализованы в виде отдельных модулей, что очень хорошо, так как LDAP запрос идет напрямую к серверу, а не через PAM (пароль в этом случае передается в открытом виде). Кроме того, предложены варианты аутентификации при помощи текстового файла и HTTP, также есть плагин, разрешающий все соединения без аутентификации.

Система мониторинга Nagios

Постоянное наблюдение за всеми слагаемыми компьютерной сети позволяет выявить проблемные участки и устранить их до того, как произойдет сбой, или они смогут повлиять на работу сети, а оповещение поможет быстро устранить неисправность. Вот здесь и выручают системы мониторинга. Одним из самых популярных среди OpenSource решений является Nagios (nagios.org), отслеживающий использование ресурсов серверов (загруженность CPU, расходование RAM и дискового пространства и т.д.) и выполняющий мониторинг работы сетевых сервисов (HTTP, SMTP, POP3, IMAP, SSH и многих других). Информацию можно получить при помощи веб-интерфейса. Базовые возможности можно расширить за счет большого числа плагинов, аддонов, патчей и утилит, которые практически полностью покрывают все потребности.
Базовые возможности можно расширить за счет большого числа плагинов, аддонов, патчей и утилит

Официальными считаются около 50 плагинов проекта Nagios Plugins (nagiosplugins.org), и именно они обычно ставятся по умолчанию при использовании пакетного менеджера дистрибутива (но не всегда в пакете они все), обеспечивая возможности мониторинга базовых параметров и основных сервисов — CPU, ОЗУ, диск, DNS, MySQL, SSH и др. За время существования проекта сообществом было создано более 2000 дополнений в 40 категориях, большая часть из которых доступна на ресурсах Nagios Exchange (exchange.nagios.org) и MonitoringExchange (monitoringexchange.org). Некоторые плагины для Nagios будут работать и в клонах — Icinga или Shinken.
NagVis визуализирует состояние узлов и сервисов, предоставляя наглядную карту
Например, Check_MK (mathias-kettner.de) позволяет автоматически и с минимальными нагрузками на хост собирать информацию о сервисах удаленного узла, заменяя некоторые стандартные плагины (NRPE, NSClient, check_snmp и другие). Для получения данных с удаленных систем используется всего один сервис (вместо нескольких) и единственное сетевое соединение (по умолчанию 6556/TCP через xinetd). Это дает возможность при помощи одного сервера мониторить большее количество клиентов. Поставляется Check_MK с набором готовых правил проверки, веб-интерфейсом (можно использовать вместо или вместе со штатным Nagios) и модулем для быстрого доступа к ядру Nagios. Поддерживается автоматическая конфигурация проверок узлов. Для разных ОС разработаны агенты, возможен и «безагентный» мониторинг на основе SNMP. Проект предлагает пакеты для установки в разных системах и дистрибутивах. В Ubuntu он уже доступен в репозитарии, все компоненты можно найти командой «apt-cache search check-mk».
Очень полезная коллекция из более чем 50 плагинов (разбиты на 17 категорий) предложена проектом Monitoring Plugins (bit.ly/fxhle3). Установив ее из исходников, получим возможность проверять статус bonding интерфейсов, состояние памяти и memcached, задания CUPS, работу Apache, DNS, MySQL, libVirt, политик SELinux, SSL сертификатов и многое другое. Набор содержит настройки для отправки уведомлений по SMS, mail и в stdout (для отладки).
C распространением мобильных устройств нередко возникает задача их мониторинга. Для этой цели в дополнениях к Nagios можно найти нужные плагины, и выбор здесь большой — aNag, uNagi, TiNag. Самый популярный, наверное, aNag (bit.ly/1aEJTu5), позволяющий проверять состояние Andriod устройств, поддерживает подключение к нескольким серверам Nagios или Icinga. Реализовано автоматическое обновление состояния, фильтрация сообщений, различные уведомления и многое другое.
Некоторые полезные дополнения не представлены в указанных репозиториях. Например, Percona также предлагает набор из 12 плагинов для расширенного мониторинга MySQL и клонов, сделанных к тому же весьма профессионально. С их помощью можно проверять задержки репликации, привилегии, отслеживать взаимоблокировки (deadlocks), процессы MySQL (достижение критического уровня), контрольные суммы таблиц, заполненность LVM тома и многое другое. Плагины будут работать в любой *nix-системе, для более простой установки в дистрибутивах Linux разработчики предлагают репозитарий.
4
Также не лишним будет вспомнить различные инструменты, которые восполняют недостающие в штатном интерфейсе функции. Например, аддон NagVis (nagvis.org) визуализирует состояние узлов и сервисов, предоставляя наглядную карту (ее вид выбираем самостоятельно), и при помощи гаджетов выводит различные диаграммы. Все установки производятся через веб-интерфейс, параметры устройств берутся из Nagios/MySQL. Для удобства графики NagVis можно интегрировать в интерфейс Nagios. В NagVis Exchange (exchange.nagvis.org) доступны дополнительные шаблоны, карты, значки и прочие элементы, расширяющие его возможности.
Среди множества веб-интерфейсов к Nagios особо выделяется Centreon (centreon.com) — удобный, красивый, функциональный. Предусмотрена отправка уведомлений на почту или SMS. Все настройки производятся непосредственно через веб. Служебные данные Centreon хранит в MySQL, данные мониторинга — в RRD.
Centreon - один из лучших интерфейсов к Nagios
По умолчанию Nagios заносит информацию в файлы, специальный модуль NDO2Utils позволяет экспортировать собранные ранее и новые данные в MySQL, откуда их уже могут брать сторонние приложения, вроде NagVis и Centreon.
Создание конфигурационных файлов можно поручить NConf (nconf.sf.net) или NagiosQL (nagiosql.org), которые позволяют сделать все необходимое через веб-интерфейс. Например, NagiosQL ориентирован на предприятия любого размера, совместим с Nagios 2.x/3.x и клонами, поддерживает несколько наборов конфигураций, мощные функции импорта, возможно применение сценариев, шаблонов и переменных, информация сохраняется в MySQL.
Как вариант, утилита ScanToNag (vanheusden.com/java/ScanToNag), сканируя после запуска сеть в поисках хостов и сервисов, автоматически создает необходимые настройки.

$ java -jar ScanToNag.jar --range 192.168.1.0/24 --emit-templates --timeout 50 --contacts unix-admins --hosts-file hosts.conf --services-file services.conf

Система обнаружения атак Snort

Наиболее популярной OpenSource сетевой системой обнаружения атак является Snort, способная производить в реальном времени анализ и блокировку подозрительных IP-пакетов. Snort обнаруживает атаки, комбинируя два метода: сигнатурный и анализ протоколов. За время развития проекта к ней было разработано множество дополнений, патчей, модулей и интерфейсов, расширяющих базовые возможности. Большая часть из предложенных патчей постепенно перекочевала в основную ветку и развивается под эгидой Sourcefire.
Snort стартовал в 2000 году исключительно как IDS, не предоставляя механизмов блокировки пакетов. Поэтому, наверное, самым популярным среди плагинов является SnortSam (snortsam.net), позволяющий блокировать IP-адрес злоумышленника путем перенастройки правил пакетного фильтра. Поддерживаются IP Filter (ipf), ipfw2, Packet Filter (pf), Linux IPtables/Ebtables, некоторые роутеры Cisco и Juniper и т.д. Одна установка может перестраивать правила сразу нескольких файрволов. Поддерживается белый список, установка времени блокировки, гибкие правила, обнаружение DDOS и многое другое. Сам SnortSam состоит из двух компонентов: патча к Snort и управляющей программы. Для защиты соединения между Snort и агентом SnortSam используется шифрование TwoFish.
Альтернативой SnortSam можно считать скрипт fwsnort (cipherdyne.org/fwsnort), преобразующий правила Snort в эквивалентные для iptables (через ‘—hex-string’). Кроме этого, реализован патч для собственно Snort — snort_inline, позволяющий активировать функциональность IPS. Но в настоящее время проект, по сути, закрыт (последнее обновление датировано 2010 годом, для версии Snort 2.8.2), разработчики snort_inline переключились на IDS/IPS Surikata (suricata-ids.org). В целях совместимости функционал snort_inline реализован с помощью механизма DAQ в виде модуля IPQ (см. врезку).
Традиционно для обновления правил используется Oinkmaster, но он не обрабатывает динамические правила (Shared Object Rules, so_rules), а потому их подключение приходится производить самостоятельно.

# snort -c /etc/snort/snort.conf --dump-dynamic-rules=/etc/snort/so_rules
Finished dumping dynamic rules.

Процесс обновления правил также можно полностью автоматизировать при помощи Perl-скрипта PulledPork (code.google.com/p/pulledpork).
Система, построенная на Snort, способна собирать и обрабатывать информацию с нескольких датчиков. Проблема может возникнуть, когда при превышении порога Snort будет вынужден остановить анализ трафика, пока собранные данные не будут сохранены. Эту проблему решают при помощи плагинов, разделяющих функции анализа и сохранения. Наиболее известен Barnyard (уже прекратил развитие, barnyard.sf.net) и его форк Barnyard2 (github.com/firnsy/barnyard2), получающие на вход «унифицированный» формат (unified2) и сохраняющие данные в указанном виде (поддерживается dump, CSV, syslog, отправка в ACID и Sguil). Примерно по такому же принципу работает FLoP (Fast Logging Project for Snort, geschke-online.de/FLoP) и mudpit (mudpit.sf.net). FLoP специально разработан и оптимизирован для распределенной инфраструктуры, собирает информацию на удаленных датчиках и отправляет на централизованный сервер для анализа (поддерживается MySQL и PostgreSQL). В отличие от Barnyard2, в котором для каждого SELECT/INSERT используется TCP/IP, что при большой нагрузке вызывает задержки, в FLoP эту функцию выполняет сокет Unix. При достижении определенного порога опасности на email админа будет отправлено предупреждение.

Новый механизм захвата пакетов в Snort 2.9

В Snort 2.9 вместо прямого обращения к libpcap использован механизм DAQ (Data Acquisition Library), впервые анонсированный в 2010 году и добавляющий новый уровень абстракции, позволяющий проще реализовать захват на разных платформах, без внесения изменений в исходный код. В итоге отпала необходимость в некоторых патчах. Сам DAQ предоставляет несколько модулей, имеющих свои функции: PCAP (захват), AFPACKET (IPS, блокировка трафика между двумя интерфейсами в Linux), NFQ (использования QUEUE для передачи пакета в userspace для анализа, Linux), IPFW (то же, что и NFQ, только работает в FreeBSD и OpenBSD), IPQ (snort_inline) и DUMP. Модули могут собраны как статически, так и динамически (—disable-static-daq). Для просмотра списка доступных модулей вводим команду:

# snort --daq-list

Просмотр списка доступных DAQ модулей
По умолчанию для захвата используется модуль PCAP, которому можно передать специфические параметры:

# snort --daq pcap --daq-mode passive -i eth0

Но при необходимости модуль по умолчанию можно изменить при сборке параметром:

./configure "CPPFLAGS=-DDEFAULT_DAQ=<type>"
</type>

Разработчики Snort занимаются только движком, оставляя анализ данных третьим сторонам. В результате появилось очень много скриптов и GUI, позволяющих визуально оценить информацию — BASE, Snez, OSSIM, Sguil, Snorby и др.

Заключение

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

Наверх