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.496 ]

Por: Fernando Cesar Vaini em 18/01/2010


Configuração do MSN-Proxy



Inicialmente vamos criar a pasta que conterá a interface e copiar o conteúdo para ela:

# mkdir /var/www/msn-proxy
# cp -R php/* /var/www/msn-proxy


Configurando as conexões ao banco de dados que será criado:

# mcedit /var/www/msn-proxy/mysql.inc.php

Altere como abaixo:

$host = "localhost";
$user = "root";
$pass = "SENHA-DO-MYSQL";
$db = "msn-proxy";
$port = 3306;

# mcedit /usr/local/etc/msn-proxy/mysql/conf

Altere como abaixo:

localhost|3306|root|SENHA-DO-MYSQL|msn-proxy

Vamos agora criar o banco de dados:

# 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`;
mysql> grant all privileges on `msn-proxy`.* to `msn-proxy`@localhost identified by "SENHA_MYSQL";
mysql> flush privileges;
mysql> exit;

Obs.: Nos comandos acima deve-se usar o acento crase, não aspa simples ou apóstrofo. Onde você vê "SENHA_MYSQL", não esqueça de incluir as aspas.

Continuando...

# chmod 600 /usr/local/etc/msn-proxy/mysql/conf
# mcedit /usr/local/etc/msn-proxy/msn-proxy.conf


Altere como abaixo:

max_clients=200

Obs.: Note que max_clients não é exatamente a quantidade de pessoas online, mas sim a quantidade de usuários que serão monitorados. Ajuste de acordo com sua necessidade. Leve em conta que em uma empresa com 50 funcionários, teoricamente seu max_clients seria = 50. Mas digamos que 40% desses funcionários (20 funcionários) acesse seu msn pessoal na empresa, seu max_clients subiria para 70. E que 4% (2 funcionários) além de acessar o msn de trabalho e pessoal, ainda usa o da namorada que ele descobriu a senha, e o do irmão pra ficar zoando, fora um msn fantasma que ele criou só pra adicionar a "biscataiada" do orkut. Com tudo isso seu max_clients subiria para 78. Então jogue um número superior ao que você julga necessário.

Vamos iniciar o msn-proxy para que o programa crie as tabelas no banco vazio que criamos:

# /usr/local/bin/msn-proxy

Será apresentado um erro. Vamos inserir um conteúdo na tabela:

# 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> use msn-proxy;
mysql> show tables;

Com esse comando você confere se realmente abriu o banco de dados msn-proxy. O resultado na tela será o seguinte:

+-------------------------+
| Tables_in_msn-proxy |
+-------------------------+
| contact_groups          |
| contacts                |
| defaults                |
| log                     |
| sb                      |
| users                   |
+-------------------------+

Execute o comando abaixo (troque o IP 192.168.0.1 pelo IP do seu servidor que irá rodar o Msn-Proxy):

mysql> insert into `defaults`(`internal_host`) values ("192.168.0.1");

Verificando se gravou:

mysql> select * from defaults;

|192.168.0.1|YES|YES|YES|0|adm@server.com|Administrador do Sistema|Para sua segurança esta mensagem esta sendo monitorada!|Arial|black|
1 row in set (0.00 sec)

Se essa foi a resposta do comando, está tudo pronto!

mysql> quit;

Setando o firewall para fazer a captura das mensagens (inclua este comando no seu script de firewall para não precisar executar manualmente toda vez. Troque REDE_INTERNA por sua interface de rede interna, ex. eth1):

# iptables -t nat -I PREROUTING -i REDE_INTERNA -p tcp --dport 1863 -j REDIRECT --to-port 1863

Página anterior     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

Apache 2 + mod_perl 2.0.1

Como verificar conexões abertas no Linux

Apresentando o monitor de redes EtherApe

A vida de quem vive de TI: It Crowd!

Mozilla Firefox: um guia de instalação para iniciantes

  
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