fedora + backtrack

31 de diciembre de 2008

Después de comprarme el akoya me ha quedado libre mi antiguo portátil IBM R40. Que mejor manera de aprovecharlo que instalar dos linux y hacer, como dicen, cosas malotas. Me he instalado en la misma maquina un fedora 10 y la última versión del backtrack 3. El backtrack sólo funciona en livecd y ahora en usb, pero esta es una manera de instalarlo directamente en el disco y con el grub elegir si queremos arrancar el fedora o el backtrack.

Dicen que linux es genial para hacer cosas malas... que es capaz de tumbar maquinas y personas... yo no se si creermelo.

Estos son los pasos.

+ Primero instalamos el fedora 10 como una instalación de toda la vida... Next, Next y más Next. Lo único que tendremos en cuenta es en el particionado de los disco. Vamos hacer algo sencillito. El disco tiene 40Gb, así que utilizaremos 19Gb para fedora y 19Gb para el backtrack. Los 2Gb que sobran los utilizaré para swap. Es decir:

/dev/sda1, montaremos / con ext3
/dev/sda2, montaremos swap

El resto de disco no lo tocamos. Lo particionaremos cuando instalemos el backtrack. Las medidas de las particiones es a gusto del consumidor. Notar también que utilizaremos la misma partición de swap para Fedora y Backtrack.

Una vez terminada la instalación del fedora y comprobemos que todo esta ok hacemos una pequeña modificación en el gestor de arranque grub. Editamos /etc/grub.conf ponemos como timeout=15 y el parametro hiddenmenu lo comentamos con #hiddenmenu.

Lo que hacemos con esto es que el menú del grub sea visible (hiddenmenu) por 15 segundos (timeout), pasado este tiempo cargará Fedora de forma predeterminada.

+ Instalamos ahora el backtrack. Apagamos el portatil y arrancamos con el livecd del backtrack 3 final. Una vez arrancado y entrado en el gestor de ventanas arrancamos la herramienta de particionado de disco qtparted para terminar de particionar la partición que habiamos dejado libre de 19Gb. La herramienta está en Inicio->System->QtParterd. A mi me tardó en arrancar porque no se que hace con los discos.

+ Crearemos la partición 3, es decir /dev/hda3. Para ello seleccionamos el espacio libre dentro del /dev/hda y con el botón derecho le decimos "Create". Le decimos sistema de ficheros ext3 (yo seleccioné ext2 por motivos personales) y que ocupe todo el espacio posible que sobre en el disco. Para finalizar le damos icono del floppy para salvar la configuración. Como resultado tendremos la nueva particion /dev/hda3.

+ Comenzamos a volcar los datos del livecd a la nueva partición. Esto se hace siguiendo esta receta que se encuentra por Internet.

# mkdir /mnt/backtrack
# mount /dev/hda3 /mnt/backtrack
# mkdir /mnt/backtrack/boot/
# cp -R /{bin,dev,home,pentest,root,usr,etc,lib,opt,sbin,var} /mnt/backtrack/
# mkdir /mnt/backtrack/{mnt,proc,sys,tmp}
# mount –-bind /dev/ /mnt/backtrack/dev/
# mount -t proc proc /mnt/backtrack/proc/
# cp /boot/vmlinuz /mnt/backtrack/boot/ 

El proceso de copiado de archivos puede tardar bastante. Creo que está claro ¿no?. Primero se crea toda la estructura de carpetas, se copian lo archivos, se crean las carpetas espciales como dev/proc y por último copiamos el kernel comprimido vmlinuz que nos permitirá botar el sistema.

+ Para finalizar con el backtrack hacemos un "fdisk -l" para ver como han quedado las particiones. Comprobamos que dentro de la columna "Device boot" esta nuestra nueva partición /dev/hda3.

+ Ahora apagamos el portatil y volvemos arrancar con Fedora. El gestor de arranque es grub y sus archivos de configuración estan dentro del Fedora. Tenemos que modificar /etc/grub.conf para añadir a su lista de sistemas operativos el nuevo backtrack 3. Una vez editado añadimos las tres siguientes lineas al final del archivo:

#vim /etc/grub.conf

title Backtrack 3 final
root (hd0,2)
kernel /boot/vmlinuz root=/dev/hda3 ro

El parámetro "root (hd0,2)" indica el grub donde se encuentra el nucleo de Linux. En mi caso se encuentra en el primer disco (hd0,2) y en la partición 3 (hd0,2). Si el parametro fuera (hd0,0) sería el primer disco dentro de la primera partición. El parámetro kernel indica donde está el fichero del kernel y su nombre, así como los parámetros de arranque del kernel.

Más información:
+ Más de cómo instalar backtrack
+ vmlinuz
+ Configuracion de Grub

más php para zimbra

27 de diciembre de 2008

Esta es una pregunta que me han hecho muchas veces. ¿Por qué no puede hacer consultas mysql desde una página php en Zimbra?. La respuesta es que php para zimbra no está compilado para dar soporte a mysql, ldap y otras muchas funciones.

El soporte PHP en Zimbra esta creado como un módulo dinámico para Apache. Esto quiere decir que PHP esta compilado por separado de Apache. Si editamos /opt/zimbra/conf/httpd.conf veremos que hay una linea que dice:

LoadModule php5_module modules/libphp5.so 

Si quitamos esta linea de Apache quitaremos el soporte para PHP. Necesitamos obtener un libphp5.php con soporte para mysql.
Lo que haremos es instalar Apache+PHP y cogeremos libphp5.so para ponérselo a Zimbra:

# rpm -q -a | grep php (miro si hay algo de PHP instalado) 
(no hay nada) 
# yum install httpd (primero instalamos apache) 
# yum install php (luego PHP) 
# yum install php-mysql php-ldap php-gd (instalo todo lo que necesito de PHP) 
... 
# updatedb 
# locate libphp5.so (busco donde están los módulos) 
/opt/zimbra/httpd-2.2.8/modules/libphp5.so (este es el modulo viejo) 
/usr/lib/httpd/modules/libphp5.so (aqui esta el modulo nuevo) 

# cp /opt/zimbra/httpd-2.2.8/modules/libphp5.so 
/opt/zimbra/httpd-2.2.8/modules/libphp5.so.bak (hago un backup del 
modulo viejo) 
# cp /usr/lib/httpd/modules/libphp5.so 
/opt/zimbra/httpd-2.2.8/modules/ (copio el modulo nuevo al zimbra) 
# su - zimbra 
# ./zmcontrol start 


Si creamos una página PHP haciendo una llamada a la función phpinfo() veremos la diferencia entre antes y despues de poner el nuevo módulo de PHP.

aleluya, bilbao

26 de diciembre de 2008

Después de tres meses esperando los videos del "asegur@it iii" que se hizo en bilbao en septiembre, por fin han subido los videos de la conferencia. Aquí dejo los videos originales del amigo de spectra y os pongo los que más me gustarón:

Cracking & Protección de Software


Tempest


Ataques de SQL Injection

El último video se lo dedico a mi jefe, sobre todo el minuto 1:13... donde se ve como spectra esta mirando la pagina de servidor y controlando quienes son los asistentes a la conferencia :)...

Los de informatica64 me acaban de sablar 100€ para la handonlab de "contramedidas hacker para aplicaciones web" que se hará en enero en la universidad de bellaterra; espero que aprendamos mucho.

centos 5 + zimbra 5

25 de diciembre de 2008

Desde hace ya unos meses estoy planteando de migrarlo todo a CentOs, incluido el servidor de correo con Zimbra. Siempre he utilizado fedora: la intranet es fedora, el proxy es fedora, el correo es fedora. El motivo ha sido la instalación de la centralita asterisk con CentOs.

Fedora tiene ya demasiadas versiones, cada vez instala más cosas, cada vez es más pesada... se está alejando de un Linux para servidor y cada vez es más una desktop.

Estos son los pasos para instalar Zimbra 5.0.11 en un CentOS 5. Hay una guía muy buena aquí, pero mi objetivo es instalar Zimbra en el menor espacio posible. Con poco más de 1Gb en la instalación de CentOS hay más que suficiente.

+ Comenzaremos la instalación típica de CentOS y configuraremos el TCP/IP según nuestras necesidades. Lo más importante es el DNS. Un DNS bien configurado y que responda a nuestro dominio nos evitará muchos problemas al instalar Zimbra.

+ Una vez lleguemos a la selección de paquetes de CentOS, desmarcaremos todos los paquetes. No instalamos ningún paquete: ni base, ni entorno de ventanas, ni herramientas de desarrollo... nada de nada.

+ Al finalizar la instalación de CentOS y después del primer arranque del SO este tienen que ocupar un poco más de 1Gb. Instalación más limpia imposible.

+ Comenzamos ahora con la instalación de paquetes necesarios para Zimbra y algunos más que utilizo para hacerme la vida más fácil:

yum install bind-utils 
yum install ntsysv 
yum install perl 
yum install telnet 
yum install sudo 
yum install libidn 
yum install fetchmail 
yum install gmp 
yum install libtool-ltdl 
yum install mlocate 
yum install compat-libstdc* 

+ Haremos un "ntsysv" y paramos los servicios no necesarios como: iptables, iptables6 y exim. Siempre es recomendable tener iptables arrancado, pero lo dejo siempre para el final una vez que se que todo esta funcionando correctamente.

+ Editamos /etc/selinux/config y deshabilitamos Selinux con SELINUX=disabled.

+ Modificamos el /etc/hosts tal como nos indica la guía de instalación de Zimbra.

+ Reiniciamos el servidor y actualizamos todo el Linux con un "yum update".

+ Verificamos que el servidor tiene correctamente configurado los servicios de DNS y es capaz de resolver los registros MX del dominio que alojaremos.

# nslookup 
> set type=MX 
> amperisblog.com 
Server: 192.168.1.5 
Address: 192.168.1.5#53 

amperisblog.com mail exchanger = 10 mx.amperisblog.com. 

# ping mx.amperisblog.com 
PING mx.amperisblog.com (192.168.1.6) 56(84) bytes of data. 
64 bytes from mail.amperisblog.com (192.168.1.6): icmp_seq=1 ttl=64 time=0.807 ms 
64 bytes from mail.amperisblog.com (192.168.1.6): icmp_seq=2 ttl=64 time=0.038 ms 

+ Ya lo tenemos todo listo para comenzar la instalación. Para CentOS 5 utilizaremos la versión Zimbra 5.0.11 para RedHat 5. Una vez bajado y descomprimido el tgz arrancamos la instalación con el parámetro "--platform-override". De lo contrario no dejará hacer la instalación.

# ./install.sh --platform-override 

+ Al finalizar la instalación rebotamos el servidor y comprobamos que todos los servicios de Zimbra están correctamente instalados:

# su - zimbra 
# cd bin 
# ./zmcontrol status

Más información:
+ Grupo zimbra-grupo

nos estan robando

22 de diciembre de 2008

Por diferentes motivos que no vienen al caso nos han pedido que nos carguemos todos los usb's que tenemos en la empresa. La idea es que nadie pueda utilizar llaves para grabar información. La primera solución es deshabilitar todos los puertos usb de más de 60 equipos, pero esto no es viable. Tenemos ratones usb, impresoras usb, pdas que se sincronizan por usb y cámaras de fotos.

La única solución es que no se pueda escribir en dispositivos usb. Existen tres maneras diferentes para realizar esto en 60 maquinas, pero las tres se basan en la misma clave de registro. Tanto para Xp como para Vista existe la clave (si no existe se crea):

"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies\WriteProtect"

Si tiene el valor 1 no se puede escribir en el usb y si tienen un 0 podremos escribir.

La primera solución consiste en ir maquina por maquina poniendo esta clave. Esto en muy pesado, así que otra solución es crear un script que se arranque en el script de usuario del dominio. Un script llamado notusb.vbs para crear estas clave de registros seria:

Option Explicit
On Error Resume Next

Dim wshShell
Set wshShell   = WScript.CreateObject("WScript.Shell")
If (wshSysEnv("OS") = "Windows_NT") Then
  wshShell.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\
                     StorageDevicePolicies\", 1, "REG_BINARY"
  wshShell.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\
                     StorageDevicePolicies\WriteProtect", 1, "REG_DWORD"
Else
WScript.Echo "ERROR: este no es un sistema Windows NT"
End If

Este script lo llamaremos desde el .bat o .cmd de inicio de sesión del usuario en el Active Directory. Si el usuario no es administrador de la maquina no tendrá permisos para modificar HKEY_LOCAL_MACHINE así que tendríamos que llamar a "notusb.vbs" con permisos de administrador. Para ello podemos usar el comando runas.exe o mejor aun un cpau.exe que nos permite pasar la contraseña desde la linea de comandos. No es necesario reiniciar la maquina después del cambio, como mucho habrá que quitar y poner la llave usb otra vez.

Otra solución más elegante (para mi la mejor) es crear una política de grupo para el active directory que hace exactamente lo mismo. Una vez creada, podemos crear una unidad organizativa y aplicar dicha política. Todos los usuarios o máquinas que estén dentro de esta unidad organizativa se le aplicará la política.

Aquí tenéis un post donde se puede descargar la plantilla de la política:
http://www.petri.co.il/disable_writing_to_usb_disks_in_xp_sp2_with_gpo.htm

alemania espiará a todos

20 de diciembre de 2008

Acabo de leer una noticia por la cual en Alemania se ha aprobado una ley en la cual 5000 agentes tienen vía libre para instalar programas espías en los ordenadores de "los supuestos terroristas" sin necesidad de ninguna orden judicial.

Lo que más me ha sorprendido es la frase que dice: "...se le permitirá introducir programas 'troyanos' en los ordenadores de los sospechosos, aunque con algunas restricciones. Así, los instalarán a través de Internet y no entrando directamente en la vivienda de los sospechosos, según contempla el texto, sorprendentemente".

¿Han llegado a un acuerdo con Microsoft para que haya bugs en Windows que jamas serán anunciados y solo la policía los conocerá?...

Me recuerda todo a la peli de "la vida de los otros" en la cual a un poli le mandan espiar a una familia de escritores y al final el poli recapacita sobre su moral jugando a un doble juego entre la familia y su gobierno.



entrevista kevin mitnick

17 de diciembre de 2008

No ha habido suerte con mí pregunta. Entrevista original aquí.

-----------------------

1. Buenos Dias Sr Mitnick, ¿Que opina acerca del intento de controlar internet por parte de muchos paises y empresas? ¿Debe ponerse limites a internet? ¿Que opina del uso de redes P2P? Mil gracias y un saludo.

Creo que los intentos no tendrán éxito, todo va a ser más o menos igual. Creo que Internet debe dejarse libre y abierta. Creo que el P2P es fenomenal, pero si lo configuras mal, aunque no sea intencionado, puedes exponer todos tus datos privados.

2. ¿Se arrepiente de alguna manera de su etapa de hacker? ¿Violaría ahora los sistemas de seguridad que se le quedaron pendientes? ¿Con qué sistemas no pudo?

Me arrepiento del daño y los problemas que causé a las empresas. No, estoy contento con lo que hago hoy, hoy trabajo con otros objetivos, los mismos retos, pero para beneficio de las empresas. El único sistema en el que no pude entrar es en elmundo.es. Jejeje

3. ¿Que piensa del agujero de seguridad en internet explorer ?

Creo que era interesante, pensaba en explotarlo para hacer una demostración a uno de mis clientes... pero no me extraña.

4. Hola Kevin, ¿que siente uno de los más famosos hackers de la historia cuando le hacen un deface a sus sitios web como fue tu caso?

No me gusta, pero estaba utiliizando una empresa independiente para mantener la página y yo no tenía acceso administrativo, de modo que fue decepcionante, no me gusta ser un blanco pero es normal porque a todo el mundo le gusta ser el rey de la montaña.

5. ¿Algún consejo para los adolescentes que se inician en el hacking?

Que no les pillen...

6. Hola Kevin, ¿qué dirías de "Shimomura"?, dicen que fue el hacker que logró dar contigo. ¿Cómo lo hizo?. ¿Es un hacker blanco como se ha dicho?. Saludos! Pablo.

El único modo en que Shinomura pudo encontrarme fue por la información que el FBI pudo lograr de la empresa telefónica bajo orden judicial. Así que combinando lo que pudo hacer el Gobierno de EEUU con el conocimiento de Shimumura encontraron mi paradero. Fui algo torpe porque estuve usando un móvil desde un punto fijo durante varios días, de modo que no lo hagáis...

7. Su especialidad eran las centrales telefónicos si no me equivoco. En la actualidad esa tecnología ha avanzado notablemente, ¿siguen siendo los sistemas penetrables?. En una ocasión lei que llegó a tener números de personas famosos. Denos el de Maddona por favor (aprovechando que ahora está soltera). Saludos!

Tuve el teléfono de Madonna, mientras vivía en Malibú con Sean PEnn y aunque los sistemas telefónicos han avanzado, las operaciones siguen siendo parecidas a como eran hace años. Y aunque los protocolos han cambiado y todo es digital, no por eso son menos vulnerabls.

8. Hola Kevin. Un placer. Cuando te perseguian antes de tu arresto, tuviste en algun momento la certeza de que te estaban siguiendo?. Un saludo.

Hubo un momento en que me asusté en Seattle, cuando me perdiguió un helicóptero, pero creo que no era por mí, sino una coincidencia porque creo que era una agencia del Gobierno. La única vez en que estuve seguro fue cuando me persiguieron unos agentes cuando salía de una tienda de fotocopias de Los Angeles después de engañar al departamento de información para que mandara fotos de un informador del FBI encubierto.

9. Estimado señor Mitnick: El hackear sistemas es, ¿diversión, adicción, lucro,...? Gracias por su atención.

Para mí, es el subidón de adrenalina, resolver un rompecabezas mejor que tus oponentes, pero puede convertirse en una adicción igual que el juego.

10. ¿Qué Sistema Operativo usa? ¿Qué consejos de seguridad daría a una empresa, para evitar que alguien accediese desde internet a datos de la empresa?

Leopard. LA mejor seguridad es no tener conexión a Internet, pero eso complica el negocio. Otra forma es construir capas de defensa para que si alguien estuviese hackeando pudiera sólo llegar a uno de esos niveles pero no penetrar en los más profundos. En muchas ocasiones mis clientes tienen sistemas llanos, sin muchos niveles de profundidad, y eso es un gran error porque es más sencillo llegar.

11. ¿Cree que el terrorismo internacional puede utilizar la no-seguridad informática en un corto plazo (1-2 años) para afectar al mundo occidental? ¿Qué efectos puede llegar a conseguir?

Creo que el terrorismo internacional puede planificar sus ataques a través de Internet utilizándolo como herramienta de inteligencia. Herramientas como Google Maps o Street View pueden permitir localizar objetivos y planificarlos. Estoy seguro de que lo usarán tanto terroritas domésticos como internacionales para hacer colapsar la red de energía de un país. Es una posibilidad, cualquier cosa es posible. En EEUU sería imposible porque la red está descentralizada, pero en algunos países sí se podría conseguir. Seguro que utilizan la Red como herramienta de investigación.

12. Whoaoo!!! No me puedo creer estar escribiendo unas palabras al GRAN Kevin Mitnick!!! Con todos los avances que ha habido, sigue siendo fácil entrar aún en redes "privadas", qué tipo de cosas habría que crear o desarrollar para que un acceso sea seguro de verdad? ¿Sigues haciendo phonejacking?

Depende del blanco y los controles de seguridad que tienen, todo eso influye a la hora de penetrar un sistema de seguridad. Si acabas de empezar a hacerlo, la mejor herramienta que puedes usar se llama BackTrack III, un buen conjunto de herramientas para probar la seguridad. Para hackear redes muy seguras, depende de la posibilidad de implantar código malicioso sofisticado, existen varias técnicas para introducirlo en servidores del 'enemigo'.

13. Buenas Kevin, la película que refleja tu vida como "hacker" ¿que opinión te merece? he leído por algún blog que no te hacía mucha gracia ¿es cierto?.

No me gusta la película porque no era cierta, que usaran mi nombre y crearan una historia falsa basada en algunos acontecimientos reales, y tuve que llevar a juicio a los productores en 1998, pero eso fue hace 10 años. La película, además, no era una buena cinta, pero tengo ganas de ver la película que se basará en mi autobiografía, que se publicará el año que viene, donde publicaré las anécdotas y los hackeos.

14. ¿Deben existir los hackers, entendidos como rebeldes contra un sistema que nos quiere controlar a todos? Un saludo.

Creo que los hackers deben usar sus habilidades de forma ética, creo que deben existir.

15. Hola Kevin,Mi pregunta es ,para ser un buen hacker, es igual de importante tener una buena ingenieria social como de tener unos altos conocimientos de informática?cual de las dos tiene mas peso? muchas gracias y saludos.

El conocimiento técnico es extremadamente importante, pero lo imporatnte es combinar los dos factores, por eso la ingeniería social es una gran ventaja, porque los ataques de ingeniería social dependen en gran medida de personas con conocimientos técnicos profundos.

16. Buenos dias Sr. Mitnick, mi nombre es Javier Diaz Pascual y mi pregunta es la siguiente: no piensa usted que hoy en dia vivimos rodeado de demasiada tecnologia y que la integramos en nuestro cotidiano sin realmente ser capaces de medir el impacto que puede llegar a tener? Pienso por ejemplo en la implantacion de los RFID cada vez mas frecuente o de los pasaportes biometricos. Gracias

Siempre hay problemas de seguridad, pero creo que la tecnología mejora la forma de vida de las personas, así que es bueno que avance pero queremos también saber gestionar los riesgos. Las empresas tienen mayores beneficios y, por supuesto, no podría vivir sin mi iPhone.

17. Hola Kevin, supongo que habrá trabajado como consultor de seguridad para Gobiernos, ¿Qué opina del nivel de seguridad de los mismos, y de su tratamiento de la privacidad? ¿cree que se está haciendo lo suficiente para que en el futuro el sistema económico no se vea dañado por ataques informáticos? Y una última pregunta, en España hay movilizaciones por la defensa de la igualdad de la Ingeniería en informática con respecto a las demás Ingenierías: ¿No cree usted que menospreciar a la Informática es menospreciar la calidad del software y sobre todo su seguridad?

En cuanto al Gobierno de EEUU, creo que tienen un sistema pobre, ya que todas las pruebas que han hecho hasta ahora han fallado, y no existe la privacidad. Creo que hay Gobiernos en Europa que se lo toman mucho más en serio, pero privacidad no es lo mismo que seguridad, son dos especies distintas. Conseguir información personal en Europa es mucho más complicado.

-------------

elmundo entrevista a Kevin Mitnick

16 de diciembre de 2008

Mañana el elmundo.es hace una entrevista online a Kevin Mitnick que para muchos es el padre de los hackers en ingeniería social. Su fama se la gano con los sistemas de seguridad de las grandes compañias telefónicas de EEUU saltándose los controles de las llamadas y llamando donde quisiera.

Si os da tiempo tenéis la posibilidad de dejarle una pregunta y si hay suerte que la conteste... yo estaré atento.

Ya he dejado mi pregunta:

"¿como crees deberemos afrontar el los próximos años la lucha contra el spam, el phishing y las deficiencias de un protocolo de correo que lleva desde los 80 casi inmutable y es la principal entrada de muchos fraudes?... es más barato captar víctimas por correo que hacer una llamada telefónica como hacías tú."

Takedown, la pelicula de Kevin Mitnick.



nitrogeno para informática

15 de diciembre de 2008

Hace tiempo en tom's hardware salia un post sobre el proyecto 5Ghz que consistía el hacer subir la velocidad de la cpu hasta la friolera velocidad de 5Ghz con un poquito de nitrógeno líquido.

Me he estado dado una vuelta por la internete para ver como estaba el patio del overcloking. Pues bien resulta que por ahora el record está en 6.3Ghz... que pasada. Como tiene que arrancar el vista. Sólo falta hacer hacer lo mismo en la tarjeta gráfica y jugar el flight simulator con 13 monitores.

Aquí tenéis el vídeo de los atrevidos ingenieros. Quedaros como uno echa el nitrógeno sin guantes... con dos cojones.



¿el primer informático de la historia?

14 de diciembre de 2008

Si buscas por la internete encontrarás el primer bug de la historia, el primer virus informático de la historia, el primer computador cuántico de la historias, pero ¿donde está el primer informático de las historia?.

Después de una dura búsqueda lo he encontrado:



comienza asterisk (parte 4)

13 de diciembre de 2008

Hace tiempo que no sigo este hilo, pero es que hemos tenido muchos problemas y retardos con la entrega de las lineas de datos. Primero con el desdoblamiento de la actual fibra óptica de datos que tenemos y segundo con el radio enlace de Vodafone que hemos instalado para hacer salir las llamadas de moviles por Vodafone. He perdido la cuenta de diferentes empresas que han pasado para instalarlo todo. Durante la espera hemos decido eliminar la maquina de backup en vmware y utilizar un servidor físico real al que lo uniremos con asterisk en producción para pasar la configuración via rsync.

Lo primero que hemos hecho es el desdoblamiento de la fibra optica que nos llegaba. Nos llegaba una para la telefonía actual y ahora hemos sacado otra para utilizarla con Asterix.



El empalme o fusión de la fibra es uno de los momentos más delicados ya que de ello depende la perdida que pueda tener la fibra. Contra mejor alineada este hecha la fusión entre las dos fibras mejor atravesará la luz. El corte y la fusión de la fibra es necesario para acoplarle los conectores de color verde que se ven en la imagen.

El método de fusión de las fibras consiste básicamente en una fuente de calor.



Para fusionar dos fibras se utiliza normalmente un aparato llamado "fibre splicer", que es el encargado de cortar la fibra, alinearla, fusionarla y protegerla.

Estas máquinas deben ser capaces de fusionar las fibras con una perdida (siempre la hay) menor de 0,05dB.



Aquí tenéis un par de vídeos de como se empalma una fibra:





Tambien se ha instalado el Cisco 1800 para conectar las sedes y levantar las VPN para que pase todo el trafico VoIP.


Hemos repartido tambien todos los Polycom por las mesas y hemos montado “el churro” para centralita de recepción. Se trata de un Polycom 650 con tres módulos de expansión.





Pero sin duda lo más divertido ha sido la instalación de la antena de radioenlace y la electrónica de transmisiones.





El equipo de transmisión es una solucuón de Ericsson llamada MINI-LINK E para enlace punto a punto en la banda de microondas (entre 7Ghz y 38Ghz). Aquí tenéis un documento técnico de las especificaciones de MINI-LINK. Yo no entiendo de telecos pero resulta que MINI-LINK es incluso una solución incluida en los propios examenes de la estudiantes de telecos.

php+sap/r3 (parte iii de iii)

9 de diciembre de 2008

-------------------------------------
php+sap/r3 (parte i de iii)
php+sap/r3 (parte ii de iii)
php+sap/r3 (parte iii de iii)
-------------------------------------

Este último post es una introducción ya que desconozco la programación en ABAP para SAP. Sólo quiero dar unas pequeñas ideas de cómo deben programarse las funciones es SAP para hacerlas disponibles en PHP a traves del conector saprfc.

Aunque este post es el último, la verdad es que a la hora de trabajar sobre saprfc es lo primero que tendríamos que hacer. Primero debemos de programar las funciones en ABAP, probar que estas funcionan y devuelven los valores correctos y por último llamarlas desde PHP.

Para programar las funciones accederemos a la transacción estándar de programación en SAP: la se37 (biblioteca de funciones). Como ejemplo vamos a ver el contenido de la función que hemos utilizado en los post anteriores. Esta función estándar es la “SO_USER_LIST_READ”. Por estándar quiero decir que ya viene disponible en SAP y que no ha sido modificada por nadie (lo que los programadores de ABAP conocen cómo una función Z).

Una vez abierta la transacción colocamos el nombre de la función a buscar y visualizamos la función.



En la pestaña atributos está uno de los parámetros más importantes para hacer disponible la función a través de las llamadas RFC. Debemos tener marcado siempre el flag de “Módulo de acceso remoto”.



En la pestaña de “Import” se encuentran los parámetros de entrada de la función. En este caso hay un único parámetro llamado “USER_GENERIC_NAME” del tipo “SOUIO-USRNA”.



En la pestaña “Export” y “Tables” tenemos los parámetros de salida. En este caso hay un solo parámetro de tabla llamado “USER_DISPLAY_TAB” del tipo “SUOD3”.



En la última pestaña llamada “Cod. fte”, tenemos el código ABAP de la función. Lógicamente no explicaré lo que hace, pero se supone que accede a la tabla de usuarios para hacer la consulta.



Por lo general el programador de ABAP debería entregarte una definición de la función que en mi caso son las cabeceras de la funciones y que me facilitan mucho las llamadas desde PHP. Sería algo así:

FUNCTION SO_USER_LIST_READ.
*"----------------------------------------------------------------------
*"Globale Schnittstelle:
*"       IMPORTING
*"             USER_GENERIC_NAME LIKE SOUIO-USRNAM
*"       TABLES
*"             USER_DISPLAY_TAB STRUCTURE SOUD3
*"       EXCEPTIONS
*"             COMMUNICATION_FAILURE
*"             SYSTEM_FAILURE
*"             USER_LIST_NO_ENTRIES
*"----------------------------------------------------------------------

Grácias a Raúl por la ayuda con ABAP.

php+sap/r3 (parte ii de iii)

7 de diciembre de 2008

-------------------------------------
php+sap/r3 (parte i de iii)
php+sap/r3 (parte ii de iii)
php+sap/r3 (parte iii de iii)
-------------------------------------

Ahora que ya tenemos todo instalado es hora de hacer nuestra primera página web en PHP y acceder al SAP. Dentro de nuestro sitio web en Apache copiamos el archivo saprfc.php (que se encuentra dentro de saprfc-1.4.1.tar.gz). En este archivo se ha declarado una clase que nos ayudará conectarnos a SAP y hacer llamadas a sus funciones. Podemos utilizar esta clase o hacer llamadas directas a las funciones.

Ahora veamos un ejemplo de una llamada a una función que nos devuelve un listado de todos los usuarios que están dados de alta en SAP. Para los que conocen SAP, serian los usuarios que hay dentro de la transacción SU01.

<?php
   require_once('saprfc.php');

   $sap_parametros = array("logindata"=>array(
      "ASHOST"=>"misap.miempresa.com",
      "SYSNR"=>"00",
      "CLIENT"=>"300",
      "USER"=>"elusuario",
      "PASSWD"=>"lacontraseña"),"show_errors"=>false,"debug"=>false);

   $sap = new saprfc($sap_parametros);
   $result = $sap->callFunction("SO_USER_LIST_READ",
                   array(array("IMPORT", "USER_GENERIC_NAME", "*"),
                   array("TABLE","USER_DISPLAY_TAB",array()) ));         
    

   if ($sap->getStatus() == SAPRFC_OK) {
   ?><table>
     <tr><td>SAP-Name</td><td>User-Nummer</td></tr><? 
     foreach ($result["USER_DISPLAY_TAB"] as $user) {
        echo "<tr><td>", $user["SAPNAM"],"</td><td>",$user["USRNO"],"</td></tr>";
      }
      ?></table><?
   } else { 
      $sap->printStatus();
      $sap->getStatusText() or $sap->getStatusTextLong();
   }

   $sap->logoff();
  
?>
Lo primero que hacemos es cargar la librería con la clase desde un require_once(). Luego definimos una variable con los datos de conexión a SAP. Normalmente será la IP del servidor de SAP, el mandante (en mi caso 300), el usuario y la contraseña. Este usuario deberá tener permisos para ejecutar la función.

Luego creamos el objeto $sap con la funcion saprfc(). Desde este nuevo objeto podemos hacer una llamada a la función definida en SAP “SO_USER_LIST_READ”. Esta función esta creada por defecto en SAP.

La función recibe un parámetro de entrada (IMPORT) y un parámetro de salida (TABLE). El parámetro de import se llama USER_GENERIC_NAME que en este caso será “*” para que devuelva a todos los usuarios. El nombre de la tabla de salida es USER_DISPLAY_TAB y la inicializamos con un array vacío.

Una vez hacemos la llamada con el callFunction(), esta llamada puede ser correcta (SAPRFC_OK) o incorrecta. Si es incorrecta podemos consultar con un prinStatus() el mensaje de error. Puede ser que haya un error en los parámetros, que el servidor no esté disponible, que no tengamos permisos, etc.

Si por el contrario la llamada es correcta el resultado de la tabla lo tendremos en el array $result. Solo basta hacer un bucle para ir escribiendo los resultados por pantalla. Dentro de este array mostraremos los campo SAPNAM y USRNO.

Como veis, aparecen muchos nombre de tablas, nombre de funciones, imports o exports que están definidos por el programador de ABAP. Quiero decir que para hacer llamadas correctas a las funciones que se programen en ABAP (es decir funciones Z) debe haber una correcto entendimiento entre el programador de ABAP y el programador de PHP. Este es mi caso . Cada función creada en ABAP que necesitemos tendrá que venir acompañada de su documentación, donde especifique como se llama, cuantos parámetros de entrada y salida hay, sus tipos y sus nombres.

php+sap/r3 (parte i de iii)

5 de diciembre de 2008

-------------------------------------
php+sap/r3 (parte i de iii)
php+sap/r3 (parte ii de iii)
php+sap/r3 (parte iii de iii)
-------------------------------------

Existe una manera de hacer una aplicación Web que acceda a SAP/R3 sin tener que pagar un duro. Esto es utilizando PHP y un componente llamado saprfc. Este componente es un módulo de PHP que es capaz de hacer llamadas a funciones de SAP. Es decir, si eres programador de ABAP en SAP, puedes crear funciones que devuelvan o reciban datos vía RFC. Este módulo hace de enlace con tú aplicación web en PHP.

También es posible instalar saprfc sobre una plataforma PHP creada para Windows.

Básicamente necesitas dos cosas. Primero bajarte la última versión del saprfc y luego unas librerías llamadas "Non-unicode SAP RFCSDK for UNIX compilation" que sólo se puede bajar desde SAP. Sólo las puedes bajar de http://service.sap.com si tienes cuenta de usuario. Si eres un cliente de SAP debería tener usuario para entrar.

Empezamos la instalación en un CentOS 5.

+ Bajamos "Non-unicode SAP RFCSDK 6.20 for UNIX" que será un archivo comprimido con el nombre RFC_46-10001782.SAR. Los archivos SAR y CAR son unos archivos especiales de SAP que están comprimidos al estilo de un Zip.


Todo el soft que necesitemos se SAP esta en http://service.sap.com/swdc o "SAP software distribution center". + Ahora necesitamos el descompresor llamado SAPCAR (la última versión es la 7 para Linux IA32) que también esta disponible dentro de service.sap.com. Una vez copiado en tú servidor Linux tendrás que darle propiedades de ejecución ya que se trata de un ejecutable.


+ Creamos la carpeta /usr/sap y copiamos estos dos archivos. Ahora miramos lo que hay dentro del archivo .SAR y lo descomprimimos con la utilidad SAPCAR.

# ./SAPCAR -tvsf RFC_46-10001782.SAR
# ./SAPCAR -xvf RFC_46-10001782.SAR 

El resultado serán unas librerías compiladas dentro de una carpeta llamada rfcsdk. SAP proporciona las librerías ya compiladas, así que no tenemos el código para ver que es lo que hacen. Básicamente son las API de las llamadas RCF para SAP.

+ Antes de continuar tenemos que tener instalado las herramientas de desarrollo de C como gcc, make, libtools., etc. También tenemos que tener instalado php-devel. Si no fuera el caso las instalamos con un "yum install php-devel".

+ Descargamos la última versión del saprfc desde sourceforge en una carpeta temporal. La última versión que hay ahora es la 1.4.1. Descomprimiremos, compilaremos e instalaremos el módulo resultante dentro del la carpeta de modulos dinámicos PHP.
El hacer un módulo dinámico PHP me evita tener que recompilar todo el PHP y me mantiene apartado este módulo de todo PHP.

# tar –xzvf saprfc-1.4.1.tar.gz
# cd saprfc-1.4.1
# phpize
# ./configure
# make
# make install

Esto nos creará un nuevo módulo para PHP dentro de /usr/lib/php/modules/php_saprfc.so.

Este módulo tenemos que añadirlo al archivo de configuración de PHP en /etc/php.ini. Añadiremos la siguiente linea:

extension=php_saprfc.so

Ahora reiniciamos apache con un "service httpd restart" y comprobamos queen el archivo de log de Apache (normalmente será /var/log/httpd/error_log) no se produce ningún error al arrancar el módulo.

Si durante el arranca vemos que en log nos dice que no se encuentra la librería "libstdc++-libc6.1-1.so.2" tendremos que instalarlas con el RPM "compat-libstdc++-296-2.96-141.i386.rpm".

Nota: Existe una versión 6.40 de RFCSDK pero sólo esta para 64 bits y no para 32 bits que es lo que hemos instalado aquí.

Más informacion:
+ Master the five remote function call (RFC) types in ABAP
+ RFC en SAP/R3

nuevos juguetes

3 de diciembre de 2008

Estas últimas semanas se me han dejado caer del cielo dos nuevos juguetitos de esos que hacen poner contento a cualquier informático. El primero es el nuevo portátil ultraligero de Medion. Va de maravilla para viajar y conectarse a internet desde cualquier sitio. Tenía mis dudas de si aquello tiraría con un word, una presentación en powerpoint, un photoshop, una conexión VPN contra el trabajo y para terminar un terminal server... pues sí... la cosa tira. No es para hacer diseño y retoques con photoshop, pero tira.
Incluso estamos pensando en comprar alguno para el trabajo para hacer las presentaciones en las convenciones ya que aunque sea pequeño tiene su salida de video para conectarlo al proyector. Además con lo poco que ocupa se lleva en el equipaje de mano dentro de una fundita de neopreno.

El niño pequeño tiene: un Intel Atom de 1,6Ghz, 1Gb de RAM, 160Gb de SATA, 1,04Kg de peso con su batería, LCD de 10 pulgadas (le falta que sea crystal), webcam y wifi. La única pega que tiene es la batería de 3 celdas que se queda un poco corta. Dicen por Internet que ya está disponible una de 6 celdas por 99€. Un poco cara para los 399€ que vale el portátil en MediaMark Barcelona.


El otro juguetito el la nueva BlackBerry Storm, famosa porque ya la anuncian por la tele y deseada porque hay pocas y Vodafone las proporcionan a cuenta gotas. Es la primera Blackberry con touchpad que quiere parecerse a iPhone pero que no lo ha conseguido. La primera impresión al utilizarla es que está rota. Cuando mueves el cristal, parece que está desencajado. Lo que han hecho es que el cristal del touchpad esta flotando y cuando pulsas en el tochpad da la sensación que pulsas una techa... es decir que el cristal hace el click-click. Para lo que queremos hacer en mi empresa no va por buen camino. El teclado al ser táctil no acaba de ir fino y se equivoca muchas veces. Se nota que Blackberry no está acostumbrada hacer esta clase de dispositivos. Además parece que RIM se está poniendo las pilas porque están sacando firmwares nuevos para este cacharro.




Más información:
+ Otro con suerte que lo tiene
+ La storm es una porquería
+ La storm por dentro

los ccna no sabemos nada

2 de diciembre de 2008

Hace unas semanas enlacé un concurso tipo test de preguntas sobre CCNA en el cual se regalaban unos libros de "mis libros de networking". Se esperaba que como mínimo hubieran 5 personas que acertaran todo el cuestionario.

Pues bien, de los 538 participantes, nadie ha acertado. Así que se volverá hacer el concurso.

De puta pena para todos los que hemos participado :(... y más puta pena para los que aun no son CCNAs y se estan preparando :)

creando un floppy virtual

Hoy he encontrado uno de esos programas que me han salvado la vida. Resulta que tenia que instalar un Windows y este no reconocía los discos porque eran SATA y el CD de Windows no tenía los drivers para reconocer los discos. Existen dos soluciones. La primera es crearse el floppy con los drivers y cuando arranca la instalación pulsar F6 para cargar previamente los drives de tú unidad SATA, RAID o lo que sea. La segunda opción es crearte tú propio CD de instalación de Windows que ya incluya estos drivers. Cualquiera de las dos soluciones pasa por bajarse del fabricante los drivers. En mi caso me tenía que bajar los drivers SATA de un TravelMate 5720. Además tenía otro problema, el portátil Acer no tiene floppy. Así que tendré que crear un CD de instalación que incluya estos drivers.

Una vez me bajo los drivers de SATA, lo descomprimo y lanzo el ejecutable. Maldita sea!!! Me pide que meta un floppy para formatearlo y dejar allí los drivers. ¡Pero si no tengo ninguna disquetera en toda la oficina!. ¿No pueden darnos simplemente los drivers en un zip?.
Total que he descubierto Virtual Floppy Disk for Windows. Se trata de un driver que te genera una unidad virtual, más conocida como A:\. Se trata de una aplicación libre y que no necesita ni instalación.

Una vez bajada y descomprimida, ejecutamos “vfdwin.exe”. En la pestaña “Driver”, seleccionamos “Start” y nos arranca el driver. En unos segundos nos aparece un nuevo harware que corresponde a la unidad A:\. Si miramos en el Windows Explorer veremos una nueva unidad. En esta unidad no hay ningún floppy metido. Vamos pues a meter un floppy. Lógicamente será un floppy virtual.


Seleccionamos la pestaña “Driver 0” y pulsamos “Open/Create”. Se nos abre una nueva ventana donde seleccionamos el tipo de unidad (por defecto 3’5 pulgadas) y el nombre que le queremos dar al floppy (por ejemplo floppy_drivers.bin).
Ahora ya tenemos un floppy metido en A:\. Solo nos queda formatear nuestro floppy pulsado sobre el botón “Format”.


Ya tenemos el floppy listo para utilizar con cualquier aplicación. Si arrancamos la aplicación que he comentado antes de Acer, esta me buscará la A:\ la formateará y escribirá los archivos de los drivers que necesito. Podemos ir al Explorardor de Windows y ver los archivos que hay dentro.

Para finalizar podemos pulsar “Save…” para guardar los datos en el floppy. O lo que es lo mismo guardar el floppy virtual dentro del archivo floppy_drivers.bin que hemos creado anteriormente.