MSN-Proxy no Debian Lenny

Tenho visto muita gente com dúvida sobre a instalação e utilização do MSN-Proxy. O tutorial que segue foi produzido com base no Debian Lenny, mas serve como base para outras distribuições também. Foi exaustivamente testado e funciona 100%.

[ Hits: 64.546 ]

Por: Fernando Cesar Vaini em 18/01/2010


Introdução



Este é meu primeiro artigo para o VOL. Resolvi escrevê-lo porque iniciei o uso do MSN-Proxy há pouco mais de um ano. Penei muito para fazê-lo funcionar redondinho. Na internet ainda não há tantas informações quanto eu esperava. Espero que gostem e que seja útil, pois o artigo é o resultado de meses de pesquisa e testes.

Com a crescente demanda de comunicação online, um dos programas mais usados é o MSN (atual WLM ou Windows Live Messenger). Muitas empresas, principalmente as chamadas EPP (Empresa de Pequeno Porte) têm aumentado gradualmente a porcentagem de suas transações comerciais feitas via chat, utilizando programas como o WLM. Isso reduz consideravelmente o custo com ligações interurbanas ou internacionais, agiliza as negociações, além de dar certa segurança para ambas as partes, pois os programas atuais são capazes de gravar LOGs das conversas, e em caso de problemas, basta consultar um destes registros para resolver a questão.

Entra em cena o chamado "espertinho", aquele funcionário que conhece o funcionamento do programa e o configura para não gravar os logs, enquanto ele tem uma conversa comprometedora, ou até mesmo troca informações confidenciais com outra pessoa. Depois o "espertinho" ativa novamente os logs, e é como se nada tivesse acontecido. Além desse caso específico, tem aqueles que não produzem o que podem porque ficam conversando ao invés de trabalhar.

Por essas e outras, empresas estão implantando sistemas para gravação dessas conversas sem a interferência de qualquer funcionário. Mas para os que irão implantar o sistema, cuidado com a "invasão de privacidade". Qualquer funcionário que não foi informado que suas conversas estão sendo monitoradas, descobrir o monitoramento e alegar invasão de privacidade, pode processar a empresa. Por isso, para se proteger, faça um documento para que cada funcionário assine, declarando que está ciente que suas conversas estão sendo monitoradas.

O programa

O MSN-Proxy é um programa que roda em background e "loga" todas as conversas que saem pela porta 1863. Atualmente está na versão 0.7, e ainda está em pleno desenvolvimento. Um ponto positivo é a possibilidade do administrador bloquear contatos, e outro é avisar o funcionário que a conversa está sendo monitorada. Um ponto negativo é que a interface web para ler os logs não é protegida (como o webmin por exemplo, que pede senha), e outro é que a mensagem que o usuário recebe fica somente na rede local, ou seja, a pessoa com quem o "monitorado" vai conversar não fica sabendo que a conversa será monitorada.

Fique sempre atento a novas atualizações, pois sempre virão novas funcionalidades.

    Próxima página

Páginas do artigo
   1. Introdução
   2. Instalação do MSN-Proxy
   3. Configuração do MSN-Proxy
   4. Iniciando o MSN-Proxy
   5. Atualizando o MSN-Proxy
Outros artigos deste autor

Servidor de internet para iniciantes (Debian Squeeze)

Leitura recomendada

Dicionário no Firefox

Avaliando as dicas de segurança do Banco do Brasil

Um pouco do protocolo HTTP

Interoperabilidade monitorando servidores e estações Windows com servidor Linux usando MRTG

Conhecendo e testando vários navegadores de Internet

  
Comentários
[1] Comentário enviado por arend em 19/01/2010 - 11:38h

Gostaria de expor meu cenário para um auxílo:

Criei uma maquina virtual e configurei o msn-proxy nela, porem meu proxy é outra maquina, pergunta como faço para que a maquina virtual pegue ou receba os logs da maquina de proxy da rede ??

obrigado.

[2] Comentário enviado por R.S.P Andre em 19/01/2010 - 14:30h

Bom e direto ao assunto.

exelente artigo.. Em breve implantando na empresa.

que esse seja o primeiro de muitos outros bons artigos.

Abraço!

[3] Comentário enviado por ralfoasis em 19/01/2010 - 15:07h

Amigo não criou as tabelas no banco de dados poderias me ajudar??

[4] Comentário enviado por junior em 19/01/2010 - 16:21h

@arend: na regra do iptables, além de redirecionar a porta 1863 para ela mesma, redirecione o tráfego 1863 para o servidor onde está instalado o MSN-Proxy.

@ralfoasis: Qual erro aparece?

[5] Comentário enviado por arend em 21/01/2010 - 12:59h

Olâ fiz o redirecionamento, monitorei com iptraf estão chegando os pacotes no servidor onde esta o msn-proxy, porem a web não esta apresentando dado algum somente a janela default dizendo que ninguem esta conectado e não aparece os off line.

[6] Comentário enviado por vaini em 22/01/2010 - 13:54h

@ralfoasis: voce se certificou de que quando criou o banco, colocou o nome certinho do banco, e entre crases. Tem ate uma obs no artigo.

em todo o caso, execute o seguinte:

# mysql -p
(digite SENHA_DO_MYSQL)

Dentro do MySQL, execute os seguintes comandos (não se esqueça do ponto-e-vírgula no final de cada linha)

mysql> CREATE DATABASE `msn-proxy`;

depois posta ai se deu uma mensagem dizendo que o banco foi criado com sucesso ou se o banco ja existe

[7] Comentário enviado por chaplinux em 09/03/2010 - 00:14h

Só corrigindo o script
-------------------------------------
#!/bin/bash
interno=eth1 # Sua Placa de rede Local

start() {
echo "Iniciando o MSN Proxy..."
/usr/local/bin/msn-proxy -b &
}
stop() {
echo "Finalizando o MSN Proxy..."
pkill -9 msn-proxy >> /dev/null
iptables -t nat -D PREROUTING -i $interno -p tcp --dport 1863 -j REDIRECT --to-port 1863 >> /dev/null
}

case "$1" in
start) start
;;
stop) stop
;;
*) echo "Uso correto: msn-proxy (start|stop)"
;;
esac

[8] Comentário enviado por tiagouzai em 09/03/2010 - 16:00h

Vaini, ao dar o comando show tables; no mysql ele da a seguinte mensagem:

mysql> use msn-proxy;
Database changed
mysql> show tables;
Empty set (0.00 sec)

Ele somente criou o banco e não as tabelas.

[9] Comentário enviado por vaini em 09/03/2010 - 16:12h

@tiagouzai

voce executou o msn-proxy antes desses? pois é o proprio msn-proxy que cria as tabelas na base de dados.
tenta executar novamente o msn-proxy.

[10] Comentário enviado por tiagouzai em 10/03/2010 - 14:10h

Tentei de tudo, a única solução foi criar as tabelas manualmente. ai deu certo. Porem startei o msn-proxy e quando acesso pelo browser ele me da a mensagem:

Parse error: syntax error, unexpected T_VARIABLE in /var/www/msn-proxy/mysql.inc.php on line 23

Acessei o arquivo e na linha 23 tá informando o usuario root.

Revi os arquivos para ve se tem algo errado, mas ta dificil.

[11] Comentário enviado por tiagouzai em 10/03/2010 - 14:25h

Bom, o que um ; não faz........era só o que estava faltando no arquivo mysql.inc.php antes da linha 23.........Tudo OK.......vlw pela ajuda Vaini.

[12] Comentário enviado por manoserpa em 05/04/2010 - 13:55h

Bom dia.

Estou com dois problemas, quando aplico a regra no firewall o Msn fica caindo, ele detecta que o usuário está conectado mas desconecta. Quando marco a caixa mostrar usuários aparece a seguinte mensagem.

SELECT FAIL: (SELECT DISTINCT contact_chat FROM contacts WHERE email = 'meuemail@hotmail.com' AND contact_chat = 'YES' )

Alguma dica?

Valeu.

Um abraço.

[13] Comentário enviado por carlossong em 16/04/2010 - 10:09h

Bom dia pessoal... no meu caso, uso o domínio da empresa nas contas do messenger, tenho que fazer alguma configuração a mais? Obrigado

[14] Comentário enviado por manoserpa em 20/04/2010 - 08:40h

Bom dia.

Estou com o seguinte problema no msn-proxy, no log dele aparece as mensagens abaixo.

debug: connection from [192.168.0.192]
debug: ns client disconnect

Onde a máquina 192.168.0.192 é o cliente tentanto se conectar.

Valeu.

[15] Comentário enviado por luivilella em 25/04/2010 - 17:44h

Amigo vaini parabens pelo artigo nota 10.

[16] Comentário enviado por muripalombit em 05/05/2010 - 15:50h

daew cara blz.. parabéns pelo o artigo, muito bom!

