Feed on
Posts
Comments

El tutorial que tenemos a continuación nos es útil, en los casos en los que nuestro zaptel no nos haya reconocido nuestras tarjetas fxo, o bien el trixbox (antes asterisk@home).

En este caso usamosun sistema con las siguientes caracteristicas:
- trixbox 2.2
- kernel 2.6.9-34.0.2.EL
- S.O. el ya conocido Centos
- tarjeta fxo tipo intel x100p

Los pasos a seguir son los siguientes:
Checamos cual es la versión de nuestros módulos, esto es para saber que versión de zaptel bajar.
$rpm -qa | grep zaptel-modules

Una vez vista la versión de zaptel-modules, bajar el paquete desde el sitio digium necesario.

$cd /usr/src
$wget http://ftp.digium.com/pub/zaptel/releases/zaptel.x.x.x.tar.gz (suplantar las x por la version necesitada)
$tar xzvf zaptel.x.x.x.tar.gz
$cd zaptel
$vi README ( no hay que olvidar siempre leer este archivo )
$./install_prereq test

Después de ejecutar este último comando, nos aparecerá algo como esto:
#############################################
## test: test mode.
## Use the commands here to install your system.
#############################################
# Kernel source not found. Installing kernel-devel-2.6.9-34.0.2.EL
# if you get an error for the following command, consider
#
#yum install -y kernel kernel-devel
#
# and then reboot to upgrade to the newly installed kernel.
yum install -y libusb-devel c
#############################################
## test completed successfully
## (in test mode)
#############################################

Después de observar cuales son los requisitos para la instalación ejecutamos:
#./install_prereq install

O bien:
#yum install kernel kernel-devel newt-devel gcc libusb-devel -y

Ahora configuramos, creamos, instalamos, por último los arvhivos de inicio…
$./configure
$make
#make install
#make config

Creamos el archivo fsotune.conf
$touch /etc/fxotune.conf
$/sbin/fxotune -s

Después de ejecutar el último comando, nos devolverá algo así:
fxotune: successfully set echo coeffecients on FXO modules

Reiniciamos
#reboot

Se recomienda también realizar lo siguiente una vez reiniciado el sistema:
$ vi /usr/src/kernels/2.6.9-34.0.2.EL-i686/include/linux/spinlock.h
en la linea 407 cambiar ‘rw_lock_t por “rwlock_t”
#rebuild-zaptel

También recomendamos realizar lo siguiente por si ocurre algo como “all circuits are busy now”…
$vi /etc/asterisk/zapata.conf
cambiar en la linea donde se encuentre lo siguiente
;usedistinctiveringdetection=no
por:
usedistinctiveringdetection=yes

Generamos de nuevo el zaptel
#genzaptel -r

Terminamos.

Para poder realizar esta sencilla practica necesitamos compilador GCC (Gnu Compiler Collection)

En este caso vamos a analizar la llamada al sistema execve, usando el siguiente programa:
local.c

Tenemos el programa local.c, para compilarlo usamos lo siguiente:
gcc -o local -ggdb -static local.c

Aqui usamos ggdb para poder debuggear el programa poseriormente…

Si queremos saber el codigo ensamblador que se ejecuta, usamos:
gcc -o2 -S -c local.c

Para obtener el byte code de linea por linea, usamos:
gcc -c -g -Wa local.c > local.lst

Con lo que obtendremos un listado similar a:

———————————————————————–

GAS LISTING /tmp/ccUpmVKR.s page 1

1 .file “local.c”
9 .Ltext0:
10 .section .rodata
11 .LC0:
12 0000 2F62696E .string “/bin/sh”
12 2F736800
13 .text
14 .globl main
16 main:
17 .LFB2:
18 .file 1 “local.c”
1:local.c **** #include
2:local.c ****
3:local.c **** int main(void){
19 .loc 1 3 0
20 0000 55 pushl %ebp
21 .LCFI0:
22 0001 89E5 movl %esp, %ebp
23 .LCFI1:
24 0003 83EC18 subl $24, %esp
25 .LCFI2:
26 0006 83E4F0 andl $-16, %esp
27 0009 B8000000 movl $0, %eax
27 00
28 000e 83C00F addl $15, %eax
29 0011 83C00F addl $15, %eax
30 0014 C1E804 shrl $4, %eax
31 0017 C1E004 sall $4, %eax
32 001a 29C4 subl %eax, %esp
4:local.c **** char *arg[2];
5:local.c **** arg[0] = “/bin/sh”;
33 .loc 1 5 0
34 001c C745F800 movl $.LC0, -8(%ebp)
34 000000
6:local.c **** arg[1] = NULL;
35 .loc 1 6 0
36 0023 C745FC00 movl $0, -4(%ebp)
36 000000
7:local.c **** execve(”/bin/sh”, arg, NULL);
37 .loc 1 7 0
38 002a 83EC04 subl $4, %esp
39 002d 6A00 pushl $0
40 002f 8D45F8 leal -8(%ebp), %eax
41 0032 50 pushl %eax
42 0033 68000000 pushl $.LC0
42 00
43 .LCFI3:
44 0038 E8FCFFFF call execve
44 FF
45 003d 83C410 addl $16, %esp
8:local.c ****
9:local.c **** }
46 .loc 1 9 0
47 0040 C9 leave
48 0041 C3 ret
49 .LFE2:
91 .Letext0:
GAS LISTING /tmp/ccUpmVKR.s
———————————————————–

El siguiente Script, nos es útil, si tenemos un servidor de aplicaciones domésticas y nos encontramos en una red agena a la nuestra, es necesario saber que IP Pública tiene nuestro modém ADSL para poder accesar a nuestras aplicaciones. Lógicamente necesitamos que este script sea ejecutado rutinariamente a nuestra conveniencia, lo cual recomendamos algo así como un cron (caso *nix).

#!/usr/bin/perl -w

use LWP::Simple;
use HTML::TokeParser;
use Regexp::Common;
use Sys::Hostname;
use Mail::Mailer;

$mailadmin = “admin\@dominio.com”; #correo de nuestra preferencia donde se desea recibir la información
$hostname = hostname();
$url = “http://192.168.1.254/xslt?PAGE=B01&THISPAGE=&NEXTPAGE=B01″; #la url Absoluta de donde nos muestra el modem los datos
$path = “prodigytest.txt”; #nombre de archivo para vaciar datos de la url

unless (defined($contenido = get($url))){ #obtenemos los datos de la url
die “No se puede obtener $url”;
}

open(FH, “>”, $path) or die “No se puede abrir el archivo $path : $!\n”; #Se abre el archivo y escribe en el los datos
print FH $contenido;
close(FH);

my $range = qr/^ #Espresion Reguar por Dietz
(
(?: # first 3 octets:
(?: 2(?:5[0-5]|[0-4][0-9])\. ) # 200 - 255
| # or
(?: 1[0-9][0-9]\. ) # 100 - 199
| # or
(?: (?:[1-9][0-9]?|[0-9])\. ) # 0 - 99
)
{3} # above: three times

(?: # 4th octet:
(?: 2(?:5[0-5]|[0-4][0-9]) ) # 200 - 255
| # or
(?: 1[0-9][0-9] ) # 100 - 199
| # or
(?: [1-9][0-9]?|[0-9] ) # 0 - 99
)

$)
/x;

