23 Abr, 2009

FMS 3.5.1 y CentOS

Escrito por: leopoldomaestro En: fms

Después de instalar FMS 3.5.X en CentOS 5.3, probablemente nos encontremos que nos da algunos segfault y algunos binarios tienen problemas.

Solución:

1) ln -s /opt/adobe/fms/libasneu.so.1 /lib/libasneu.so.1

2) yum install nspr nspr-devel

21 Abr, 2009

Linea de Grub para instalación remota de CentOS via VNC

Escrito por: leopoldomaestro En: Linux| centos

title vnc remote install
root (hd0,0)
kernel /vmlinuz vnc vncpassword=almenos8 headless ip=192.168.0.2 netmask=255.255.255.0 gateway=192.168.0.1 dns=80.58.0.33 hostname=servidor ksdevice=eth0 method=http://ftp.udl.es/pub/centos/5.3/os/x86_64/ lang=es_ES keymap=es
initrd /initrd.img

Este howto es el primero de una serie de traducciones de howto´s realizados por Vivek Gite (cyberciti.biz) y HowtoForge.

light_logo

El software de geolocalización es usado para conseguir la localización geográfica de un visitante por medio de su dirección IP.  Es posible determinar un país, organización y conjeturar la  localización del visitante. Esto es util para

a) Detección de fraudes

b) Geo marketing y servicios de publicidad

c) Contenido para un público objetivo

d) Lucha contra el Spam

e) Y mucho más

mod_geoip dispone de un modulo de Lighttpd para la resolución rapida de ip/localización. En este tutoriál vas a aprender como instalar mod_geoip y te mostrare algunos ejemplos en PHP de lado servidor para determinar el país del visitante.

mod_geoip usa las bases de datos MaxMind GeoIP / GeoCity, las cuales disponen de dos versiones:

  • Versión gratuita: La base de datos de paises y ciudades son gratuitas, con un 99,5% de exactitud.
  • Versión de pago: Si necesitas un 99,8 % de exactitud y otros fantásticos detalles acerca de la dirección IP, la versión de pago es tu elección.

Echa un vistazo a está página para una comparativa entre las versiones de pago y gratuitas.

Una nota para los usuarios de CentOS / RHEL / Fedora

Si estas usando un repositorio de terceras partes  (ver el FAQ de  RPMforge y EPEL para su  instalación), puedes instalar un paquete binario de mod_geoip e ir directamente a la parte de configuración:

# yum install lighttpd-mod_geoip

Paso # 1: Instalar C API para mod_geoip

Escribimos el siguiente comando para descargar y extraer el C API de MaxMind:
# cd /tmp
# wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP.tar.gz
# tar -zxvf GeoIP.tar.gz

Configurar, compilar y instalar  C API:
# cd GeoIP-1.4.6
# ./configure
# make
# make install

Configurar GNU ld

Es necesario linkar mod_geoip usando la C API.  Configuramos  el enlazador  dinamico  para realizar  el enlace dinamico en tiempo  de ejecución:

# cd /etc/ld.so.conf.d/
# vi geoip.conf

Añadimos la siguiente configuración al fichero:

/usr/local/lib

Guardamos y cerramos el archivo.
Lanzamos ldconfig para activar la configuración:

# ldconfig

Verificamos que el nombre de cada directorio incluyendo /usr/local/lib es comprobado, y que todos los enlaces son creados:
# ldconfig -v | less
Ejemplo de salida:

/usr/local/lib:
        libGeoIPUpdate.so.0 -> libGeoIPUpdate.so.0.0.0
        libGeoIP.so.1 -> libGeoIP.so.1.4.6
/usr/lib/mysql:
        libmysqlclient_r.so.15 -> libmysqlclient_r.so.15.0.0
        libmysqlclient.so.15 -> libmysqlclient.so.15.0.0
/usr/lib64/mysql:
        libmysqlclient_r.so.15 -> libmysqlclient_r.so.15.0.0
        libmysqlclient.so.15 -> libmysqlclient.so.15.0.0
/lib:
        libsepol.so.1 -> libsepol.so.1
        libtermcap.so.2 -> libtermcap.so.2.0.8
....
.....
[Salida cortada]

Paso #2: Descargar la última versión de Lighttpd

Escribimos el siguiente comando:
# cd /tmp
# wget http://www.lighttpd.net/download/lighttpd-1.4.22.tar.gz
# tar -zxvf lighttpd-1.4.22.tar.gz
# cd lighttpd-1.4.22

Paso #3: Descargar el parche mod_geoip

Lanzamos el siguiente comando:
# cd lighttpd-1.4.22/src
# wget http://redmine.lighttpd.net/attachments/download/716/mod_geoip_for_1.4.c -O mod_geoip.c

Compilar lighttpd con el parche mod_geoip

Editamos el archivo Makefile.am y añadimos lo siguiente después del último modulo:

lib_LTLIBRARIES += mod_geoip.la
mod_geoip_la_SOURCES = mod_geoip.c
mod_geoip_la_LDFLAGS = -module -export-dynamic -avoid-version -no-undefined
mod_geoip_la_LIBADD = $(common_libadd) -lGeoIP

Salvamos el archivo y salimos. Pasamos a compilar lighttpd:

# cd ..
# aclocal
# automake -a
# autoconf
# make clean

Ahora debes usar el flag –enable-maintainer-mode:
# ./configure --program-prefix= --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/usr/com --mandir=/usr/share/man --infodir=/usr/share/info --with-openssl --enable-maintainer-mode
# make
# make install

Paso # 4: Descargar la base de datos Geo Lite (Versión gratuita)

Escribimos el siguiente comando:
# wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
# gunzip GeoIP.dat.gz
# ls -lh GeoIP.dat

Ejemplo de salida:

-rw-r--r-- 1 root root 1.1M Mar  9 21:13 GeoIP.dat

Instalar el archivo GeoIP.dat :
# mkdir /usr/local/GeoIP
# cp -v GeoIP.dat /usr/local/GeoIP

Paso # 5: Configurar Lighttpd

Abrimos el fichero lighttpd.conf y añadimos la siguiente configuración. Primero, habilitaremos mod_geoip

server.modules +=    "mod_geoip"

Finalmente, configuramos la ruta al fichero GeoIP.dat
y activamos el cacheo en memoria para resoluciones más rapidas:
geoip.db-filename = "/usr/local/GeoIP/GeoIP.dat"
geoip.memory-cache = "enable"

Salvamos el fichero de configuración y reiniciamos Lighttpd
# /etc/init.d/lighttpd restart

Paso # 6: Comprobar la configuración

mod_geoip va a establecer las siguientes variables de entorno:

GEOIP_COUNTRY_CODE
 GEOIP_COUNTRY_CODE3
 GEOIP_COUNTRY_NAME
 GEOIP_CITY_NAME
 GEOIP_CITY_POSTAL_CODE
 GEOIP_CITY_LATITUDE
 GEOIP_CITY_LONG_LATITUDE
 GEOIP_CITY_DMA_CODE
 GEOIP_CITY_AREA_CODE

Es posible usar diversos lenguajes de programación de lado servidor
para determinar la GEO localización del visitante.
 A continuación pongo algunos ejemplos en PHP:

What is my IP address - determine or retrieve my IP address

if (getenv(HTTP_X_FORWARDED_FOR)) {
$pipaddress = getenv(HTTP_X_FORWARDED_FOR);
$ipaddress = getenv(REMOTE_ADDR);
echo “Your Proxy IP address is : “.$pipaddress. ” (via $ipaddress) ” ;
} else {
$ipaddress = getenv(REMOTE_ADDR);
echo “Your IP address is : $ipaddress”;
}
$country = getenv(GEOIP_COUNTRY_NAME);
echo “Your country : $country”;
?>

// www.cyberciti.com/country/us/ - USA customer website
// www.cyberciti.com/country/in/ - INDIA customer website and so on…
$country_code = ( !empty( $_SERVER['GEOIP_COUNTRY_CODE'] ) ) ? $_SERVER['GEOIP_COUNTRY_CODE'] : ‘IN’;
header( ‘Location: http://www.cyberciti.com/country/’.strtolower( $country_code ).’/’ );
exit;
?>

10 Abr, 2009

Detectar si una IP esta siendo usada en la red

Escrito por: leopoldomaestro En: Linux| Redes

Previamente a configurar una dirección IP en nuestra máquina, es posible que dudemos si la IP que vamos a levantar esta siendo usada por otro Host en la red. La solución a este problema es arping, una fantástica utilidad que nos permite jugar con diferentes aspectos del protocolo ARP (Address Resolution Protocol) usado para “traducir” direcciones IP de capa 3 a direcciones MAC de capa 2.

Comprobando si una IP esta en uso

root@leo-desktop:/home/leo# arping -w3 -D 192.168.1.33
ARPING 192.168.1.33 from 0.0.0.0 eth0
Sent 4 probes (4 broadcast(s))
Received 0 response(s)

-w es usado para definir un timeout en segundos para las consultas, ya que si no le pasamos el parámetro, el programa seguirá enviando peticiones broadcast hasta que lo paremos con CTRL +C
-D activa el modo de detección de direcciones duplicadas

Tags: , ,

09 Abr, 2009

Funciones peligrosas en PHP

Escrito por: leopoldomaestro En: php

system,passthru,exec,popen,proc_close,proc_get_status,proc_nice,
proc_open,proc_terminate,shell_exec,highlight_file,escapeshellcmd,
define_syslog_variables,posix_uname,posix_getpwuid,
apache_child_terminate,posix_kill,posix_mkfifo,
posix_setpgid,posix_setsid,posix_setuid,escapeshellarg,
posix_uname,ftp_exec,ftp_connect,ftp_login,ftp_get,
ftp_put,ftp_nb_fput,ftp_raw,ftp_rawlist,
ini_alter,ini_restore,inject_code,syslog,openlog,
define_syslog_variables,apache_setenv,mysql_pconnect,eval,
phpAds_XmlRpc,phpAds_remoteInfo,
phpAds_xmlrpcEncode,phpAds_xmlrpcDecode,
xmlrpc_entity_decode,fp,fput

Cuidado con algunas de ellas… Van a romper tu aplicación de un momento a otro si las deshabilitamos ;D

Aunque es relativamente sencillo saltarse esta protección, si queremos habilitar un tmpfs en /tmp sin posibilidad de setuid y ejecución en OpenVZ/Virtuozzo, podemos hacerlo de la siguiente manera:

mount -t tmpfs -o nodev,noexec,nosuid tmpfs /tmp/
echo none /tmp tmpfs nodev,nosuid,noexec 0 0 >> /etc/fstab

* Nota para los usuarios de Cpanel: /scripts/securetmp no va a funcionar, por lo que estais obligados a seguir estos pasos.

06 Abr, 2009

Activar display_errors por dominio en Cpanel

Escrito por: leopoldomaestro En: Cpanel

Cuando necesitemos activar el display_errors por dominio en Cpanel, tan solo tenemos que habilitarlo desde .htaccess (si no tenemos SuPHP).

Añadimos al .htaccess:

php_flag display_errors on

Netflow es un protocolo de red creado por Cisco Systems (propietario), usado para analisis y monitorización de redes. Aunque es propietario, es posible desplegarlo en plataformas tan dispares como  FreeBSD, OpenBSD, Juniper, Alcatel, Foundry etc.

Es muy util para revisar el uso de ancho de banda en determinadas interfaces, gráficas de uso por número de sistema autonomo, cuellos de botella, información por protocolo etc.

El protocolo Netflow envia paquetes UDP y SCTP con los registros Netflow a una aplicación (colector Netflow) especialmente diseñada para almacenar la información en una base de datos.

La última version del protocolo es la IPFIX, más conocida como v10, la cual es una versión 9 estandarizada por IETF, con mejoras orientadas al ambito empresarial, además de algunas aportaciones de la comunidad.

De momento, nos centraremos en la configuración del protocolo en uno de los extremos, en concreto un Cisco 7206 VXR con la tarjeta NPE-G2.

Configuración del router:

Entramos al enrutador y nos colocamos en el modo privilegiado:

enrutadordefrontera$ enable

Password:*****

Nos posicionamos en el modo de configuración:

enrutadordefrontera#configure terminal

Ahora entramos en el modo de interface:
enrutador(config)#interface GigabitEthernet 0/3

Habilitamos el flow

enrutadordefrontera(config-if)#ip route-cache flow
Volvemos al modo de configuración

enrutadordefrontera(config-if)#exit

Configuramos el lugar a donde van a ir los paquetes UDP/SCTP dirigidos (colector Netflow)
enrutadordefrontera(config)#ip flow-export destination 172.26.0.1 9996

Configuramos la interfaz desde donde enviar datos
enrutadordefrontera(config)#ip flow-export source GigabitEthernet 0/3

Elegimos la versión del protocolo
enrutadordefrontera(config)#ip flow-export version 9

NOTA: Si la 9 no funciona bien, hay que usar la version 5, que es la mas usada.

Configuramos los timeout

enrutadordefrontera(config)#ip flow-cache timeout active 1

enrutadordefrontera(config)#ip flow-cache timeout inactive 15

Salimos del modo de configuración
enrutadordefrontera(config)# ctrl + Z

Guardamos los cambios
enrutadordefrontera#write mem

Para el próximo post abordaremos la instalación de algunas aplicaciones colector donde podremos visualizar toda la información ofrecida por Netflow.

01 Abr, 2009

Ubuntu 8.10 Intrepid 64 Bits y el sonido en Firefox 3.0

Escrito por: leopoldomaestro En: Linux| ubuntu

Es probable que a algunos de vosotros no os funcione el sonido en Ubuntu 8.10 64 Bits, a pesar de realizar un monton de combinaciones con los paquetes o la instalación manual.

En mi caso, solo me funciono lo siguiente:

  1. Bajamos el fichero de libflashplayer de Macromedia: http://download.macromedia.com/pub/labs/flashplayer10/libflashplayer-10.0.d21.1.linux-x86_64.so.tar.gz
  2. Descomprimir_
    tar zxvf libflashplayer-10.0.d21.1.linux-x86_64.so.tar.gz
  3. Desinstalar el paquete antiguo:
    sudo apt-get remove flashplugin-nonfree
  4. Copiar a la carpeta de plugins de Firefox:
    sudo cp libflashplayer.so /usr/lib/mozilla/plugins

Con estos pasos, tan solo tendremos que reiniciar el Firefox y todo funcionando.

Gracias a LaConsola Blog

Sobre el blog

Blog personal de Leopoldo Maestro en el que se cubren noticias, curiosidades y experiencias relacionadas con la Administración de Sistemas, Networking, Negocios, Tecnología...