Muere Dennis Ritchie Padre de Unix

Jueves, 13 de octubre de 2011 Sin comentarios

A pocos días de la muerte de Steve Jobs, falleció otro genio de la informática Dennis Ritchie. Muchos se preguntarán… ¿quién es este personaje?

Dennis no es ni más ni menos que el CREADOR del Lenguaje de programación C y creador junto con Ken Thompson del Sistema Operativo Unix. Su muerte fué comunicada por Rob Pike en Google+ informando que a los 70 años de edad, había muerto en su hogar por una larga enfermedad

.

Sus aportes junto a Ken Thompson en el campo de los sistemas operativos genéricos y el desarrollo del sistema Unix han sido reconocidas con el Premio NEC C&C en 1979, con el Premio Turing de la ACM en 1983 y con la Medalla Nacional de Tecnología de los Estados Unidos en 1998.


Les dejo los 2 libros escritos por el los cuales les pueden servir para ampliar conocimientos.

  1. Unix Programmer’s Manual
  2. The C Programming Language

Otra mente brillante que nos deja.

Categories: Seguridad Informática Tags:

Open-Audit – Relevamiento de equipos

Martes, 4 de octubre de 2011 Sin comentarios

¿Qué es Open-Audit?

En diferentes oportunidades nos encontramos con la ardua tarea de realizar un relevamiento del inventario de la empresa, para lo cual buscamos siempre herramientas que faciliten nuestra labor. Para ello existe la herramienta de código abierto llamada Open-Audit. Permite la instalación de una base de datos en la cual almacena toda la información recolectada por una serie de scripts que ejecuta en las diferentes estaciones de trabajo y servidores.

Requisitos de Instalación:

  • Apache
  • Base de datos (MySQL o PostgreSQL)
  • PHP (debemos descomentar la linea extension=mysql.so)

Ya con todos estos puntos realizados, procederemos a efectuar la instalación del producto. El binario(Linux) o ejecutable(Windows), puede ser descargado desde la web oficial. Al día de la fecha la última versión es la OpenAuditReleaseCandidate.09.03.17.

Instalación:

La instalación puede ser descrita en 5 simples pasos:

  1. Descomprimir el archivo descargado. La descompresión genera una carpeta que contiene todos los archivos con los cuales vamos a trabajar. Esos mismos archivos deberemos colocarlos en la carpeta que contiene los datos web de Apache. En Linux suele ser /var/www y en Windows dependiendo del servicio que corra si es el IIS o si están utilizando XAMPP.
  2. Con los archivos sueltos en la carpeta mencionada anteriormente, podremos abrir el navegador y comenzar las configuraciones e instalación ingresando a o si quieren hacerlo desde otra pc con la IP.
  3. La primera opción nos pide que seleccionemos el Idioma de instalación del programa. Luego de instalado el producto, desde la consola web puede volver a cambiarse el idioma.
    =http://imageshack.us/photo/my-images/26/oa01.png[/url]Si no hay problema con los permisos de escritura en el siguiente paso marcará todo OK y podremos iniciar la configuración de la ODBC.=http://imageshack.us/photo/my-images/14/oa02.png[/url]
  4. Como la imagen que se muestra debajo deberemos seleccionar si tenemos privilegios de root en la Base de Datos o bien si es con otro usuario con quien configuramos este Software.
    =http://imageshack.us/photo/my-images/69/oa03.png[/url]
  5. Ya seleccionado el usuario, (nosotros en este caso usaremos root), deberemos llenar los campos que nos pide Open-Audit para crear las tablas y crear el usuario para acceder, por defecto openaudit.
    =http://imageshack.us/photo/my-images/195/oa04.png[/url]

Luego de presionar enviar ya tendremos el programa funcional y listo para comenzar a auditar las PC que se encuentren en la red. Para ello Open-Audit nos brinca la posibilidad de correr un Script en VBS para Windows o un script para Linux.
El Script se puede lanzar desde la propia consola en la opción Admin. También se puede descargar el Script en VBS para Windows y pedirle al usuario que lo ejecute para evitar problemas de conectividad entre la PC Server y las PC Desktop.

Espero el programa les sea de utilidad y les resuma tiempo de trabajo.

Saludos!

Administrando el sistema con Webmin

Domingo, 2 de octubre de 2011 Sin comentarios

