Опубликован: 20.02.2006 | Уровень: специалист | Доступ: платный
Лекция 8:

Средства анализа и управления

Настройка web-сервера Apache

Развитые средства анализа из данной лекции основаны на применении web-сервера в качестве как интерфейса конфигурирования, так и механизма вывода. Конечно, этот краткий раздел не претендует на исчерпывающее описание web-сервера; здесь рассмотрены только настройка и другие действия, требуемые для использования средств безопасности. Если вы намерены применять этот сервер для чего-то еще, помимо ACID и NCC, или в крупномасштабных средах, вам необходимо более глубоко ознакомиться с администрированием web-сервера. При использовании web-сервера следует учитывать вопросы безопасности - необходимо позаботиться о том, чтобы серверы были укреплены, выполняли минимум сервисов и по возможности быстро латались. Если вы желаете применять IIS или другой web-сервер, то он должен поддерживать PHP версии 4.0 или выше.

  1. Загрузите самую свежую версию сервера Apache с сайта http://www.apache.org. Если он есть на дистрибутивных дисках ОС или уже установлен в системе, проверьте, что его версия не ниже 1.3.

    Примечание: Если сервер Apache версии 1.3 или более поздней уже установлен, перейдите к шагу 3.

  2. Распакуйте программу и выполните следующие команды:
    ./configure -prefix=/www -enable-so -activate-module=
      src/modules/php4/libphp4.a
    make
    make install

    Эти команды задают подразумеваемый каталог /www и активизируют нужные модули.

  3. Запустите web-сервер, набрав в командной строке apachectl start. Эта команда запускает демон http и настраивает его для выполнения в качестве системного процесса.

    Можно остановить Apache в любой момент, выполнив ту же команду с аргументом stop.

    В других вариантах Linux и UNIX запуск и остановка могут осуществляться по-другому. Уточните в документации, как это делается.

  4. Проверьте установку web-сервера, открывая web-навигатор и вводя IP-адрес сервера или задавая localhost, если вы работаете прямо на серверной машине. Если будет выведена web-страница Apache, то web-сервер успешно установлен. Корневым каталогом web-сервера, в который помещают документы для публичного просмотра, в системе Mandrake Linux служит /usr/local/apache2/htdocs/; различные дистрибутивы могут немного различаться.
  5. Затем задайте автоматический запуск Apache при перезагрузке системы (вряд ли вы захотите перезапускать web-сервер вручную). Для этого перейдите в каталог, где находятся все стартовые командные файлы; в Mandrake Linux это /etc/rc.d. Каждый файл rc. представляет свой уровень выполнения. Добавьте следующие строки в файлы rc4.d и rc5.d:
    ../init.d/httpd S85httpd
    ../init.d/httpd K85httpd

    Можно протестировать внесенные изменения, перезагрузив систему и проверив, что в выдаче команды ps -ax присутствует процесс httpd.

  6. Необходимо повысить защищенность Apache, чтобы предотвратить его ненадлежащее использование. web-серверы - одна из наиболее распространенных целей атакующих, поэтому если вы собираетесь разрешить доступ к этой машине извне вашей сети, требуется обеспечить ее безопасность. Ниже представлены некоторые основные рекомендации по обеспечению хорошей безопасности web-сервера:
    • Выполните сканирование уязвимостей Web-сервера сразу после завершения установки и конфигурирования, чтобы убедиться, что все корректирующие заплаты наложены и отсутствуют какие-либо очевидные дыры в безопасности.
    • Защитите все непубличные Web-каталоги с помощью какого-либо метода контроля доступа. Самым быстрым и легким способом является применение файлов .htaccess.
    • Шифруйте коммуникации между клиентами и сервером с помощью SSL всякий раз, когда имеете дело с информацией ограниченного доступа (данные о безопасности явно попадают в эту категорию). Если вы обращаетесь к серверу извне своей локальной сети, то есть через Интернет, справьтесь в документации web-сервера или в Интернете о необходимых настройках.

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

Настройка PHP

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

