nov 062014
 

Olá!

Encontrei este site que explica como fazer backup e restauração do “Android ID” do smartphone (caso o site esteja fora do ar, acesse uma cópia aqui).

É necessário ter o aplicativo “Titanium Backup” (versão “Pro” – paga) instalado.

Estou basicamente traduzindo os passos, mostrando um screenshot com o nome (em português) do “aplicativo” que armazena o ID.

BACKUP

  • Execute o Titanium Backup;
  • Vá para a aba “Backup/Restauração”;
  • Faça um backup do “aplicativo” chamado “Armazenamento de…ÇÕES/BLUETOOTH)”:

 

backup_android_ID

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Alguns passos que considero opcionais:

  • Após o backup, clique no “aplicativo” novamente;
  • Toque na área do backup (entre “Restaurar” e “Excluir”). Isto abrirá as propriedades do backup;
  • Toque no botão “Proteger backup”. Agora este backup está protegido e não pode ser sobrescrito.

 

RESTAURAÇÃO

  • Na tela inicial do Titanium Backup, pressione o botão de menu;
  • Role a tela para baixo, e acesse a opção “Gerenciar o Android ID” (dentro da seção “Seu dispositivo”);
  • Selecione “Restaurar o Android ID de um ba.”;
  • Toque no Android ID e depois permita o Titanium Backup reiniciar o smartphone.

 

[ ]’s

Huff

out 092013
 

Olá!

Antes de qualquer coisa…
NÃO me responsabilizo pelos passos aqui listados! Se não tens certeza do que estás prestes a fazer, NÃO FAÇA! Os passos abaixo podem danificar ou até mesmo inutilizar seu smartphone PERMANENTEMENTE! Continue por sua conta e risco!

Aqui estão os passos para fazer “root” em seu Samsung Galaxy S3. Segui estes passos para fazer o procedimento no meu aparelho, e obtive sucesso (Modelo: GT-I9300 com Android 4.1.2). Isto não significa que funcionará para você! Mais uma vez, NÃO ME RESPONSABILIZO por danos causados por estes passos, caso tenhas decidido prosseguir!

1) Baixe o ODIN deste link. Eu utilizei o ODIN 3.07;
2) Identifique o modelo de seu smartphone, acessando as “Configurações”, “Sobre o dispositivo”. Veja as telas abaixo:

SGS3_Root_Modelo01

 

 

 

 

 

 

 

 

 

 

 

 

 

SGS3_Root_Modelo02

 

 

 

 

 

 

 

 

 

 

 

 

 

SGS3_Root_Modelo03

 

 

 

 

 

 

 

 

 

3) Baixe o “CF-Root…” apropriado para seu aaprelho, neste link;
4) Siga os passos indicatos neste tutorial (caso o site esteja fora do ar, acesse uma cópia aqui);
5) Após o procedimento ter sido concluído, acesse o Google Play pelo smartphone, localize o aplicativo “SuperSU”, e faça a atualização;
6) Abra o “SuperSU” no smartphone, e selecione para efetuar a atualização automaticamente.

Pronto!

[]’s

Huff

mar 262013
 

Olá!

Ao instalar o VMware Player, ele cria duas placas de rede virtuais para serem utilizadas nas redes “NAT” e “host-only”.

No momento da instalação, o VMware Player configura qual a faixa de endereços IP será utilizada em cada uma destas redes, e também configura o servidor DHCP para as mesmas (servidor DHCP = o serviço que atribui um endereço IP automaticamente, para as VMs).

Eu precisava alterar a faixa da rede “host-only” para fazer alguns testes, e não achei opção alguma no VMware Player para alterar tais configurações.

Procurando na internet, achei este post em um outro blog, e os passos indicados funcionam! 🙂

Aqui estão os passos:

1) Executar o instalador do VMware player passando os parâmetros “/e .\temp”. Por exemplo:

VMware-player-4.0.0-471780.exe /e .\temp

2) Na pasta “temp” que foi criada (na mesma pasta onde o instalador está), abra o arquivo “network.cab”;

3) Extraia o arquivo “vmnetcfg.exe” para a pasta onde o VMware Player está instalado (normalmente “C:\Arquivos de Programas (x86)\VMware\VMware Player”);

4) Execute o arquivo “vmnetcfg.exe”, e edite as configurações conforme quiser!

Obs. 1: A pasta “temp” que foi criada no passo 1 pode ser excluída.

Obs. 2: Eu alterei as configurações quando não tinha nenhuma VM ou janela do VMware Player em execução, só para garantir ;).

[]’s

Huff

 Posted by at 18:46
nov 302011
 

Olá!

