alexmontoanelli

a place to have some fun..

Android – Instalando o openvpn no Milestone 2

Fala galera..

How-to rápido de como instalar e usar  openvpn  no seu Milestone 2.

Você vai precisar de:

Um  Milestone 2 com Android 2.2 e kernel 2.6.32.9 ROOTEADO;

tun.ko (módulo do kernel);

Openvpn Installer;

Openvpn Settings;

Terminal emulator;

BusyBox

Arquivos de configuração de sua VPN;

Vamos aos passos;

Copie para o cartão na pasta openvpn (/sdcard/openvpn), seu arquivos de configuração
da vpn e o arquivo tun.ko;

Abra o terminal emulator; e digite a seguinte sequência de comandos:
su;
mount -o remount,rw /dev/mtlock4 /system;
mv /sdcard/openvpn/tun.ko /system/lib/modules/tun.ko
ln -s /system/bin/route /system/xbin/route;
ln -s /system/bin/ifconfig /system/xbin/ifconfig;
mkdir /system/xbin/bb;
ln -s /system/bin/route /system/xbin/bb/route;
ln -s /system/bin/ifconfig /system/xbin/bb/ifconfig;
mount -o remount,ro /dev/mtlock4 /system;

Agora, inicie o App Openvpn Installer,
Ele irá perguntar por 2 targets, o primeiro o do openvpn,
Escolha /system/xbin;
O segundo o path para o ifconfig e o route; informe /system/xbin/bb

Pronto, openvpn instalado, agora vamos a configuração:

Abra  o Openvpn Settings,
Opções -> Advanced e maque a opção Load tun kernel module ;
Em Tun modules settings, informe insmod e /system/lib/modeles/tun.ko respectivamente nas 2 opções;

Volte a tela inicial do openvpn, marque a primeira opção (Turn on OpenVpn),
E seu arquivo de configuração deverá aparecer abaixo em openvpn configurations;

De um clique e nele e veja a mágica acontecer.

É isso, simples assim

Abraço

February 20th, 2011 by alexm

Android – Rooteando seu Milestone 2

Fala galera, depois de um tempo longe do brog, voltamos agora para falar de
Android.

Adquiri um Milestone 2, e o primeiro passo para que um usuário linux faz nesse tipo
de brinquedo é conseguir acesso root ao dispositivo.

O procedimento é simples, vamos lá:

Vá ao Market e procure e instale a  Busybox  (cojunto de ferramentas linux);
ao final da instalação não execute, apenas finalize sem abrir-lo.

Agora, baixe o Z4Root, disponível aqui.

Descompacte e copie o .apk para o cartão de memória e instale ele,usando um gerenciador de arquivos qualquer.

Depois de instalado, execute ele, e clica no botão root;

O procedimento leva alguns segundos e seu telefone irá reiniciar ao final do processo.

Para conferir se deu tudo certo, instale através do market, o app Terminal emulator;

Ao executar digite su, e se nenhuma mensagem anormal aparecer, parabéns…seu Milestone 2
está rooteado.

Abraços

February 20th, 2011 by alexm

And so you code

December 13th, 2010 by alexm
Posted in php | No Comments »

Linux: /proc/sys/vm/swappiness – Oque é pra que serve

Essa variável que pode ser setada via sysct ou com um simples echo , diz ao kernel
o quanto ele deve usar swap, ou tentar ao máximo usar a ram, sempre.

Dizemos que é com esse valor que o kernel vai ter a tendência para usar com mais agressividade a swap ou não.

Quanto maior o valor maior será a chance do kernel usar swap, e quanto menor o valor, menor a chance.

Para mudar o valor, podemos fazer de duas maneiras:
sysctl -w vm.swappiness=90
ou
echo 90 > /proc/sys/vm/swappiness

Fonte: lwn.net

Abraço

October 25th, 2010 by alexm
Posted in linux | No Comments »

Cisco: OID’s para monitorar a temperatura de seu router via SNMP

Alguns routers e switches da Cisco, vem equipados com o sensores que nos
permitem monitorar a sua temperatura, tanto de interna (dentro do processador),
quanto a externa.

As OID’s usadas para capturar essas informações são

1.3.6.1.4.1.9.9.13.1.3.1.3.1 para temperatura interna
1.3.6.1.4.1.9.9.13.1.3.1.3.2 para temperatura externa.

Com essa informação fica fácil montar via mrtg, um gráfico para acompanhar seu estado, ou
até colocar ela no nagios, para alertar caso o valor sai do estipulado.

Abraços

September 15th, 2010 by alexm
Posted in cisco | No Comments »

Mysql Recover Data using ibdata1, ib_logfile0 and ib_logfile1

Issue:
Unfortunately some times you need to recover MySQL data from ibdata1. It’s many reasons why your getting corrupted Innodb files that cannot automatically be restored of the mysqld daemon.
Solution:
Scenario
We assume that your scenario are like following:
  • You got backup of your ibdata1, ib_logfile0 and ib_logfile1
  • You also got backup of your database folder with .frm files
  • You would like to restore this backup into an MySQL server that’s already in production.

Restore the data backup you got

First of all restore you data on another MySQL server, to not interrupt the services running in your normal production environment. Restore data into the normal MySQL data directory. For our scenario we use /var/lib/mysql.
Be careful to get the right permissions and owners on all your data files. Your MySQL users should own the files and the group should also be assigned to MySQL.
Before you continue you need to find the size of your Innodb logfiles. Simply run the command ls -l to find this. This will output something like this:
-rw-rw—- 1 mysql mysql 5242880 Jun 25 11:30 ib_logfile0
-rw-rw—- 1 mysql mysql 5242880 Jun 25 11:30 ib_logfile1

Start up MySQL in rescue mode

Some simple steps will start up the MySQL daemon in rescue mode for you:
From your Unix shell su into the mysql user: su mysql
Start up your mysqld process with the logfile size and innodb_force_recovery as parameters.
/usr/sbin/mysqld –innodb_log_file_size=5242880 –innodb_force_recovery=6
If everything goes fine you should get a output like this:
InnoDB: The user has set SRV_FORCE_NO_LOG_REDO on
InnoDB: Skipping log redo
070625 11:59:36 InnoDB: Started; log sequence number 0 0
InnoDB: !!! innodb_force_recovery is set to 6 !!!
070625 11:59:36 [Note] /usr/sbin/mysqld: ready for connections.
Version: ’5.0.18′ socket: ‘/var/lib/mysql/mysql.sock’ port: 3306 SUSE MySQL

Get your data

The last simple but most important step is now to get your data.
Open a new shell to the server where your MySQL daemon are running in recovery mode.
Simply run a normal mysqldump of your database:
mysqldump -u root -p database > database.sql
If you get a message looking like this, you got corrupted Innodb log files:
Got error: 1146: Table ‘database.table’ doesn’t exist when using LOCK TABLES
What you can do to resolve this problem with keeping the ib_logfile0 file from you most current backup while you restore all the other files from a older backup. This isn’t a fail-proof solution, but worth a try.

Restore you data

Now you can copy your SQL dump to your production server and simply restore the data from your MySQL dump file like this:
mysql -u root -p database < database.sql
August 14th, 2010 by alexm

Linux: deauthenticating from by local choice (reason=3)

Having problem with unstable wireless connections after kernel upgrade from 2.6.31 ?

If are you using a Intel card, the solution is simple, just load the module iwlagn, with this paramenters,

or put it on /boot/grub.conf on kernel line:

11n_disable=1 11n_disable50=1

Bye
Update  16/07/2010:  If this not solve, try to change from WPA TKIP to WPA2 PSK AES, the wireless security settings.
July 15th, 2010 by alexm
Posted in linux | 2 Comments »

Interceptando funções internas no PHP

Olá pessoal, dica rápida de como proceder para interceptar funções build-in no php.

Precisei usar para interceptar as chamadas da função mail, em um servidor em produção,
para gerar log, de abusos.

Para isso precisaremos instalar o modulo runkit, disponível em github.com/padraic/runkit.