В силу перечисленных достоинств PHP стал предпочтительным языком реализации многих приложений на web-платформе. Он потребуется нам для трех оставшихся средств этой лекции (ACID, NPI и NCC). Установка PHP должна быть предусмотрена в директиве configure в описанной выше процедуре установки Apache. Чтобы проверить, что PHP установлен в вашей системе, и узнать, какова его версия, наберите в командной строке php -v. Если он присутствует, то должна появиться некоторая выдача с номером версии. Однако если вы не смогли установить его как часть Apache или хотите установить самую свежую версию, примените представленную ниже процедуру.

  1. Загрузите самую свежую версию PHP с сайта http://www.php.net или используйте RPM с установочных дисков операционной системы. В последнем случае проверьте, что у вас версия 4.0 или выше.
  2. Распакуйте дистрибутив.
  3. В каталоге установки выполните следующие команды компиляции:
    ./configure -prefix=/www/php -mysql=/usr/local/mysql \ 
      -with-apxs2=/www/bin/apxs 
    -with-zlib-dir=/usr/local (all on one line)
    -with-gd
    make
    make install

    Инструкция configure включает несколько модулей, нужных средствам данной лекции.

  4. Отредактируйте конфигурационный файл web-сервера httpd.conf, как правило, находящийся в /www. Добавьте следующие строки, а затем сохраните файл:
    LoadModule php4_module modules/libphp4.so
    AddType application/x-httpd-php.php
  5. Чтобы проверить, что PHP работает правильно, воспользуйтесь текстовым редактором для создания небольшой процедуры в файле с именем test.php. Наберите в файле следующий текст, а затем сохраните его:
    <?php phpinfo(); ?>

    При выполнении этой PHP-процедуры будет выдана некоторая базовая системная информация.

  6. Скопируйте тестовый файл в каталог /www/htdocs. Введите URL или IP-адрес машины, а затем наберите /test.php. Вы должны увидеть на web-странице номер версии PHP. Если все получилось, то web-сервер с поддержкой PHP готов к работе.
ACID (Консоль анализа для баз данных вторжений)

ACID

Автор/основной контакт: Roman Danyliw

Web-сайт: http://www.andrew.cmu.edu/~rdanyliw/snort/snortacid.html

Платформы: Большинство UNIX

Лицензия: GPL

Рассмотренная версия: .9.9b23

Список почтовой рассылки:

Список пользователей Acidlab. Подпишитесь, послав сообщение со словом "subscribe" в теле письма по адресу acidlab-users@lists.sourceforge.net.

Программа ACID (Analysis Console for Intrusion Databases - консоль анализа для баз данных вторжений) предназначена для более эффективного использования данных, генерируемых средствами обнаружения вторжений. Ее написал Роман Данылив с коллегами в рамках проекта AirCERT, выполняемого университетом Карнеги-Меллон. Это часть более крупной деятельности CERT (Computer Emergency Response Team - Группа реагирования на нарушения информационной безопасности). CERT в течение многих лет успешно применяет эту программу для защиты Интернета и организаций. CERT отслеживает компьютерные преступления и направляет извещения в списки почтовой рассылки, когда происходит крупный инцидент. Список почтовой рассылки CERT является разновидностью системы раннего предупреждения обо всех больших кризисах или атаках, происходящих в Интернете. Как таковой он может быть весьма полезен системным администраторам. Вы можете посетить сайт CERT http://www.cert.org и подписаться на почтовую рассылку.

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

Положенная в основу ACID идея состоит в переносе всех данных об обнаруженных вторжениях в базу данных, где их можно отсортировать и организовать по приоритетам. ACID предоставляет панель управления на основе Web для сортировки, просмотра и манипулирования этими результатами.

ACID может использовать почти любую базу данных SQL и любой web-сервер и поддерживает множество сенсоров для ввода данных. Допускаются также необработанные сигналы Snort и файлы журналов в формате syslog. В настоящее время ACID работает напрямую только с одной системой обнаружения вторжений - Snort, но с помощью утилиты Logsnorter, которая доступна на web-сайте ACID, можно импортировать журналы в базу данных ACID из любого устройства, выводящего данные в формате syslog.

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

ADOdb

Этот пакет обеспечивает уровень абстракции базы данных, позволяющий PHP использовать стандартный интерфейс для множества баз данных, включая MySQL. Возьмите его по адресу http://php.weblogs.com/adodb, распакуйте в /www/htdocs или подходящем корневом каталоге Web, и он должен быть готов к работе. Никакой дополнительной установки не требуется.

