Acredito que muita gente já deve conhecer este aplicativo, e que também já viu vários tutoriais e dicas falando sobre o mesmo, porem resolvi adicionar mais um a tantas outras que existem.
Bem, o msn-proxy é um proxy transparente para clientes MSN Mensenger que permite que você controle e monitore o uso do Messenger em sua rede. Possui as seguintes características:
- Suporte ao novo protocolo P2P
- Suporte a acls: “*mycompany@hotma*”
- Suporte a listas de permissões através de ACLs
- Suporte a envio de mensagens de controle
- Suporte a remover/adicionar usuários
- Suporte a procura por logs de usuários
- Suporte a remoção de logs de usuários
- Sistema de visualização de logs de usuários
- Suporte Messenger 9
- Monitor em tempo real
sabendo das informações acima, vamos ao que importa.
1 – Pacotes necessários
Para instalar o MSN-Proxy vamos precisar de alguns pacotes que não são instalados por padrão no Ubuntu Server e vamos dividi-los em Contidos nos Repositórios e os Para compilação.
1.1 – Contidos nos Repositórios
php5
apache2
mysql
make
gcc
g++
libmysqlclient15-dev
1.2 – Para Compilação
libevent
msn-proxy
2 – Procedimento de Instalação dos pacotes
2.1 – Contidos nos Repositórios
2.1.1 – instalando o suporte a php
sudo apt-get install php5 libapache2-mod-php5 php5-gd php5-imagick php5-mysql
Sera feita a verificação dos pacotes a serem instalados e suas respectivas de pendencias e vai ser pedido uma confirmação para instalação, aceite e o procedimento de download sera feito, ao termina, sera iniciada a instalação dos pacotes.
2.1.2 – Instalando o Apache v2
sudo apt-get install apache2
novamente sera feita a verificação de dependências e neste caso a instalação sera feita automaticamente.
2.2.3 – Instando o MySQL
sudo apt-get install mysql-server phpmyadmin
como nos outros verificação dos arquivos de instalação e dependências serão feitas, e o phpmyadmin foi adicionado para facilitar a administração do MySQL, a confirmação de instalação vai ser solicitada, confirme.
2.1.4 – Instalando a Lib Libmysqlclient15-dev
sudo apt-get install -f libmysqlclient15-dev
vai ser verificado as dependências e logo em seguida vai ser solicitada confirmação, confirme
2.1.5 – Instalado compiladores
sudo apt-get install make gcc g++
novamente vai ser verificado as dependências e por fim a confirmação, confirme.
3 – Para Compilação
3.1 – Instalando LibEvent
Inicialmente vamos baixar em diretório de sua escolha o pacote do libevent no site oficial acessando a seguinte url:
http://monkey.org/~provos/libevent-1.4.9-stable.tar.gz
3.1.1 – Procedimentos de instalação
Siga os procedimentos abaixo na ordem em que são disponibilizados que provavelmente nada de errado vai acontecer
tar -xvzf libevent-1.4.9-stable.tar.gz
cd libevent-1.4.9-stable
./configure
make
sudo make install
Finalizando com o comando acima a instalação ainda precisamos fazer uma intervenção no sistema para que a lib que foi instalada seja usada corretamente, para isso vamos proceder da seguinte maneira:
cd /usr/lib
sudo ln -s /usr/local/lib/libevent-1.4.so.2
com isso finalizamos a instalação do libevent.
3.2 – Instalando o MSN-Proxy
Vamos providenciar o download do pacote de instalação acessando o link abaixo:
http://ufpr.dl.sourceforge.net/sourceforge/msn-proxy/msn-proxy-0.7.tar.gz
3.2.1 – Procedimentos de instalação
Siga os procedimentos abaixo na ordem em que são disponibilizados que provavelmente nada de errado vai acontecer
tar -xvzf msn-proxy-0.7.tar.gz
cd msn-proxy-0.7/
antes de iniciarmos a compilação é preciso alterar o arquivo Makefile, já que ele vem configurado para instalações em freebsd e para instalar no linux precisamos fazer o seguinte:
vim Makefile
procurar e comentar as seguintes linhas, deixe como abaixo
# FreeBSD
#MYSQLINC=/usr/local/include
#MYSQLLIB=/usr/local/lib/mysql
procurar e descomentar as seguintes linhas e deixe como abaixo:
# Linux (most)
MYSQLINC=/usr/lib/mysql
MYSQLLIB=/usr/local/mysql/lib/mysql
salve o arquivo e vamos iniciar o procedimento de instalação.
Siga os procedimentos abaixo na ordem em que são disponibilizados que provavelmente nada de errado vai acontecer
3.2.2 – Compilando
make
sudo make install
3.2.2.3 – Copiando arquivos
sudo cp -R php /var/www
sudo mv /var/www/php /var/www/msnproxy
3.2.3 – Editando arquivos de configuração
sudo vim /var/www/msnproxy/mysql.inc.php
Deixe como mostrado abaixo trocando os valores dos campos $user e $pass:
$host = “localhost”
$user = “usuário do banco”
$pass = “sanha do usuario”
$db = “msnproxy”
$port = “3306”
sudo vim /usr/local/etc/msn-proxy/mysql/conf
Deixe como mostrado abaixo trocando os valores dos campos usuario_banco e senha_user_banco:
localhost|3306|usuario_banco|senha_user_banco|msnproxy
sudo vim /etc/php5/apache2/php.ini
Deixe como mostrado abaixo:
safe_mode = On
safe_mode_gid = On
register_globals = On
display_errors = On
4 – Adicionando a Base de Dados e tabelas ao MySQL
O Msn-Proxy trabalha usando uma pequena base de dados que não é criada junto com a instalação, portanto vamos ter que cria-la, usando o phpmyadmin ou por linha de comando, abaixo exemplifico por linha de comando.
Primeiramente vamos acessar a console do MySQL executando:
mysql -u root -p
Para criar a base de dados, é só executar o comando abaixo, lembrando que se quiser mudar o nome da base é só trocar o que esta em msnproxy por um nome a sua escolha:
CREATE DATABASE `msnproxy`;
E finalizando com a saída da console:
quit
5 – Iniciando o MSN-Proxy
Para iniciar o programa vamos executar o seguinte comando:
sudo msn-proxy -d -i
A seguinte mensagem vai ser mostrada:
fail to read mysql config (check defaults table)
se esta mensagem acima for mostra isto quer dizer que nossa base de dados esta criada e que foi populada com as tabeles dos sistema com sucesso porem ainda falta adicionar alguns dados na tabela default para isso vamos seguir os seguintes passo:
mysql -u root -p
use msnproxy;
show tables;
a saída do comando acima tem que ser esta:
+——————–+
| Tables_in_msnproxy |
+——————–+
| contact_groups |
| contacts |
| defaults |
| log |
| sb |
| users |
+——————–+
Agora vamos inserir os dados que faltam para que o msn-proxy seja corretamente carregado:
INSERT INTO `defaults` ( `internal_host` , `connect` , `save_msg` , `save_contacts` , `commands` , `warnemail` , `warndn` , `warnmsg` , `msgfont` , `msgcolor` ) VALUES (‘192.168.11.250′, ‘YES’, ‘YES’, ‘YES’, ‘0′, ‘administrador@seudominio.com.br’, ‘Administrador do Sistema’, ‘Para sua segurança esta mensagem esta sendo monitorada.’, ‘Arial’, ‘black’);
Com este comando vamos adicionar na tabela default os seguintes dados:
- IP do servidor que esta instalado o MSN-Proxy
- O email do Administrador do Sistema
- A mensagem que sera mostrada ao usuário de que sua seção esta sendo monitorada
PS: troque os campos em negritos por 1- ip do servidor do MSN-Proxy ; 2 – email do administrador do sistema 3- mensagem de monitoria
Agora já podemos iniciar novamente o MSN-Proxy usando o comando:
sudo msn-proxy -d -i &
6 – Direcionando as conexões
Depois de iniciado o serviço os sistema esta no ar, porem ainda não estará gerenciando as conexões, para isso vamos ter que configurar no servidor a repassagem de pacotes ou IP FORWARD vamos também precisar habilitar o NAT e por fim vamos fazer com que todas as requisições com destino a porta 1863 do MSN seja direcionada para o próprio servidor. Segue abaixo o processo:
6.1 – Habilitando o IP Forward
O comando abaixo habilita o server a fazer a repassagem dos pacotes
sudo sysctl -w net.ipv4.ip_forward=1
para aceitar as configuração executamos:
sudo sysctl -p /etc/sysctl.conf
6.2 – Configurando o NAT
Para configurar o NAT no servidor vamos executar:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
6.3 – Configurando o redirecionamento do MSN
Vamos executar o seguinte comando:
sudo iptables -t nat -A PREROUTING -p tcp –dport 1863 -s <ip de rede da rede interna/mascara> -j REDIRECT
7 – acessando a interface de administração
O sistema MSN-Proxy possuí uma interface de administração web que pode ser acessada por qualquer browser apenas o direcionando para a seguinte URL:
http://IP_DO_SERVIDOR/msnproxy
Acessando esse endereço vamos ter acesso a seguinte tela inicial:
Interface bem simples e intuitiva com apenas o link para a tela de configurações gerais e um chebox para que seja mostrados os usuários que estão desconectados. Neste mesma tela vão ser mostrados os contatos que estiverem online na imagem 1 e se o chebox “Mostrar usuários offline” estiver marcado os usuários desconectados também como podemos ver abaixo na imagem 2.
Ainda na tela inicial, podemos interagir com algumas informações disponíveis na tela, uma dessas opções é a “Outras opções” onde vamos poder definir configurações individuais para o usuário como veremos abaixo:
Alem das configurações de bloqueis são disponibilizados informações sobre a “Ultima conexão” do usuário com data e hora e o “Ultimo IP” neste caso sera o IP da maquina da rede interna.
Mais abaixo estão disponíveis como vai se comportar o proxy para aquele usuário como alguns tipos de bloqueios, avisos e log de mensagens e contatos.
7.1 – Configurações Gerais
Nesta tela vamos configurar como o servidor vai se comportar para todos os clientes que vão ser administrados pelo proxy. A tele é a mesma mostrada para a configuração individual dos usuários, porem nesta tudo que for configurado aqui vai ser replicados para todos. Essas configurações só acrescentam as configurações individuais elas não sobrescrevem as opções já marcadas individualmente. A tela foi dividida blocos de configuração como veremos nos tópicos a seguir:
7.1.1 – Opções de Servidor, conexão e log
Neste bloco de configurações vamos poder definir:
- IP interno do proxy → IP configurado na placa de rede interna;
- Conexão → Permite que todos os usuários tenham permissão pra logar se a opção “SIM” estiver ativa caso a opção “NÃO” esteja ativa, só usuários cadastrados e ativos;
- Salvar mensagens → Se habilitado, faz o log todas as mensagens trocadas por todos os clientes
- Salvar lista de contatos → Se habilitado, salva a lista de contatos de todos os clientes
7.2 – Outras opções
Neste bloco de configurações vamos poder definir:
IP interno do proxy → IP configurado na placa de rede interna
Conexão → Permite que todos os usuários tenham permissão pra logar se a opção “SIM” estiver ativa caso a opção “NÃO” esteja ativa, só usuários cadastrados e ativos
Salvar mensagens → Se habilitado, loga todas as mensagens trocadas por todos os clientes
Salvar lista de contatos → Se habilitado, salva a lista de contatos de todos os clientes
8.2 – Outras opções
Neste bloco de configuração veremos as opções de restrições disponíveis a tela é totalmente explicativa onde podemos destacar o bloqueio de conexão por versão dos clientes MSN, bloqueio de transferência de arquivos, Aviso de monitoramento, Bloqueio de Winks e pedidos de atenção, entre outras.
7.3 – Aviso de monitoramento
Neste ultimo bloco vamos configurar a mensagem que sera enviada ao usuário logo que for mandada a primeira mensagem em chat, avisando que esta sessão esta sendo monitorada, onde podemos informar o email do administrador para possíveis contatos, o nome do administrador e a mensagem que vai ser enviada. Ainda podemos definir que tipo de fonte vai ser utilizada e a cor do texto.
Esta mensagem só sera mostrada se a opção “Avisa ao usuário que a mensagem esta sendo monitorada” do bloco outras opções estiver marcada.
8 – Tela de contatos dos usuários
Nesta tela vamos poder visualizar a lista de contatos dos usuários, tanto os conectados quantos os que estiverem desconectados, a finalidade desta tela é permitir ou bloquear (depende da politica) que o usuário possa falar com um o mais contatos de sua lista de contatos.
9 – Tela de log
Por fim, veremos a tela de log do MSN-Proxy, caso tenha habilitado esta funcionalidade todas a conversas vão ser logadas e vão estar disponíveis como vemos demonstrado abaixo na tela:
10 – Conclusão
Espero que todos tenham exito na implementação desta solução na sua rede, mas se ainda estiver com alguma duvida pode deixar um comentário que na medida do possível vou tentando soluciona-las aqui com vocês.
PS: Se encontrarem algo que não seja coerente comentem para que seja removido ou corrigido.