mas seguinte to com um dúvida... instalei tudo certinho como está aí.. mas meu firewall/proxy estão instalados em outra máquina.. aí na hora na regra do iptables fiquei perdido..(não entendo muito de firewall rsrs).. como posso fazer?!!

e quando acesso pelo navegador, aparece somente a tela default do proxy-msn.. seleciono para mostrar contatos offline e não aparece nada..

esclaressa minha dúvidas por favor :)

obrigado

[17] Comentário enviado por celso_linuxer em 17/05/2010 - 12:05h

Cara por favor me ajuda quando dou o comando

# /usr/local/bin/msn-proxy

cannot init database

ele nao estra criando as tables me ajude. Preciso implantar aqui na empresa

seguinte erro ao abrir o browser

Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'root'@'localhost' (using password: YES) in /var/www/msn-proxy/mysql.inc.php on line 28
fail to connect to mysql\n

[18] Comentário enviado por L!N5X em 17/05/2010 - 20:10h

Olá seguir seu tuto e está perfeito muito bem explicado, mas estou com uma dificuldade.

Instalei o Debian 5 (modo texto) numa máquina virtual, tudo ok. Acesso o amsn no debain "nativo" e não consigo visualizar os usuários conectados pelo browser. Teria outra configuração que deveria fazer?

[19] Comentário enviado por iltoncesar em 08/06/2010 - 10:34h

Valewww era isso q eu tava procurando...

[20] Comentário enviado por danielrsj em 12/07/2010 - 16:16h

tenho várias filiais.

Instalei o msn-proxy na matriz. e funciona beleza.
Na matriz usei o seguinte comando:
iptables -t nat -A PREROUTING -p tcp --destination-port 1863 -j REDIRECT --to-ports 1863

Porém nas filiais não queria instalar novamente o msn-proxy, pois ficaria com várias bases para gerenciar.
Portanto executei o seguinte comando:
iptables -t nat -I PREROUTING -p tcp --dport 1863 -j DNAT --to-destination 192.168.0.1

onde 192.168.0.1 seria o ip do servidor que tem o msn-p´roxy instalado.

Porém nas filiais não funciona.

Algúem poderia me explicar a forma correta de fazer isso?

obrigado!

[21] Comentário enviado por renanpro03 em 26/07/2010 - 18:32h

Cara, mto show o topico, fiz tudo certinho mas não estou conseguindo conectar o MSN, ja adicionei a sua linha de firewall, outras q achei incluindo do amigo ai do post de cima mas não vai... o q sera???

[22] Comentário enviado por cainf em 23/09/2010 - 10:22h

Amigo eu parei na parte 3 no meu caso nao criou as tabelas poderia dizer como faço para cria-las manualmente ?

Grato

[23] Comentário enviado por tiagouzai em 30/09/2010 - 16:27h

Amigos que estão com problemas na criação das tabelas, show tables não mostrou nada. Façam o seguinte:

1- Acessem o mysql: mysql -p

apos isso copie e cole o texto abaixo.

CREATE TABLE `defaults` (
`internal_host` varchar(128) not null,
`connect` enum('YES', 'NO') not null default 'YES',
`save_msg` enum('YES', 'NO') not null default 'YES',
`save_contacts` enum('YES', 'NO') not null default 'YES',
`commands` int not null default 0,
`warnemail` varchar(128) not null default 'administrador@meudominio.com.br',
`warndn` varchar(255) not null default 'MSN-Proxy - Administrador do Sistema',
`warnmsg` varchar(255) not null default 'Para sua segurança esta mensagem eta sendo monitorada.',
`msgfont` varchar(128) not null default 'Arial',
`msgcolor` varchar(128) not null default 'black',
primary key(internal_host));



CREATE TABLE `contact_groups` (
`email` varchar(255) not null,
`name` varchar(255) not null,
`id` varchar(255) not null,
primary key(`email`, `name`));

CREATE TABLE `contacts` (
`email` varchar(255) not null,
`contact_email` varchar(255) not null default '',
`contact_dn` varchar(255) not null default '',
`contact_deny` int unsigned not null default 0,
`contact_chat` enum('NO', 'YES') not null default 'NO',
`contact_status` enum('NLN', 'BSY', 'IDL',
'BRB', 'AWY', 'PHN',
'LUN', 'HDN', 'OFF')
not null default 'OFF',
`contact_lists` int not null default 0,
`contact_flags` bigint not null default 0,
`contact_flags2` bigint not null default 0,
`contact_group` varchar(255) not null default '',
`contact_info` varchar(255) not null default '',
`contact_media` varchar(255) not null default '',
`contact_uid` varchar(255) not null default '0',
`contact_obj` text not null default '',
`contact_image` binary not null,
primary key(`email`, `contact_email`));

