Instalando e Configurando o MSN-Proxy
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.
Instalação do MSN-Proxy
Utilizei para a instalação o aptitude do Debian e como editor de textos usei o mcedit. Primeiro precisamos instalar alguns pacotes que o MSN-Proxy utiliza. Ao instalar o mysql-server, você notará que o instalador pedirá uma senha. Essa é a senha de administrador do MySQL, que será usada mais a frente no tutorial.
aptitude install binutils aptitude install mysql-server mysql-client aptitude install apache2 php5 php5-mysql libapache2-mod-php5 php5-gd php5-imagick phpmyadmin aptitude install make gcc g++ aptitude install -f libmysqlclient15-dev
Agora altere o arquivo /etc/php5/apache2/php.ini conforme abaixo:
mcedit /etc/php5/apache2/php.ini
Procure as linhas safe_mode, safe_mode_gid, register_blobals e display_error e altere seus parâmetros conforme abaixo:
safe_mode = On safe_mode_gid = On register_globals = On display_errors = On
Vamos agora instalar a libevent:
Sempre procure atualizações em: https://www.monkey.org/~provos/libevent/
Apesar de já estar na versão 1.4.13, iremos utilizar a versão 1.4.12. Nos testes que realizei a versão .13 não funcionou com o msn-proxy 0.7, já a .12 funcionou perfeitamente. Crie uma pasta temporária e execute os comandos abaixo:
wget https://monkey.org/~provos/libevent-1.4.12-stable.tar.gz tar -vxzf libevent-1.4.12-stable.tar.gz cd libevent-1.4.12-stable ./configure make make install cd /usr/lib/ ln -s /usr/local/lib/libevent-1.4.so.2
Instalando o MSN-Proxy:
Procure por atualizações em: https://sourceforge.net/projects/msn-proxy/
wget https://ufpr.dl.sourceforge.net/project/msn-proxy/msn-proxy/msn-proxy-0.7/msn-proxy-0.7.tar.gz tar -zxvf msn-proxy-0.7.tar.gz cd msn-proxy mcedit Makefile
Comente as duas linhas referentes ao FreeBSD e descomente as do Linux, como abaixo:
MYSQLINC=/usr/lib/mysql MYSQLLIB=/var/lib/mysql/mysql
make make install
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"senha"
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’senha’
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.254.1 pelo IP do seu servidor que irá rodar o Msn-Proxy):
mysql> insert into `defaults`(`internal_host`) values ("192.168.254.1");
Verificando se gravou:
mysql> select * from defaults;
192.168.0.1|YES|YES|YES|0|[email protected]|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 eth1 por sua interface de rede interna):
iptables -t nat -I PREROUTING -i eth1 -p tcp --dport 1863 -j REDIRECT --to-port 1863
O comando acima deve ser fixado junto as regras do firewall.
Iniciando o MSN-Proxy
Para iniciar manualmente o msn-proxy, execute um dos comandos abaixo:
/usr/local/bin/msn-proxy &
ou
/usr/local/bin/msn-proxy -d &
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 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 eth1 -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.254.1 pelo IP do seu servidor que roda o msn-proxy ou pelo nome do mesmo):
https://192.168.254.1/msn-proxy/
Agora, depois de tudo funcioando, altere novamente o arquivo do php como mostrado abaixo:
mcedit /etc/php5/apache2/php.ini
safe_mode = Off
Reiniciando os serviços:
/etc/init.d/mysql restart /etc/init.d/apache2 restart
Depois que instalei e testei o programa, achei sua interface meio lenta. O motivo pela lentidão é que o arquivo view.php fica fazendo loop de pesquisa no mysql, até encontrar o fechamento da janela, onde o loop para. O problema é que eventualmente quando você vai consultar as conversas de alguém com a janela ainda aberta, para tudo de funcionar até que a pessoa feche a janela ou a sessão do browser expire, e o loop do php pare de rodar.
O patch abaixo adiciona uma pesquisa contando os registros antes do loop, e altera o loop para não ser inifinito, e sim até o número de registros efetivamente encontrado no banco.
cd /var/www/msn-proxy/ mcedit view.patch
Adicione o seguinte em seu arquivo:
--- view.php 2009-02-05 16:37:40.000000000 -0200 +++ view.php 2009-11-24 09:58:43.000000000 -0200 @@ -40,7 +40,13 @@ <?php $date = "";; $eof = 0; - while(1) { + $loop = 0; + $sqlcount = "SELECT COUNT(*) AS count FROM log WHERE sb_id = '".$_REQUEST['sb_id']."' "; + $result = mysql_query($sqlcount); + while ($row = mysql_fetch_array($result)) + $count = $row["count"]; + + while($loop <= $count ) { $sql = "SELECT * from log WHERE sb_id = '".$_REQUEST['sb_id']."' "; if ($date) { @@ -80,9 +86,8 @@ if ($eof == 1) break; } - if ($eof == 1) - break; - sleep(1); + if ($eof == 1) break; + $loop = $loop + 1; } mysql_close($mysql); ?>
Salve, saia e rode o comando abaixo:
patch -p0 < view.patch
Pronto! Tudo funcionado!
Esse artigo foi útil? Colabore com o nosso site para podermos continuar dando mais dicas como essa!
Formas de doação:
- Boleto / Cartão de crédito: https//bit.ly/AprendendoLinux
- Pix: [email protected]
- PicPay: @henrique_fagundes
- PayPal: [email protected]
- Bitcoin: bc1qtnn5z058htzy799dslwrpjcdpm0vuta3vrj28l
Favorecido: Luiz Henrique Marques Fagundes