sexta-feira, 29 de agosto de 2008

Controlando o uso do MSN com o msn-proxy

O MSN tornou-se um dos mais utilizados (senão o mais utilizado) protocolo de mensagens instantâneas da atualidade. Seja por seus recursos interessantes (e muitas vezes supérfluos) ou seja pelo simples fato dele ser padrão do Windows, a verdade é uma só: ele é obrigatório para qualquer internauta, seja para o uso doméstico ou profissional.

Mas com a crescente demanda do uso da ferramenta, uma necessidade cada vez maior no ambiente empresarial é a possibilidade de inibir o abuso em seu uso, tentando fazê-la ser utilizada somente para uso profissional. Isso é algo realmente complicado de se obter, pois normalmente depende-se da boa vontade e bom senso dos usuários, que nem sempre colaboram e entendem bem essa situação.

Pensando nisso, muitas pessoas tem procurado uma forma de controlar o acesso MSN nas empresas. Percebo pelas estatísticas de meu blog que muitos tentam resolver tal questão usando o MSN como um transporte do servidor XMPP Openfire com o plugin Gateway IM. Infelizmente, tal plugin ainda não possui esses recursos incorporados, o que acaba frustrando muito quem o utiliza (existem formas de fazê-lo, mas as mesmas geralmente são bastante trabalhosas - veja por exemplo o plugin packet filter).

Com isso cresce a procura por ferramentas que sejam Proxys MSN. Existem algumas soluções comerciais excelentes, mas que acabam tendo um custo proibitivo para muita gente. Já no campo do Open Source/Software Livre não parece existir muito interesse em desenvolver algo assim (pelo menos não que seja de meu conhecimento. Dicas são bem vindas) . Até onde sei existe apenas um proxy MSN, que apesar de apresentar ainda uma série de bugs está em constante desenvolvimento, e além de tudo, é desenvolvido por um brasileiro: é o msn-proxy.

O msn-proxy é exatamente o que o nome diz: um proxy MSN. Com ele você pode controlar quais contatos podem aparecer na lista de seus usuários, pode controlar quais versões do protocolo MSN podem ser usadas (controlando assim os clientes possíveis), monitorar conversas, entre outras coisas. Basicamente, ele é composto de duas ferramentas: o proxy propriamente dito e a interface web.

O proxy deve ser rodado como daemon no computador que controlará o fluxo MSN. Ele é quem fará a conexão final com os servidores da rede MSN e todo tráfego da porta 1863 de sua rede interna deve ser redirecionado para ele. Dessa forma, sempre que um cliente MSN tentar se conectar será interceptado pelo msn-proxy que irá controlar o acesso conforme suas configurações.
A interface web roda em um servidor HTTP e é de simples instalação, sendo desenvolvida em PHP. Nela você irá configurar as opções gerais de acesso MSN (protocolos, bloqueios, etc...), as opções de cada usuário (protocolos, contatos permitidos e bloqueados, etc...), e ainda poderá controlar quem está online, além é claro da opção de monitoração das conversas É importante também dizer que é necessário um DB MySQL onde as configurações serão armazenadas.

Mas como nada é perfeito, o msn-proxy ainda apresenta uma grande quantidade de bugs, que conforme o desenvolvedor Luiz Otávio Oliveira Souza (loos-br) estão sendo ou serão resolvidos. Mensagens não enviadas, falhas no bloqueio de alguns protocolos e problemas conceituais na interface são alguns dos problemas que ainda existem e que espero em breve sejam solucionados.

Então, após alguns contatos com o Luiz, percebemos que ele está com pouco tempo para poder se dedicar mais a ferramenta. Assim, a equipe da Propus (mais especificamente o Diego Morales, que tem se envolvido mais nisso), está trabalhando numa série de melhorias, tanto na interface web quanto no proxy em si. As primeiras alterações já foram enviadas para o Luiz que em breve deve adicionar as mesmas as novas versões do produto.

Quem quiser testar a ferramenta é muito bem-vindo. Incentivo o máximo o uso da mesma, e também incentivo aos usuários que deixem seus comentários nesse post para que a Propus, o Luiz, ou outra pessoa que se interesse em desenvolver a ferramenta (fiquem à vontade, pois software livre é isso mesmo) possa analisar o feedback dos usuários e melhorar o que for preciso.

Juntos vamos fazer o msn-proxy a ferramenta definitiva para controle de acesso do protocolo MSN.

