|
|
www.lissyara.su
—> статьи
—> FreeBSD
—> программы
—> AimSniff
Мониторинг ICQ-переписки с помощью AimSniff
Автор: SergeySL.
Оригинал статьи находится здесь.
Внимание! Перед развертыванием и использованием описанной ниже системы внимательно изучите статьи 137 "Нарушение неприкосновенности частной жизни" и 138 "Нарушение тайны переписки, телефонных переговоров, почтовых, телеграфных или иных сообщений" УК РФ, а также посоветуйтесь с юристами. Я не несу какой-либо ответственности за последствия, которые могут быть вызваны Вашими действиями.
Постановка задачи
Необходимо создать систему, позволяющую перехватывать, хранить и отображать в удобной форме ICQ-переписку сотрудников компании. Судя по диалогам на соответствующих форумах, рассматриваемая задача периодически возникает, поэтому я описал один из способов ее решения, примененный в нашей Компании.
Исходные данные
Имеется сервер с FreeBSD, через который сотрудники компании тем или иным способом (NAT, прокси-сервер и т.п.) выходят в Интернет. Для установки системы не требуется какая-либо перенастройка этого сервера. Самое главное - Вы должны тем или иным способом ограничить список портов, которые могут использовать клиенты ICQ, чтобы продвинутые пользователи не смогли "обмануть" сниффер.
В качестве сниффера мы будем использовать AimSniff, для хранения перехваченныйх сообщений - сервер MySQL (процесс настройки сервера MySQL не расматривается в данной статье за исключением создания базы данных и пользователя aimsniff), для просмотра отчетов - Web Aim Sniff (WAS) и Web-сервер Apache (процесс настройки сервера Apache не рассматривается в данной статье за исключением добавления возможности отображения необходимых отчетов). Почти все перечисленное программное обеспечение будет устанавливаться из портов, поэтому я настоятельно рекомендую Вам обновить их перед выполнением действий, описанных ниже (лично я использовал FreeBSD 7.0 и последние на конец 2008 года версии портов для нее). Ссылки на источники информации будут приводиться применительно к конкретным разделам статьи.
Установка и настройка AimSniff
Установку AimSniff необходимо выполнить из портов:
cd /usr/ports/security/aimsniff
make install clean
| Сразу после завершения установки необходимо выполнить команду:
Естественно, bge1 необходимо заменить на имя внутреннего интерфейса. Данная команда запускает мониторинг пакетов ICQ, проходящих через заданный интерфейс, и отображение содержимого декодированных пакетов на экране без записи в базу данных. Если после выполнения команды вместо сообщений "INCOMINMG MESSAGE..." и "OUTGOING MESSAGE..." выдается сообщение: "Can't locate GDBM_File.pm in @INC (…) at /usr/local/bin/aimsniff line 47. BEGIN failed--compilation aborted at /usr/local/bin/aimsniff line 47., следует пересобрать Perl с поддержкой GDBM:
cd /usr/ports/lang/perl5.8
make deinstall
make WITH_GDBM=yes reinstall
| По умолчанию AimSniff "не понимает" интересующие нас сообщения в кодировке UTF-8. Для исправления такого поведения необходимо загрузить пропатченную версию скрипта AimSniff и установить порт p5-Unicode-Map8 (если он не был установлен ранее):
fetch http://www.aimsniff.com/releases/aimSniff.Cyr-005.tar.gz
tar -xf aimSniff.Cyr-005.tar.gz
chmod 555 aimSniff.Cyr-005.pl
mv aimSniff.Cyr-005.pl /usr/local/bin
cd /usr/ports/converters/p5-Unicode-Map8
make install clean
| Для проверки работоспособности руссифицированного AimSniff необходимо выполнить команду:
aimSniff.Cyr-005.pl -d=bge1 --nodb
| После того, как первичная настройка будет завершена, необходимо создать базу данных aimsniff и пользователя aimsniff для работы с этой базой данных. Для этого нужно запустить клиент MySQL командой:
mysql -u <имя пользователя-администратора> -p
| ввести пароль и выполнить три SQL-запроса:
CREATE DATABASE aimsniff;
GRANT ALL ON aimsniff.* TO aimsniff@localhost IDENTIFIED BY 'aimsniff';
FLUSH PRIVILEGES;
| После завершения работы клиента MySQL необходимо создать таблицы базы данных aimsniff:
mysql -u <имя пользователя-администратора> -p aimsniff \
< /usr/local/share/doc/aimsniff/table.struct
| После завершения подготовки базы данных необходимо создать файл конфигурации AimSniff. В моем случае он называется aimSniff.cfg, находится в папке /usr/local/etc и имеет следующее содержимое:
dev=bge1
filter='tcp and port 3128'
daemon=1
host=localhost
database=aimsniff
user=aimsniff
password=aimsniff
useSyslog=1
| В данном файле заданы следующие значения параметров: dev - имя интерфейса; filter - фильтр, определяющий какие пакеты следует "вылавливать" (зависит от способа выхода клиентов ICQ в Интернет, в моем случае для выхода клиентов ICQ в Интернет используется прокси-сервер, "слушающий" порт 3128); daemon - признак работы в режиме демона; host / database / user / password - параметры доступа к базе данных; useSyslog - признак использования syslog'а для записи служебных сообщений.
Самым последним этапом настройки AimSniff является доработка скрипта автозапуска, выполняемого при запуске операционной системы. Образец такого скрипта поставляется в составе AimSniff (файл rc.aimsniff в папке /usr/local/share/doc/aimsniff), однако его нужно немного адаптировать. Во-первых, нужно указать корректный интерпретатор shell в первой строке (в моем случае это /bin/sh), а во вторых заменить имя скрипта и файла конфигурации в шестой строке на:
/usr/local/bin/aimSniff.Cyr-005.pl -C=/usr/local/etc/aimSniff.cfg
| После этого необходимо сделать скрипт исполняемым и скопировать его в папку usr/local/etc/rc.d:
cd /usr/local/share/doc/aimsniff
chmod 555 rc.aimsniff
cp rc.aimsniff /usr/local/etc/rc.d/aimsniff.sh
| На этом настройка AimSniff заканчивается. Перезагрузите сервер, и после запуска операционной системы демон AimSniff начнет "вылавливать", декодировать и записывать перехваченные сообщения ICQ в базу данных.
Установка и настройка WAS
WAS (Web Aim Sniff) - Web-интерфейс для доступа к базе данных AimSniff, написанный на языке PHP. К сожалению, пока он не добавлен в коллекцию портов FreeBSD, в связи с чем придется ставить его из исходных тестов. Перед началом установки WAS необходимо добавить в файл конфигурации необходимого виртуального хоста Apache следующие строки:
Alias /was "/usr/local/www/was/"
<Directory "/usr/local/www/was">
AuthName "This server require authorization!"
AuthUserFile /usr/local/etc/apache/htpasswd
AuthType Basic
Require user <Список пользователей, которым разрешен доступ>
Order deny,allow
Deny from all
Allow from ...
Allow from ...
</Directory>
| Как видно из фрагмента файла конфигурации для установки WAS была выбрана папка /usr/local/www/was, доступ к которой разрешен только с определенных IP-адресов и только после прохождения процедуры Basic-аутентификации. Вам нужно подставить реальные IP-адреса в директивы Allow from и добавить необходимых пользователей в файл htpasswd и директиву Require user. О том, как это сделать, подробно написано в разделе Authentication, Authorization, and Access Control официальной документации Apache. Не забудьте перезапустить Web-сервер после внесения изменений в его конфигурацию.
Когда Web-сервер будет подготовлен, необходимо загрузить, распаковать и переместить WAS в нужную папку, удалить все лишнее и сделать владельцем файлов WAS пользователя, от имени которого работает Web-сервер:
mkdir /usr/local/www/was
cd /usr/local/www/was
fetch http://aimsniff.com/releases/was-0.1.2b.tar.gz
tar -xf was-0.1.2b.tar.gz
mv was-0.1.2b/* was-0.1.2b/.[a-zA-Z]* .
rm -Rf was-0.1.2b was-0.1.2b.tar.gz
chown -R www:www * .[a-zA-Z]*
| После этого необходимо слегка подкорректировать файлы WAS. Во-первых, в файлах .header.php и index.html неоходимо исправить charset=iso-8859-1 на charset=koi8-r (это приведет к корректному выбору кодировки браузером и, соответственно, корректному отображению русских символов). Во-вторых, в файле index.php необходимо исправить img src=./typesGraph.php на img src=./images/typesGraph.php (это исправит ошибку, допущенную разработчиком WAS). В третьих, мне показалось более удобным видеть в списке сообщений не IP-адреса, а имена компьютеров локальной сети. Если Вы согласны со мной, исправьте в файле .global.php <td><B>IP</td> на <td><B>Computer</td>, а также исправьте в теле функции printMessages $rs["ip"] на ucwords(gethostbyaddr($rs["ip"])). Вообще, следует заметить, что WAS - очень "сырой" пакет. К сожалению, у меня нет времени на его адаптацию, да и PHP я знаю лишь поверхностно, поэтому в настоящий момент приходится довольствоваться тем, что есть. Все работает, хотя за эргономику я бы не поставил больше тройки.
После доработки файлов WAS необходимо открыть в браузере URL http://host.company.com/was/admin.php, естественно, изменив host.company.com на имя используемого Вами виртуального хоста. В браузер будет загружена страница, на которой можно задать параметры WAS. В первую очередь необходимо изменить параметры Database User / Database Password и нажать кнопку Submit. Остальные параметры могут быть изменены или не изменены, исходя из личных предпочтений. На этом настройка WAS заканчивается.
Заключение
С учетом простоты рассмотренной системы с одной стороны и огромной популярностью ICQ с другой Вам скорее всего удастся выявить не один и не два эпизода неправильного использования рабочего времени, а возможно и "слива" конфиденциальной информации. Бесспорно, система не является панацеей, однако даже несколько выявленных случаев с лихвой окупят время, потраченное на ее настройку.
Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?t=13020.
|
размещено: 2009-06-30,
последнее обновление: 2009-12-11,
автор: SergeySL
|
|
|
|
2010-08-25, manefesto
freebsd lvm
Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
2010-04-30, gonzo111
proftpd file auth"a
Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
2010-04-22, lissyara
tw_cli
Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
2010-04-14, fox
MySQL Master+Master
MySQL (Master Master) and (Master Slave) Как настроить репликацию…
2010-03-22, Mufanu
named 9.7.0
Система доменных имен (Domain Name Service, DNS) - одна из тех незаметных, закулисных программ, которым не уделяется и половины того внимания, которого они заслуживают.
2010-03-09, terminus
DNS zones
Краткий ликбез про управление DNS зонами. Примеры проведения делегирования прямых и обратных DNS зон.
2010-03-09, aspera
Squid+AD (group access)
Настройка прокси сервера SQUID с автроризацией пользователей в AD. Разделение пользователей на группы
2010-03-02, BlackCat
Шлюз: Часть 4
Настройка дополнительных сервисов: синхронизация времени (OpenNTPD), клиент DynDNS.org.
2010-03-01, BlackCat
Шлюз: Часть 3
Настройка DHCP и DNS серверов для работы внутри частной сети, c поддержкой внутренних (частных зон) DNS, а так же интеграция DHCP и DNS сервисов.
2010-03-01, BlackCat
Шлюз: Часть 2
Конфигурация МСЭ pf для проброса портов с изменением порта назначения и без, а так же поддержки активного режима FTP и ограничения максимального размера сегмента
2010-03-01, BlackCat
Шлюз: Часть 1
Быстрая настройка шлюза/маршрутизатора с установлением PPPoE-соединения, поддержкой NAT и DNS-forwarding.
2010-02-23, Morty
darkstat
Простая считалка траффика, со встроенным веб-сервером. Очень маленькая, может делать отчеты трафика по хостам, портам, протоколам, а также строить графики
2010-01-23, gonzo111
squid+sams+sqstat
Пилим squid и sams - примеры конфигов с объяснениями. Установка SqStat.
2009-12-19, schizoid
mpd5 + radius + ng_car + Abills
Настройка pppoe-сервера с биллинговой системой Abills и шейпером ng_car
2009-11-16, lissyara
UFS->ZFS
Удалённая миграция с UFS на ZFS. Загрузка с раздела zfs. Настройка для работы с малым количеством памяти под архитектурой i386.
2009-11-13, gx_ua
fusefs-ntfs
Установка, настройка и использование fusefs-ntfs, драйвер NTFS, предназанченного для монтирования NTFS разделов под FreeBSD
2009-11-12, Morty
LiveCD
Создание собственного LiveCD с необходимыми вам изменениями, автоматизирование данного процесса, а так же вариант скоростной сборки СД.
2009-09-27, lissyara
Samba как PDC
Контроллер домена - аналог M$ NT4 домена под самбой, без использования LDAP и прочей хиромантии. Просто и быстро =)
2009-08-30, terminus
Подробное руководство по ipfw nat
Подробное руководство по ipfw nat, сложные случаи конфигурации.
2009-08-24, levantuev
HotSpot
Установка Hotspot системы в общественное заведение.
2009-08-18, lissyara
diskless
Создание бездисковых терминалов под управлением FreeBSD - с загрузкой по сети. Используются для старта rdesktop и подключения к виндовому серверу терминалов.
|
Комментарии пользователей [25 шт.]