Msn-proxy no FreeBSD e Linux
Publicado por pitombera em Dezembro 4, 2007
Introdução
O msn-proxy é um proxy transparente leve para clientes do msn messenger. Suporta todos os protocolos ativos ( todos clientes ). Controla quem e como o msn messenger é usado em sua rede. Cheio de recursos.
O texto acima é uma tradução da descrição escrita pelo autor no site do projeto.
O msn-proxy possui recursos como: Bloqueio de usuário, controle da lista de amigos dos usuários, log de conversação, aviso em chat sobre o monitoramento, bloqueio de transferência de arquivos, entre outros.
Ambiente Testado
Freebsd 7.0 Beta 3:
-
gcc version 4.2.1 20070719
-
MySQL version 5.0.45
-
libevent version 1.3d
-
Apache version 2.0.61
-
PHP version 4.4.7
Slackware 11:
-
gcc version 3.4.6
-
MySql version 5.0.24a
-
libevent version 1.3d/1.3b
-
Apache version 1.3.37
-
PHP version 5.2.5
Instalação
LibEvent:
FreeBSD:
# cd /usr/ports/devel/libevent/
# make install clean
Linux:
# wget -c ‘http://monkey.org/~provos/libevent-1.3d.tar.gz ‘
# tar -zxvf libevent-1.3d.tar.gz
# cd libevent-1.3d/
# ./configure && make && make install
ou
# wget -c ‘http://lp.slackwaresupport.com/Slackware-11.0/martijn/libevent-1.3b-i486-1McD.tgz‘
# installpkg libevent-1.3b-i486-1McD.tgz
msn-proxy:
Linux/FreeBSD:
# wget -c ‘http://internap.dl.sourceforge.net/sourceforge/msn-proxy/msn-proxy-0.5.tar.gz‘
# tar -zxvf msn-proxy-0.5.tar.gz
# cd msn-proxy
# make¹
# make install
¹ O FreeBSD por usar o gcc4 foi necessário editar o arquivo Makefile e mudar a CCFLAGS, o processo é simples, apenas comentar( adicionar o # do inicio da linha) o CCFLAGS do gcc3 na linha 13 e descomentar( retirar o # do inicio da linha) o CCFLAGS do gcc4 na linha 17.
Configurando
Primeiro arquivo a ser configurado é o /usr/local/etc/msn-proxy/mysql/conf, é nesse arquivo que ficam os dados para a conexão entre o msn-proxy e o banco mysql.
Sintaxe:
(Host ou Socket)|(Port)|(usuario)|(senha)|(bando de dados)
Padrão:
/tmp/mysql.sock|0|msn-proxy|secret|msn-proxy
Após isso iremos criar o banco do dados e criar o usuário para o msn-proxy.
MySQL:
> create database `msn-proxy¹`;
> grant all privileges on `msn-proxy¹`.* to `msn-proxy²`@localhost identified by ’secret³‘;
> flush privileges;
¹ Banco de dados
² Usuário
³ Senha
Após ter feito os passos anteriores, iremos rodar pela primeira vez o msn-proxy que irá criar as tabelas no banco.
# /usr/local/bin/msn-proxy
Se tudo ocorrer bem terá a seguinte mensagem:
PUBLIC ACCESS on /usr/local/etc/msn-proxy/mysql/conf should be removed !!!¹
fail to read mysql config (check defaults table)²
¹Avisa que o arquivo está com acessos demais.
² Não há host default configurado na tabela.
Retirar acesso público do arquivo de configuração:
# chmod 600 /usr/local/etc/msn-proxy/mysql/conf
Inserindo ip real do servidor proxy na tabela do mysql:
MySQL:
> insert into defaults (internal_host) values (‘192.168.0.1¹‘);
¹192.168.0.1 deve ser o ip real.
Feita as alterações o seu msn-proxy está configurado e pronto para receber conexões.
# /usr/local/bin/msn-proxy &
Interface Web
Junto ao source do msn-proxy acompanha o diretório ‘php’ que é um utilário web para a configuração e gerenciamento do seu msn-proxy.
Edite o arquivo mysql.inc.php e edite as variavéis $host,$user,$pass,$db,$port de acordo com os dados usados no servidor mysql, após a edição, copie o diretório php para sua pasta web e sete as restrições de acesso necessárias, saiba como aqui.
Port Forwarding
É necessário fazer um redirecionamento das conexões vindas de sua rede, para que o proxy funcione de forma transparente.
Linux:
# iptables -t nat -I PREROUTING -i eth0¹ -p tcp –dport 1863 -j REDIRECT –to-port 1863
FreeBSD:
ipfw
ipfw add X¹ fwd 127.0.0.1,1863 ip from any to any dst-port 1863 src-ip 192.168.0.0/24²
¹Número da rega no ipfw
²Faixa de Rede Local
pf.conf
rdr on vr0¹ inet proto tcp from any to any port 1863 -> 127.0.0.1 port 1863
¹Interface de rede local.Conclusão
Chegamos ao fim do artigo, espero ter conseguido transmitir de forma mais clara possivél os passos usados por mim para a instalação desse exceletente software.
Se mesmo após instalado e configurado seu msn-proxy não inciar, teste rodar com a opção ‘-d’(debug) para maiores informações do seu problema.
Em caso de dúvida não temam em perguntar.
Links
http://sourceforge.net/projects/msn-proxy/
http://monkey.org/~provos/libevent/
http://focalinux.cipsga.org.br/
http://get.live.com/messenger/overview
Autor
Diego Pitombeira dos Prazeres a.k.a pitombera
André Losnak disse
Ruy_Go disse
Velho muito bom mesmo, foi lindo aqui, amanha ja testo ele na real =D
maicon disse
boa tarde
Quando vou iniciar o msn-proxy gera este erro
# /usr/local/bin/msn-proxy
Erro – /usr/local/bin/msn-proxy: error while loading shared libraries: libevent-1.3e.so.1: cannot open shared object file: No such file or directory
Locate libevent-1.3e.so.1.0.3
/usr/local/lib/libevent-1.3e.so.1
/usr/local/lib/libevent-1.3e.so.1.0.3
Cleison Monteiro disse
maicon atualiza as libs do sistema simplesmente com: ldconfig
Caso não resolva da uma verificada no arquivo /etc/ld.so.config e veja se tem /usr/local/lib… caso não tenha adicione, salve e saia… e rode novamente o ldconfig.
apocalipse@irc.freenode.net #slackware-br #linuxajuda
maicon disse
Cleison Monteiro muito obrigado pela dica
maicon disse
desculpa eu novamente
Agora ele nao localiza a base
[root]# /usr/local/bin/msn-proxy
cannot init database
- mysql -u root -p
Criar o banco
- create database `msn-proxy`;
- grant all privileges on `msn-proxy`.* to `msn-proxy`@localhost identified by ’secret’;
- flush privileges;
Muito obrigado mesmo pela ajuda, pessoas como vc que fazem o linux ser oque é
Cleison Monteiro disse
Não tenho como verificar ao certo onde estou o lugar da base pois estou de férias…
)… dentro desse arquivo você vai ver 4-5 files que são chamados para criar as tables… abra um por um para cópiar as tables e fazer seu banco na mão mesmo… o nome de cada table é o nome de cada arquivo e os linhas dessa determinada table está dentro do arquivo correspondente…
O principio é o seguinte… quando você configura seu “banco” corretamente é só rodar o msn-proxy que ele faz o resto…
Configurar o banco seria criar o banco, criar user, dar privilégios e configurar todas essas infos no seu arquivo conf que segundo o nosso tutorial fica em /usr/local/etc/msn-proxy/mysql/conf
Quando acontecer isso que aconteceu com você é pelo simples fato dele não conectar no banco e criar as tables para poder rodar o msn-proxy.
Da uma olhada em todos os dir do source e procure por um arquivo envolvendo o nome mysql (não sei dizer no momento o nome correto pois estou longe desse mundo por enquanto
Espero sucesso e qualquer coisa grite…
Atenciosamente:
apocalipse@irc.freenode.net #slackware-br #linuxajuda
andré disse
Tambem estou com o mesmo problema
eu criei as tabelas na mão pelo webmin e ocorre o mesmo erro
gofo:/usr/sbin# msn-proxy
cannot init database
gofo:/usr/sbin# msn-proxy &
[1] 7073
gofo:/usr/sbin# cannot init database
Murilo Gois disse
Brother, vc já conseguiu fazer este msn-proxy rodar em paralelo com um outro proxy? Ex: minha empresa ja possui um proxy, quero colocar uma outra maquina com este msn-proxy e direcionar todo fluxo de msn para ela, sem mexer na minha estrutura original. Sabe se é possível?
Cleison Monteiro disse
andré
Confere a conf do msn-proxy. No caso do nosso artigo está em /usr/local/etc/msn-proxy/mysql/conf, verifica se está tudo certinho com o nome do banco, usuário e senha.
Murilo
Dá sim de boa. Você teria apenas que jogar todo o tráfego que vier na porta 1863 do msn para esse novo servidor.
Murilo Gois disse
Segue a regra que esta sendo utilizada
/sbin/ipfw add 14 fwd 172.16.2.127,1863 tcp from 172.16.2.0/24 to any dst-port 1863 via rl0
essa regra esta no firewall mais infelizmente ele nao direciona o trafego para o ip 172.16.2.127… mais as regras giram os ponteiros.. dizendo que esta direcionando todo o trafego…
maicon disse
boa noite
o msn-proxy nao inicia
criae as tabelas a mao no banco mas mesmo assim nao inicia
/usr/local/bin/msn-proxy
cannot init database
maicon disse
o erro evolui
[root@up mysql]# /usr/local/bin/msn-proxy -d
fail to read mysql config (check defaults table)
o problema de antes era o /var/lib/mysql/mysql.sock na linha do conf
maicon disse
muito obrigado a todos
funcionou!!!!!!!!!
agora é só configurar
Ismael disse
boa noite, estou com o problema para iniciar o msn-proxy, está dando o problema: cannot init database [3] 1127.
o conf do msn-proxy por padrão ja vem: (Host ou Socket)|(Port)|(usuario)|(senha)|(bando de dados) /tmp/mysql.sock|0|msn-proxy|secret|msn-proxy. Neste conf o que devo alterar?
Ricardo disse
Estou tentando instalar o msn-proxy no Fedora 8, editei o Makefile e alterei as linhas assim:
# Linux (most)
MYSQLINC=/usr/local/include
MYSQLLIB=/usr/local/mysql/lib/mysql
Mas ao tentar rodar o make recebo o seguinte erro:
cc -g -Wall -Wno-pointer-sign -O2 -pipe -I/usr/local/include -I/usr/local/include -fno-builtin-log -c msn-proxy.c
In file included from ns-data.h:24,
from user.h:31,
from ns.h:24,
from msn-proxy.c:26:
client.h:27:19: error: event.h: Arquivo ou diretório não encontrado
In file included from ns-data.h:24,
from user.h:31,
from ns.h:24,
from msn-proxy.c:26:
client.h:36: error: field ‘read’ has incomplete type
client.h:37: error: field ‘write’ has incomplete type
client.h:38: error: field ‘listen’ has incomplete type
In file included from ns-data.h:25,
from user.h:31,
from ns.h:24,
from msn-proxy.c:26:
server.h:37: error: field ‘read’ has incomplete type
server.h:38: error: field ‘write’ has incomplete type
In file included from user.h:32,
from ns.h:24,
from msn-proxy.c:26:
sb-data.h:44: error: field ‘listen’ has incomplete type
msn-proxy.c: In function ‘main’:
msn-proxy.c:70: error: storage size of ‘ev’ isn’t known
msn-proxy.c:167: warning: implicit declaration of function ‘event_init’
msn-proxy.c:174: warning: implicit declaration of function ‘event_set’
msn-proxy.c:174: error: ‘EV_READ’ undeclared (first use in this function)
msn-proxy.c:174: error: (Each undeclared identifier is reported only once
msn-proxy.c:174: error: for each function it appears in.)
msn-proxy.c:174: error: ‘EV_PERSIST’ undeclared (first use in this function)
msn-proxy.c:175: warning: implicit declaration of function ‘event_add’
msn-proxy.c:177: warning: implicit declaration of function ‘event_dispatch’
msn-proxy.c:70: warning: unused variable ‘ev’
make: ** [msn-proxy.o] Erro 1
O que posso fazer para solucionar esse problema?
Ricardo disse
Estou tentando instalar o msn-proxy no Fedora 8, editei o Makefile e alterei as linhas assim:
# Linux (most)
MYSQLINC=/usr/local/include
MYSQLLIB=/usr/local/mysql/lib/mysql
Mas ao tentar rodar o make recebo o seguinte erro:
cc -g -Wall -Wno-pointer-sign -O2 -pipe -I/usr/local/include -I/usr/local/include -fno-builtin-log -c msn-proxy.c
In file included from ns-data.h:24,
from user.h:31,
from ns.h:24,
from msn-proxy.c:26:
client.h:27:19: error: event.h: Arquivo ou diretório não encontrado
In file included from ns-data.h:24,
from user.h:31,
from ns.h:24,
from msn-proxy.c:26:
client.h:36: error: field ‘read’ has incomplete type
client.h:37: error: field ‘write’ has incomplete type
client.h:38: error: field ‘listen’ has incomplete type
In file included from ns-data.h:25,
from user.h:31,
from ns.h:24,
from msn-proxy.c:26:
server.h:37: error: field ‘read’ has incomplete type
server.h:38: error: field ‘write’ has incomplete type
In file included from user.h:32,
from ns.h:24,
from msn-proxy.c:26:
sb-data.h:44: error: field ‘listen’ has incomplete type
msn-proxy.c: In function ‘main’:
msn-proxy.c:70: error: storage size of ‘ev’ isn’t known
msn-proxy.c:167: warning: implicit declaration of function ‘event_init’
msn-proxy.c:174: warning: implicit declaration of function ‘event_set’
msn-proxy.c:174: error: ‘EV_READ’ undeclared (first use in this function)
msn-proxy.c:174: error: (Each undeclared identifier is reported only once
msn-proxy.c:174: error: for each function it appears in.)
msn-proxy.c:174: error: ‘EV_PERSIST’ undeclared (first use in this function)
msn-proxy.c:175: warning: implicit declaration of function ‘event_add’
msn-proxy.c:177: warning: implicit declaration of function ‘event_dispatch’
msn-proxy.c:70: warning: unused variable ‘ev’
make: ** [msn-proxy.o] Erro 1
O que posso fazer para solucionar esse problema?
maicon disse
sim altera para
/var/lib/mysql/mysql.sock|0|msn-proxy|secret|msn-proxy
Adalberto disse
Olá amigo .. primeiramente parabéns pelo tutorial, está bem didático e simples. Em segundo gostaria de saber se vc já testou esse msn-proxy numa máquina rodando squid, se tem alguma conf diferente, ou algo do tipo. Obrigado e inté. = ]
Ismael disse
Caras, me ajudem por favor!
Não consigo sair do erro “cannot init database”
Estou instalando no slackware 11. Tenho o mysql com apache e php todos funcionando diretinho, mais não entendo porque não conecta com o banco do msn-proxy. Já criei as tabalas na mão tambem e nada.
meu conf esta assim: /var/lib/mysql/mysql.sock|0|msn-proxy|secret|msn-proxy
crie a base com mesmo nomes, senhas e usuario. mas não conecta
alguem pode me ajudar?
Ismael disse
conseguir rodar o msn-proxy!!!, o problema era que tinha feito as tabelas com alguns nomes errado.
Só que agora depois de redirecionar não aparace ninguem conectado. joguei a regra: iptables -t nat -I PREROUTING -i eth0 -p tcp –dport 1863 -j REDIRECT –to-port 1863.
O que posso está fazendo de errado?
É excelente tutorial muito bem explicado, apenas sou inexperiente no mundo do linux, se pode ajudar algum, fiz minha instalação no slackware 11.
pitombera disse
Bem, primeiramente desculpa a todos que deixaram comentários e não foram respondidos.
Ricardo: Aparentemente o problema é com a libevent, após compilar dê um ldconfig se não funcionar veja onde estão os arquivos dela e tenta corrigir no Makefile.
Adalberto: Sim, testei o msn-proxy em uma máquina( FreeBSD ) usando squid e não tive problemas quanto aos redirecionamentos de trafego, como a rede testada foi uma rede doméstica eu não criei ACL’s no squid para barrar webmessengers ou uma conexão vinda diretamente do ‘Msn Client’. O ideal é que seja feito em conjunto msn-proxy + regras no proxy.
Espero ter esclarecido.
[]’s
douglas disse
Ola boa noite..
muito bom o tutorial, mas estou com um probleminha, ja refiz a instalacao, mas continua.
Fiz a alteracao no arquivo /etc/ld.so.conf onde consta:
/usr/local/lib/libevent-1.3d.so.1
o erro que ocorre:
/usr/local/bin/msn-proxy: error while loading shared libraries: libevent-1.3d.so.1: cannot open shared object file: No such file or directory
distro debian
abraços e obrigado
Lucas disse
Alguem pode me ajudar quando vou instalar o libevent da o seguinte erro:
./configure && make && make install
checking for a BSD-compatible install… /usr/bin/install -c
checking whether build environment is sane… yes
checking for gawk… gawk
checking whether make sets $(MAKE)… no
checking whether to enable maintainer-specific portions of Makefiles… no
checking for gcc… no
checking for cc… no
checking for cl.exe… no
configure: error: no acceptable C compiler found in $PATH
See `config.log’ for more details.
O SO é o Suse Linux
Alguem tem alguma dica?
Douglas Fabiano Specht disse
Pessoal estava com o seguinte erro:
make: ** Aviso: O arquivo `Makefile’ está com a hora 3e+03 adiantada
cc -g -Wall -Wno-pointer-sign -O2 -pipe -I/usr/local/include -I/usr/local/include -fno-builtin-log -c msn-proxy.c
In file included from config.h:29,
from net-io.h:27,
from msn-proxy.c:30:
mysql.h:48:25: error: mysql/mysql.h: Arquivo ou diretório não encontrado
In file included from config.h:29,
from net-io.h:27,
from msn-proxy.c:30:
mysql.h:64: error: expected specifier-qualifier-list before âMYSQLâ
mysql.h:75: error: expected â=â, â,â, â;â, âasmâ or â__attribute__â before âdb_fetch_rowâ
mysql.h:76: error: expected â)â before â*â token
mysql.h:77: error: expected â)â before â*â token
mysql.h:78: error: expected â)â before â*â token
mysql.h:79: error: expected â=â, â,â, â;â, âasmâ or â__attribute__â before â*â token
mysql.h:81: error: expected â=â, â,â, â;â, âasmâ or â__attribute__â before â*â token
make: ** [msn-proxy.o] Erro 1
servidor:/opt/msn/msn-proxy#
foi resolvido fazendo um apt-get install -f libmysqlclient15-dev
Douglas Fabiano Specht disse
estou tentando colocar para executar automaticamente o msn-proxy quando reinicia a maquina.
eu tenho um script inicializa.sh onde tenho alguns comando que reiniciam alguns programas automaticamente.
Ocorre que o comando /usr/local/bin/msn-proxy & nao obedece ao reiniciar a maquina.
meu script
#!/bin/bash
/home/firewall
/home/imsniff_0.03/src/imsniff eth1 &
/usr/local/bin/msn-proxy &
somente este ultimo nao carrega
alguem pode me ajudar??
Claudio disse
turma to este erro, ja tetei tudo que sabia para resolver mais quando copilo da este erro abaixo.
uso o fedora 8
alguem pode me ajudar ?
cc -o msn-proxy msn-proxy.o server.o sb.o command.o config.o net-io.o client.o syslog.o ns.o mysql.o sql.o protocol.o check-cmd.o contacts.o msg.o p2p.o user.o string.o io.o sig.o fmt.o xml.o -L/usr/lib/mysql -levent -L -lmysqlclient
mysql.o: In function `db_close’:
/tmp/msn-proxy/mysql.c:290: undefined reference to `mysql_close’
mysql.o: In function `db_error’:
/tmp/msn-proxy/mysql.c:207: undefined reference to `mysql_error’
mysql.o: In function `db_query2′:
/tmp/msn-proxy/mysql.c:138: undefined reference to `mysql_real_query’
mysql.o: In function `db_create_all’:
/tmp/msn-proxy/mysql.c:161: undefined reference to `mysql_errno’
mysql.o: In function `db_query’:
/tmp/msn-proxy/mysql.c:122: undefined reference to `mysql_real_query’
mysql.o: In function `db_escape’:
/tmp/msn-proxy/mysql.c:108: undefined reference to `mysql_real_escape_string’
mysql.o: In function `db_free’:
/tmp/msn-proxy/mysql.c:88: undefined reference to `mysql_free_result’
mysql.o: In function `db_init’:
/tmp/msn-proxy/mysql.c:264: undefined reference to `mysql_init’
/tmp/msn-proxy/mysql.c:264: undefined reference to `mysql_init’
/tmp/msn-proxy/mysql.c:269: undefined reference to `mysql_real_connect’
/tmp/msn-proxy/mysql.c:280: undefined reference to `mysql_options’
mysql.o: In function `db_query’:
/tmp/msn-proxy/mysql.c:126: undefined reference to `mysql_store_result’
mysql.o: In function `db_last_id’:
/tmp/msn-proxy/mysql.c:79: undefined reference to `mysql_insert_id’
mysql.o: In function `db_affected_rows’:
/tmp/msn-proxy/mysql.c:71: undefined reference to `mysql_affected_rows’
mysql.o: In function `db_count’:
/tmp/msn-proxy/mysql.c:63: undefined reference to `mysql_num_rows’
mysql.o: In function `db_fetch_row’:
/tmp/msn-proxy/mysql.c:55: undefined reference to `mysql_fetch_row’
collect2: ld returned 1 exit status
Marcelo disse
Bem interessante! Teste no freebsd 6.3 STABLE e rolou blzinha! Somente os bloqueios que hora funcionam hora nao funcionam.
pitombera disse
Douglas: use o strace pra verificar onde ele está indo buscar a lib. Ex.: strace /usr/local/bin/msn-proxy. Recompilar novamente o msn-proxy pode ser uma solução também.
Lucas: configure: error: no acceptable C compiler found in $PATH.
Bem, isso indica que você não tem as ferramentas necessárias para compilar o source, tente procurar a solução específica para sua distrib, eu particularmente nunca usei Suse.
O caminho é mais ou menos esse( segue link abaixo )
http://www.linuxforums.org/forum/suse-linux-help/11784-configure-error-no-acceptable-c-compiler-found-path.html
Douglas Fabiano Specht: Tenta inicializar com um ‘/usr/local/bin/msn-proxy > /var/log/msn.log &’ e ver o porque de não inicializar, no meu caso o msn-proxy estava inicializando antes do mysql e deve ser o seu problema também.
[]’s
Fabricio cardoso disse
Pessoal
Bom dia
Estou subindo esse proxy , fiz exatamente o tuto, mas parei na parte de criar a configuração default no mysql
At first run, msn-proxy will check and create the mysql tables, after that
insert the default configuration (with your real proxy ip):
> insert into defaults (internal_host) values (‘192.168.0.1′);
Veja o erro.
insert into defaults (internal_host) values (‘192.168.0.2′);
ERROR 1046 (3D000): No database selected
Onde 192.168.0.2 é o ip do meu proxy.
Verifiquei que poderia ser que eu não estivesse na database certa, no caso
`msn-proxy`, mas eu estou sim.
Caso alguém possa me ajudar
Fabricio Cardoso
Naudy Fernando Cnei II disse
Olá Diego, tudo bem?
Parabéns pelo artigo curto e muito didático.
Reailizei a instalação aqui no meu servidor, mas infelizmente não consigo conexão via socks do msn-proxy.
Quando eu mando testar a conexão com socks no cliente MSN ele me retorna uma mensagem:
impossível conectar(0)…
no debug do msn-proxy no servidor, ele retorna a seguinte mensagem:
config file : /usr/local/etc/msn-proxy/msn-proxy.conf
default ns host : messenger.hotmail.com
default ns port : 1863
listen host : 0.0.0.0
listen port : 1863
backlog : 10
max clients : 10
port range begin : 25000
port range end : 30000
client read timeout : 600
client write timeout : 60
server read timeout : 600
server write timeout : 60
client connect timeout: 180
ACLs
connect : ALLOW
log messages : YES
save_contacts : YES
debug: connection from [192.168.1.10]
debug: fail to read ns server command
debug: connection from [192.168.1.10]
debug: fail to read ns server command
Existe alguma condiguração extra que devo fazer?
Ja troquei a url do servidor de autenticação no arquivo
/usr/local/msn-proxy/msn-proxy.conf
mas não adiantou.
Será que pode me ajudar?
Grande abraço
Rodrigo Arauo disse
Olá. Estou com Slackware 12. Instalei tudo ok sem problemas. Mas não estou sabendo usar a parde de bloquear contatos! Funciona? Podem me dar uma dica.
Ederson disse
Olá, estou tendo o mesmo erro do Ricardo para compilar o msn-proxy. Uso um Conectiva 10.
Acho que o problema são as variáveis que tenho que editar no Makefile, a MYSQLINC deixei = /usr/lib/mysql e a MYSQLINC=/var/lib/mysql.
Procurei pelo sistema onde poderia estar esses diretórios, mas não achei nada além desse /usr/lib/mysql e do /var/lib/mysql.
Preciso de uma ajuda. Quais diretórios eu indico no Makefile?
Obrigado.
Adriano disse
Olá!
Estou com o mesmo problema do Douglas, a diferença é que minha versão é a libevent-1.4.so.2.0.0. Fiz exatamente o que diz abaixo e recebo várias linhas de erro como estas ao executar o ldconfig:
ldconfig: is not a know library type
ldconfig: is not a know library type
ldconfig: 9?=>u{tt is not a know library type
e várias linhas mudando o inicio mas repetindo este erro no final: … is not a know library type
…
Fiz a alteracao no arquivo /etc/ld.so.conf onde consta:
/usr/local/lib/libevent-1.3d.so.1
o erro que ocorre:
/usr/local/bin/msn-proxy: error while loading shared libraries: libevent-1.3d.so.1: cannot open shared object file: No such file or directory
distro debian
abraços e obrigado
Adriano disse
Ah, só um detalhe: segui as dicas acima e não deu certo. Modifiquei meu Makefile da seguinte forma:
# FreeBSD
#MYSQLINC=…
#MYSQLLIB=…
#linux (most)
MYSQLINC=/usr/lib/mysql
MYSQLLIB=/var/lib/mysql/mysql (local das libs SQL no meu Debian 4 rc3)
… e o erro continua: msn-proxy: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory
Minha libevent está instalada em:
/usr/local/lib
Ao adicionar o caminho no /etc/ld.so.conf dá o erro mencionado na menssagem anterior.
NÃO SEI MAS O QUE FAZER… Preciso de ajuda!
Andrei Luiz Sbruzzi disse
Olá, estou com o seguinte problema, conforme comentário do
pitonbeira ao Douglas Fabiano Specht: Tenta inicializar com um
‘/usr/local/bin/msn-proxy > /var/log/msn.log &’
e ver o porque de não inicializar, no meu caso o msn-proxy estava inicializando antes do mysql e deve ser o seu problema também.
O msn-proxy está iniciando antes do mysql, existe alguma forma de fazer com que ele inicie somente após o banco? Instalamos via Lampp, ele é quem chamamos para inicializar os serviços do banco.
Segue o script que utilizamos para inicialização:
#!/bin/bash
/home/firewall
/home/imsniff_0.03/src/imsniff eth1 &
/opt/lampp/lampp start
/usr/local/bin/msn-proxy >> /var/log/msn.log &
Msg de log (msn.log):
cannot init database
Abraços
Andrei Luiz Sbruzzi disse
Referente ao problema citado por eu mesmo.
Acrescentei a seguinte linha para iniciar o msn-proxy no script de inicialização:
Original:
#!/bin/bash
/home/firewall
/home/imsniff_0.03/src/imsniff eth1 &
/opt/lampp/lampp start
/usr/local/bin/msn-proxy >> /var/log/msn.log &
Alterado
#!/bin/bash
/home/firewall
/home/imsniff_0.03/src/imsniff eth1 &
/opt/lampp/lampp start
sleep 60 && /usr/local/bin/msn-proxy >> /var/log/msn.log &
Usando o comando sleep para 60s o sistema aguarda os 60s para ai sim iniciar o msn-proxy. Tempo necessário para subir o MySQL.
Espero ter ajudado com essa dica!
Abraços
Henrique Machado disse
Olá.
Eu consegui rodá-lo beleza.
Mas me tira uma dúvida:
Quando você disse que com ele é possível “controlar a lista de amigos dos usuários”, quer dizer que eu posso especificar com qual pessoa será possível conversar e com qual não?
Grato
Marcelo disse
O problema que encontrei foi com o PHP:
Fatal error: Call to undefined function mysql_connect() in /var/www/php/mysql.inc.php on line 28
Meu conf está assim:
caminho que funcionou no Debian”
$user = “marcelo”;
$pass = “marcelo”;
$db = “msn-proxy”;
$port = 3306;
$mysql = mysql_connect($host, $user, $pass);
if (!$mysql) {
die(‘fail to connect to mysql\n’);
}
if (!mysql_select_db($db, $mysql)) {
die(‘can\’t select db\n’);
}
?>
Alguém tem idéia?
Grato
Marcelo
Marcelo disse
cortou uma linha…
$host = “/var/run/mysqld/mysqld.sock”;
“caminho que funcionou no Debian”
Luciano Goulart disse
Olá Diego,
Parabéns pelo tutorial funciona redondo e sem problemas.
Boa didática e clareza de conceitos.
Estou trabalhando em implementar outros protocolos neste serviço tais como ICQ, YAHOO, AIM, GROUPWISE e outros.
Gostaria de saber se você observou algum problema no MSN-PROXY com grandes quantidades de usuários conectados de ( de 500 para cima).
Em alguns ambientes com grandes quantidades de conexão percebo atraso nas entregas de mensagens. Quando removido o serviço e a regra de firewall ele parece funcionar normalmente. Aumentei o valor de max clients de acordo com o número de clientes, mas penso que seja necessário uma implementação de fork de processos, onde se pode fazer uma implementação de criação de processos filhos para um pool de conexões, tal como vemos no apache2. Todavia deixe-me saber se você ou os demais colegas já observaram algo similar, antes de sair quebrando a cabeça.
Um grande abraço a todos.
Robson disse
Estou com o mesmo problema do Naudy Fernando Cnei II !!!!!!!
nao to conseguindo fazer funcionar junto com o MEU PROXY AUTENTICADO rodando na porta 3128,
Uso o FreeBSD 6.02, tenho Proxy Autenticado rodando na porta 3128 e Firewall IPFW, dai apresenta o mesmo erro do Naudy Fernando Cnei II .
Alguem poderia ajudar , alguem Howtoo que explique como instalar com Proxy Autenticado e com IPFW.
Aguardo !! VLW
vanderson disse
Pessoal instalei tudo, conecto no msn usando o msn-proxy, aparece até os logs no servidor, mas no endereço “http://192.168.200.1/msn-proxy” não aparece ninguem conectado, está muito estranho. Eu não teria que adicionar os usuários
para eles poderem conectar? Onde faço isso?
Agradeço qualquer ajudo.
Paulo Vieira disse
Boa noite a todos.
Estou tentando compilar conforme o artigo do nosso amigo Diego, mas esta me dando o seguinte erro:
cc -g -Wall -Wno-pointer-sign -O2 -pipe -I/usr/local/include -I/usr/local/include -fno-builtin-log -c mysql.c
mysql.c: In function âdb_initâ:
mysql.c:280: error: âMYSQL_OPT_RECONNECTâ undeclared (first use in this function)
mysql.c:280: error: (Each undeclared identifier is reported only once
mysql.c:280: error: for each function it appears in.)
make: ** [mysql.o] Erro 1
Caso alguém possa me ajudar eu fico grato desde já.
Paulo J. Vieira
Vagner disse
Ja vi a pergunta acima, porem nada da resposta, mas vou persistir. Tenho o msn-proxy compilado instalado as tabelas foram criadas ele acessa as tabelas mas na parte web nao vejo os usuarios, tenho o seguinte no log gerado com a opçao -d:
ACLs
connect : ALLOW
log messages : YES
save_contacts : YES
debug: connection from [10.1.1.2]
debug: client_pre_cmd command blocked: email@hotmail.com
payload: [(null)]
Vagner Salazar
Vagner disse
Ja vi a pergunta acima, porem nada da resposta, mas vou persistir. Tenho o msn-proxy compilado instalado as tabelas foram criadas ele acessa as tabelas mas na parte web nao vejo os usuarios, tenho o seguinte no log gerado com a opçao -d:
ACLs
connect : ALLOW
log messages : YES
save_contacts : YES
debug: connection from [10.1.1.2]
debug: client_pre_cmd command blocked: email@hotmail.com
payload: [(null)]
debug: ns client pre command not accepted
Vagner Salazar
kaue disse
Alguem montou um Daemon pra ele?
Só preciso saber onde ficar armazenado o PID desse kra
Abraços!
kaue disse
#!/bin/bash
# +————————–+
# | SCRIPT DE INICIALIZACAO |
# +————————–+
# | MSN PROXY – PROVIDER BY |
# | -Plan IT Tecnologia |
# | -Compile with: |
# | +- Libevent + gcc |
# | -Compile By: |
# | +- Kaue Mendes |
# +————————–+
# | script under rights from |
# | GPL – General Public Lice|
# | nse. |
# +————————–+
#
# PLAN IT TECNOLOGIA E INFORMACAO
#ARMAZENA O LOCAL ONDE ESTAO O EXECUTAVEL DO MSN-PROXY
MSNDIRBIN=/usr/local/bin
DAEMON=/usr/local/etc/msn-proxy/pid/daemon.pid
#——-script de start—————————#
function start() {
echo -ne “\e[31;1mIniciando Msn-Proxy:\e[m"
#EXECUTA E FORCA PRA BACKGROUND
$MSNDIRBIN/msn-proxy &
echo -ne " [ \e[32;1mOK\e[m ]\n”
}
#——-script de stop—————————-#
function stop() {
echo -ne “\e[31;1mParando Msn-proxy:\e[m"
# APAGA ARQUIVO GERADO PARA ARMZENAR O PID DO PROCESSO (ANTIGO)
echo " " > $DAEMON
# ARMAZENA NOVAMENTE NO ARQUIVO DAEMON O PID DO MSN-PROXY
pgrep msn-proxy > $DAEMON
echo -ne " [ \e[32;1mOK\e[m ]\n”
# MATA O PID ARMAZENADO NO DAEMON.PID
kill -9 `cat $DAEMON`
}
#VERIFICA SE O ARQUIVO BIN REALMENTE EXISTE SE EXISTE CONTINUA
if [ -d $MSNDIRBIN ]
then
#CASE DE INICALIZACAO DAS FUNCTIONS.
case $1 in
start)start ; sleep 2 ;;
stop)stop ; sleep 2 ;;
restart)stop ; sleep 2 ; start ; sleep 2 ;;
*)
echo -e “\e[33;1mOpcao Desconhecida\e[m”
echo -e “Usage: msn-proxy {start|stop|restart|status|help|}”
;;
esac
exit 0
else
echo -e “\eErro ao Inicializar Msn-Proxy. Diretorio $MSNDIRBIN nao existe”
fi
Wendell Almeida disse
Perfeito.
Ajudou bastante as dicas.
Só faltou comentar das configuração no Makefie (indicação das libs mysql e do gcc4).
Usei o Debian Etch. Instalei a libevent e libmysqlclient da própria distro. Até agora sem problemas.
Obrigado.
Selena Goulart disse
Diego,
Muito bom, testado no FreeBSD, OpenBSD, Ubuntu e OpenSolaris (após alteração de alguns sources).
Testado com 70 usuários, me parece funcionar bem. Notei que algumas vezes ele não consegue informar o status de certos usuários, mostrando-os como off-line quando estão on-line. Estou investigando isso com mais detalhes.
Respondendo ao colega Vagner:
Verifique se:
* A regra de iptables está corretamente inserida e se o ip forward está ativado.
* Verifique se a tabela internal_host contém o endereço IP de sua interface LAN.
* Verifique se a interface PHP contém os dados corretos no arquivo de configuração de conexão a base de dados. Teste a conectividade com banco com: “mysql -umsn-proxy -Dmsn-proxy -psua_senha”
* Verifique se você inseriu os privilégios corretos na base de dados.
* Verifique se você tem a libevent instalada.
* Pode ser necessário instalar as bibliotecas de compatibilidade (Software legado) no Fedora, porém não estou certa disto. Deixaria esta alternativa por último, pois é muito remota.
Acho que seria estes os fatores que podes verificar.
J.moro disse
Ola .. Parabens.. muito bom o tutorial.
instalei em um free7.0, e nao funciona com o squid auth!
existe algum truque para funcionar os dois juntos.
se rodo ele sem o proxy, funciona perfeitamente.
obrigado
JMoro
maicon disse
Boa tarde
Primeiro queria agradecer a todos pelo espírito opensource
Estou com um a seguinte situação conecto blz no msn-proxy mas os usuários que esta on-line não aparassem online demora um pouco e eles vão aparecendo,tem alguma configuração para isto .
maicon disse
Resolvido era o conf do msn-proxy
________________________________________________________
default ns host : messenger.hotmail.com
default ns port : 1863
listen host : 0.0.0.0
listen port : 1863
backlog : 10
max clients : 50
port range begin : 25000
port range end : 30000
client read timeout : 600
client write timeout : 60
server read timeout : 600
server write timeout : 60
client connect timeout: 180
juliano disse
colocquei rodando no debian liberei as portas altas de conexao , mas alguns clientes msn nao logon em detrminadas horas do dia , tem como ter varios hosts para se realizar a authenticacao e login , não somente messenger.hotmail.com.. ??? se alguem poder ajudar agradeço
Jucimar disse
Olá, estou com o msn-proxy rodando td certinho. Tenho duas contas de msn muma com 10 contatos e outra com 600 contatos, o q tenho 600 contatos raramente consigo logar passando pelo msn-proxy.
aí está o erro que aparece com msn-proxy -d
debug: fail to send command to ns server
Minha configuraçao está assim:
config file : /usr/local/etc/msn-proxy/msn-proxy.conf
default ns host : messenger.hotmail.com
default ns port : 1863
listen host : 0.0.0.0
listen port : 1863
backlog : 10
max clients : 100
max ctl clients : 10
port range begin : 25000
port range end : 30000
ctl read timeout : 5
client read timeout : 600
client write timeout : 60
server read timeout : 600
server write timeout : 60
client connect timeout: 180
Se alguém tiver alguma dica eu agradeço…
Demys disse
Boa Noite,
Estou configurando o msn-proxy diretamente no meu firewall com Fedora 7.
A principio esta tudo correto, mas não consigo conexão no msn.
Na página de gerenciamento do msn-proxy fica marcada a hora que tentei me conectar, mas nada de conexão.
Estou usando esta regra de firewall (proxy transparente):
iptables -t nat -A PREROUTING -p tcp –dport 1863 -i eth0 -j REDIRECT –to-port 1863
Meu arquivo de configuração do msn-proxy:
[root@fireout log]# msn-proxy -v
info: reading config file [/usr/local/etc/msn-proxy/msn-proxy.conf]
SQL: (SHOW TABLES)
SQL: (SELECT connect, save_msg, save_contacts, commands, internal_host FROM defaults LIMIT 1)
config file : /usr/local/etc/msn-proxy/msn-proxy.conf
default ns host : messenger.hotmail.com
default ns port : 1863
listen host : 0.0.0.0
listen port : 1863
backlog : 10
max clients : 50
max ctl clients : 10
port range begin : 25000
port range end : 30000
ctl read timeout : 5
client read timeout : 600
client write timeout : 60
server read timeout : 600
server write timeout : 60
client connect timeout: 180
ACLs
connect : ALLOW
log messages : YES
save_contacts : YES
listen: Address already in use
[root@fireout log]#
Alguem pode me ajudar?
Obrigado
pitkk disse
PARA QUEM USA SLACKWARE TERÁ QUE SER ALTERADO O ARQUIVO /usr/local/etc/msn-proxy/mysql/conf
PARA /var/run/mysql/mysql.sock|0|msn-proxy|secret|msn-proxy
DESSE JEITO FUNCIONOU PRÁ MIM.
ESPERO TER AJUDADO.
pitkk disse
Olá pessoal, configurei tudo certinho mas os meus usuários estão aparecendo offline na pagina de usuário.
Se alguém conseguiu colocar ONLINE agradeço desde já a ajuda solidária.
pitkk disse
Pessoal, caso a linha
” iptables -t nat -I PREROUTING -i eth0¹ -p tcp –dport 1863 -j REDIRECT –to-port 1863 ” der algum erro, troque por
iptables -t nat -I PREROUTING -p tcp –dport 1863 -i eth0 -j REDIRECT –to-port 1863
No meu caso com slackware deu certo.
Wilson Galafassi disse
Boa tarde.
Você conseguiu numa máquina onde rode squid junto fazer efetivamente o bloqueio da transferência de arquivos?
Eu testei aqui e não obtive sucesso. Alguma sugestão sobre regas para o proxy? Só não consegui fazer funcionar isso. De resto maravilha.
Abraço,
Wilson
Sérgio disse
Bom dia a todos, estou com problema para instalar o msn-proxy, qdo digito make, ele me retorna o seguinte erro
[root@web msn-proxy]# make
cc -g -Wall -O2 -pipe -I/usr/include/mysql -I/usr/include/mysql -fno-builtin-log -c mysql.c
mysql.c: In function `db_init’:
mysql.c:279: error: `MYSQL_OPT_RECONNECT’ undeclared (first use in this function)
mysql.c:279: error: (Each undeclared identifier is reported only once
mysql.c:279: error: for each function it appears in.)
make: ** [mysql.o] Erro 1
Uso o conectiva 10, gcc3.3, mysql 4.0, ja tentei de tudo, mais ainda não consegui, se alguém puder me ajudar ficarei muito grato
Carlos Oli disse
O msn-proxy não está efetivamente bloqueando a transferência de arquivos, alguém pode me ajudar?
Outra situação, as vezes os usuários não conseguem conectar, apresenta a mensagem:
debug: connection from [192.168.3.93]
connected to [messenger.hotmail.com:1863]
debug: command blocked: USR 107 igor_olicenter@hotmail.com 1444216430.25379157.10112863
payload: [(null)]
debug: ns client pre command not accepted
USR 107 igor_olicenter@hotmail.com 1444216430.25379157.10112863
payload: [(null)]
dubelon disse
Parabéns pelo tutorial.
O msn-proxy rodou corretamente no Fedora 5, onde criei o ambiente de teste, e se mostrou uma ótima ferramenta para gerenciamento do tráfego msn interno. Sem discussões.
Grato.
Fernando disse
Estou com o bom e velho problema.. Ja refiz 2 vezes a instalação completa e nada!
Uso Debian Etch c/ squid3 transparent:3128, firewall ACCEPT.
root@root# /usr/local/bin/msn-proxy -v
info: reading config file [/usr/local/etc/msn-proxy/msn-proxy.conf]
SQL: (SHOW TABLES)
SQL: (SELECT connect, save_msg, save_contacts, commands, internal_host FROM defaults LIMIT 1)
config file : /usr/local/etc/msn-proxy/msn-proxy.conf
default ns host : messenger.hotmail.com
default ns port : 1863
listen host : 0.0.0.0
listen port : 1863
backlog : 10
max clients : 800
max ctl clients : 10
port range begin : 25000
port range end : 30000
ctl read timeout : 5
client read timeout : 600
client write timeout : 60
server read timeout : 600
server write timeout : 60
client connect timeout: 180
ACLs
connect : ALLOW
log messages : YES
save_contacts : YES
listen on [0.0.0.0:1863]
SQL: (DELETE FROM sb)
SQL: (UPDATE contacts SET contact_status = ‘OFF’, contact_deny = contact_deny & ~4194304)
SQL: (UPDATE users SET status = ‘OFF’)
Se alguem conseguiu resolver.. OOObrigado.
Malcon disse
Olá a todos,
Gostaria de saber como faço para apagar as mensagens salvas no banco mysql pelo msn-proxy?
pitombera disse
Bom, uma forma é você dando um `delete` diretamente no banco de dados. Não lembro de ter visto essa opção na webgui do msn-proxy.
[]’s
MALCON disse
E COMO SERIA O COMANDO PARA DELETAR AS MENSAGENS SALVAS PELO MSN-PROXY NO BANCO DE DADOS?
pitombera disse
Este script remove todos os logs ou por usuario, entao, muito cuidado.
Bash script para limpar os logs
#!/bin/sh
#
# Exemplo para MySQL
#
# User do MySQL
MY_USER=”user”
# Senha do MySQL
MY_PASS=”senha”
# Banco de Dados do msn-proxy
MY_DB=”msn-proxy”
# Logs apenas de um usuario
TARGET=”usario@hotmail.com”
## Daqui pra baixo nao mexe
MYSQLC=$(which mysql)
[ $MYSQLC = "" ] && exit 1
if[ $TARGET != "" ]
then
DELETE=”DELETE FROM log where email = ‘${TARGET}’”
else
DELETE=”DELETE FROM log”
fi
$MYSQLC -u ${MY_USER} -p${MY_PASS} ${MY_DB} -e “${DELETE}” && \
echo “Log deletado com sucesso” || \
echo “Erro ao deletar log”
#### FIM ###
Salve em um arquivo, ex.: del_logmsn.sh
Execute: sh del_logmsn.sh
ou
chmod +x del_logmsn.sh
./del_logmsn.sh
Sempre que precisar limpar os logs de um User especifico mudar a variavel TARGET, caso queira remover todo o log, deixar variavel TARGET em branco: TARGET=”"
Espero ter ajudado
[]’s
Evandro disse
Para resolver o MYSQL_OPT_RECONNECT, faça o seguinte:
1) Abra o mysql.c;
2) Procure por MYSQL_OPT_RECONNECT;
3) Altera a variável de MYSQL_OPT_RECONNECT para o número 0 ou 1, de acordo com a necessidade.
mysql_options(&mysql->mysql, MYSQL_OPT_RECONNECT, &reconnect);
mysql_options(&mysql->mysql, 1, &reconnect);
// ou
mysql_options(&mysql->mysql, 0, &reconnect);
[]’s
pitombera disse
Desconheço essa informação mas fica aí como dica do Evandro.
Obrigado pela Colaboração.