30 comentários:

  1. Ótima notícia Marcelo! Depois do meu fiasco com o packet filter estava precisando de alguma solução assim! Gostaria de poder ajudar, embora nao seja programador, poderia testar o software (ou alguma outra tarefa que esteja no meu alcance). Estou na lista do Openfire, qualquer coisa é só chamar!

    ResponderExcluir
  2. Luiz, uma coisa que todos podemos fazer para ajudar no desenvolvimento da ferramenta é colocar a mesma em uso e começar a elencar os bugs e problemas.

    Com isso podemos passar para o Luiz (desenvolvedor), e para quem mais se interesse, uma idéia do que precisa ser melhorado e corrigido.

    Te dou a maior força pra testar o msn-proxy. :-)

    []s

    ResponderExcluir
  3. Eu utilizo o a ultima versão do msn-proxy no debian, e no debian percebi que as vezes ele cai o serviço sozinho, e tem msn como por exemplo o meu que não consegue conecta. Mas tirando esses dois problemas que estou tendo, o resto está bom.
    =)

    ResponderExcluir
  4. estou usando a ferramenta em um servidor opensuse 11, e um bug que mais acontece e de usuarios que se conecta num determinado dia, e no outro nao consegue.

    ResponderExcluir
  5. Eu, na falta de uma solução open na epoca, comprei o IMControl. funciona muito bem...
    Apesar de jah estar usando o IM a algum tempo de ter comprado as licenças vou testar o MSN-Proxy..

    Sandro.

    ResponderExcluir
  6. utilizo o msn-proxy, mais quando tento colocar-lo na mesma maquina que esta intalado o squid ele nao funciona o que pode ser que fiz de errado

    meu contato e:
    nilton_de_oliveira@msn.com

    ResponderExcluir
  7. Você recebe alguma mensagem de erro ?

    Tem mais alguma informação para passar ?

    []s

    ResponderExcluir
  8. simplismente nao funciona e quando funciona da erro de coneccao, o mesmo erro que da quando esta com a hora atrasada na maquina cliente

    ResponderExcluir
  9. Parabens pelo post, utilizo o msn proxy para controle do msn, embora exista bugs como voce disse eu acho o software fantastico,
    Parabens!!!

    ResponderExcluir
  10. Obrigado pelo contato.

    Se tiver dicas sobre o software, não deixe de postar aqui nos comentários.

    []s

    ResponderExcluir
  11. Esse tal programa consegue controlar o msn de outras pessoas certo??

    E k axo k estao a controlar o meu..

    O k poxo fazer para ixo n acontecer??

    Pf ajudem-me

    ResponderExcluir
  12. O msn-proxy permite que você bloqueie/restrita o acesso e/ou uso do msn numa rede.

    E só isso.

    Acho que não parece ser seu caso.

    []s

    ResponderExcluir
  13. Já tentei colocar o msn-proxy para funcionar varias vezes , mas não tive sucesso.

    ResponderExcluir
  14. Olá amigos, uso o msn-proxy em uma rede de 160 máquinas e está rodando bonito. O único problema que estou tendo é com as novas versões do messenger. Com a versão 2009 não tenho mais a lista de contatos online de cada conta, é como se todos os contatos da pessoas estivessem off, porém não estão. Alguém já passou por isso?
    Vlw

    Sérgio ( wish_sometimes@hotmail.com )

    ResponderExcluir
  15. Olá Sérgio.

    Ainda não passei por tal problema. Qual versão do Openfire você está rodando ? 3.6.X ?

    Você já tentou postar sua dúvida na lista Openfire-BR ? Somos quase 300 usuários, o que aumenta as chances de você resolver seu problema. :-)

    []s

    ResponderExcluir
  16. Bom dia Amigos

    Estou testando a ferramenta na minha empresa, aqui temos simultaneamente umas 350 conexoes MSN Ativas, estou testando com uns 30 usuarios por enquanto e a ferramenta esta funcionando perfeitamente.
    O que eu gostaria de passar para o desenvolvedor, é a implementacao de uma regra para utilizacao do msn por dominio, tipo eu gostaria de restringir meu usuario a conversar e conectar somente com o dominio @minhaempresa.com.br.
    Acredito que seja possível esta implementacao, tendo em vista que eu ja vi isto funcionando na solucao Messenger Policy da BRC.
    Seria Possível?

    Douglas Ricardo Lucio
    douglaslucio@gmail.com

    ResponderExcluir
  17. Acabei de instalar o MSN-Proxy aqui na empresa, são 40 maquinas com um CentOS 5.2. Funcionou redondo hoje até a hora do almoço, quando parou de armazenar as mensagens do nada. Alguma ideia do que possa ser? Além deste detalhe ele as vezes não deixa algumas contas se conectarem e sem motivo algum volta a fucnionar.

    Marcos Junior
    marcosjr@gmail.com

    ResponderExcluir
  18. Repondendo: Reiniciei o servidor e tudo voltou a funcionar. Problemas encontrados até agora:
    - Algumas mensagens não são enviadas para o destinatario e outras não são registradas no banco. Estes dois problemas parecem que não são dependentes um do outro.
    - A interface Web está um pouco lenta, estou observando que alguns relatorios demoram muito p/ serem gerados, como estamos agendando uma troca do servidor não estou dando muita atenção ao caso.
    - Ultimo e mais chato dos problemas, alguns usuários do nada param de entrar e novamente do nada voltam a conectar.
    De resto a ferramenta funcionando. Aviso se tiver mais detalhes.

    Marcos Junior
    marcosjr@gmail.com

    ResponderExcluir
  19. eu estava usando a versão 0.5 e tudo estava ok, exceto pelo fato do programa parar de rodar de vez em quando. Surgiu o novo MSN, não conectava de maneira alguma. Veriquei por atualizações e descobri a versão 0.6.3. Instalei, agora parou de funcionar. Na primeira tentativa de logar o MSN 2009 dá um pau e suspende a execução do programa. Sem o proxy o MSN 2009 funciona. Alguma idéia de como resolver isso ?

    ResponderExcluir
  20. Provavelmente essa versão 2009 usa uma versão mais nova do protocolo MSN que o msn-proxy não suporta.

    Você já tentou usar a versão anterior do MSN pra ver se funciona ? Teste e me avise por favor.

    []s

    ResponderExcluir
  21. Na sexta-feira reinstalei a versão 8.5 e o programa continuou sendo abortado. Eu já havia postado um recado no sourceforge, hj cedo verifiquei e solicitaram que atualizasse para versão 0.7. Atualizei, funcionou com o 8.5 e com o 2009. Houve mudança em uma das tabelas. Estou testando. Por hora obrigado.

    Carlos C Scalco

    ResponderExcluir
  22. Tenho instalado em máquinas com Fedora 10 e Centos 5.2 e 5.3 e rodou tudo perfeito. Parabéns pela ferramenta.

    \m/

    Dorival - TotalService.

    ResponderExcluir
  23. Só esclarecendo.

    O msn-proxy não é de minha autoria.

    O projeto é do Luiz Otavio Oliveira Souza.

    []s

    ResponderExcluir
  24. cc -g -Wall -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: No such file or directory
    In file included from ns-data.h:24,
    from user.h:31,
    from ns.h:24,
    from msn-proxy.c:26:
    client.h:35: error: field 'read' has incomplete type
    client.h:36: error: field 'write' has incomplete type
    client.h:37: 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:36: error: field 'read' has incomplete type
    server.h:37: 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
    In file included from msn-proxy.c:28:
    ctl.h:33: error: field 'read' has incomplete type
    msn-proxy.c: In function 'cleanup':
    msn-proxy.c:58: warning: implicit declaration of function 'event_base_free'
    msn-proxy.c: In function 'main':
    msn-proxy.c:242: warning: implicit declaration of function 'event_init'
    msn-proxy.c:242: warning: assignment makes pointer from integer without a cast
    msn-proxy.c:249: warning: implicit declaration of function 'event_set'
    msn-proxy.c:249: error: 'EV_READ' undeclared (first use in this function)
    msn-proxy.c:249: error: (Each undeclared identifier is reported only once
    msn-proxy.c:249: error: for each function it appears in.)

    msn-proxy.c:249: error: 'EV_PERSIST' undeclared (first use in this function)
    msn-proxy.c:250: warning: implicit declaration of function 'event_add'
    msn-proxy.c:255: warning: implicit declaration of function 'event_dispatch'
    make: *** [msn-proxy.o] Error 1

    ResponderExcluir
  25. Me parece que estão falando bibliotecas instaladas em seu sistema.

    client.h:27:19: error: event.h: No such file or directory

    []s

    ResponderExcluir
  26. Em um cliente da minha empresa existe o msn-proxy rodando, porém não consigo descobrir a versão, acredito que seja a 0.5, porém alguns problemas com a interface web como lentidão começaram a surgir, então eu pensei em atualizar para a versão 0.7, verifiquei e existe várias diferenças na tabela contacts tem algum pacote que atualize isso? pois não queria perder os dados de com quem é possível conversar...

    Obrigado

    ResponderExcluir
  27. Olá.

    Desconheço se existe algum pacote do tipo, mas você pode fazer um dump da sua base e tentar alterar a mesma para a nova versão para testar.

    Caso não funcione, o dump irá permitir que você faça o downgrade.

    Se descobrir algo mais sobre como efetuar essa migração do DB, posto aqui nos comentários.

    []s

    ResponderExcluir
  28. Muito boa ferramenta,
    Parabéns ao Luiz.
    Estive analisando o bd reparei que, algumas informações não são gravadas nele, por exemplo:
    - Aviso de Monitoramento, se vai ou não avisar;
    - bloqueio de imagens, transferencias;
    - etc.
    Estou errado com relação a isso?
    senão como posso fazer para localizar as informações gravadas em outro local?

    Desde já agradeço a atenção!

    ResponderExcluir
  29. boa tarde, hoje através do site do hotmail pode-se conversar com os contatos do windows live, ta ai minha pergunta, o msn-proxy monitora também estas conversas, ou apenas as feitas através do software windows live messenger, a resposta será muito útil.
    Agradeço desde já, obrigado

    ResponderExcluir
  30. Olá.

    O MSN-Proxy monitora somente conversas realizadas em softwares específicos para tal fim como o próprio Live Messenger ou outros clientes como Pidgin e aMSN por exemplo.

    Não é possíver realizar a monitoração quando as conversas forem realizadas em sites de IM como o I Love Im, Meebo e outros.

    []s

    ResponderExcluir