¿Qué es Webmin?
Webmin es una interface web que permite la administración de los sistemas basados en Unix. Estos permiten modificar los diferentes agregados que se le pueden hacer al sistema como por ejemplo un servidor DNS, Apache, postfix, etc. Existen varias versiones las cuales pueden ser descargadas desde su WEB.

En esta oportunidad para hacer la instalación y guía utilizaremos la última versión en formato tar.gz.

Instalación:
La instalación es muy fácil y amigable ya que es necesario ejecutar solo 3 comandos para dejarla funcional. El primer paso es descomprimir el archivo tar.gz, ejecutando los siguientes comandos:

# tar xzvf webmin-1.560.tar.gz
# cd webmin-1.560.tar.gz

Una vez dentro de la carpeta, deberemos ejecutar el script que permite la configuración de los archivos dentro del sistema:

# ./setup.sh /usr/local/webmin

Si el sistema no puede determinar algunos parámetros, efectuará las siguientes preguntas:
-    Web server port: Puerto TCP que escuchará
-    Web server login and password: Claves de acceso, si lo dejamos por defecto usa root.
-    Web server hostname: Nombre del equipo local.
-    Use SSL: Solo preguntará si el sistema posee librerías de Perl instaladas.
-    Start Webmin at boot time: Si el SO os lo permite webmin iniciará junto con el sistema.

Una vez terminada la instalación, podremos acceder a la consola desde el Navegador desde cualquier equipo situado en la misma red, tipiando en la barra de direcciones la dirección http://IP_del_equipo:puerto seleccionado/. Si no se configuró ningún puerto diferente, el que utilizará por defecto es 10000.
Al ingresar en la consola web, podremos ver en la pantalla principal, la versión de Webmin, nombre del host, hora del sistema, tiempo que el equipo lleva en producción, memoria real, virtual y uso de discos. A la izquierda de la pantalla os mostrará las opciones que tenéis para configurar el sistema.

Cada menú permite configuraciones especiales:

-    Webmin: Permite configurar archivos de backup, cambiar el idioma, usuarios del programa, logs de las diferentes acciones realizadas.
-    System: Permite configurar cuentas del sistema, inicio y apagado del mismo, logs del sistema,etc. Todo lo referido al sistema operativo corriendo en la pc.
-    Servers: Permite configurar todos los servidores que tengamos instalados en dicho host, como servidor web, correo, etc.
-    Others: Configuración de PHP, modulos Perl, estado del sistema y servers, línea de comandos, etc.
-    Networking: Permite las configuraciones de red como firewall, monitor de ancho de banda, etc.
-    Hardware: Particiones y discos lógicos, administración de impresoras, tiempo del sistema.
-    Cluster: Diferentes tipos de clusters que tengamos configurados.
-    Un-used Modules: Como el nombre indica son módulos que todavía no están instalados.

Espero que el programa sea de utilidad.

Primeros pasos en pfSense

Jueves, 15 de septiembre de 2011 Sin comentarios

Antes de empezar con cualquier tipo de explicación, vamos a ver un poco de que se trata pfSense.

pfSense es un sistema basado en FreeBSD de código abierto, el cual cumple las funciones de Firewall y Router. Este sistema, permite una gran variedad de paquetes los cuales complementan sus funcionalidades y permiten que sea sumamente versátil. Para ver un poco más de dicho sistema, pueden ingresar a la web oficial http://www.pfsense.org/. En la misma figuran diferentes en laces con documentación, el foro de soporte, etc.

¿Qué requisitos mínimos de Hardware se necesitan para pfSense?

  • CPU – 100 Mhz Pentium
  • RAM – 128 MB
  • Lectora de CD o puerto USB
  • 1 GB de espacio en Disco

Para efectuar la descarga del LiveCD podemos recurrir al siguiente link el cual además nos permite descargar una imagen ya armada de VMware con el pfSense instalado.

Nosotros vamos a centrarnos en la instalación y configuración inicial del LiveCD. Mejor que muchas palabras confusas es mejor un video, por lo que paso a dejarles el mismo a continuación.

Una de las utilidades que siempre buscamos a la hora de instalar este tipo de sistemas, es la de control, poder brindar un nivel más amplio de seguridad, ya sea en nuestras casas para impedir que los integrantes de la familia naveguen por lugares prohibidos o bien en las empresas efectuar la misma acción para con los empleados.
Para ello pfSense posee dentro de sus paquetes el squid y squidGuard, quienes actúan como proxy y filtrado de contenidos.

¿Como funciona esta herramienta? Vamos con otro video-tutorial.

Por el momento eso es todo, les recomiendo navegar un poco más por la web oficial y el foro de soporte para buscar más funcionalidades que se adapten a sus necesidades. Posee además un manual el cual se puede adquirir en Amazon como complemento.

Un saludo y espero sea de su agrado!

Compilar Kernel de Linux

Martes, 13 de septiembre de 2011 Sin comentarios

Linux Kernel

 

¿Qué es el Kernel?

Como su nombre lo indica, es el núcleo del sistema. El Sistema Operativo es un programa que gestiona y administra a todos los demás programas llamados Software. El Sistema Operativo es el intermediario entre el Software y el Hardware. Muchas personas creen que Linux es el Sistema Operativo, lo cual es una idea errónea, Linux es solo el Kernel, el Sistema Operativo es Debian, RedHat, OpenSUSE, etc, quienes utilizan a Linux como su Kernel, quien junto a otras aplicaciones GNU hacen que todo funcione.

Para poder verificar las versiones del Kernel y efectuar las descargas para actualizarlo, podemos dirigirnos a la siguiente página web “http://www.kernel.org/

Existen dos tipos de Kernel en Linux los cuales veremos a continuación:

1.    Monolítico: Este tipo de Kernel engloba todos los servicios del sistema, posee un rendimiento mayor que el de un micronucleo. Esto es posible porque todas las funcionalidades posibles están integradas con el sistema. Cualquier cambio efectuado sobre cualquier servicio requiere la re-compilación del Kernel y el reinicio del sistema para aplicar los cambios.
2.    Modular: Un Kernel modular tiene compilados archivos como objetos, los cuales el Kernel puede cargar o remover bajo demanda. Estos modulos se encuentran en /lib/modules. Lo positivo del Kernel Modular es que no hace falta reiniciarlo al efectuar algún cambio. No tiene sentido que el Kernel se comunique con todos los periféricos, por lo cual lo que en otros Sistemas Operativos se llaman drivers, pero en Linux se desarrollo una interface adecuada para crear los módulos que cumplan las mismas funciones, pudiendo estos ser añadidos en tiempo de ejecución.

IMPORTANTE: La parte monolítica se carga en el arranque y está activa en todo momento, sin embargo los módulos únicamente se activan cuando se requiere utilizar ese dispositivo en concreto.

Para poder administrar los diferentes módulos, tenemos un paquete llamado modutils, las aplicaciones contenidas dentro de este paquete son:

•    lsmod: Lista los módulos cargados
•    rmmod: Elimina un modulo.
•    insmod: Inserta un modulo.
•    modprobe: Inserta los módulos y las dependencias listadas en modules.dep.
•    modinfo: Lista información del autor, tipo de licencia y parámetros de los módulos.

Algunos módulos son dependientes de otros módulos. Estas dependencias se sitúan en una base de datos plana situada en /lib/modules/<versión de Kernel>/modules.dep.  Este archivo es generado por el comando depmod, el cual es lanzado al iniciar la PC.

Para cargar cualquier modulo listado en modules.dep o modules.conf podemos utilizar el comando modprobe. El archivo modules.conf es consultado por los IRQ y los IO ports, pero generalmente se encarga de almacenar los alias de los dispositivos, así en lugar de referirnos al dispositivo por el nombre genérico, podemos utilizar el alias.

Ejemplo: si tenemos una placa de red que se llama Realtec RTL8100B(L), mediante el modules.conf, le podremos asignar el nombre eth0 y llamarla por el mismo lo cual es más fácil de memorizar.

Versiones del Kernel:

Cada versión posee 3 dígitos los cuales sirven para saber con qué tipo de Kernel se está trabajando.
-    El primer número siempre indica la versión principal, solo cambia cuando se produce un cambio significativo en el núcleo.
-    El segundo número hace referencia a cambios menos significativos y si la versión es estable o de desarrollo. Si el número es par es estable y si es impar es de desarrollo.
-    La tercera y última marca nuevas versiones dentro de otra versión, pero solo muestra que se han corregido errores de programación llamados bugs.

Cómo y por qué compilar un Kernel:

Compilar el Kernel es algo bastante habitual, es el mecanismo por el cual los archivos fuente, escritos en modo texto a un lenguaje de programación que el procesador pueda leer llamados binarios. Como el Kernel es un programa, como cualquier programa primero debe compilarce para crear los binarios que permitan la ejecución del programa. Para esto es necesario un compilador, que en el caso de Linux es utilizado el llamado gcc, quien chequea la sintaxis del código.
Compilar el Kernel sirve para tener un buen rendimiento entre el Software y el Hardware.