CREATE TABLE `log` (
`id` int unsigned not null auto_increment,
`sb_id` int not null,
`date` datetime not null,
`email` varchar(255) not null default '',
`display_name` varchar(255) not null default '',
`to` text not null default '',
`type` varchar(50) not null default 'unknown',
`content` text not null default '',
primary key(`id`));

CREATE TABLE `sb` (
`id` int not null auto_increment,
`email` varchar(255) not null,
`since` datetime not null,
primary key(`id`, `email`));

CREATE TABLE `users` (
`email` varchar(255) not null,
`display_name` varchar(255) not null,
`last_addr` varchar(255) not null,
`last_seen` datetime not null,
`connect` enum('YES', 'NO') not null default 'YES',
`save_msg` enum('YES', 'NO') not null default 'YES',
`save_contacts` enum('YES', 'NO') not null default 'YES',
`commands` int not null default 0,
`status` enum('OFF', 'NLN', 'BSY', 'IDL',
'BRB', 'AWY', 'PHN',
'LUN', 'HDN')
not null default 'OFF',
primary key(`email`));


[24] Comentário enviado por juniorphy em 10/10/2010 - 21:01h

Excelente artigo, no Debian funcionou perfeito !!

Preciso fazer rodar no CentOS - Fedora mas tenho problemas com lmysqlclient

Provavelmente seja o pacote libmysqlclient15-dev que não tem nos repositórios YUM !

Caso puder me ajudar ! Agradeço !

Valeus !

[25] Comentário enviado por leandrod_86 em 14/10/2010 - 09:17h

Bom dia,
Gostaria de saber se tem com apagar os logs do msn-proxy. Tipo apagar todas as conversas gravadas de 1 usuario?, ou algo assim. Agradeço a ajuda.

[26] Comentário enviado por juniorphy em 18/12/2010 - 02:07h

Tenho uma pergunta !

Digamos que tenho 3 Placas de Rede !

eth0 - Entra o Link - Internet

eth1 - Rede 01 - Empresa Setor X

eth2 - Rede 02 - Empresa Setor Y

Existe a posibilidade de eu instalar o MSN-PROXY para que monitore as duas Interfaces (eth1/eth2) ?

Eu criaria duas tabelas ?

Como faria ?

[27] Comentário enviado por venom_rafael em 21/12/2010 - 14:16h

Parabens pelo artigo, segui ele e deu tudo certo funciona otimamente bem

obs: Para quem esta com o erro "cannot init database" verificar se nao tem um espaco no final desta linha "localhost|3306|root|SENHA-DO-MYSQL|msn-proxy", removendo o espaco resolveu meu problema.

Abraco.

[28] Comentário enviado por krashs em 11/04/2011 - 12:16h

galera eh o seguinte, to instalando aqui em uma virtual, tenho meu firewall fisico, o fisico com ip 192.168.0.1, o virtual com ip 192.168.0.15, como faco para que as conexoes passe pelo msn-proxy?
ja inseri a seguinte regra no meu firewall fisico: IPTABLES -t nat -A PREROUTING -s 192.168.0.133 -p tcp --dport 1863 -j REDIRECT --to 192.168.0.15

sendo que o ip 192.168.0.133 é a minha maquina que estou fazendo testes

[29] Comentário enviado por t3ch_security em 06/06/2011 - 14:55h

Boa tarde,

no meu caso criou as 6 tabelas no banco msn-proxy ele apresenta o resultado normal com o comando show tables.
Mas quando acesso pelo browser:
MSN Proxy - Usuários

Configurações

Nenhum usuário conectado
Nenhum usuário desconectado


Desde já agradeço.

[30] Comentário enviado por vaini em 06/06/2011 - 16:01h

t3ch security, vc adicionou aquela regra de iptables??
sem, ela realmente não aparece nenhum usuario conectado...

para verificar se esta funcionando, vc pode executar o comando:

/usr/local/bin/msn-proxy -v

-v = verbose, exibe o resultado em tela...

[31] Comentário enviado por t3ch_security em 07/06/2011 - 10:24h

Vaini, realmente a regra do iptables estava adicionada mas em local incorreto. Agora deu certo. Muito obrigado pela ajuda e parabéns pelo artigo, muito bom mesmo.