Este post instrui como instalar o XenServer 5.5 em um pendrive (clique aqui para acessar uma cópia do post impresso em PDF). Abaixo, a tradução dos passos, com comentários ;).

  1. Desconecte ou desative todos os discos rígidos (HD’s), exceto o drive USB (pode ser um HD externo USB ou pendrive);
  2. Faça o download e grave o CD do XenServer 5.5;
  3. Inicie o computador com o CD do XenServer e faça a instalação no drive USB;
  4. Quando a instalação terminar, inicie novamente pelo CD do XenServer e pressione “F2″ na tela “Welcome to XenServer”;
  5. Digite “shell” e pressione “Enter”;
  6. Quando o sistema tiver inicializado, digite: “mkdir /tmp/sda <ENTER>”
  7. Mapeie o drive USB para a pasta temporária: “mount -t ext3 /dev/sda1 /tmp/sda <ENTER>”;
  8. Altere as permissões dos arquivos: “chmod -R 664 /sys/block <ENTER>”;
  9. Copie os arquivos de sistema, ignorando os erros: “cp -R /sys/block/ /tmp/sda/sys/block/ <ENTER>”;
  10. Altere a pasta raiz para a pasta temporária: “chroot /tmp/sda <ENTER>”;
  11. Acesse a pasta “/boot” (que será o “/boot” do drive USB): “cd /boot <ENTER>”;
  12. Renomeie a imagem initrd antiga: “mv initrd-2.6.18-128.1.6.el5.xs5.5.0.496.1012xen.img initrd-2.6.18-128.1.6.el5.xs5.5.0.496.1012xen.img.old <ENTER>”;
  13. Crie uma nova imagem “initrd”: “mkinitrd –-with-usb initrd-2.6.18-128.1.6.el5.xs5.5.0.496.1012xen.img 2.6.18-128.1.6.el5.xs5.5.0.496.1012xen <ENTER>”;
  14. Remova o CD do XenServer e reinicie o computador.

Testei com um pendrive de 8GB, mas a instalação do Xen avisa que é pouco espaço e não deixa instalar. Ainda não consegui um pendrive de 16GB para testar. Acredito que funcione em versões mais recentes também. Se funcionar pra alguém, deixe um comentário! 😀

[]’s

Huff


ATUALIZAÇÃO DO POST EM 07/JANEIRO/2012


Olá!

Consegui o tal pendrive de 16GB! 😀

Testei com o XenServer 5.6 e com o 6.0, ambos funcionaram! Abaixo, o que muda para cada versão:

  • Para o XenServer 5.6:
    • O comando do passo 12 muda para: “mv initrd-2.6.27.42-0.1.1.xs5.6.0.44.111158xen.img initrd-2.6.27.42-0.1.1.xs5.6.0.44.111158xen.img.old <ENTER>”;
    • O comando do passo 13 muda para: “mkinitrd –with-usb initrd-2.6.27.42-0.1.1.xs5.6.0.44.111158xen.img 2.6.27.42-0.1.1.xs5.6.0.44.111158xen <ENTER>”;
  • Para o XenServer 6.0:
    • O comando do passo 12 muda para: “mv initrd-2.6.32.12-0.7.1.xs6.0.0.529.170661xen.img initrd-2.6.32.12-0.7.1.xs6.0.0.529.170661xen.img.old <ENTER>”;
    • O comando do passo 13 muda para: “mkinitrd –with-usb initrd-2.6.32.12-0.7.1.xs6.0.0.529.170661xen.img 2.6.32.12-0.7.1.xs6.0.0.529.170661xen <ENTER>”;

[]’s

Huff

 Posted by at 19:10
dez 292010
 

Olá!

Honeypots são servidores que não possuem serviços “de produção” ativos, mas possuem serviços sem informações importantes ou apenas simulações de serviços (dependendo do nível de interatividade do honeypot). Por quê ter um servidor assim? Bom, um potencial atacante pode “perder tempo” no honeypot, tentando invadí-lo. Enquanto isso, o honeypot pode gerar um alerta para a equipe de segurança da rede para que esta bloqueie o atacante antes que ele perceba a armadilha e passe para um servidor “de verdade”. O honeypot também pode capturar as ações do atacante, assim podemos ver o que ele queria fazer, e como estava fazendo.

Neste post, veremos um passo-a-passo para instalar um honeypot de baixa interatividade com a ferramenta honeyd.

Primeiro, instalamos um linux Ubuntu Server 10.04 i386. O computador não precisa ser muito potente, o que eu utilizei tinha só 512MB de memória, por exemplo. Durante a instalação, eu configurei as partições assim:

  • Partição “/boot”: com 100MB de espaço e sistema de arquivos “ext4”;
  • Partição de “swap”: com 1GB de espaço e sistema de arquivos “Linux swap”;
  • Partição “/”: com o restante do espaço do HD virtual e sistema de arquivos “ext4”.

Instalei o Ubuntu com todas as opções padrão. As únicas alterações foram:

  • Instalei o servidor OpenSSH, para facilitar o gerenciamento do servidor, posteriormente;
  • Desativei as atualizações automáticas (eu prefiro fazê-las quando quiser :P).

Depois, instalei alguns pacotes necessários:

# sudo su

# apt-get update

# apt-get install gcc

# apt-get install g++

# apt-get install libpcap-dev

# apt-get install libreadline-dev

# apt-get install libzip-dev

Você vai precisar baixar as bibliotecas libdnet e libevent. Abaixo, como as instalei:

  • libdnet versão 1.11

# tar -zxvf libdnet-1.11.tar.gz
# cd libdnet-1.11
# ./configure –prefix=/opt/libdnet
# make
# make install

  • libevent versão 1.4.14b-stable

Mesma coisa que a libdnet, só alterando o nome dos caminhos e pastas para o respectivo “libevent”, claro ;).

