viernes, 25 de mayo de 2012

NFS (NETWORK FILES SYSTEM)


NFS 
(NETWORK FILES SYSTEM) 
SISTEMA DE ARCHIVOS EN RED

    Definición: NFS, también llamado Sistema de Archivos en Red, es uno de los servicios más complejos que se ofrecen usando RPC. Permite acceder a los archivos remotos exactamente igual que si fueran locales.   El acceso a los archivos es totalmente transparente al cliente, funcionando con muchas arquitecturas de servidores. El sistema de archivos en red proporciona a los usuarios la libertad de acceder a su información desde cualquier sistema en el que puedan ingresar y que tenga acceso a dichos recursos en red.

    El RPC (Remote Procedure Call, Llamada a Procedimiento Remoto) es un protocolo que permite a un programa ejecutar código en una máquina remota sin tener que preocuparse por las comunicaciones entre ambos.

       En Linux hay disponibles una variedad de sistemas de archivos en red. La más popular es NFS, el Network File System originalmente desarrollado por Sun Microsystems

    El otro sistema de archivos en red más comúnmente usado es, el sistema de archivos SMB de Microsoft (SMB: Server Message Block: Bloque de Mensajes de Servidor).

       que ha sido renombrado como CIFS (Common Internet File System: Sistema de Archivos Común de Internet)

       SMB/CIFS funciona en Linux gracias a una suite de software para cliente y servidor llamada Samba.

       Los clientes Samba posibilitan a los sistemas Linux exportar sus sistemas de archivos de forma que ordenadores ejecutando versiones diferentes de Microsoft Windows pueden montarlos y acceder a ellos.

VENTAJAS DE SISTEMAS DE ARCHIVOS DE RED vs LOS SISTEMAS DE ARCHIVOS LOCALES

       Reducen el riesgo de que el fallo de una sola máquina te impida acceder a tus datos. La mayor parte de los sistemas de archivos en red te permiten ingresar en múltiples máquinas y acceder a tus datos exactamente de la misma forma en todas ellas.

       Proporcionan ubicaciones centralizadas para los datos que deben o deberían estar compartidas entre todos los usuarios.

       Proporcionan la oportunidad de centralizar operaciones administrativas, tales como la copia de seguridad de los datos.

       Proporcionan interoperabilidad y flexibilidad. Normalmente puedes acceder a sistemas de ficheros en red desde ordenadores que ejecuten Linux, Windows, Mac OS X, etc. De esta forma es fácil utilizar el hardware y software más adecuado a tus requerimientos de escritorio, y aún así acceder a los mismos datos del entorno de sistema de archivos en red.

       Un servidor NFS no se preocupa cuando uno de sus clientes se avería. El servidor continúa operando como antes de que el cliente se quedara inactivo. Cuando se estropea un servidor, los procesos clientes que utilizan los recursos del servidor esperarán hasta que el servidor pueda recuperarse.

VENTAJAS DE CONTAR CON UN NETWORK FILES SYSTEM EN UNA RED

       Reduce los requerimientos de espacio de almacenamiento local ya que en toda la red puede existir una sola copia de un directorio la cual es completamente accesible a todo usuario de la red.

       Simplifica el soporte centralizando tareas tales como la actualización de archivos.

       Permite a los usuarios manipular archivos remotos con los comandos comunes de UNIX.

DESVENTAJAS DE CONTAR CON UN NETWORK FILES SYSTEM EN UNA RED

       Si un directorio es exportado a los clientes con acceso tipo root, una persona que tenga supra privilegios puede modificar los archivos en el directorio raíz.

       Si un directorio es exportado sin especificar una lista de acceso, cualquier sistema en la red puede acceder los archivos exportados.

MONTANDO NFS EN CentOS

NFS Y PORTMAP

       NFS se apoya en las llamadas de procedimientos remotos (RPC) para funcionar.

       Se requiere portmap para trazar las peticiones RPC a los servicios correctos.

       Portmap proporciona la coordinación entre servicios RPC y los números de puertos usados para comunicarlos

CONFIGURANDO EL SERVIDOR

       Primero de todo deberemos instalar los siguientes paquetes:
yum install nfs-utils-lib nfs-utils portmap -y

LEVANTAR EL SERVICIO PORTMAP

#  /etc/init.d/portmap  start
Starting portmap:                                                   [ OK ]

CONFIGURAR LA SEGURIDAD

  Para elevar el nivel de seguridad del servidor y el cliente deben configurarse los archivos :

/etc/hosts.allow
-          Donde se indicará que maquinas pueden acceder al servidor
     
 -  /etc/hosts.deny   
                  -     Donde se indicará cuáles no.

       Una vez realizado esto se debe reiniciar el demonio portmap
/sbin/service portmap restart

