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%.
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.
[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 ??
[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.
[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.
[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.
[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' )
[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..
[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?
[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?
[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???
[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`));
[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.
[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.
[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
[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.
[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
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