OpenBSD. Подсчет траффика c помощью netflow с последующей публикацией в блог на основе wordpress. Часть первая.

1. Установка и настройка сенсора, и коллектора трафика
Для сбора и анализа трафика в системе необходимо установить два пакета, один из которых будет передавать данные о трафике на указанном интерфейсе, а другой собирать их и записывать в логи, для последующей обработки.

1.1 Установка и настройка сенсора трафика.
В качестве сенсора трафика используется пакет softflowd, который находиться в /usr/ports/net/softflowd

После его установки необходимо в файле /etc/rc.local прописать следующее:
if [ -x /usr/local/sbin/softflowd ]; then
echo -n 'softflowd'; /usr/local/sbin/softflowd -i dc0 -n 192.168.1.101:8818
fi
Эта запись необходима для автостарта сенсора при загрузке системы.

Параметры для сенсора указаны следующие:
-i dc0 — указывает сенсору на каком интерфейсе слушать трафик.
-n 192.168.1.101:8818 — указывает сенсору на каком IP и порте работает коллектор трафика.

1.2 Установка и настройка коллектора трафика
В качестве коллектора трафика используется утилита flow-capture из пакета flow-tools, который находится в /usr/ports/net/flow-tools

После его установки необходимо в файле /etc/rc.local прописать следующее:
if [ -x /usr/local/bin/flow-capture ]; then
echo -n 'flow-capture'; /usr/local/bin/flow-capture -p /var/run/flow-capture.pid -w /var/log/netflows/ -S5 0/0/8818
fi
Эта запись необходима для автостарта сенсора при загрузке системы.

Параметры для коллектора указаны следующие:
-p /var/run/flow-capture.pid — расположение и название .pid файла.
-w /var/log/netflows/ — путь к каталогу для записи логов.
-S5 — интервал сохранения информации о трафике.
0/0/8818 — внешний IP для приема информации от сенсора/внутренний IP для приема информации от сенсора/порт. При указании 0 в качестве IP информация будет приниматься с любых адресов.

Что-бы убедится в том, что сенсор и коллектор трафика работают, достаточно посетить каталог, который был указан в качестве хранилища логов. Если там появились папки в которых лежат файлы такого вида, то все нормально.
ft-v05.2013-08-20.000001+0400 ft-v05.2013-08-20.050001+0400 ft-v05.2013-08-20.100001+0400 ft-v05.2013-08-20.150001+0400 ft-v05.2013-08-20.200001+0400
ft-v05.2013-08-20.001501+0400 ft-v05.2013-08-20.051501+0400 ft-v05.2013-08-20.101501+0400 ft-v05.2013-08-20.151500+0400 ft-v05.2013-08-20.201501+0400
ft-v05.2013-08-20.003001+0400 ft-v05.2013-08-20.053001+0400 ft-v05.2013-08-20.103001+0400 ft-v05.2013-08-20.153000+0400 ft-v05.2013-08-20.203001+0400
ft-v05.2013-08-20.004501+0400 ft-v05.2013-08-20.054501+0400 ft-v05.2013-08-20.104501+0400 ft-v05.2013-08-20.154501+0400 ft-v05.2013-08-20.204501+0400
ft-v05.2013-08-20.010001+0400 ft-v05.2013-08-20.060001+0400 ft-v05.2013-08-20.110001+0400 ft-v05.2013-08-20.160000+0400 ft-v05.2013-08-20.210001+0400

На этом настройку сенсора и коллектора можно считать завершенной.
Ман для flow-capture можно посмотреть здесь.

2. Установка и настройка дополнительных компонентов системы необходимых для работы.
К дополнительным компонентам системы относится следующее:
  1. Веб-сервер, в нашем случае apach
  2. Сервер баз данных, необходимый для работы wordpress, в нашем случае mysql
  3. Дополнения для perl, необходимые для публикации данных о трафике в блог

2.1 Установка и настройка веб-сервера+php.
Для запуска веб-сервра в OpenBSD необходимо внести следующие изменения в файд /etc/rc.conf.
httpd_flags=NO заменить на httpd_flags=""
Это обеспечит автостарт сервера при запуске системы.
Далее необходимо установить и подключить к серверу модули php, пакет с которыми находится в /usr/ports/lang/php/5.3
Так же при установке php необходимо сразу озаботиться и установкой модуля для работы php с mysql. Поскольку он не входит в дефолтную установку.
Делается это следующим образом:
Сначала смотрим все доступные для установки дополнения
root:/usr/ports/lang/php/5.3->make show=MULTI_PACKAGES
-fpm -pcntl -main -fastcgi -bz2 -curl -dba -gd -gmp -imap -ldap -mcrypt -mysql -mysqli -odbc -pdo_mysql -pdo_pgsql -pgsql -pspell -shmop -soap -snmp -sqlite -pdo_dblib -mssql -tidy -xmlrpc -xsl -zip
А затем устанавливаем необходимый нам модуль для работы с mysql
root:/usr/ports/lang/php/5.3->env SUBPACKAGE="-mysql" make install

Для подключения модулей php в конфиге веб-сервера, который находится в /var/www/conf/httpd.conf необходимо добавить следующие строки:
#PHP5
LoadModule php5_module /usr/local/lib/php-5.3/libphp5.so

# DirectoryIndex: Name of the file or files to use as a pre-written HTML
# directory index. Separate multiple entries with spaces.
#
DirectoryIndex index.html index.php index.htm

Так же необходимо настроить php для работы с mysql. Для этого в конфиге php, который находится в /etc->php5.3.ini необходимо добавить следующее:
extension=mysql.so

2.2 Установка mysql
Порт с mysql расположен в /usr/ports/databases/mysql. При установке по умолчанию, устанавливается только клиент mysql, для установки сервера необходимо проделать следующее:
Сначала смотрим все доступные для установки дополнения
root:/usr/ports/databases/mysql->make show=MULTI_PACKAGES
-main -server -tests
А затем устанавливаем необходимый сервер
root:/usr/ports/databases/mysql->env SUBPACKAGE="-server" make install

Для автостарта mysql в файл /etc/rc.local необходимо добавить следующее:
if [ -x /usr/local/bin/mysqld_safe ]; then
echo -n ' mysqld'; /usr/local/bin/mysqld_safe > /dev/null 2>&1 &
fi

2.3 Дополнения для perl, необходимые для публикации данных о трафике в блог
Для публикации записей в удаленный блог в perl используется модуль WordPress::XMLRPC. Устанавливаем его следующим образом:
cpan -i WordPress:XMLRPC
и для нормальной работы надо произвести еще одну магическую манипуляцию
cpan -i LEOCHARRE:Debug

0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.