Feito isto, passamos para a instalação do honeyd versão 1.5c:

# tar -zxvf honeyd-1.5c.tar.gz

# cd honeyd-1.5c

# ./configure –prefix=/opt/honeyd –with-libevent=/opt/libevent –with-libdnet=/opt/libdnet

# make

# make install

Também instalei uma ferramenta auxiliar, que precisaremos, o arpd versão 0.2:

# tar -zxvf arpd-0.2.tar.gz

# cd arpd

Apliquei algumas correções necessárias (clique aqui para vê-las).

# ./configure –prefix=/opt/arpd –with-libevent=/opt/libevent –with-libdnet=/opt/libdnet

# make

# make install

# cd /lib

# ln -sf /opt/libevent/lib/libevent-1.4.so.2

Estes dois últimos passos foram necessários porque senão o arpd não funcionava…

Pronto! Tudo instalado!

Agora, criei arquivos de inicialização do honeyd e do arpd:

  • /etc/init.d/honeyd

#! /bin/sh

### BEGIN INIT INFO
# Provides:        honeyd
# Required-Start:    $networking $arpd
# Required-Stop:    $networking $arpd
# Default-Start:    2 3 4 5
# Default-Stop:
# Short-Description:    honeyd
### END INIT INFO

CONFIG=/opt/honeyd/share/honeyd/honeyd.conf
LOG=/var/log/honeyd/honeyd.log

#Defina abaixo qual sera o IP do honeypot!
ENDERECO=192.168.1.251

case “$1” in

start)

/opt/honeyd/bin/honeyd -l $LOG -i eth0 -f $CONFIG $ENDERECO

;;
stop)

killall honeyd

;;
restart)

$0 stop
sleep 2
$0 start

;;
*)

echo “Usage: /etc/init.d/honeyd {start|stop|restart}”
exit 1

esac

exit 0

  • /etc/init.d/arpd

#! /bin/sh

### BEGIN INIT INFO
# Provides:        arpd
# Required-Start:    $networking
# Required-Stop:    $networking
# Default-Start:    2 3 4 5
# Default-Stop:
# Short-Description:    arpd
### END INIT INFO

#Defina abaixo qual sera o IP do honeypot!
ENDERECO=192.168.1.251

case “$1” in

start)

/opt/arpd/sbin/arpd -i eth0 $ENDERECO >> /dev/null 2>&1

;;
stop)

killall arpd

;;
restart)

$0 stop
sleep 2
$0 start

;;
*)

echo “Usage: /etc/init.d/arpd {start|stop|restart}”
exit 1

esac

exit 0

Adicionei estes arquivos à inicialização automática do Ubuntu. Assim, se eu precisasse reiniciar o honeypot, o honeyd e o arpd seriam iniciados junto com o Ubuntu:

# update-rc.d honeyd defaults
# update-rc.d arpd defaults

E antes de iniciar manualmente os dois serviços, ainda precisei criar o arquivo de configuração do honeyd:

  • /opt/honeyd/share/honeyd/honeyd.conf (exemplo bem simples, não vai ter simulação de serviços, apenas contabilizará as tentativas de acesso)

create template
set template personality “Linux kernel 2.4.18 – 2.4.20 (X86)”
set template uptime 1728650
set template maxfds 35

bind 192.168.1.251 template

Lembre-se de alterar o IP que o honeypot utilizará na última linha!

Agora sim! Tudo pronto! É só iniciar o arpd e o honeyd:

/etc/init.d/arpd start

/etc/init.d/honeyd start

Até o próximo post! 😉

#tar -zxvf arpd-0.2.tar.gz
#cd arpd

#./configure –prefix=/opt/arpd –with-libevent=/opt/libevent –with-libdnet=/opt/libdnet

#make

#make install

 Posted by at 22:22
jun 222010
 

Olá!

Os dois últimos how-to’s foram sobre o asterisk.

Primeiro, instalamos um servidor asterisk. Depois, fizemos um ATA SPA400-NA interagir com nosso servidor.

Se você “brincou” no asterisk, provavelmente já criou regras de ligação sainte e entrante, utilizando o ATA. OK, mas “eu quero mais” 😛

“Eu quero poder escolher por qual das linhas do ATA a ligação vai sair”

Para isto, o ATA obrigatoriamente tem que estar com o firmware atualizado! (leia o how-to anterior!)

Digamos que você criou uma regra (provavelmente utilizando o asterisk-gui) dizendo que o código para efetuar uma ligação sainte pelo ATA seja “100”.

Editando o arquivo /etc/asterisk/extensions.conf, localizado no servidor asterisk, provavelmente sua regra deve ser parecida com esta (o nome do tronco do ATA, no asterisk, seria “ATALinhas”):

exten = _100X.,1,Macro(trunkdial-failover-0.3,${ATALinhas}/${EXTEN:3},,ATALinhas,)

Bom, é só alterar a regra adicionando “LX” (onde “X” é o número da linha pela qual a ligação deve sair) imediatamente antes do número a ser discado. A regra ficaria assim (por exemplo, saindo pela linha 2 do ATA):

exten = _100X.,1,Macro(trunkdial-failover-0.3,${ATALinhas}/L2${EXTEN:3},,ATALinhas,)