Pasos para la compilación del Kernel:

Lo primero que deberemos hacer es ingresar a la web mencionada anteriormente para descargar la última versión del Kernel disponible http://www.kernel.org/.  Debemos descomprimir los archivos fuente en el directorio “/usr/src/” que es donde se debe hacer el proceso de compilación. Luego de descomprimido el Kernel, creamos un enlace simbólico a /usr/src/linux ya que algunas aplicaciones se referencian a este directorio. Luego de acceder al nuevo directorio y modificamos las opciones que debe llevar el nuevo Kernel. Para esto tenemos 3 opciones, las cuales voy a enumerar, cada una es más visual que la anterior:
1.    make config: esto maneja las configuraciones en modo texto y funciona en base a preguntas que se van efectuando y que nos permiten 3 opciones para responder a las mismas “y” para compilar como parte del Kernel, “m” para compilar como módulo y para no compilar deberemos contestar “n”.
2.    make menuconfig (recomendada): Basado en modo texto, funciona en base a una ventana de menúes bastante gráfica y con ayudas.
3.    make xconfig: Basado plenamente en una interface gráfica.

Ejecutando el comando recomendado se desplegará un menú de opciones en las cuales podremos modificar la compilación de nuestro Kernel. Las mismas son:

-    []: Significa que puede ser agregado o no al Kernel.
-    <>: Que se puede agregar  M como módulo o * incluirlo en el Kernel.

Luego de marcar todo lo que necesitemos, vamos a compilar dicha selección, ejecutando los siguientes comandos:

•    make dep: Este comando es necesario pues crea las dependencias para los módulos marcados.
•    make clean: Borra todas las configuraciones anteriores.
•    make bzImage: Este comando lo que hace es comprimir el Kernel que creamos.

Ya realizados estos pasos solo queda compilar los módulos que hemos definido.
•    make modules
•    make modules_install: Crea los directorios e instala los módulos del paso anterior

Con todos estos pasos realizados solo queda copiar el Kernel al directorio correspondiente y editar el gestor de arranque. Para copiar el Kernel en el directorio correcto, debemos saber que el lugar en el cual queda la imagen del nuevo Kernel compilado es “/usr/src/linux/arch/i386/boot/” con el nombre bzImage. Por lo tanto debemos ejecutar el comando “cp bzImage /boot/vmlinuz-x.x.x-1”, deberemos reemplazar las x por la versión correspondiente y el -1 hace referencia a que es el nuevo Kernel en el caso que el anterior posea el mismo nombre. Eso se debe hacer para no pisar el Kernel anterior el cual se encuentra funcional y puede servirnos en caso de que algo falle.
Ahora para editar el gestor de arranque, vamos a añadir la siguiente entrada:

En el caso de LILO: Archivo de configuración : /etc/lilo.conf

image=/boot/vmlinuz-2.6.8-1
label=linuxnuevo # aquí va el nombre que quiera ponerle.
read-only
initrd=/boot/initrd-2.6.8-1.img
append=opciones # aquí van las opciones que necesiten. Por ejemplo:
append=”hdc=ide-scsi” (esto sería para una grabadora)

Si se construyo una imagen nueva initrd hay que informarle a LILO que la utilice. Ejecutar el comando lilo sin ninguna opción y esto hará que el programa lea la configuración del archivo de configuración. Si hay un error será indicado.

En el caso de GRUB: Archivo de configuración: /boot/grub/menu.lst

boot=/dev/hda
default=0
timeout=10

title Debian GNU/Linux (2.6.8)
root (hd0,1)
kernel /boot/vmlinuz-2.6.8 ro root=LABEL=/
initrd /boot/initrd-2.6.8.img

title Debian GNU/Linux (2.6.8-1)
root (hd0,1)
kernel /boot/vmlinuz-2.6.8-1 ro root=LABEL=/
initrd /boot/initrd-2.6.8-1.img

title windows
root (hd0,0)
chainloader +1
Como pueden ver agregamos lo que figura marcado en negrita. Al reiniciar la PC deberían figurar las 3 opciones que se muestran de arranque.

Con eso ya tenemos el nuevo Kernel completamente funcional.

Espero les sea de utilidad. Les dejo el Link de descarga.

Un saludo.

Categories: Seguridad Informática Tags: