Encontrei o Imspector após ter a necessidade de controlar o uso do MSN na empresa onde trabalho. Ao instalá-lo pude notar o seu poder e também que ele está em constante desenvolvimento, pois o acompanho desde a versão 0.4, a atual é 0.7.
Obs.: Para prosseguir nesse tópico o MySQL tem que estar instalado e rodando perfeitamente.
Entre no prompt do MySQL:
# mysql -p (em seguida digite a senha do root do MySQL)
Criação do banco:
mysql> create database imspector; (atente para o ; no final do comando dentro do prompt do mysql)
Criação da tabela:
mysql> CREATE TABLE `messages` (
`id` int(11) NOT NULL auto_increment,
`timestamp` int(11) NOT NULL default '0',
`clientaddress` text NOT NULL,
`protocolname` text NOT NULL,
`outgoing` int(11) NOT NULL default '0',
`type` int(11) NOT NULL default '0',
`localid` text NOT NULL,
`remoteid` text NOT NULL,
`filtered` int(11) NOT NULL default '0',
`categories` text NOT NULL,
`eventdata` blob NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Pronto, criado o banco de dados, vamos ao arquivo de configuração, sendo o mesmo situado no seguinte caminho: /usr/etc/imspector/imspector.conf
Opções gerais:
# Portas de trabalho
port=16667
http_port=18080
# Rede de trabalho
listeneaddr=0.0.0.0
# Diretório de plugins
plugin_dir=/usr/lib/imspector
# Além de gravar em banco ele também guarda os registros em log
log_typing_events=on
file_logging_dir=/var/log/imspector
# Conexão com o banco, descomentar e completar com seus dados # MySQL logging plugin stuff
mysql_server=localhost
mysql_database=imspector
mysql_username=SEU USUÁRIO QUE CONECTA AO BANCO
mysql_password=SENHA DO USUÁRIO
A configuração básica está pronta, agora falta colocar umas regras de redirecionamento para o Imspector começar a captura.
Adicione as seguintes regras no seu script do iptables:
A sua execução é simples, para ter um debug do que está acontecendo:
# imspector -D
Modo normal:
# imspector
Agora é só criar um script de inicialização no /etc/rc.d e colocar no rc.M e pronto, essa parte está concluída.
O Imspector 0.7 vem com um script CGI em Perl para visualizar as conversas, porém esse script pega as conversas registradas em log, não do banco. O que passei no script é o básico para seu funcionamento, visite a pagina do desenvolvedor e explore seus recursos.
[5] Comentário enviado por balani em 07/01/2009 - 12:01h
Olá rodrigolhart, faça o seguinte, dentro do diretorio aonde está o source do imspector verifique se tem a biblioteca libimspector.so, e copie ela para /usr/lib/imspector e depois atualize o ldconfig, digitando ldconfig no prompt. Qualquer duvida, é deixar um comentario.
[6] Comentário enviado por primus em 15/01/2009 - 17:47h
Ola,
Utilizo o ubuntu server 8.10 com OpenSSL, mas quando digito o comando make dentro imspector-0.7 apresenta a seguinte mensagem de erro, alguem pode me ajudar!!!!
g++ -Wall -O2 -fPIC -I/usr/include -DHAVE_SSL main.cpp -c
In file included from main.cpp:10:
imspector.h:39:25: error: openssl/ssl.h: No such file or directory
imspector.h:40:25: error: openssl/bio.h: No such file or directory
imspector.h:41:25: error: openssl/err.h: No such file or directory
In file included from imspector.h:71,
from main.cpp:10:
socket.h:33: error: âSSL_CTXâ has not been declared
socket.h:57: error: ISO C++ forbids declaration of âSSLâ with no type
socket.h:57: error: expected â;â before â*â token
socket.h:58: error: ISO C++ forbids declaration of âX509â with no type
socket.h:58: error: expected â;â before â*â token
In file included from imspector.h:74,
from main.cpp:10:
sslstate.h:18: error: âSSL_CTXâ has not been declared
sslstate.h:30: error: ISO C++ forbids declaration of âSSL_METHODâ with no type
sslstate.h:30: error: expected â;â before â*â token
sslstate.h:31: error: ISO C++ forbids declaration of âSSL_CTXâ with no type
sslstate.h:31: error: expected â;â before â*â token
sslstate.h:32: error: ISO C++ forbids declaration of âSSL_CTXâ with no type
sslstate.h:32: error: expected â;â before â*â token
sslstate.h:34: error: ISO C++ forbids declaration of âX509â with no type
sslstate.h:34: error: expected â;â before â*â token
sslstate.h:35: error: ISO C++ forbids declaration of âEVP_PKEYâ with no type
sslstate.h:35: error: expected â;â before â*â token
sslstate.h:36: error: ISO C++ forbids declaration of âEVP_PKEYâ with no type
sslstate.h:36: error: expected â;â before â*â token
make: *** [main.o] Error 1
[7] Comentário enviado por balani em 15/01/2009 - 20:22h
Obrigado pela visita primus, o seu problema é o seguinte, na hora de compilar o imspector o compilador não está encontrando os headers do openssl, que normalmente ficam em /usr/include/openssl.
[8] Comentário enviado por primus em 16/01/2009 - 13:15h
Obrigado!
Os headers do openssl não estava instalado, utilizei o seguinte comando apt-get -y --force-yes -f install libssl-dev. O imspector esta funcionando, mas estou com uma duvida. Existe interface web para o imspector como no msn-proxy?
[9] Comentário enviado por balani em 16/01/2009 - 14:57h
Olá primus, que bom que deu certo, é o seguinte tô fazendo uma interface em php, ela é bem simples, mais dá para ver as conversas por contato, assim que ela tiver pronta eu vou postar um artigo e o condigo-fonte.
[12] Comentário enviado por igor.matos em 16/03/2009 - 10:54h
Balani,
Por um acaso você já terminou a interface PHP? Estava para desenvolver uma em Delphi. Não reclame da linguagem, rs - não sou desenvolvedor e era só para quebrar o galho mesmo.
Aguardo sua resposta, mas devo fazer a minha nessa semana.
[13] Comentário enviado por juniorarruda em 31/03/2009 - 09:48h
Parabéns pelo artigo
Quando tento executar o imspector.cgi dentro da pasta /usr/lib/cgi-gin/ acessando http://mygatewayim/cgi-bin/imspector.cgi
não me abre os relatórios, mostra a lista de datas disponível e fica escrito no canto direito superior "Updating" mas daí nao sai e
meu error.log do apache fica assim:
[14] Comentário enviado por balani em 03/04/2009 - 16:46h
Saudações meus caros,
Estou liberando a primeira versão da interface em php para visualização do imspector, porem ela não está completa, falta o controle de usuario, porem visualiza o conteudo do banco, qualquer duvida me adicionem no msn: adrianobalani@yahoo.com.br.
para baixar: http://rapidshare.de/files/46511348/sis.zip.html
só para constar, coloquei o nome de SIS, mais usem do jeito que achar melhor, ele não tem licensa, é livre para mudar e fazer oque quizerem, porem cada mudança que fizerem gostaria de receber uma copia. :)
[17] Comentário enviado por marcosasjr em 26/06/2009 - 11:06h
bom dia a todos,
estou com 1 duvida
instalei o imspector ate entao tudo ok...
tudo coinfigurado, etc...
+ com o comando imspector -d
ele fica parado em uma linha é assim mesmo?
imspector: Protocol Plugin name: HTTPS IMSpector protocol plugin
imspector: Protocol Plugin name: MSN IMSpector protocol plugin
imspector: Non-HTTP port listening on 0.0.0.0:16667
imspector: HTTP port listening on 0.0.0.0:18080
imspector: Logging Plugin name: Debug IMSpector logging plugin
imspector: Logging Plugin name: File IMSpector logging plugin
imspector: Logging Plugin name: MySQL IMSpector logging plugin
no caso essa ultima linha...
é assim?
[22] Comentário enviado por balani em 24/07/2009 - 14:17h
Boa tarde, Juniorsa
O imspector é um proxy para mensageiros instantaneos, abrangendo varios desde o Windows Live Messenger até o Gadu-Gadu, com ele você pode guardar o historico das conversar no servidor em um banco de dados e criar listar de controles (ACL's) e tudo mais, tendo controle geral. Tudo dependa da criatividade de quem tá usando.
[27] Comentário enviado por wagnerfranca em 17/11/2011 - 15:17h
esta ocorrendo o seguinte erro quando dou o comando make mysqlloggingplugin.so
g++ -Wall -O2 -fPIC -I/usr/include -DHAVE_SSL mysqlloggingplugin.cpp -c -I/usr/include
mysqlloggingplugin.cpp:12:25: error: mysql/mysql.h: No such file or directory
mysqlloggingplugin.cpp:13:26: error: mysql/errmsg.h: No such file or directory
mysqlloggingplugin.cpp:46: error: expected constructor, destructor, or type conversion before â*â token
mysqlloggingplugin.cpp:47: error: expected constructor, destructor, or type conversion before â*â token
mysqlloggingplugin.cpp:48: error: âMYSQL_BINDâ does not name a type
mysqlloggingplugin.cpp: In function âbool initloggingplugin(loggingplugininfo&, Options&, bool)â:
mysqlloggingplugin.cpp:87: error: âconnâ was not declared in this scope
mysqlloggingplugin.cpp:87: error: âmysql_initâ was not declared in this scope
mysqlloggingplugin.cpp: In function âvoid closeloggingplugin()â:
mysqlloggingplugin.cpp:94: error: âconnâ was not declared in this scope
mysqlloggingplugin.cpp:94: error: âmysql_closeâ was not declared in this scope
mysqlloggingplugin.cpp: In function âint logevents(std::vector<imevent, std::allocator<imevent> >&)â:
mysqlloggingplugin.cpp:178: error: âstmtâ was not declared in this scope
mysqlloggingplugin.cpp:178: error: âmysql_stmt_executeâ was not declared in this scope
mysqlloggingplugin.cpp:180: error: âmysql_stmt_errorâ was not declared in this scope
mysqlloggingplugin.cpp:183: error: âmysql_stmt_errnoâ was not declared in this scope
mysqlloggingplugin.cpp:183: error: âCR_SERVER_LOSTâ was not declared in this scope
mysqlloggingplugin.cpp:184: error: âCR_SERVER_GONE_ERRORâ was not declared in this scope
mysqlloggingplugin.cpp:190: error: âmysql_stmt_errnoâ was not declared in this scope
mysqlloggingplugin.cpp: In function âbool connectmysql()â:
mysqlloggingplugin.cpp:203: error: âconnâ was not declared in this scope
mysqlloggingplugin.cpp:204: error: âmysql_real_connectâ was not declared in this scope
mysqlloggingplugin.cpp:206: error: âmysql_errorâ was not declared in this scope
mysqlloggingplugin.cpp:210: error: âconnâ was not declared in this scope
mysqlloggingplugin.cpp:210: error: âmysql_queryâ was not declared in this scope
mysqlloggingplugin.cpp:212: error: âmysql_errorâ was not declared in this scope
mysqlloggingplugin.cpp:216: error: âstmtâ was not declared in this scope
mysqlloggingplugin.cpp:216: error: âconnâ was not declared in this scope
mysqlloggingplugin.cpp:216: error: âmysql_stmt_initâ was not declared in this scope
mysqlloggingplugin.cpp:222: error: âstmtâ was not declared in this scope
mysqlloggingplugin.cpp:222: error: âmysql_stmt_prepareâ was not declared in this scope
mysqlloggingplugin.cpp:224: error: âmysql_stmt_errorâ was not declared in this scope
mysqlloggingplugin.cpp:228: error: âstmtâ was not declared in this scope
mysqlloggingplugin.cpp:228: error: âmysql_stmt_param_countâ was not declared in this scope
mysqlloggingplugin.cpp:234: error: âbindsâ was not declared in this scope
mysqlloggingplugin.cpp:234: error: âMYSQL_BINDâ was not declared in this scope
mysqlloggingplugin.cpp:238: error: âMYSQL_TYPE_LONGâ was not declared in this scope
mysqlloggingplugin.cpp:244: error: âMYSQL_TYPE_STRINGâ was not declared in this scope
mysqlloggingplugin.cpp:297: error: âMYSQL_TYPE_BLOBâ was not declared in this scope
mysqlloggingplugin.cpp:304: error: âstmtâ was not declared in this scope
mysqlloggingplugin.cpp:304: error: âmysql_stmt_bind_paramâ was not declared in this scope
mysqlloggingplugin.cpp:306: error: âmysql_stmt_errorâ was not declared in this scope
make: *** [mysqlloggingplugin.o] Error 1
[28] Comentário enviado por balani em 20/11/2011 - 12:52h
Amigo, desculpe a demora para responder,
Tá faltando no seu sistema os headers do mysql, se vc usa sistemas debian-like use o seguinte comando
# apt-get install mysql-headers