PHPLOT

Этот пакет позволяет создавать графики с помощью ACID. Если вы хотите использовать эту возможность, возьмите модуль с http://www.phplot.com. Распакуйте его в каталоге /www/htdocs и, так же как ADOdb, он должен быть готов к употреблению.

JpGraph

Эта программа позволяет PHP генерировать цветные графики. Она понадобится наряду с PHPLOT, если вы захотите представлять данные Snort в графическом виде. Возьмите ее по адресу http://www.aditus.nu/jpgraph/ и распакуйте в корневом каталоге Web (например, /www/htdocs). Она создаст собственный подкаталог и будет доступна, когда понадобится для ACID.

GD

Этот пакет содержит библиотеки манипуляции изображениями для PHP, которые нужны также для создания графиков. Если вы установили PHP согласно данным ранее в этой лекции инструкциям, то у вас уже должна иметься эта утилита. В противном случае возьмите ее по адресу http://www.boutell.com/gd/ и установите в каталоге /www/php. Если вы не компилировали PHP с помощью представленных выше команд, то следует также убедиться, что имеются следующие библиотеки, необходимые для GD.

  • libpng. Предоставляет для GD поддержку формата PNG. Ее можно взять на http://www.libpng.org/pub/png/ или с дистрибутивных дисков вашей ОС.
  • libjpeg-6b. Это библиотека jpeg для PHP. Можно взять ее на http://www.ijg.org/ или с дистрибутивных дисков вашей ОС.
  • zlib. Эта библиотека предоставляет для GD поддержку сжатия. Можно взять ее на http://www.ijg.org/ или с дистрибутивных дисков вашей ОС.

Конфигурирование Snort для MySQL

  1. ACID предполагает, что имеется один или несколько активных сенсоров Snort, поставляющих данные. Если вы еще не создали сенсоры Snort, вернитесь к "Системы обнаружения вторжений" . Сенсоры Snort необходимо сконфигурировать таким образом, чтобы они записывали данные в MySQL. Для этого выполните следующие действия при установке Snort:
    • При первоначальной компиляции Snort используйте следующую инструкцию configure:
      ./configure - with-mysql=/usr/local/mysql

      Проверьте, что указан каталог, где находится MySQL.

    • Отредактируйте файл конфигурации snort.conf. Найдите закомментированную строку, которая начинается с #output database. Отредактируйте ее следующим образом:
      output database: log,mysql,user=snort password=123456 
        dbname=snort host=localhost

      Замените пользователя snort и пароль 123456 на правильные имя пользователя базы данных и его пароль, которые будут применяться для ACID. ACID создаст базу данных с именем "snort", хотя можно изменить это имя, редактируя файл конфигурации ACID. Если вы подключаетесь к локальной базе данных, то оставьте у переменной host значение localhost. Если вы подключаетесь к базе данных на другой машине, задайте здесь IP-адрес или имя хоста.

  2. Не забудьте удалить символ комментария # в начале строки и затем сохраните файл.

В данной лекции предполагается, что ACID и сенсор Snort устанавливаются на разных машинах. Размещение их на одной машине неудачно не только с точки зрения безопасности; работа сенсора Snort замедлится до такой степени, что от окажется бесполезным. Компьютер с ACID предпочтительно расположить в сегменте сети, отличном от сегмента с сенсорами Snort - это затруднит взломщику доступ к журналам. На рис. 8.1 показаны элементы связки ACID-Snort.

Система обнаружения вторжений ACID-Snort

Рис. 8.1. Система обнаружения вторжений ACID-Snort
Роман Попов
Роман Попов

После прохождения курса Стандарты инфрмационной безопасности мне предложено получение Удостоверения о повышении квалификации от НИУ ВШЭ по программе Менеджмент информационной безопасности. Программа включает в себя ряд курсов которые я уже ранее проходил. Какой порядок действий в данном случае? Как прозводится перезачет результатов? И какие экщамены мне надо еще доздать чтобы получить удостоверение?

Александр Путятинский
Александр Путятинский

Добрый день по окончании данного курса выдается сертификат?

Гончик Цымжитов
Гончик Цымжитов
Россия, Санкт-Петербург
Александр Косенко
Александр Косенко
Украина, Днепропетровск