[32] Comentário enviado por HenriqueRJ em 21/06/2011 - 15:56h

Amigos,

Instalei e funcionou, porém depois que instalei, tudo parou de funcionar!

Parou o Wordpres,
TorrentFlux,
Ocsreports e etc...

Alguém poderia dar uma dica?

[33] Comentário enviado por HenriqueRJ em 24/06/2011 - 15:52h

Prezados colegas,

Saudações Pinguianas para todos!

Instalei o MSN-Proxy no meu servidor, tudo funcionando beleza!

Eu gostaria de saber se tem como desabilitar algumas mensagens que aparecem nas conversações, tipo:

- Abriu a janela
- Respondeu ao convite
- Fechou a janela

Já pesquisei bastante e não achei nada!

Fico desde já muito agradecido!

[34] Comentário enviado por fbnois em 23/08/2011 - 15:59h

Fiz o tutorial conforme pede o script porém nada é capturada pelo proxy, vale destacar que na mesma maquina que criei o servidor de msn-proxy também tem um squid instalado e funcionando, to precisando muito dessa ajuda, vlw

[35] Comentário enviado por cainf em 27/03/2012 - 16:27h

Para remover todas as conversas de um usuário você pode ir usando a ferramenta phpmyadmin clique na tabela users e delete o contato de quem queira apagar as conversas, abraço

[36] Comentário enviado por cainf em 07/12/2012 - 17:09h

Pessoal não estou encontrando a versão 64 bits do msn-proxy alguém poderia passar o link

Grato

[37] Comentário enviado por d2nemi em 30/01/2013 - 11:33h

Uma pequena atualização no scritp para iniciar o msn-proxy

#!/bin/sh
### BEGIN INIT INFO
# Provides: msn-proxy
# Required-Start: $local_fs $remote_fs $network $mysql
# Required-Stop: $local_fs $remote_fs $network $mysql
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# X-Interactive: true
# Short-Description: Start/Stop Msn-proxy
# author: Nemi Vieira
# E-Mail: d2nemi@gmail.com
### END INIT INFO


S='false'
PA=''

case "$1" in
'-s') S='true';;
start) PA='start';;
stop) PA='stop';;
restart) PA='restart';;
status)PA='status';;
esac

case "$2" in
'-s') S='true';;
start) PA='start';;
stop) PA='stop';;
restart) PA='restart';;
status)PA='status';;
esac

if [ "$PA" = '' ]; then
echo "Uso correto: msn-proxy (start|stop|restart|status)"
exit 0
fi

if [ "$PA" = 'status' ]; then

if ( ps -e | grep -q msn-proxy ); then
echo "Msn-proxy: Iniciado"
exit 1
else
echo "Msn-proxy: Parado"
exit 0
fi

elif [ "$PA" = 'start' ]; then

if ( ps -e | grep -q msn-proxy ); then
if [ "$S" = 'false' ]; then
echo "Msn-proxy: Esta iniciado"
exit 1
fi
else
msn-proxy -b >> /dev/null
if ( ps -e | grep -q msn-proxy ); then
if [ "$S" = 'false' ]; then
echo "Msn-proxy: Iniciado com sucesso"
exit 1
fi
else
echo "Msn-proxy: Erro não foi possívl Iniciar"
exit 0
fi
fi


elif [ "$PA" = 'stop' ]; then
if ( ps -e | grep -q msn-proxy ); then
pkill -9 msn-proxy >> /dev/null
if [ "$S" = 'false' ]; then
echo "Msn-proxy: Parado com sucesso"
exit 1
fi
else
if [ "$S" = 'false' ]; then
echo "Msn-proxy: Não esta iniciado"
exit 0
fi
fi

elif [ "$PA" = 'restart' ]; then

if ( ps -e | grep -q msn-proxy ); then
pkill -9 msn-proxy >> /dev/null
msn-proxy -b >> /dev/null
if ( ps -e | grep -q msn-proxy ); then
if [ "$S" = 'false' ]; then
echo "Msn-proxy: Reiniciado com sucesso"
exit 1
fi
else
if [ "$S" = 'false' ]; then
echo "Msn-proxy: Erro reiniciar"
exit 0
fi
fi
else
if [ "$S" = 'false' ]; then
echo "Msn-proxy: Não esta Iniciado"
exit 0
fi
fi
fi

####INSTALAÇÃO###############
# cria o arquivo msn-proxy no diretorio /etc/init.d
# chmod +x /etc/init.d/msn-proxy
# update-rc.d msn-proxy defaults



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts