CaFe.pm - Perl Mongers de Capital Federal
http://cafe.pm.org/


Review de "** Perl for System Administration **"

por ** Marcelo A. Liberatto A.K.A. N3krodamus ** (** marceloliberatto@gmail.com **)


Autor: ** David N. Blank-Edelman **
Editorial: ** Oreilly **
ISBN: ** 1-56592-609-9 **



Introducción

Siendo administrador de servidores Linux desde hace algun tiempo y programador en perl desde hace mas tiempo debo decir que el título de este libro me sedujo desde el principio. Perl es un excelente lenguaje para procesamiento de textos y como a muchos administradores les gusta decir "En Unix todo es un archivo" entonces podriamos decir que tenemos un lenguaje de programación ideal para administrar Unix y/o Linux. Sin embargo este libro no solamente habla de los sistemas operativos de la familia nix sino que tambien nos enseña como desarrollar herramientas y soluciones para otras 3 plataformas muy difundidas en estos tiempos como ser Windows 2000, NT y MacOS.

Luego de esta breve reseña pasaré a comentar cada capítulo del libro.

Capítulo 1 - Introduction

Este es un capítulo introductorio en donde el autor explica en cuales de nuestras tareas diarias como administrador PERL nos puede ayudar. Veremos una breve introducción a los diferentes metodos de instalción de modulos de PERL y, en un interesante apartado final titulado "Its not easy been omnipotent" "No es facil ser omnipotente" se enumeran los puntos a tener en cuenta cuando se desarrollan aplicaciones administrativas que requieren de permisos altos dentro del sistema operativo.

Capítulo 2 - Filesystems

Aqui empezamos de lleno a trabajar con el sistema y a interactuar con perl, el capítulo comienza con una anecdota que le sucedió al autor cuando se encontraba escribiendo este mismo libro en su laptop y sufrió un accidente que daño el sistema de archivos del equipo, aprovechando esto nos introduce de lleno en el capítulo. Se hace una breve reseña de las diferencias entre los distintos sistemas de archivos para luego empezar a "caminar" por el mismo utilizando módulos como Find::File. La seguna sección del capítulo muestra como manejar quotas de disco desde perl, sea accediendo a las herramientas del sistema y procesando sus resultados como utilizando módulos existentes en CPAN para poder manipular directamente los archivos de configuración. En este mismo apartado y como cierre final vemos como obtener información acerca de los volúmenes de disco para poder administrar sus recursos.

Capítulo 3 - User Accounts

Este capítulo demuestra como manejar cuentas de usuarios en las distintas plataformas, resulta ser bastante extenso ya que explica detalladamente el funcionamiento de las cuentas de usuario en cada sistema operativo; además de las distintas formas de almacenar las claves y sus características. Aquí mismo se encara el desarrollo de un sistema de creación de cuentas de usuario haciendo una breve mención a otras formas de almacenar la información como ser SQL y XML que se verán en capítulos mas avanzados.(Ver apendices XML y SQL)

Capítulo 4 - User Activities

Sin duda alguna como administradores una de las tareas mas importantes es la de el monitoreo de los usuarios dentro del sistema, aquí se dividen las distintas actividades de los usuarios en cuatro categorias a saber: Procesos, Operaciones sobre archivos, Acceso a la red y Actividades especificas de la plataforma. Este capítulo tambien cuenta con un extenso apartado que explica como maneja los procesos cada sistema operativo y cuales son los medios que proveen para acceder a su monitoreo. En todos los casos disponemos de módulos ya desarrollados para la plataforma que elijamos administrar y tambien se muestra como desarrollar herramientas propias que interactuen con el sistema operativo.

Capítulo 5 - TCP/IP Name Services

Quienes hayan trabajado en el area de administración de redes sabe lo importante que es el sistema de resolución de nombres de internet, DNS por sus siglas en ingles, y saben lo engorroso que resulta a veces el mantenimiento de los archivos de zona del mismo. Pues bien aqui se presentan algunas soluciones para poder amenizar y facilitar el trabajo con estos archivos y la comprobación de errores. Primeramente se ven los archivos hosts locales de cada equipo, su mantenimiento y actualización; mas adelante se ven los protocolos NIS NIS+ y WINS para mas tarde profundizar en el manejo de los archivos de DNS.

Capítulo 6 - Directory Services

Servicios de directorios, en este capítulo me resultó particularmente interesante la sección dedicada a LDAP; seguramente quienes tengan experiencia en el uso de este sistema encontrarán una serie de herramientas bien explicadas y muy útiles en este apartado. Debo decir ademas que me resulto muy útil el apéndice "The ten minute LDAP tutorial" (El tutorial de 10 minutos sobre LDAP). Por supuesto tambien se ven otros servidores de directorios como ser Finger, ADSI y WHOIS.

Capítulo 7 - SQL Databases Administration

Hoy en dia se ha vuelto muy popular el uso de bases de datos, sobre todo en servidores que proveen hosting, y por supuesto en este apartado la estrella de PERL es sin dudas el ya conocido y ampliamente desarrollado modulo DBI. Este capítulo tambien viene acompañado, y recomiendo su lectura para quienes no tengan experiencia con el lenguaje SQL, del apartado "The fifteen minutes SQL tutorial" (El tutorial de 15 minutos sobre SQL). Se ven tareas de monitoreo del servidor de bases de datos, monitoreo de espacio en disco, manejo de cuentas de usuario etc.. El capítulo se desarrolla sobre las bases de datos mas populares de hoy en dia; Sybase, MySQL y MS-SQL a traves de ODBC.(a mi entender el ausente aqui es Postgres)

Capítulo 8 - Electronic Mail

Hay que prestar particular atención a este capítulo, a mi parecer uno de los mas interesantes y útiles de todo el libro. Aqui se ve el envio y recepción de correos desde perl. Como adicional el autor nos explica los errores mas comunes al desarrollar una aplicación que envia reportes via mail, no es un tópico exclusivamante de programación sino mas bien una cuestión de diseño pero que no deja de ser muy útil. Anteriormente habia mencionado que perl es un lenguaje ideal para procesamiento de textos, en el apartado final del capítulo queda demostrado al ver paso a paso el desarrollo de una aplicación que procesa un mensaje de correo cuando se recibe desde la cola del MTA directamente; diseccionandolo, rastreando su origen a traves de las cabeceras del mismo, y finalmente realizando un chequeo contra los servidores de listas negras para decidir si el mail es o no spam.

Capítulo 9 - Log Files

Todo administrador de servidores conoce los logs de su sistema, y sabe que en los mismos se encuentran las respuestas a la mayoria de los interrogantes como "¿Quién estaba conectado a las 03:00Hs en la consola ttyS2?" o "¿Porqué el demonio httpd murió a las 00:10Hs.?", sin duda alguna nos encontraremos muchas veces buceando entre estos mares de información buscando la respuesta a nuestras preguntas. Pues bien aqui vemos como manejarnos con varios aspectos de los logs del sistema, sus formatos, administración y rotación y finalmente el análisis de los mismos. Una vez procesados los logs el autor nos muestra como utilizar bases de datos SQL para almacenar la información recolectada y realizar un posterior análisis de la misma.

Capítulo 10 - Security and Network Monitoring

Como administradores una de las tareas mas concienzudas es la auditoría de la seguridad del server y de las redes en las cuales trabajamos. Vemos como interactuar con el sistema de archivos para detectar cambios no autorizados en el mismo, se muestra el desarrollo de un simple pero efectivo sistema de revisión de archivos basados en firmas MD5 para detectar cambios. Vemos tambien, utilizando conocimientos adquiridos en el capitulo 5 (TCP/IP Name Services) como monitorear nuestros servidores DNS para detectar posibles anomalías en su funcionamiento. En este apartado tambien se ve el manejo del protocolo SNMP desde perl; se hace imprescindible el apéndice "The twenty minute SNMP tutorial" (El tutorial de 20 minutos sobre SNMP) para quienes no conozcan este protocolo que de simple tiene solo el nombre. Por último el autor nos muestra con un ejemplo real el desarrollo de una aplicación en PERL que le salvó el dia cuando encontró un ataque D.O.S. (Denial Of Service) realizadose contra uno de sus servidores quedando de manifiesto la facilidad con la que perl nos permite realizar un trabajo semejante.

Apéndices

The five minutes RCS tutorial
The ten minutes LDAP tutorial
The Eight minute XML tutorial
The Ffiteen minute SQL tutorial
The twenty minute SNMP tutorial

Los apendices en este libro resultan imprescindibles para quienes no tengan conocimiento alguno acerca de los temas tratados, son un punto de partida para entender un protocolo o un lenguaje pero de ninguna manera son una guía completa acerca del mismo. Es interesante su lectura y los conocimientos vertidos son suficientes como para empezar a utilizarlos e implementarlos y sin duda alguna nos dan el empujón inicial para empezar a investigar y aprender mas acerca de los temas tratados.