Документация по ОС FreeBSD Воскресенье, 05.05.2024, 06:27
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Apache [58]
DNS [25]
FTP [27]
Mail [74]
Samba [24]
Squid [46]
SSH [23]
VPN [35]
РРР [20]
Net [173]

Главная » Статьи » Сеть » Net

Arpwatch и mysql [2010]
Arpwatch изначально умеет только слать уведомления о событиях в сети на почту и писать лог. А сеть у нас большая. Поэтому придется прибегнуть к средствам, которые помогут нам подружить arpwatch с базой данных. И прикрутим ко всему этому делу веб-интерфейс. Для удобства, красоты и наглядности :)
Этот пост я напишу по мотивам вот этой статьи. Только лично мне не очень понравилась идея со сторонним почтовым сервером. Не хотелось городить лишние огороды, когда в комплекте у нас есть великий и ужасныйsendmail :)

Имеем:
FreeBSD 7.3-PRERELEASE
MTA sendmail
MySQL
Apache

Настройка arpwatch

Устанавливаем

cd /usr/ports/net-mgmt/arpwatch/ && make install clean

Заводим пользователя arpwatch. Он нам будет нужен для отправки почты.

sudo adduser
Username: arpwatch
Full name: Arpwatch pseudo-user
Uid (Leave empty for default):
Login group [arpwatch]:
Login group is arpwatch. Invite arpwatch into other groups[]:
Login class [default]:
Shell (sh csh tcsh zsh bash rbash nologin) [sh]: nologin
Home directory [/home/arpwatch]/nonexistant
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]: no
Lock out the account after creation? [no]:
Username   : arpwatch
Password   :
Full Name  : Arpwatch pseudo-user
Uid        : 1004
Class      :
Groups     : arpwatch
Home       : /nonexistant
Home Mode  :
Shell      : /usr/sbin/nologin
Locked     : no
OK? (yes/no)yes
adduser: INFO: Successfully added (arpwatch) to the user database.
Add another user? (yes/no): no
Goodbye!

Редактируем /etc/rc.conf

arpwatch_enable="YES"
arpwatch_flags="-i em0  -m arpwatch@localhost"

Запускаем arpwatch

 sudo /usr/local/etc/rc.d/arpwatch start

Проверяем

ps ax | grep arpw
1071 con- S 0:14.40 /usr/local/sbin/arpwatch -i em0 -m arpwatch@localhost -f arp.em0.dat

В логах увидим что то похожее в больших количествах:

May 17 16:38:55 servak arpwatch: new station 10.20.0.164 0:e0:4c:a1:4:f9

Так же в больших количествах будет приходить почта примерно такого содержания:

From lycane@servak.local Mon May 17 16:39:15 2010
Date: Mon, 17 May 2010 16:39:15 +0300 (VOLT)
From: arpwatch@servak.local (Arpwatch)
To: lycane@servak.local
Subject: new station

hostname:
ip address: 10.20.0.164
ethernet address: 0:e0:4c:a1:4:f9
ethernet vendor:
timestamp: Monday, May 17, 2010 16:39:14 +0300

Делаем вывод – arpwatch работает нормально :)

На время выполнения следующих манипуляций arpwatch лучше остановить. Но если не остановили сразу, то можно остановить потом и удалить из папки /usr/local/arpwatch файлики arp.dat и arp.dat-, чтобы при повторном запуске arpwatch наловил соответствий ip-mac по новой.

Настройка базы данных

create user arpwatch;
create database arp;
grant all on arp.* to arpwatch@localhost identified by 'password';
use arp
create table flip_flop(hostname varchar(255), ip_address varchar(15), ethernet_address varchar(17), ethernet_vendor varchar(255), old_ethernet_address varchar(17), old_ethernet_vendor varchar(255), timestamp varchar(19), previous_timestamp varchar(19), delta varchar(50));
create table changed_ethernet_address(hostname varchar(255), ip_address varchar(15), ethernet_address varchar(17), ethernet_vendor varchar(255), old_ethernet_address varchar(17), old_ethernet_vendor varchar(255), timestamp varchar(19), previous_timestamp varchar(19), delta varchar(50));
create table new_station(hostname varchar(255), ip_address varchar(15), ethernet_address varchar(17), ethernet_vendor varchar(255), timestamp varchar(19));
create table new_activity(hostname varchar(255), ip_address varchar(15), ethernet_address varchar(17), ethernet_vendor varchar(255), timestamp varchar(19));

Скачиваем скриптик arpwatch.pl, распаковываем и кладем в /usr/local/arpwatch. Он нам нужен для раскладывания информации, содержащейся в письмах, по соответствующим таблицам базы. Открываем его на редактирование, в самом верху находим строчки

$db_user    = "";
$db_passwd  = "";
$db_name = "";
$db_host = "localhost";
$db_port = "3306";

и подставляем соответствующие значения.
Для корректной работы скрипта нам понадобится установить модули

cd /usr/ports/databases/p5-DBI && make install clean
cd /usr/ports/devel/p5-Getopt-Long && make install clean

Настройка sendmail

Редактируем /etc/mail/aliases. Добавляем алиас для пользователя arpwatch и перенаправляем его почту в скрипт arpwatch.pl

arpwatch:   "| exec /usr/local/arpwatch/arpwatch.pl"

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

sudo sendmail -bi

Настройка apache

Скачиваем веб-интерфейс отсюда или отсюда. Распаковываем архив в /usr/local/www. Меняем права доступа

sudo chown -R www:www arpwatch/

Находим в папке файлик config.inc.php, открываем на редактирование и меняем соответствующие значения в строчках

$dbhost = "localhost"; 
    $dbuser = "username"; 
    $dbpassword = "userpassword"; 
    $dbname = "database";

В конфиг апача добавляем

Alias /arp/ "/usr/local/www/arpwatch/"

DirectoryIndex index.php
AllowOverride None
Order Deny,Allow
Deny from all
Allow from

Говорим апачу перечитать конфиг

sudo apachectl graceful

Запускаем arpwatch

 sudo /usr/local/etc/rc.d/arpwatch start

и идем по адресу http://server/arp/ смотреть как заполняется база :)



Источник: http://bsd.mlcom.ru/?p=827
Категория: Net | Добавил: oleg (27.09.2010) | Автор: lycane
Просмотров: 825 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024