22 comments
Comments feed for this article
20/11/2009 às 15:15
Bruno
No item 3.2.2 – Compilando deu erro, uso ubuntu 9.10 alguem pode me ajudar?
root@bruno-laptop:/home/bruno/Área de Trabalho/msnProxy/msn-proxy-0.7# make
cc -g -Wall -O2 -pipe -I/usr/local/include -I/usr/lib/mysql -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: Arquivo ou diretório não encontrado
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] Erro 1
10/11/2009 às 08:51
bruno
cara depois do servidor pronto como faço pra conectar ele na rede?
ele tem que ter 2 placas de rede?
10/11/2009 às 10:29
Rafael Cristian
Bom parceiro suponho que na sua rede exista um firewall e neste também deve existir duas placas de redes, na placa de rede interna do firewall, você deve criar um IP virtual.
Na placa de rede externa do IPcop você coloca um ip na mesma faixa de rede que foi criada no ip virtual do firewall ex:
IP virtual do firewall: 172.168.1.1/255.255.255.248
IP na placa de red (externa do IPCop): 172.16.1.2/255.255.255.248
no firewall libera essa rede para acesso a internet e pronto
[]’s
01/10/2009 às 07:38
Fabio
Gostei muito desse tutorial. Fiz aqui na empresa e funcionou.
Só estou com um problema. Os meus contatos internos ( minha rede ) recebem a mensagem ” Administrador do Sistema ” que é o aviso de que a conversa está sendo monitorada. Mas os contatos externos não recebem.
O que pode ser isso ??
01/10/2009 às 08:21
Rafael Cristian
Bom Fabio,
Acredito que deve ser uma característica da aplicação, aqui na empresa funciona assim também e que na realidade, os únicos interessados em saber que a conversa esta sendo monitorada são os funcionários da empresa já que só eles estão usando os equipamentos da empresa para conectar a internet.
Agora tem aplicações que manda para o contato externo, mas ai são pagas e não sei mesmo como eles fizeram para fazer isso.
[]’s
01/10/2009 às 09:08
Fabio
Cara, a matriz daqui da empresa está com ele instalado e funcionando perfeitamente. A diferença é que lá é Suse e aqui é Ubuntu.
Sinceramente é muito estranho !!
28/09/2009 às 13:45
Instalando e Configurando o MSN-Proxy - Roberto Almeida
[...] http://solucoeslivres.wordpress.com/2009/06/19/instalando-e-configurando-o-msn-proxy/ [...]
01/10/2009 às 09:13
Rafael Cristian
È Fabio, não sabia desta possibilidade, já que aqui na empresa ele não manda para fora como esta acontecendo com você, mas digo que foi uma agradável noticia esta que você passou, caso você consiga ver com o pessoal da matirz como ou o que eles fizeram para mandar mensagem para fora, não deixa de compartilhar aqui.
[]’s
01/10/2009 às 10:27
Fabio
O interessante é que o pessoal de lá não fez nada de diferente.
Apesar dos turoriais seguidos não terem sido iguais, as configurações são as mesmas, inclusive as regras de firewall.
É pra lá de estranho !!!!! Estou pesquisando muito para saber alguma coisa.
Como posso conseguir o contato do desenvolvedor do MSN-PROXY ?
Att
25/09/2009 às 13:24
carbony
ta dando o seguinte o erro no meu
“http://192.168.0.1/msnproxy”
Parse error: syntax error, unexpected T_VARIABLE in /var/www/msnproxy/mysql.inc.php on line 24
olhei no arquivo mysql.inc.php a linha 24 e o $user = “root”;
so que esse user esta certo tanto que pra conectar no BD uso ele
alguma dica?
28/09/2009 às 08:54
carbony
resolvi: tava com erro na linha do localhost , tava faltando “;” no final.
agora acessou via web, to vendo os usuarios, so que quando vou bloquear algum contato de algum usuario, diz a seguinte mensagem “falha na gravacao da alteracao”, alguem tem alguma ideia do que seja? sera alguma coisa no banco de dados?
valeu!!!
01/10/2009 às 08:45
Rafael Cristian
Bom carbony,
Olha mata todos os processos relacionados ao msn-proxy e levanta novamente, acredito que isso esteja ocorrendo por ter várias estancias do msn-proxy em execução.
[]’s
09/09/2009 às 10:24
Liecio
Fiz a instalação do msnproxy no Opensuse 11.0 tive de fazer algumas buscas devido a pacotes com nomes diferentes mas consegui chegar até o final seguindo passo-a-passo o tutorial, porém no final sem fazer o redirecionamento tentei entrar na pagina para ver se iria carregar pois não carregou o que pode estar acontecendo?
10/09/2009 às 07:38
Rafael Cristian
Bom Liecio,
está dando alguma mensagem de erro?, está a tela em branco?, teria mais informações… quando você executa o msnproxy na shell é mostrado algum erro?
[]’s
02/09/2009 às 17:42
Vitor
Pessoal estou com o seguinte problema
Firewall – 192.168.0.1/24 – Msn-proxy 192.168.0.8/24
REDIRECIONAMENTO NO FIREWALL
iptables -t nat -A PREROUTING -s 192.168.0.42/24 -p tcp –dport 1863 -j DNAT –to 192.168.0.8
iptables -t nat -A POSTROUTING -s 192.168.0.42/24 -d 192.168.0.8 -p tcp –dport 1863 -j SNAT –to 192.168.0.1
No servidor do msn-proxy da o seguinte erro
debug: connection from [192.168.0.1]
connected to [messenger.hotmail.com:1863]
debug: ns cliente disconnected
Quando eu coloco o msn-proxy como gateway funciona normal mas quando faço o redirecionamento pelo firewal não vai.
Será que alguém tem alguma idéia?
Obrigado
03/09/2009 às 08:27
Rafael Cristian
Bom Vitor,
Realmente não sei o que pode ser, na realidade, eu testei aqui o msn-proxy na mesma máquina que é gateway da minha rede, ele estando em outra máquina, realmente não obtive sucesso ainda.
Caso você consiga antes, não deixa de postar aqui a solução, ficarei muito agradecido.
[]’s
20/08/2009 às 16:44
eduardo
A instalação ocorreu na boa, mas quando tento acessar a interface web, estou recebendo o erro abaixo:
Warning: mysql_connect() [function.mysql-connect]: Access denied for user ‘root’@'localhost’ (using password: YES) in /var/www/msnproxy/mysql.inc.php on line 28
fail to connect to mysql\n
Já conferi o usuário e senha e eles estão ok, estou usando o root do mysql, tem algum problema?
eu conectei no mysql:
mysql -u root -p
use msnproxy;
grant all privileges on `msnproxy`.* to `root`@localhost identified by “senha-do-root”;
flush privileges;
mas mesmo assim continua, sabe o que pode ser?
20/08/2009 às 19:30
Rafael Cristian
Bom companheiro, não conseguir reproduzir o erro. Mas faz uma ré-passagem nas configurações em especial nas configurações dos arquivos localizados no ponto 3.2.3.
Verifica se existem espaços se as informações sobre usuário e senha estão idênticos, por que isso é problema realmente de usuário e senha mesmo.
Estou a procura de alguma solução, por que como disse, infelizmente não consegui reproduzir.
17/08/2009 às 17:37
fotanus
Bom post, ajudou bastante
[]’s
18/08/2009 às 07:09
Rafael Cristian
Que bom que foi util a você companheiro
[]’s
17/08/2009 às 12:02
Vitor
Excelente artigo
So tive que fazer as seguintes modificações.
sudo iptables -t nat -A PREROUTING -p tcp -–dport 1863 -s -j REDIRECT
INSERT INTO `defaults` ( internal_host,connect,save_msg,save_contacts,commands,warnemail,warndn,warnmsg,msgfont,msgcolor) VALUES (’192.168.11.250′, ‘YES’, ‘YES’, ‘YES’, ‘0′, ‘administrador@seudominio.com.br’, ‘Administrador do Sistema’, ‘Para sua segurança esta mensagem esta sendo monitorada.’, ‘Arial’, ‘black’);
18/08/2009 às 07:11
Rafael Cristian
Perfeito cara, muito bom, você ter postado aqui sua solução, legal que se alguem mais tiver problemas neste ponto uma possível solução já esta disponível.
Obrigado
[]’s