O procedimento consiste em baixar o pacote via git, com o comando
git clonse git://github.com/padraic/runkit.git, executar um phpize no diretório, depois
o trio ./configure &&  make && make install

Feito isso basta configurar o php.ini para subir o modulo com as seguintes linhas:

extension=runkit.so
runkit.internal_override=1

A primeira linha carrega o módulo e a segunda, diz que vamos sobre-escrever funções internas no php.

Depois basta reiniciar o apache.

O script para interceptar fica mais ou menos assim:

//copiamos a funcao interna mail para o nome de intmail
@runkit_function_copy("mail", "intmail");

//removemos a funcao original mail
@runkit_function_remove("mail");
//atribuimos a funcao umail para o nome mail
@runkit_function_copy("umail", "mail"); 

//criamos a assinatura da funcao identica a original do mail
function umail($to,
               $subject,
               $message,
               $additional_headers = null,
               $additional_parameters = null) {
      //executamos aqui nossas rotinas
      //como por exemplo criar logs

      //chamaos a funcao mail original com os paramentros passados
      if (ini_get('safe_mode') === false){
        $x =  intmail($to,
                      $subject,
                      $message,
                      $additional_headers,
                      $additional_parameters);
      } else {
        $x =  intmail($to,
                      $subject,
                      $message,
                      $additional_headers);
      }

      return $x;
}

Para esse scritpt ter um funcionamento global, é preciso adiciona-lo na configuração auto_prepend_file  para
carrega-lo automaticamente em toda página.

Por hora é isso.

Abraços

May 17th, 2010 by alexm
Posted in php | 1 Comment »

Gerando relatórios com Jasper no PHP – mini how-to

Para quem tem a necessidade de gerar relatórios, o php não possui nenhuma ferramenta a nível da já  consagrada
Jasper, disponível no Java.

A solução então é usar o projeto phpJavaBridge para criar uma ponte entre o mundo Java e PHP e assim conseguir conversar
com o Jasper.

Vamos lá para a receita, lembre-se que vocẽ precisar ter um certo conhecimento para fazer isso e saber oque está acontencedo,
ter uma certa intimidade com Java e Tomcat e outros.

Primeiro você vai precisar de um servidor web  tomcat rodando -  vários how-to podem ser encontrados no google;

Depois disso baixe o  phpjavabridge (binário), disponível em http://php-java-bridge.sourceforge.net/pjb/download.php,e
baixe tambŕm o Java.inc, disponível na mesma página.

Copie o .war do phpjavabridge (JavaBridge.war) para a pasta webapps do tomcat para fazer o deploy da aplicação.

Acesse então: http://localhost:8080/JavaBridge e se tudo der certo você verá a tela de boas vindas do phpjavabridge.

Feito isso baixe o jasper aqui e após descompactar copie os  *.jar para a basta WEB-INF/lib dentro da pasta do JavaBridge
que esta no webapps do tomcat.

Aqui estão uns scripts para testar a a aplicação no console (linux), já com um modelo básico de relatório feito no iReport
usando csv para backend de dados.

Você pode usar xml e até conexão direta com o banco de dados como origem dos dados.

Nota: todos os paths são relativos ao tomcat e não ao php.

Aconselho a ler e reler muito a documentação que se encontra no site.

Mais uma vez digo, essa tarefa não é para iniciantes, então tenha muita paciência.

Abraços

April 13th, 2010 by alexm
Posted in php | No Comments »

Configurando VLANS no Gentoo

How-to rápido de como configurar uma placa de rede com vlans no Gentoo:

Instale o pacote vconfig com um ‘emerge vconfig’;

Configure o arquivo /etc/conf.d/net da seguinte maneira:

vlans_eth0="10 20"
config_eth0="null"
config_eth0_10=("10.100.5.1 netmask 255.255.255.0" )
config_eth0_20=("192.168.2.243 netmask 255.255.255.0")

Nas linhas acima configuramos 2 vlans com as tags 10 e 20, na interface eth0, atribuindo a cada vlan um endereço IP.

Para iniciar a vlan, basta chamar o script default, /etc/init.d/net.eth0 start

Abraços

March 18th, 2010 by alexm