The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Сборка IMspector под Freebsd 6.2"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Открытые системы на сервере (Системное и пользовательское ПО / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"Сборка IMspector под Freebsd 6.2"  +/
Сообщение от AndrewV email(ok) on 20-Сен-09, 07:29 
Добрый день всем.
Давно читаю ваш форум, почерпнул много полезного в процессе своего развития. И вот столкнулся с проблемой, которую не могу решить с помощью поисковиков и своего личного опыта.

Задача - установка прокси-гейта для msn&icq на роутер + cisco.

Выбор пал на imspector, http://www.imspector.org/

Т.к. протоколы, особенно icq, меняются нынче каждые 2-3 недели, необходимо поддерживать софт в актуальном состоянии.

Что имеем на входе:
1. Существует портированная версия в портах 0.5(patch-Makefile, patch-main.cpp, patch-imspector.conf). Версия старая, наличие старого протокола, отсутствия многих функций типа ssl & sert.
2. Существует информация по приведению сборки к корректному виду для BSD-систем, информация вся достаточно старая и в новых сборках не достаточно актуальная.
3. Необходимо устанавливать и обновлять версии из daily-snapshots. Текущий релиз версии 0.9.

Версию из портов я поставил, настроил, сначала пробовал закинуть трафик на неё ipnat & ipfw fwd, не срослось, запущенный инспектор в режиме дебага ругался что он не видит трафика pf, настроил pf - закрутил трафик, дело пошло. Но при попытке использовать скомпилированный icqprotocolplugin версии 0.5, естественно выбрасывал ошибку:
####################
# imspector -d
imspector: Protocol Plugin name: Gadu-Gadu IMSpector protocol plugin
imspector: Protocol Plugin name: ICQ-AIM IMSpector protocol plugin
imspector: Protocol Plugin name: IRC IMSpector protocol plugin
imspector: Protocol Plugin name: MSN IMSpector protocol plugin
imspector: Protocol Plugin name: Yahoo IMSpector protocol plugin
imspector: Bad-words: Loaded 86 bad-words, replacing with '*' and blocking at 1
imspector: Filter Plugin name: Bad-words IMSpector filter plugin
imspector: Misc: Blocking all file transfers
imspector: Misc: Blocking all webcams
imspector: Filter Plugin name: Misc IMSpector filter plugin
imspector: Listening on 0.0.0.0:16667
imspector: Logging Plugin name: Debug IMSpector logging plugin
imspector: Logging Plugin name: File IMSpector logging plugin
imspector: Connection from: 10.10.1.16:1904
imspector: ICQ-AIM: Login request, uin: 349547485, pass: *тут пароль*
imspector: ICQ-AIM: Login response, uin: 349547485
imspector: ICQ-AIM: Stored cookie, uin: 349547485
imspector: Finished with child: 10.10.1.16:1904
imspector: Connection from: 10.10.1.16:1905
imspector: ICQ-AIM: Found cookie, uin: 349547485
imspector: ICQ-AIM: uin: 349547485, unknown family: 0001 subtype: 0003
imspector: ICQ-AIM: uin: 349547485, unknown family: 0001 subtype: 0015
imspector: ICQ-AIM: uin: 349547485, unknown family: 0001 subtype: 0017
imspector: ICQ-AIM: uin: 349547485, unknown family: 0001 subtype: 0018
imspector: ICQ-AIM: uin: 349547485, unknown family: 0001 subtype: 0013
imspector: ICQ-AIM: uin: 349547485, unknown family: 0001 subtype: 0006
imspector: ICQ-AIM: uin: 349547485, unknown family: 0001 subtype: 0007
imspector: ICQ-AIM: uin: 349547485, unknown family: 0001 subtype: 0008
imspector: ICQ-AIM: uin: 349547485, unknown family: 0001 subtype: 000e
........... и т.д.
####################

Взял я версию imspector-20090920 - http://www.imspector.org/downloads/snapshots/imspector-20090...

Внес свои изменения основываясь на специфике старых патчей и изменений которые посчитал нужным(выложу файлы) в файлы Makefile, main.cpp, imspector.conf
И получил следующее при сборке(т.е. она как бы идёт но при компиляции есть косяк):
##########

# make install
c++ -O2 -fno-strict-aliasing -pipe main.cpp -c
c++ -O2 -fno-strict-aliasing -pipe protocolplugin.cpp -c
c++ -O2 -fno-strict-aliasing -pipe loggingplugin.cpp -c
c++ -O2 -fno-strict-aliasing -pipe filterplugin.cpp -c
c++ -O2 -fno-strict-aliasing -pipe responderplugin.cpp -c
c++ -O2 -fno-strict-aliasing -pipe socket.cpp -c
c++ -O2 -fno-strict-aliasing -pipe options.cpp -c
c++ -O2 -fno-strict-aliasing -pipe tools.cpp -c
c++ socket.o options.o tools.o  -fPIC -shared -Wl,-soname,libimspector.so -o libimspector.so
c++ main.o protocolplugin.o loggingplugin.o filterplugin.o responderplugin.o  libimspector.so -o imspector -L/usr/bin/lib -lssl
c++ -O2 -fno-strict-aliasing -pipe msnprotocolplugin.cpp -c
c++ msnprotocolplugin.o libimspector.so  -fPIC -shared -Wl,-soname,msnprotocolplugin.so -o msnprotocolplugin.so
c++ -O2 -fno-strict-aliasing -pipe icqprotocolplugin.cpp -c
icqprotocolplugin.cpp: In function `int getmessage(char**, char*, int, std::string&, int&, int&)':
icqprotocolplugin.cpp:676: error: invalid conversion from `char**' to `const char**'
*** Error code 1