#Se realiza el parser para obtener solo los datos que nos interesan
my $parser = HTML::TokeParser->new($path) or die “No se puede abrir: $path $!”;
while (my $token = $parser->get_tag(”td”)){

my $url = $parser->get_trimmed_text(”/td”);
if ($url =~ m{^$RE{num}{int}{-sep=>’.'}{-group=>3}}){
if ($url =~ /$range/){
$ip = $url;
}
}

}

unlink($path) or die “No se puede eliminar $path: $!\n”;

#Es enviado el correo con los datos deseados
$from_address = “name\@localhost”;
$to_address = $mailadmin;
$subject = “IP Publica”;
$body = “Datos del servidor:\n\nIP: $ip\nDominio: $hostname\nFin del mensaje\n”;

$mailer = Mail::Mailer->new(”sendmail”);
$mailer->open({ From => $from_address,
To => $to_address,
Subject => $subject,
})
or die “Can’t open: $!\n”;
print $mailer $body;
$mailer->close( );

#script por Eliseo Ortiz, para fines didacticos.

Tecnología Wi-Max

Breve documento, de la descripción de la tecnología Wi-Max como Sistema de Comunicación RF de largo alcance

cheo-wimax

Aqui muestro los pasos a seguir para tener configurado nuestro Fedora Core 7 con Apache & PHP & Interbase.
1. Descargamos los paquetes fuentes de Apache, PHP, Firebird.

Escojamos el mirror que mas os convenga..

Apache:

http://www.apache.org/dyn/closer.cgi

PHP:

http://mx2.php.net/get/php-5.2.5.tar.gz/from/a/mirror

Firebird:

Nota.- Se recomienda para Linux, bajar la versión Super Server…

http://www.firebirdsql.org/index.php?op=files&id=engine_203

2 . Instalamos Firebird

#rpm -ivh FirebirdSS-2.0.3.12981-1.nptl.i686.rpm

Se instalará en /opt/firebird

El demonio se creara en /etc/rc.d/init.d/firebird

Podemos probar el servicio:

#service firebird start
3. Instalamos Apache
#tar -zxvf httpd-*.tar.gz
b. Ingresamos a la carpeta creada
#cd httpd

Configuración, Compilación & Instalación Apache

#./configure –prefix=/usr/local/apache2 –enable-module=so

#make
#make install

La carpeta donde se encontraran nuestros documentos web se encuentran en /usr/local/apache2/httdocs, sin embargo podemos modificar esto ingresando al archivo de configuración

#vim /usr/local/apache2/conf/httpd.conf
Modificamos la siguiente linea por la carpeta donde nosotros deseemos, por ejemplo /var/www:
DocumentRoot “/usr/local/apache2/htdocs”

Ahora probamos nuestro servidor apache ingresando en nuestro navegador http://localhost/ o bien desde otra estación poner la dirección ip del servidor Web en el navegador.

4. Instalamos PHP:

#tar xzvf php-*.gz
#cd php-5.2.1

Configurando, Compilando & Instalando:

./configure –with-interbase=shared,/opt/firebird –with-gd –with-zlib –with-xml –with-apxs2=/usr/sbin/apxs -prefix=/usr/local/php

#make
#make install
Checamos el archivo php.ini se encuentra en el directorio

#ls /usr/local/php/lib/php.ini
Si no existe el archivo lo copiamos desde el directorio donde hemos compilado PHP

#cp php.ini-dist /usr/local/php/lib/php.ini
Editamos el archivp php.ini

Checamos que se haya creado el siguiente directorio:

/usr/local/php/lib/php/extensions/no-debug-non-zts-*

#vim /usr/local/php/lib/php.ini
Buscamos la linea que contenda extension_dir =”./”
y le proporcionamos el path del módulo de la extension que queramos añadir, en este caso el de interbase.so

extension_dir =”/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613″

Ahora en el mismo archivo php.ini encontraremos “Dynamic Extensions” alli añadimos nuestra extensión:
extension=interbase.so

5. Apache & PHP:

Solo nos resta añadir los parámetros de AddType en el httpd.conf
#vim /usr/local/apache2/conf/httpd.conf
añadiendiremos:
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps

Reiniciamos apache

#/usr/local/apache2/bin/apachectl restart

6. Comandos básicos para adminsitración firebird:

./gsec -user sysdba -pass masterkey -mo sysdba -pw masterkey

Nota.- Si no funciona masterkey debemos de examinar el password que nos pone por default firebird en:

#cat /opt/firebird/SYSDBA.password

obtenemos algo así:

ISC_USER=sysdba

ISC_PASSWD=xhra45j

Ingresamos de nuevo como sysdba:

#./gsec -user sysdba -password xhra45j

GSEC>

Modificando desde el CLI la contraseña de sysdba

GSEC>modify sysdba -pw <nueva contraseña>

GSEC>quit

In gresando a una base de datos:

./isql “/opt/firebird/DATOS.GDB” -u sysdba -p <nueva contraseña>

Recomendamos bajar el ibwebadmin, muy al estilo de phpmyadmin de MySQL, solo lo descomprimimos en el directorio que tengamos especificado en DocumentRoot de la configuración de nuestro apache.

http://sourceforge.net/project/showfiles.php?group_id=25198

Administrando Sistema I

A continuación un simple código bash que nos permite realizar respaldos de ficheros en systemas unix/linux a través de cd-rom, la mecánnica es la siguiente:

1. Checa la existencia del fichero

2. Analiza que no sobrepase el tamaño del cd-rom

3. Grabar la información en el cd-rom

#!/bin/sh

fichero=directoriopararespaldar

if [ -e $fichero ]; then

result=$(du -s $fichero | cut -f 1)

if [ $result -gt 700000000 ];then
#echo “El directorio $fichero pesa mas de 256 bytes”
exit
else
mkisofs -r -R -JÂ -allow-multidot -o /tmp/resp_$(date +%F).iso -graft-points “/=$fchero”

# -r: lectura pública, -R:Información ficheros unix, -o:Nombre, -J: Directorios Joliet

cdrecord dev=0,4,0 -v –eject speed=4

fi

fi

La manera mas simple de conectar una Terminal con un host, es vía una conexión directa hacia el puerto serial de la computadora. La mayoría de las computadoras personales contienen 1 o mas puertos seriales, los cuales pueden ser usados por el Mouse. Para el puerto EIA-232 se necesita un cable null modem de transmisión cruzada (PC a PC). En la tecnología ethernet este cable es llamado crossover. Si quieres usar el control del flujo por el hardware, tendrás que usar el pin DTR (o ambos el pin DTR y el DSR).

A continuación un documento donde se realizan experimentos extraños….

Comunicaciones Seriales

El siguiente programa es un tipo sencillo de sniffer, utilizando libreria libpcap y netinet. Este programa nos muestra las cabeceras Ethernet, TCP, IP, ya sea todas o las que le especifiquemos, además de mostrarnos datos capturados por nuestra interfaz en modo “promiscuo”.

Código del sniffer

Farid Bielma

Página de Farid Bielma López, un buen amigo asiduo programador y entusiasta del software libre / open source.

http://www.fbielma.org

El siguiente programa realiza calculos de radioenlaces para Wi-Fi a 2.4Ghz

Se calculan los siguientes parámetros:

a) Margen de Desvanecimiento

b) Línea de Vista

c) Zona de Fresnel

d) Nivel de poder de recepción EIRP

e) Ganancia del plato, de la antena parabólica y radio de amplitud

Ejemplo del código: http://www.eliseoov.org/se/wificalc/calculator.php

Código PHP del programa

Older Posts »