Viu que fácil? 🙂

É só criar as regras que quiser ou precisar, e adicionar o respectivo “LX” em cada uma.

Obs.: não é possível adicionar o “LX” pelo asterisk-gui, pois ele não reconhece o “L”… Isto é específico do ATA, então tem que ser adicionado diretamente pelo arquivo 😉

“OK, agora eu escolho por qual linha sair… Mas como escolho quem atende cada linha?”

Inicialmente, crie uma regra de ligação entrante pelo asterisk-gui. Depois, edite o arquivo /etc/asterisk/extensions.conf localizado no servidor, para alterarmos a regra manualmente.

Para o exemplo abaixo, itens entre “<>” devem ser substituídos pelo seu significado (retirando-se os “<>”).

Este é o exemplo mais complexo possível, pois para cada linha iremos direcionar a ligação para um ramal diferente.

Linhas que iniciam por “;” são comentários sobre a linha imediatamente abaixo, e não são necessárias para a regra.

O “ID da porta …” a que me refiro, é o mesmo que configuramos no how-to anterior, na configuração do próprio ATA.

A regra final fica:

exten = ATALinhas,1,NOOP(${SIP_HEADER(TO)})
;DST será = ID da porta que está chamando no ATA
exten = ATALinhas,n,SET(DST=${CUT(CUT(${SIP_HEADER(TO)},@,1),:,2)})
;Se for o ID da porta 1, executa a próxima linha, senão vai para “n(SegundaLinha)”
exten = ATALinhas,n,Gotoif($[${DST} = <ID da porta 1>]?:SegundaLinha)
;Chama o ramal definido
exten = ATALinhas,n,Goto(default,<Ramal que atenderá a linha 1>,1)
;Se for o ID da porta 2, executa a próxima linha, senão vai para “n(TerceiraLinha)”
exten = ATALinhas,n(SegundaLinha),Gotoif($[${DST} = <ID da porta 2>]?:TerceiraLinha)
;Chama o ramal definido
exten = ATALinhas,n,Goto(default,<Ramal que atenderá a linha 2>,1)
;Se for o ID da porta 3, executa a próxima linha, senão vai para “n(QuartaLinha)”
exten = ATALinhas,n(TerceiraLinha),Gotoif($[${DST} = <ID da porta 3>]?:QuartaLinha)
;Chama o ramal definido
exten = ATALinhas,n,Goto(default,<Ramal que atenderá a linha 3>,1)
;Chama o ramal definido
exten = ATALinhas,n(QuartaLinha),Goto(default,<Ramal que atenderá a linha 4>,1)

Pronto! 🙂

Lembrando que após alterar e salvar o arquivo, você deve executar um “/etc/rc.d/asterisk reload” para ativar as novas configurações.

Até a próxima!

[]’s

 Posted by at 21:56
jun 172010
 

No how-to anterior instalamos um servidor asterisk. Talvez você também tenha instalado uma placa para telefonia digital (E1).

“OK, mas e minhas linhas analógicas?” Provavelmente sua operadora de telefonia faz “desvio de rota”, fazendo com que os antigos números analógicos sejam redirecionados para o E1…

“OK, mas eu não tenho um canal E1, só tenho algumas linhas analógicas… E queria usar o asterisk… Consigo?” Sim! 🙂

Você poderia comprar uma placa PCI ou PCI-express que possua portas FXO, ou ainda, comprar alguns ATAs com portas FXO.

Neste how-to, veremos como configurar um ATA Linksys SPA400-NA (4 portas FXO) para “conversar” com o asterisk.

Primeiro, acesse a interface de administração web do ATA, configure um IP para ele (neste how-to usaremos 192.168.50.5). Também configure os demais parâmetros (máscara, gateway, DNS’s, servidor NTP, fuso horário) conforme o seu ambiente.

Após, efetue a atualização do firmware para a versão 1.1.2.2 (acesse o site do ATA para efetuar o download). Esta atualização é necessária para utilizarmos alguns recursos mais “avançados”.

Após feita a atualização, confirme se as configurações iniciais que efetuamos continuam OK.

Depois, acesse a guia “Setup” / “SPA9000 Interface”.

Nesta guia, no campo “User ID” você deve informar qual será o nome do “tronco” no asterisk (neste how-to usaremos “NomeTronco”). Também deve deixar selecionada a opção “Discover automatically”.

Abaixo disto, termos quatro campos para os ID’s de cada uma das portas. Sugiro utilizar nomes que identifiquem as linhas que serão ligadas em cada porta (por exemplo, o próprio número da linha). Neste how-to, vamos supor que os ID’s ficaram “IDPorta1”, “IDPorta2”, “IDPorta3” e “IDPorta4”.

Bom, no ATA era isto: salve as alterações e vamos para o asterisk-gui.

Acesse o menu “Trunks” na esquerda, depois a aba “VOIP Trunks”. Clique em “New SIP/IAX Trunk”.

No “Type”, selecione “SIP”. Em “Context Naming”, selecione “based on username”.

Coloque o nome deste tronco (o mesmo informado lá no ATA) no campo “Provider Name”.

Informe o endereço IP do ATA no campo “Hostname”. Em “Username”, também informe o nome do tronco.

Deixe o campo “Password” em branco.

Salve as alterações, mas ainda não recarregue as configurações! Apenas saia do asterisk-gui, pois precisamos efetuar alguns ajustes manualmente.

Efetue login no servidor (SSH, alguém? 🙂 ) e edite o arquivo /etc/asterisk/users.conf.

Nele, localize o tronco que foi criado e altere a linha “registersip = yes” para “registersip = no“. Salve e feche o arquivo.

Agora, edite o arquivo /etc/asterisk/sip.conf.

Localize a seção “[general]” e logo abaixo desta linha adicione uma contendo “register = NomeTronco@192.168.50.5/NomeTronco”.

Agora, vá bem para o final deste arquivo, e adicione as seguintes linhas:

[NomeTronco]
type=friend
user=NomeTronco
host=192.168.50.5
dtmfmode=rfc2833
canreinvite=no
context=DID_NomeTronco

Salve e feche este arquivo.

Agora é só recarregar as configurações do asterisk (“/etc/init.d/asterisk reload”) e pronto!

Em breve, algumas dicas de como selecionar a porta do ATA em uma ligação sainte, e também como direcionar as ligações entrantes baseando-se na porta de entrada 😉 .

 Posted by at 22:42
maio 282010
 

Olá!

Neste how-to veremos como instalar um servidor de telefonia digital (VoIP) utilizando o software gratuito asterisk. Também é possível comprar placas PCI ou PCI-express para utilização com links de telefonia digital (um canal “E1”, por exemplo), altém de ATAs (adaptadores de de telefones ou linhas analógicas).

Inicialmente, precisamos de um servidor com o linux Ubuntu Server 10.04 instalado. No meu caso, utilizei a versão de 64bits, pois o computador que utilizei possuía esta capacidade. Recomendo a instalação do servidor SSH, para facilitar o acesso posteriormente ;). OK, pode ser qualquer outro linux, mas eu usei este porque facilita bastante hehe.

Neste how-to também instalaremos um servidor MySQL neste Ubuntu, para armazenar os registros de ligação em banco de dados.

Em muitos casos irei explicar o que estamos fazendo. Farei isto colocando a explicação do lado do comando, e entre parênteses. Por exemplo, quando você ver:

make (compilar a biblioteca)

você só executa “make”, a parte “(compilar a biblioteca)” é o comentário explicativo ;).

Primeiramente precisamos instalar alguns pacotes que não são instalados por padrão.

Efetue login no servidor, e depois execute “sudo su”. A senha que será solicitada será a sua própria senha. Com isto, você se tornará usuário “root”, possibilitando e facilitando a execução dos comandos necessários. Abaixo, a lista de comandos para instalar os pacotes. Em alguns casos, o “apt” solicitará confirmação do download, pois será feito download de mais de um pacote. Basta digitar “s” e pressionar “enter” (eu instalei o Ubuntu em português… se você preferiu instalar em inglês, digite “y” ao invés de “s”).

apt-get install gcc
apt-get install build-essential
apt-get install libncurses5-dev
apt-get install m4
apt-get install bison
apt-get install zlib1g-dev
apt-get install libssl-dev
apt-get install libpng12-dev
apt-get install libslang2-dev
apt-get install libnewt-dev
apt-get install cvs
apt-get install doxygen

Também iremos instalar o subversion, para que possamos efetuar o download da interface web de configuração do asterisk, o asterisk-gui:
apt-get install subversion

E já que estamos instalando um montão de coisas :P, vamos aproveitar e instalar o MySQL:
apt-get install mysql-server

Agora, crie uma pasta temporária para armazenarmos os arquivos do asterisk. Vamos supor, “mkdir /asterisk_temp”.

Efetue o download do asterisk, asterisk-addons, libpri e do driver “dahdi” (versão completa) e salve tudo na pasta temporária. Abaixo, comandos para efetuar o download do próprio servidor, mas seria interessante acessar o site do asterisk para verificar por versões mais novas.

wget http://downloads.asterisk.org/pub/telephony/libpri/releases/libpri-1.4.11.tar.gz
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/releases/dahdi-linux-complete-2.3.0+2.3.0.tar.gz
wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.4.31.tar.gz
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-addons-1.4.11.tar.gz

Também já vamos efetuar o download do asterisk-gui. O comando abaixo irá efetuar o download, e salvará o conteúdo na subpasta “asterisk-gui”:

svn checkout http://svn.digium.com/svn/asterisk-gui/branches/2.0/ asterisk-gui

Caso queira gerar um pacote do asterisk-gui, para ter um backup, execute o comando abaixo após o download ter sido concluído:

tar -jcvf asterisk-gui-2.0.tar.bz2 ./asterisk-gui

Agora, vamos à instalação destes pacotes:

1) libpri

tar -zxvf libpri-1.4.11.tar.gz (descompactar o arquivo)
cd libpri-1.4.11 (entrar na pasta)
make (compilar a biblioteca)
make install (instalar a biblioteca)
cd .. (voltar pra pasta enterior)

2) dahdi

tar -zxvf dahdi-linux-complete-2.3.0+2.3.0.tar.gz
cd dahdi-linux-complete-2.3.0+2.3.0
make
make install
make config (alguns pacotes tem comandos “make” adicionais…)
cd ..

Caso você tenha uma placa para link de telefonia digital (o canal “E1”, por exemplo), também precisa efetuar os seguintes passos:
pico /etc/dahdi/system.conf (editar este arquivo; efetue as alterações necessárias, conforme indicado no manual da sua placa)
pico /etc/modules (editar este arquivo; retire os módulos desnecessários, colocando um “;” no início da linha para, assim, torná-las “comentários” que serão ignorados)

3) asterisk

tar -zxvf asterisk-1.4.31.tar.gz
cd asterisk-1.4.31
./configure (alguns pacotes precisam ser “configurados” antes de serem compilados)
make
make install
make samples (instala os arquivos de configuração iniciais)
make progdocs
cd ..

4)  MySQL Client (a partir do fonte)

O asterisk-addons não reconhece o cliente do Mysql instalado com o “apt-get”.
Acesse o site do Mysql e baixe o código fonte da mesma versão que você instalou (por exemplo. 5.1.58).
Instale o cliente com:

tar -zxvf mysql-5.1.58.tar.gz
cd mysql-5.1.58
./configure –without-server
make
make install
cd ..

5) asterisk-addons

tar -zxvf asterisk-addons-1.4.11.tar.gz
cd asterisk-addons-1.4.11
./configure
make
make install
make samples (instala os arquivos de configuração iniciais)
cd ..

Edite o arquivo “/etc/asterisk/modules.conf” e, bem ao final do arquivo, adicione a seguinte linha:

load => cdr_addon_mysql.so

Agora, crie um arquivo chamado “MySQL-script” (por exemplo), e coloque o conteúdo abaixo dentro dele:

————————COPIE A PARTIR DA LINHA ABAIXO
create user asterisk;
update user set password=password(‘ALTERE-ESTA-SENHA’) where user=’asterisk’;
create database asterisk;
grant insert,select on asterisk.* to asterisk@’%’;
flush privileges;

USE asterisk;

CREATE TABLE `cdr` (
`calldate` datetime NOT NULL default ‘0000-00-00 00:00:00’,
`clid` varchar(80) NOT NULL default ”,
`src` varchar(80) NOT NULL default ”,
`dst` varchar(80) NOT NULL default ”,
`dcontext` varchar(80) NOT NULL default ”,
`channel` varchar(80) NOT NULL default ”,
`dstchannel` varchar(80) NOT NULL default ”,
`lastapp` varchar(80) NOT NULL default ”,
`lastdata` varchar(80) NOT NULL default ”,
`duration` int(11) NOT NULL default ‘0’,
`billsec` int(11) NOT NULL default ‘0’,
`disposition` varchar(45) NOT NULL default ”,
`amaflags` int(11) NOT NULL default ‘0’,
`accountcode` varchar(20) NOT NULL default ”,
`uniqueid` varchar(32) NOT NULL default ”,
`userfield` varchar(255) NOT NULL default ”
);

ALTER TABLE `cdr` ADD INDEX ( `calldate` );
ALTER TABLE `cdr` ADD INDEX ( `dst` );
ALTER TABLE `cdr` ADD INDEX ( `accountcode` );
————————COPIE SOMENTE ATÉ A LINHA ACIMA

Este é um script para criação do usuário e banco de dados que o asterisk utilizará, no MySQL, para o registro das ligações.

Se você não alterou nada no início do script, tanto o usuário quanto o nome do banco serão “asterisk”. A senha do usuário ficaria “ALTERE-ESTA-SENHA” :P.

Após ter criado o arquivo com o conteúdo acima, execute o script com:

mysql -p -u root < ./MySQL-script

A senha que será solicitada é a do usuário “root” do MySQL.

Feito isto, continuamos com a configuração dos addons. Edite o arquivo “/etc/asterisk/cdr_mysql.conf”.

Altere a seção “[global]” para que fique como o exemplo abaixo (retire os comentários se necessário):

[global]
hostname=localhost
dbname=asterisk
table=cdr
password=ALTERE-ESTA-SENHA
user=asterisk
port=3306
sock=/var/run/mysqld/mysqld.sock
userfield=1

Para retirar os comentários, basta apagar o “;” do início da linha.

Caso você tenha alterado o nome do usuário, banco ou tabela, faça as alterações necessárias ;).

Também precisamos editar o arquivo “/etc/asterisk/res_mysql.conf”. Altere a seção “[general]” para que fique como o exemplo abaixo (retire os comentários se necessário):

[general]
dbhost = 127.0.0.1
dbname = asterisk
dbuser = asterisk
dbpass = ALTERE-ESTA-SENHA
dbport = 3306
dbsock = /var/run/mysqld/mysqld.sock

E como vamos salvar os registros em banco de dados, vamos desativar o armazenamento deles em “texto puro”, que vem ativo por padrão. Para isto, edite o “/etc/asterisk/cdr.conf”. Comente (coloque um “;” no início da linha) todas as linhas da seção “[csv]”, incluindo a própria linha “[csv]”.

5) asterisk-gui

cd asterisk-gui
./configure
make
make install

Edite o “/etc/asterisk/http.conf”. Na seção “[general]”, altere as linhas mencionadas abaixo, deixando-as como informado (retire os comentários se necessário):

enabled = yes
enablestatic = yes
bindaddr=0.0.0.0

Também é necessário editar o “/etc/asterisk/manager.conf”.

Nele, na seção “[general]”, altere as linhas indicadas abaixo (retire os comentários se necessário):

enabled = yes
webenabled = yes

Além disto, adicione as seguintes linhas bem no final do arquivo:

[admin] (“admin” será o usuário de acesso à interface web)
secret = SENHAsecreta (esta será a senha do usuário)
read = system,call,log,verbose,command,agent,config (com estas opções, poderemos visualizar todas as configurações possíveis)
write = system,call,log,verbose,command,agent,config (com estas opções, poderemos alterar todas as configurações possíveis)

Agora precisamos criar um arquivo de inicialização para o asterisk, para que ele inicie juntamente com o linux. Crie o arquivo “/etc/init.d/asterisk” e coloque o seguinte conteúdo no mesmo:

————————COPIE A PARTIR DA LINHA ABAIXO
#! /bin/sh -e
#### BEGIN INIT INFO
# Provides:          asterisk
# Required-Start:    $mysql
# Default-Start:     2 3 4 5
# Default-Stop:      S 0 1 6
# Short-Description: Asterisk Server
# Description:       Asterisk Server
### END INIT INFO
#
# Author:    Huff
#
set -e

PATH=/bin:/usr/bin:/sbin:/usr/sbin
DAEMON=/usr/sbin/asterisk

test -x $DAEMON || exit 0

. /lib/lsb/init-functions

case “$1” in
start)
log_daemon_msg “Starting” “asterisk”
$DAEMON
log_end_msg $?
;;
stop)
log_daemon_msg “Stopping” “asterisk”
$DAEMON -rx “stop now”
log_end_msg $?
;;
restart)
$0 stop
$0 start
;;
reload)
log_daemon_msg “Reloading config for” “asterisk”
$DAEMON -rx “module reload”
log_end_msg $?
;;
*)
echo “Usage: /etc/init.d/asterisk {start|stop|restart|reload}”
exit 1
;;
esac

exit 0
————————COPIE SOMENTE ATÉ A LINHA ACIMA

Altere as permissões do arquivo, para que ele possa ser executado:

chmod 755 /etc/init.d/asterisk

Agora, vamos adicionar o script à inicialização do servidor:

update-rc.d -f asterisk defaults

Agora já vamos iniciar o asterisk :):

/etc/init.d/asterisk start

Agora, abra um navegador de internet em algum computador que tenha acesso ao servidor asterisk, pela rede.

Acesse o endereço “http://Endereco.IP.do.Servidor:8088/asterisk/static/index.html” (obs: altere “Endereco.IP.do.Servidor” pelo Endereço IP do Servidor :P).

Efetue login com o usuário (admin) e a senha (SENHAsecreta).

Neste primeiro acesso o asterisk-gui irá preparar os arquivos de configuração, adaptando-os para utilização com esta interface web. Após ele ter concluído o processo, saia da interface clicando no botão “logout” localizado bem acima à direita.

Volte para o servidor (SSH é muito útil nessas horas :D) e edite o arquivo “/etc/asterisk/extensions.conf”.

Nele, comente as seções indicadas abaixo (com isto, quero dizer que você deve comentar todas as linhas que estiverem dentro de cada seção, bem como a linha que indica a seção, como no caso do “[csv]” visto anteriormente):

[dundi-e164-canonical]
[dundi-e164-customers]
[dundi-e164-via-pstn]
[dundi-e164-local]
[dundi-e164-switch]
[dundi-e164-lookup]
[macro-dundi-e164]
[iaxtel700]
[iaxprovider]
[trunkld]
[trunklocal]
[trunktollfree]
[international]
[longdistance]
[local]
[macro-trunkdial]
[macro-stdPrivacyexten]
[macro-page]
[demo]
[page]

Após ter feito isto (eu sei, é bastante coisa, mas são coisas desnecessárias, muitas delas criadas apenas para testes, o melhor é remover mesmo ;)), vamos fazer o asterisk recarregar a configuração:

/etc/init.d/asterisk reload

Pronto! Agora é só configurar o asterisk, seja editando os arquivos de configuração manualmente, ou pela interface web ;).

Em breve, mais dicas de asterisk!

 Posted by at 22:34
maio 062010
 

Olá!

Neste post vou passar rapidamente como implementar controle de banda, para limitar a velocidade utilizada por downloads, utilizando o proxy squid.

Primeiramente, é necessário adicionar o parâmetro “–enable-delay-pools” na hora de configurar/compilar o squid. Por exemplo:

./configure –prefix=/usr/local/squid –enable-delay-pools
(Observação: antes do “prefix” e do “enable”, são dois sinais “-“, não sei porque o WordPress só mostra um :P)

O comando acima fará com que o squid se instale, posteriormente, na pasta “/usr/local/squid”, além de habilitar a funcionalidade que precisaremos para o controle de banda (os “delay pools”).

Após a configuração ter sido concluída, basta continuar normalmente com a compilação (os tradicionais “make” e “make install”).

Ao configurar as regras de acesso, no arquivo “squid.conf” (no nosso exemplo, localizado em “/usr/local/squid/etc”), poderemos criar “canais” (os “pools”) com limites de velocidade, e regrar que “tal acesso” será feito por “tal pool”. Vamos ao exemplo de como ficam as linhas no arquivo de configuração (lembrando que linhas iniciadas por “#” são consideradas “comentários”, e são ignoradas pelo squid):

#Tipos de arquivos para os quais limitaremos a banda
#acl nome_regra tipo_regra regra-propriamente-dita
#”url_regex -i” analisará todo o endereço sendo acessado, utilizando expressões regulares,
#e ignorando maiúsculas/minúsculas (isto quem faz é o “-i”)
acl limite_banda url_regex -i \.exe \.zip \.rar \.tar \.tar\.(gz|bz2)

#Quantidade de pools que iremos criar
delay_pools 1

#Classe para acesso com restricao de banda
#O primeiro “1” define que estamos informando a classe (digamos, o “tipo da limitação”) para o delay_pool 1
#O segundo “1” define o tipo da classe. Para mais detalhes, acesse este link para o manual do squid
delay_class 1 1

#Definição da largura da banda, em bytes
#O “1” informa que estamos parametrizando o delay_pool 1
#Por ser classe 1, estamos colocando todos os acessos dentro do mesmo “canal”, significando que todos irão
#compartilhar a banda definida (quanto mais downloads simultâneos, mais lento todos ficarão, pois a banda será
#dividida entre todos). Caso esteja utilizando outra classe, serão necessários mais parâmetros
#(veja o manual do squid)
#Aprox. 300kbps
delay_parameters 1 37500/37500

#Agora, associamos a regra ao delay_pool
delay_access 1 allow limite_banda

#E depois temos que liberar o restante, fora do limite de banda
http_access allow seus-parametros-de-acesso

Pronto! 🙂

Ao efetuar download de qualquer arquivo “exe”, “zip”, “rar”, “tar”, “tar.gz” ou “tar.bz2”, o mesmo entrará no canal com banda limitada.

Demais acessos serão feitos sem o limite.

 Posted by at 14:31
dez 212009
 

Olá!
Caso alguém precise, aqui estão os passos.
Para o exemplo, vamos supor que existam 3 HD’s SATA: 1 para a instalação do Xen (/dev/sda), os outros dois onde faremos o RAID-0 (/dev/sdb e /dev/sdc).

Criar uma partição e alterar seu tipo para “linux raid”, em cada HD a ser utilizado no RAID:

fdisk /dev/sdb

Pressionar “p” para visualizar as partições (se o disco for novo, não terá nenhuma) * PASSO OPCIONAL
Pressionar “d” para excluir partições (se necessário), digite o número da partição e pressione “ENTER” * PASSO OPCIONAL, dependendo se o disco é novo ou não
Pressionar “n” para criar uma partição, “p” para que ela seja “primária”, digitar “1” e pressionar “ENTER” para que seja a primeira partição no disco
Pressionar “t” para alterar o tipo de partição, digitar o número da partição e pressionar “ENTER”, digitar “fd” e pressionar “ENTER” para alterar o tipo de partição para “linux raid”
Pressionar “w” para salvar as alterações e sair do fdisk
Repedir para o /dev/sdc

Para mim, o /dev/md0 já existia… Mas eu não tinha nenhum RAID configurado…
Por garantia, excluí ele:

rm -f /dev/md0

Criar o device RAID (sintaxe genérica: mknod NOME TIPO MAJOR MINOR):

mknod /dev/md0 b 9 0

/dev/md0: device a ser criado
b: será um device “de bloco” (existem outros tipos)
9: pelo que pesquisei no google, um device RAID (“/dev/md…”) é um device de bloco com o MAJOR=9 (só não achei o porquê)
0: pelas minhas pesquisas no google, é o mesmo número do “md” (como estamos criando o “md0”, aqui vai “0”; para o “md1”, aqui iria “1”; etc, só também não achei o porquê)

Inicializar o RAID:

mdadm –create /dev/md0 –level=0 –raid-devices=2 /dev/sdb1 /dev/sdc1

–create /dev/md0: criaremos o RAID em /dev/md0
–level=0: queremos um RAID-0
–raid-devices=2: a quantidade de discos que fará parte deste RAID
Os últimos parâmetros tratam-se de uma lista com os discos/partições a serem utilizadas neste RAID

Adicionar a nova área ao xen:

xe sr-create content-type=”LocalSR” type=lvm device-config-device=/dev/md0 shared=false name-label=”RAID0″

sr-create: criar um novo Storage Repository
content-type=”LocalSR”: será um repositório local
type=lvm: tipo de particionamento (LVM seria “o melhor”, segundo as pesquisas que andei fazendo no google, nas quais encontrei esta explicação sobre LVM)
device-config-device=/dev/md0: o disco a ser utilizado (aqui apontamos para o device RAID)
shared=false: o SR não será compartilhado (outros servidores Xen não acessarão este repositório)
name-label=”RAID0″: nosso SR se chamará “RAID0”, na tela de administração do Xen

Pronto! o novo SR já está disponível para uso ;).

 Posted by at 12:03