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

Por: Fernando Cesar Vaini em 18/01/2010


Iniciando o MSN-Proxy



Para iniciar manualmente o msn-proxy, execute um dos comandos abaixo:

# /usr/local/bin/msn-proxy & (roda em background)
ou
# /usr/local/bin/msn-proxy -d & (-d para ver os logs e & para rodar em background)

Para automatizar o procedimento, vamos criar um daemon para ser iniciado junto com o sistema. Crie um arquivo:

# touch /etc/init.d/msn-proxy

Edite o novo arquivo:

# mcedit /etc/init.d/msn-proxy

Agora insira o seguinte conteúdo no arquivo:

#!/bin/bash
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

Agora execute os seguintes comandos para dar permissão de execução e iniciá-lo automaticamente:

# chmod +x /etc/init.d/msn-proxy
# update-rc.d msn-proxy defaults


Acessando os LOGs

No seu browser preferido digite o seguinte endereço (troque 192.168.0.1 pelo IP do seu servidor que roda o msn-proxy ou pelo nome do mesmo):

http://192.168.1.10/msn-proxy/

ou

http://linux/msn-proxy/

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

Integração Apache / ASP

Softmodem compatível com Smart Link em kernel Linux 2.6.24 ou superior

Instalando o CMS Joomla

Instalação do Apache, MySQL e PHP

Configurando o DjbDNS

  
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