##############
icqprotocolplugin.cpp | grep "int getmessage"
#########
int getmessage(GET_ARGS, std::string &message, int &mestart, int &melength);
#########
icqprotocolplugin.cpp | grep GET_ARGS
#define GET_ARGS char **p, char *startp, int lengthp
##############

Куда копать дальше - ума не представляю.
Нашел на одном сишном форуме описание проблемы char -> const char, пробовал в строке GET_ARGS изменить в разных вариациях - лезут другие ошибки.

Помогите адаптировать сборку.
Конечно крайний случай это установка на отдельную машину CentOS либо RHEL, там установка RPM(там они на данный софт все аткульаные) и заворот трафика с BSD туда, но ведь 0.5 версия работает - а значит вариант с компиляцией 0.9 тоже решаем, к тому же на сайте производителя ПО указано явно:
The supported platforms are at present Linux and BSD when using the pf firewall, but porting to other UNIXs should be trivial.

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Сборка IMspector под Freebsd 6.2"  +/
Сообщение от AndrewV email(ok) on 20-Сен-09, 07:32 
Да.. Пока писал забыл про циско. В фирме несколько оптических каналов, и помимо роутеров одним из шлюзов являеться Киска.
На ней думаю точно так же весь трафик с 5190 порта повернуть в внутренний интерфейс локалки на бсд, порт 16667, остальные порты под аську там все равно успешно перекрыты, и занатиться по этим портам.

Пока что WCCP+SQUID с циско(asa5505) удачно работает через gre-тунель, так что наверное это не будет проблемой.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

2. "Сборка IMspector под Freebsd 6.2"  +/
Сообщение от AndrewV email(ok) on 20-Сен-09, 07:45 
Добавлю..
Пробовал взять пакет из под линукса, рпм, версии 0.9 - свеженький. Т.к. там все лежит в скомпилированном виде - выдрал оттуда icqprotocolplugin.o подсунул..

imspector -d
imspector: Protocol Plugin name: Gadu-Gadu IMSpector protocol plugin
imspector: dlopen(): Shared object "libdl.so.2" not found, required by "icqprotocolplugin.so"

Cкопмилен с поддержкой линуховой библиотеки.. видимо это параметр в файле Makefile который комментируется: LIBS = -ld1. Шансов было мало О_о

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "Сборка IMspector под Freebsd 6.2"  +/
Сообщение от Jeff McCorney on 19-Фев-10, 11:43 
>[оверквотинг удален]
>Пробовал взять пакет из под линукса, рпм, версии 0.9 - свеженький. Т.к.
>там все лежит в скомпилированном виде - выдрал оттуда icqprotocolplugin.o подсунул..
>
>
>imspector -d
>imspector: Protocol Plugin name: Gadu-Gadu IMSpector protocol plugin
>imspector: dlopen(): Shared object "libdl.so.2" not found, required by "icqprotocolplugin.so"
>
>Cкопмилен с поддержкой линуховой библиотеки.. видимо это параметр в файле Makefile который
>комментируется: LIBS = -ld1. Шансов было мало О_о

На http://www.imspector.org/wordpress/?page_id=18#comments пишут, что нужно изменить icqprotocolplugin.cpp:

September 22nd, 2009 at 15:35     | #17 Reply | Quote
Change line 671 to “const char *inbuf = string;”. Should help. Or see if you can get gcc to not error on those “warnings”.


В Makefile:
Закомментировать LIBS = -ld1
Исправить PREFIX = /usr/local и SSL_DIR = /usr/local

Собирается без WARNINGS. imspector-20100219.tar.gz

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

4. "Сборка IMspector под Freebsd 6.2"  +/
Сообщение от Jeff McCorney on 19-Фев-10, 11:52 
Еще в main.cpp /usr/etc заменил на /usr/local/etc


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

5. "Сборка IMspector под Freebsd 6.2"  +/
Сообщение от Jeff McCorney on 19-Фев-10, 20:18 
И ещё после компиляции g++ icqprotocolplugin.o libimspector.so /usr/local/lib/libiconv.so -fPIC -shared -Wl,-soname,icqprotocolplugin.so -o icqprotocolplugin.so

/usr/local/lib/libiconv.so - или там, где он лежит.

А с портов у меня не записывал исходящие сообщения(не работал iconv).
Но imspector-20100219.tar.gz работает, после дороботок, нормально:)

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру