quinta-feira, 27 de outubro de 2011

Msn-Proxy

Controle o uso do msn Messenger em sua rede. Desfrute de vários recursos, bem como log das conversas, aviso sobre o monitoramento, bloqueio exclusivo a determinado usuário, entre outros.
A versão 0.6.3 não tínhamos suporte ao Messenger 9.
Nesta nova versão algumas alterações foram feitas no sentido de resolver o problema de conexão para quem tem muitos contatos!


Tenha instalado Apache2 + PHP5 + MySQL.
Caso não tenha esses pacotes, instale com os comandos:

# aptitude install php5 libapache2-mod-php5 php5-gd php5-imagick php5-mysql
# aptitude install apache2
# aptitude install mysql-server phpmyadmin
# mysqladmin -u root password SENHA-DO-MYSQL

Instalando os compiladores e lib do MySQL:
# aptitude install make gcc g++
# aptitude install -f libmysqlclient15-dev

Instalando Libvent: Busque sempre por uma versão recente (http://monkey.org/~provos/libevent/)
O libevent API fornece um mecanismo para executar uma função chamada quando um evento específico ocorre em um descritor de ficheiro ou após um tempo limite foi atingido.

# wget http://monkey.org/~provos/libevent-1.4.13-stable.tar.gz (verifique sempre se não existe uma nova versão)
# tar -vxzf libevent-1.4.13-stable.tar.gz
# cd libevent-1.4.13-stable
# ./configure
# make
# make install
# cd /usr/lib/
# ln -s /usr/local/lib/libevent-1.4.so.2
# ln -s /usr/local/lib/libevent-1.4.so.2.1.2

Instalando o MSN Proxy: (http://sourceforge.net/projects/msn-proxy/)

# wget http://ufpr.dl.sourceforge.net/sourceforge/msn-proxy/msn-proxy-0.7.tar.gz
# tar -vxzf msn-proxy-0.7.tar.gz
# cd msn-proxy
# vim Makefile

    Se preferir pode usar a versão do SCM Repositories (Esta versão esta em desenvolviemtno)

    - Correcao de memory leaks.
     - Alteracao nos paths dos arquivos de configuracao.
     - Migracao para o autotools finalizada.
     - Alteracao no nome do binário para msn_proxy (compatibilidade com o autotools).
     - Adicionados indices em algumas tabelas do MySQL.

    Execute o comando abaixo p/ baixar.

    # svn co https://msn-proxy.svn.sourceforge.net/svnroot/msn-proxy msn-prox

    (se o comando svn nao funcionar instale com # aptitude install subversio)

    # cd /msn-proxy/branches/msn-proxy-0.7

    # vim Makefile

Aqui esta um detalhes muito importante, comente as linhas do FreeBSD:

# FreeBSD
#MYSQLINC=/usr/local/include
#MYSQLLIB=/usr/local/lib/mysql

E adicione as seguintes linhas

MYSQLINC=/usr/lib/mysql
MYSQLLIB=/var/lib/mysql/mysql

Vamos compilar e instalar.
# make
# make install

Agora iremos mover a pasta php para no nosso diretório var e após renomear para msn-proxy, e em seguida criaremos a tabela msn-proxy e faremos algumas alterações para que o msn-proxy conecte ao mysql.
# cp -R php /var/www/
# mv /var/www/php /var/www/msn-proxy

# mysql -p
(e digite a senha do root)

create database `msn-proxy`;
grant all privileges on `msn-proxy`.* to `msn-proxy`@localhost identified by 'SENHA';
flush privileges;
quit

Preste atenção no ” ` ” e ” ‘ ” tem diferenças sobre mysql comandos.

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

Altere:

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

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

Deixe assim:

localhost|3306|msn-proxy|SENHA_USEUARIO_PROXY|msn-proxy

Vamos executá-lo, nesta fase ele irá criar as tabelas em sua base.
# /usr/local/bin/msn-proxy

Se tudo ocorrer bem, terá a seguinte mensagem:

PUBLIC ACCESS on /usr/local/etc/msn-proxy/mysql/conf should be removed !!!¹
fail to read mysql config (check defaults table)

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

 max_clients=10

Por padrão vem controle para até 10 usuários, altere de acordo com suas necessidades.

Agora vamos direcionar a porta 1863 do msn, em nosso servidor, essa linha a baixo vc pode adicionala em seu firewall.

 /sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 1863 -j REDIRECT --to-port 1863
Onde eth0 é interface de qual faço nat para minha rede (gtw dos clientes da rede) sendo desta forma termos que informa em nossa base o IP desta interface no banco de dados. Lembre-se eth0 não é a interface de entrada (internet), e sim a de saída (rede local).
Suponhamos q 192.168.254.1 é o ip desta interface.

# mysql -p
(e digite a senha do root)
mysql> use msn-proxy;
mysql> show tables;

Apenas para confirmarmos que nossa tabela foi criada, se estiver irá aparecer isso:

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

mysql> INSERT INTO `defaults` ( `internal_host` , `connect` , `save_msg` , `save_contacts` , `commands` , `warnemail` , `warndn` , `warnmsg` , `msgfont` , `msgcolor` )
VALUES (
’192.168.254.1′, ‘YES’, ‘YES’, ‘YES’, ’0′, ‘rudimar@remontti.com.br’, ‘Administrador do Sistema’, ‘Para sua segurança esta mensagem esta sendo monitorada.’, ‘Arial’, ‘black’
);

Vamos ver se gravou?

mysql> SELECT * FROM `defaults`;

| 192.168.254.1 | YES | YES | YES | 0 | rudimar@remontti.com.br | 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 reposta, está tudo pronto!
mysql> quit

Iniciando MSN Proxy:

# /usr/local/bin/msn-proxy &
# /usr/local/bin/msn-proxy -d & (-d para ver os logs)

Sua administração é feita via web, lembra dos comandos:
cp -R php /var/www/
mv /var/www/php /var/www/msn-proxy

Um comentário:

Anônimo disse...

hi

for msn-proxy your desciption was far the best, thanks

one thing i am not sure, do I need to set the messengers in the lan I would like to monitor to use this msn-proxy as proxy or the prerouting iptables should do it?

Busca