COMPARTIENDO UN VOLUMEN

       Se creará una carpeta o directorio el cuál será el directorio que se exportará para que los clientes accedan a el, ejemplos: /home/compartir o /var/nfs/publico, etc.

   Además debe agregarse este directorio en el archivo /etc/exports el cuál contiene todos los directorios exportados, los permisos y maquinas que pueden acceder a ese directorio.

       Luego de esto se deberá reiniciar o iniciar, cuál sea el caso, el servicio NFS:
/sbin/service nfs start
/sbin/service nfs restart


CONFIGURANDO EL CLIENTE

       En la maquina cliente deben configurarse los mismos archivos excepto el archivo exports.
hosts.allow y hosts.deny

       Deberá crearse un punto de montaje donde se colgará el directorio exportado o compartido por el servidor, ejemplo:
mkdir /home/compartidos

       Ahora ya que el cliente y servidor están en la misma red se escribirán los siguientes comandos para montar el servidor:
showmount –e <dir_ip>
 //muestra el directorio exportado por el servidor
                  mount <dir_ip>:/directorio/exportado/  /punto/montaje

       Para verificar que se haya logrado el montaje verificamos que la maquina cliente pueda observar los mismos archivos que la maquina servidor contiene

       Para mayor información se pueden consultar las siguientes paginas:

     Conectividad con sistemas de ficheros pre-Mac OS X de Apple a través de las utilidades de Linux llamadas netatalk y afpfs


martes, 22 de mayo de 2012

MONITOREO DE SERVIDORES SNMP

Monitoreo de servidores
Sería deseable disponer de información estadística para conocer exactamente el consumo de las CPUs o de ancho de banda. Una buena forma de justificar un pedido para mayor ancho de banda es, precisamente, utilizando datos sobre su utilización que muestren que los enlaces están saturados.

Las herramientas que veremos sirven para monitorear redes y servidores. Esto significa que se pueden utilizar para:

Conocer los puntos más débiles de la infraestructura (Servidores con demasiada carga, enlaces que se saturan regularmente, etc.). Es decir, los equipos o sectores donde se produce la mayor cantidad de errores.
Saber en el momento si algo está fuera de lo normal (No necesariamente un mal funcionamiento).
Disponer de un histórico con el comportamiento de la red y los servidores, por ejemplo, para obtener estadísticas de disponibilidad (El servidor web estuvo on-line un 95% en el último año, etc.).

La otra necesidad antes de instalar cualquier sistema de monitoreo es una documentación actualizada y completa de toda la red y los servidores. Ejemplos de lo que debe incluirse aquí son:

Tipo de cada enlace.
Modelo de los equipos, tanto servidores como routers y switches.
Formas de acceso a cada equipo.
Información de contacto de los administradores de los equipos, subredes, responsables técnicos de los enlaces.

Veamos ahora algunas herramientas de monitoreo. Existen muchísimas más. Incluso algunas herramientas tratan de englobar varias de estas, presentando al usuario una interface unificada para accederlas. 

Zenoss
Basado en el servidor de aplicaciones Zope y escrito en Python. Permite a los usuarios supervisar la disponibilidad, inventario y configuración, desempeño y los acontecimientos. Supervisa la disponibilidad de dispositivos de red mediante SNMP, SSH, WMI, servicios de red (HTTP, POP3, NNTP, SNMP, FTP) y los recursos del host (procesador, uso de disco) en la mayoría de sistemas operativos de red. Una arquitectura plug-in proporcionada por ZenPacks permite a los miembros de la comunidad para ampliar su funcionalidad.

Zabbix
Es capaz de monitorear y dar seguimiento de la situación de los diferentes tipos de servicios de red, servidores y otro hardware de red. Tiene grandes funcionalidades de visualización incluidas las vistas definidas por el usuario, zoom, y la cartografía. Tiene un método de comunicación versátil que permite una configuración rápida y sencilla de los diferentes tipos de notificaciones de eventos predefinidos. Zabbix cuenta con tres módulos principales: el servidor, los agentes, y el usuario. Para almacenar los datos de seguimiento, puede utilizar MySQL, PostgreSQL, Oracle o SQLite como base de datos. Sin necesidad de instalar ningún software en el host de seguimiento, Zabbix permite a los usuarios comprobar la disponibilidad y capacidad de respuesta de los servicios estándar, como SMTP o HTTP. Para supervisar las estadísticas, tales como carga de la CPU, utilización de la red y espacio en disco, un agente de Zabbix debe estar instalado en la máquina host. Zabbix incluye soporte para el monitoreo a través de SNMP, TCP y controles ICMP, IPMI y parámetros personalizados como una opción para instalar un agente en los hosts.

Nagios
Proporciona supervisión de los servicios de red (SMTP, POP3, HTTP, NNTP, ICMP, SNMP, FTP, SSH) y recursos de host (carga del procesador, uso de disco, los registros del sistema), entre otros. El control remoto es manejado a través de túneles SSH o SSL cifrado. Tiene un diseño simple que ofrece a los usuarios la libertad para desarrollar sus chequeos de servicio sin esfuerzo propio basado en las necesidades y mediante el uso de cualquiera de las herramientas de apoyo que guste.  Cuando los servicios o los problemas de acogida se plantean, la notificación será enviada a la persona que está a cargo de la red a través del correo electrónico, SMS, etc.

Cacti.
Es una completa solución para el monitoreo de redes. Utiliza RRDTool para almacenar la información de los dispositivos y aprovecha sus funcionalidades de graficación. Proporciona un esquema rápido de obtención de datos remotos, múltiples métodos de obtención de datos (snmp, scripts), un manejo avanzado de templates, y características de administración de usuarios. Además, ofrece un servicio de alarmas mediante el manejo de umbrales. Todo ello en una sola consola de administración, fácil de configurar.

Net-SNMP.
Conjunto de aplicaciones para obtener información vía snmp de los equipos de interconexión. Soporta la versión 3 del protocolo la cual ofrece mecanismos de seguridad tanto de confidencialidad como de autenticación. Provee de manejo de traps para la notificación de eventos.

MRTG (Multi Router Traffic Grapher)
Es una herramienta, escrita en C y Perl por Tobias Oetiker y Dave Rand, que se utiliza para supervisar la carga de tráfico de interfaces de red. MRTG genera un informe en formato HTML con gráficas que proveen una representación visual de la evolución del tráfico a lo largo del tiempo. Para recolectar la información del tráfico del dispositivo (habitualmente routers) la herramienta utiliza el protocolo SNMP (Simple Network Management Protocol). Este protocolo proporciona la información en crudo de la cantidad de bytes que han pasado por ellos distinguiendo entre entrada y salida. Esta cantidad bruta deberá ser tratada adecuadamente para la generación de informes

También permite ejecutar cualquier tipo de aplicación en lugar de consultar un dispositivo SNMP. Esta aplicación proporciona como salida dos valores numéricos que se corresponden a la entrada y salida. Habitualmente suelen utilizarse scripts que monitorizan la máquina local.
Asimismo, proporciona una aplicación cfgmaker que genera la configuración para un router de forma automática utilizando la meta información que proporciona SNMP

MRTG ejecuta como un demonio o invocado desde las tareas programadas del cron. Por defecto, cada cinco minutos recolecta la información de los dispositivos y ejecuta los scripts que se le indican en la configuración. En un primer momento, MRTG consultaba la información, la procesaba y generaba el informe y las gráficas. En las últimas versiones, esta información es almacenada en una base de datos gestionada por RRDtool a partir de la cual, y de forma separada, se generan los informes y las gráficas

Ntop (Network Top) 
Es una herramienta que permite monitorizar en tiempo real una red. Es útil para controlar los usuarios y aplicaciones que están consumiendo recursos de red en un instante concreto y para ayudarnos a detectar malas configuraciones de algún equipo, (facilitando la tarea ya que. justo al nombre del equipo, aparece sale un banderín amarillo o rojo, dependiendo si es un error leve o grave), o a nivel de servicio. Posee un micro servidor web desde el que cualquier usuario con acceso puede ver las estadísticas del monitorizaje. El software esta desarrollado para plataformas Unix y Windows.
En Modo Web, actúa como un servidor de Web, volcando en HTML el estado de la red. Viene con un recolector/emisor NetFlow/sFlow, una interfaz de cliente basada en HTTP para crear aplicaciones de monitoreo centradas en top, y RRD para almacenar persistentemente estadísticas de tráfico.

Los protocolos que es capaz de monitorizar son: TCP/UDP/ICMP, (R)ARP, IPX, DLC, Decnet, AppleTalk, Netbios, y ya dentro de TCP/UDP es capaz de agruparlos por FTP, HTTP, DNS, Telnet, SMTP/POP/IMAP, SNMP, NFS, X11.

AWStats 
Es una herramienta open source de informes de análisis web, apta para analizar datos de servicios de Internet como un servidor web, streaming, mail y FTP. AWstats analiza los archivos de log del servidor, y con base a ellos produce informes HTML. Los datos son presentados visualmente en informes de tablas y gráficos de barra. Pueden crearse informes estáticos mediante una interfaz de línea de comando, y se pueden obtener informes on-demand a través de un navegador web, gracias a un programa CGI.
AWStats soporta la mayoría de los formatos de archivos log de servidor web conocidos, entre ellos Apache (formato de log NCSA combinado/XLF/ELF o formato común/CLFt), WebStar, IIS (formato de log del W3C) y muchos otros formatos comunes de Internet. Los desarrolladores pueden contribuir con el proyecto AWStats a través de SourceForge.

Referencias: