Translate

miércoles, abril 29, 2015

Monitorización de procesos Windows con Nagios



 
En ocasiones nos podremos encontrar con la necesidad de monitorizar con Nagios un proceso (entendido como aplicación en ejecución) que se encuentra en ejecución en un sistema Windows.  Para ello se puede emplear  el plugin check_winprocess (https://www.itefix.no/i2/check_winprocess ) creado por la empresa Itefix.
 
Se trata de un plugin basado en NRPE, aplicación que permite ejecutar remotamente plugins de Nagios en otras máquinas, bajo Linux o bajo Windows.


  

 
Para hacer funcionar NRPE en el cliente se ha utilizado NSClient++, concretamente la versión 0.3.9 :http://sourceforge.net/projects/nscplus/files/nscplus/NSClient%2B%2B%200.3.9/. La última versión de NSClient++ a fecha de creación de este artículo (0.4.1.73) no funciona correctamente  para nuestro propósito. 
 

Una vez instalado NSClient++ (marcar como mínimo check_nrpe en el proceso de instalación) deberemos copiar el ejecutable check_winprocess.exe dentro del directorio scriptsde NSClient++. En nuestro caso la ruta es C:\Program Files\NSClient++\scripts . Además deberemos copiar el fichero check_winprocess.pl en el directorio libexec de Nagios en nuestro servidor de monitorización.

A continuación se deberán añadir al final del fichero de configuración NSC.ini ubicado en c:\ Program Files\NSClient++ unas líneas similares a las siguientes:

[NRPE Handlers]
command[nombre_check]=Path_WinProcess_NSClient\check_winprocess.exe –filter “imagename comparador(eq,ne,…) nombreProceso_a_Monitorizar.exe

Por ejemplo, vamos a monitorizar una serie de procesos asociados a una aplicación, para lo cual accedemos al administrador de tareas de Windows:





 [NRPE Handlers]
command[check_proc_StrLive]=C:\Program Files\NSClient++\scripts\check_winprocess\check_winprocess.exe --filter "imagename eq StreamLive.exe"
command[check_proc_DRBatch]=C:\Program Files\NSClient++\scripts\check_winprocess\check_winprocess.exe --filter "imagename eq DRBatchServer.exe"
command[check_proc_KMOOP]=C:\Program Files\NSClient++\scripts\check_winprocess\check_winprocess.exe --filter "imagename eq KMOOPEncoder.exe"
command[check_proc_KMMuxer]=C:\Program Files\NSClient++\scripts\check_winprocess\check_winprocess.exe --filter "imagename eq KMMuxer.exe"

De forma que añadimos al final del fichero NSC.ini las líneas indicadas:



Una vez creados nuestros manejadores en el sistema Windows, se deberán añadir los comandos oportunos a nuestro servidor Nagios (en el fichero commands.cfg):



Vamos a hacer uso de check_nrpe, como se ha indicado al comienzo de este artículo, y necesitaremos conocer la IP del sistema Windows a monitorizar y el nombre del manejador que hemos indicado en el fichero NSC.ini del NSClient++.

El formato del comando a utilizar:

Check_nrpe  –H   IP_EquipoWindows  –c   handler_NSC_ini

Una vez creado el comando, se puede añadir al fichero de monitorización del equipo en Nagios (en el directorio servers de nagios):




En este caso emplearemos el nombre definido en commands.cfg

Ya sólo queda reiniciar Nagios para que coja la nueva configuración:





Y observar los resultados:






INFORMACIÓN SOBRE WINPROCESS


NAME
   check_winprocess - Nagios NRPE plugin for checking processes

SYNOPSIS
   check_winprocess [--filter *filter spec*[,*filter spec*] ... ] ... ]
   [--warning *threshold*] [--critical *threshold*] [--compare *operator*]
   [--first *number*] [--kill] [--verbose] [--help]

DESCRIPTION
   check_winprocess is a Nagios NRPE plugin for checking processes by using
   criteria like status, name, cpu and memory usage and many more. You can
   also specify if the processes meeting the criteria will be killed.
   check_process uses Windows tools *tasklist* and *taskkill* (available in
   XP and later).

OPTIONS
   --filter *filter spec*[,*filter spec*] ... ] ... ]
       Specify filters to select processes. A *filter spec* consists of
       three fields: filter name, operator and value. You can specify
       several comma separated filters for one --filter option, as well as
       several --filter options. Defaults to all processes if no filter is
       defined. List of filters available (see tasklist documentation for
       more help):

        Filter Name     Valid Operators           Valid Value(s)
        -----------     ---------------           --------------
        STATUS          eq, ne                    RUNNING | NOT RESPONDING
        IMAGENAME       eq, ne                    Image name
        PID             eq, ne, gt, lt, ge, le    PID value
        SESSION         eq, ne, gt, lt, ge, le    Session number
        SESSIONNAME     eq, ne                    Session name
        CPUTIME         eq, ne, gt, lt, ge, le    CPU time in the format
                                                  of hh:mm:ss.
                                                  hh - hours,
                                                  mm - minutes, ss - seconds
        MEMUSAGE        eq, ne, gt, lt, ge, le    Memory usage in KB
        USERNAME        eq, ne                    User name in [domain\]user
                                                  format
        SERVICES        eq, ne                    Service name
        WINDOWTITLE     eq, ne                    Window title
        MODULES         eq, ne                    DLL name

   --warning *threshold*
       Return WARNING if the number of processes matching the criteria is
       more than *threshold*. Optional.

   --critical *threshold*
       Return CRITICAL if the number of processes matching the criteria is
       more than *threshold*. Optional.

   --compare *operator*
       Specify the type of comparison operator for threshold checks.
       Optional. Available values are:

        'eq'  equal to
        'ne'  not equal
        'gt'  greater than (default!)
        'ge'  greater or equal
        'lt'  less than
        'le'  less or equal

   --first *number*
       List process names as a part of plugin output. The first specified
       number of processes will be selected. Optional.

   --kill
       Kill the processes matching the filtering criteria. Useful as an
       action handler. Works only if at least one filter is defined.
       Optional.

   --verbose
       Increase output verbosity for debugging.

   --help
       Produce a help message.

EXAMPLES
    check_winprocess.exe --warn 100 --critical 300

   Checks the total number of processes in memory and returns WARNING for
   more than 100 processes or CRITICAL for more than 300 processes.

    check_winprocess.exe --filter "imagename eq runaway.exe","cputime gt 01:00:00" --critical 1

   Checks if there exists *runaway.exe* processes with CPU time longer than
   one hour, returns CRITICAL if there was at least one process.

    check_winprocess.exe --filter "imagename eq A.EXE","imagename eq B.EXE","imagename eq C.EXE" --compare ne --critical 3

   Checks if there exists A.EXE, B.EXE and C.EXE processes, returns CRITICAL
   if the number of processes is not 3.

    check_winprocess.exe --filter "memusage gt 102400" --filter "status eq NOT RESPONDING" --kill --critical 1

   Checks if there exists processes with memory consumption more than 100 MB
   and in *NOT RESPONDING* state, kills them and returns CRITICAL if there
   was at least one process.

EXIT VALUES
    0 OK
    1 WARNING
    2 CRITICAL
    3 UNKNOWN

viernes, abril 24, 2015

Comandos Imprescindibles del Usuario Linux:



/bin    :aqui estan todos los comandos importantes de la consola de Linux.

$tail -F /../../syslog.glog | grep juan > fichero --> mira en la cola del fichero syslog.log buscando el texto juan y lo deja en un fichero llamado "fichero" 
$df -h    ------> mirar el espacio en las unidades del sistema
$du -h ---> nos dice que pesa cada carpeta y espacio en kb, mb que usa
$tar cvzf /var/log/backup.tgz /etc/home/ ----->crear ficheros comprimidos
$tar xzvf xxx.tgz ...    ----------> descomprimir ficheros
$cat /var/log/syslog | grep error | wc -l    -----> Mirar los logs y saca solo aquellos que tengan la palabra "Error"
$top ---> para mirar el rendimiento en linux(uso de cpu, procesos en ejecución, memoria libre, etc ...)
$ps aux ---> lista todos los procesos en ejecución del sistema
$ps aux | grep java --> lista solo los procesos que contengan el literal java
$kill -9 "proceso por pid" --> paramos el procesos que nos interese parar, hay que conocer el pid usando ps aux | grep...
$lsof para ver q no hay ficheros abiertos, comando importantisimo, visualiza fichero abiertos incluso por conexiones remotas dentro de TODO
el sistema operativo
$top comando para ver el uso de CPU, ram etc.. en memoria.
$htop - mismo que el anterior pero de una forma grafica y mucho mas manejable que top

jueves, abril 23, 2015

Monitoring Alfresco: Nagios/Icinga, Hyperic, AuditSurf… JMX rocks!

Si tenemos Alfresco en producción (versión Enterprise), posiblemente queramos tener la aplicación controlada de la mejor forma posible y sobre todo que ese control nos aporte una visión real de lo que está pasando en el servidor y en la aplicación. Una monitorización efectiva nos permite controlar los problemas con el servicio, atisbar problemas futuros de rendimiento, detectar cuellos de botella, anomalías, etc.

Basic RGBnagioshypericauditsurf
La necesidad estaba ahí, necesitamos una solución de monitorización potente para Alfresco. Las versiones 3.X de Alfresco Enterprise permite ver y modificar muchos propiedades de la aplicación en tiempo real, por ejemplo:
  • Cambiar el nivel de log
  • Activar o desactivar FTP, CIFS o NFS
  • Poner el repositorio en solo lectura.
  • Poner el servidor en mono-usuario.
  • Limitar el número máximo de usurios o evitar accesos adicionales.
  • Ver número de sesiones y tickets de usuarios.
  • Ver número de sesiones y tickets no válidos.
  • Y muchos parámetros más.
Todo esto es gracias al soporte de JSR-160 vía JMX.
Vamos a ver qué opciones existen y cómo podemos implementarlas. Haremos un repaso aHypericAuditSurf, cómo conectar a Alfresco con Jconsole y por último cómo implementar este tipo de monitorización con Nagios o Icinga (nuevo fork de Nagios).

HYPERIC

El software de monitorización Hyperic, recientemente adquirido por la compañía Spring Source, tiene un plugin para su versión 4.0 que permite autodiscovering y monitorización de Alfresco Enterprise a través de un agente instalado en el servidor donde reside la aplicación. La monitorización que nos ofrece es bastante completa y visual (ver captura). Hyperic es una aplicación en crecimiento, su modelo y funcionalidades han hecho que su base de usuarios crezca en los últimos años. Para monitorización completa con Hyperic se necesita una suscripción de soporte con Alfresco.
cap-hyperic-alfresco

AUDITSURF

Gracias a la ampliación de las funcionalidades a las que podemos acceder por JMX de Alfresco, han salido aplicaciones como AuditSurf, de descarga gratuita en forge.alfresco.com, que nos dan una visión gráfica de lo que ocurre en el servidor en tiempo real. Su instalación es muy sencilla, hay que copiar un par de archivos al directorio extension, desplegar el war de la aplicación auditsurf.war y aplicar el módulo AMP a nuestro alfresco.war, el comando podría ser como este (depende del PATH):
# java -jar alfresco-mmt.jar install auditsurf.amp ruta-hacia/alfresco.war
Una vez realizada la instalación podremos acceder vía http://localhost/auditsurf el usuario y contraseña de admin.
audit_graph
audit_dashboard
audit_monitoring

JCONSOLE

Para acceder a los servicios que ofrece Alfresco por JMX, vía RMI, una de las herramientas gráficas que nos permiten ver las opciones que nos aporta Alfresco en este sentido es jconsole(binario que incorpora con la JDK), aunque hay otros igual de válidos.
Vamos a ver como conectar con Alfresco con jconsole:
Ejecutamos el comando jconsole y en la URL de conexión (Remote process) deberíamos escribir:
service:jmx:rmi:///jndi/rmi://servername:50500/alfresco/jmxrmi
Una vez conectados veríamos algo así, captura de pantalla de dos sesiones, la de atrás de Alfresco Community Labs 3.2r y la de alante de Alfresco Enterprise, las diferencias son obvias.
jconsole
El usuario y contraseña por defecto para acceder por JMX son controlRole/change_asap. Es recomendable cambiarlos por un usuario con sólo permisos de lectura y una contraseña diferente a la por defecto, podemos hacerlo en los siguientes ficheros y reiniciar Alfresco:
TOMCAT_PATH/webapps/alfresco/WEB-INF/classes/alfresco/alfresco-jmxrmi.access
monitorRole   readonly
#controlRole   readwrite
TOMCAT_PATH/webapps/alfresco/WEB-INF/classes/alfresco/alfresco-jmxrmi.password
monitorRole  nuevopassword
#controlRole  change_asap

NAGIOS e ICINGA

Pasamos a la parte más interesante, cómo monitorizar Alfresco con Nagios/Icinga (a partir de ahora Icinga, pero recuerda que estos pasos son válidos para ambos y los plugins también). Instalar Icinga es bastante fácil, basta con seguir los pasos que se marcan en esta página y en 20 minutos tendrás un servidor de monitorización funcionando. Como he comentado anteriormente, los plugins de Icinga son los mismos que los de Nagios y la configuración, ubicación y uso son idénticos, así que no tendremos ningún problema en usarlos.
Buscando, buscando, encontramos un plugin llamado “nagios-jmx-plugin” que se puede descargar desde aquí, que nos permite consultar valores y aplicar umbrales para alertas tipoWarning o Critical. Veamos un ejemplo para consultar la memoria heap usada desde la línea de comandos con el plugin:
Memoria heap usada:
# ./check_jmx -U service:jmx:rmi:///jndi/rmi://localhost:50500/alfresco/jmxrmi -O java.lang:type=Memory -A HeapMemoryUsage -K used -username controlRole -password change_asap -w 100000000 -c 200000000
JMX OK -HeapMemoryUsage.used = 91618296
En algunos de los ejemplos que vamos a ver uso dos umbrales en bytes, 100000000 para los Warnings y 200000000 para los Critical, por su puesto, tu deberás adaptarlos a tus necesidades.
Otros checks que se pueden hacer a Alfresco o al sistema pueden ser como los siguientes (probados con Alfresco Enterprise 3.1):
Carga media del sistema:
# ./check_jmx -U service:jmx:rmi:///jndi/rmi://localhost:50500/alfresco/jmxrmi -O java.lang:type=OperatingSystem -A SystemLoadAverage -username controlRole -password change_asap -w 100000000 -c 200000000
JMX OK -SystemLoadAverage = 0.0
Memoria no heap usada:
./check_jmx -U service:jmx:rmi:///jndi/rmi://localhost:50500/alfresco/jmxrmi -O java.lang:type=Memory -A NonHeapMemoryUsage -K used -username controlRole -password change_asap -w 100000000 -c 200000000
JMX OK -NonHeapMemoryUsage.used = 87816024
Numero total de usuarios existentes en Alfresco:
./check_jmx -U service:jmx:rmi:///jndi/rmi://localhost:50500/alfresco/jmxrmi -O Alfresco:Name=Authority -A NumberOfUsers -username controlRole -password change_asap -w 500 -c 600
Numero total de grupos existentes en Alfresco:
./check_jmx -U service:jmx:rmi:///jndi/rmi://localhost:50500/alfresco/jmxrmi -O Alfresco:Name=Authority -A NumberOfGroups -username controlRole -password change_asap -w 100 -c 200
Conexiones activas con la BBDD:
./check_jmx -U service:jmx:rmi:///jndi/rmi://localhost:50500/alfresco/jmxrmi -O Alfresco:Name=ConnectionPool -A NumActive -username controlRole -password change_asap -w 100000000 -c 200000000
Tamaño del repositorio en bytes (usar audit.contentstore o contentstore.deleted para ver su uso de disco):
./check_jmx -U service:jmx:rmi:///jndi/rmi://localhost:50500/alfresco/jmxrmi -O Alfresco:Name=ContentStore,Type=org.alfresco.repo.content.filestore.FileContentStore,Root=/Alfresco-3.1.1E/alf_data/contentstore -A TotalSize -username controlRole -password change_asap -w 100000000 -c 200000000
Hibernate (consulta uno de los muchos valores de los que disponemos):
./check_jmx -U service:jmx:rmi:///jndi/rmi://localhost:50500/alfresco/jmxrmi -O Alfresco:Name=Hibernate -A ConnectCount -username controlRole -password change_asap -w 100000000 -c 200000000
Lucene (tamaño de los índices del workspace/SpacesStore)
./check_jmx -U service:jmx:rmi:///jndi/rmi://localhost:50500/alfresco/jmxrmi -O Alfresco:Name=LuceneIndexes,Index=workspace/SpacesStore -A UsedSize -username controlRole -password change_asap -w 100000000 -c 200000000
Lucene (numero de documentos indexados en workspace/SpacesStore)
./check_jmx -U service:jmx:rmi:///jndi/rmi://localhost:50500/alfresco/jmxrmi -O Alfresco:Name=LuceneIndexes,Index=workspace/SpacesStore -A NumberOfDocuments -username controlRole -password change_asap -w 100000000 -c 200000000
Sesiones abiertas:
./check_jmx -U service:jmx:rmi:///jndi/rmi://localhost:50500/alfresco/jmxrmi -O Alfresco:Name=RepoServerMgmt -A TicketCountAll -username controlRole -password change_asap -w 100000000 -c 200000000
Usuarios conectados:
./check_jmx -U service:jmx:rmi:///jndi/rmi://localhost:50500/alfresco/jmxrmi -O Alfresco:Name=RepoServerMgmt -A UserCountAll -username controlRole -password change_asap -w 1000 -c 2000
Memoria total usada por Alfresco en bytes:
./check_jmx -U service:jmx:rmi:///jndi/rmi://localhost:50500/alfresco/jmxrmi -O Alfresco:Name=Runtime -A TotalMemory -username controlRole -password change_asap -w 100000000 -c 200000000
Memoria libre disponible para Alfresco en bytes:
./check_jmx -U service:jmx:rmi:///jndi/rmi://localhost:50500/alfresco/jmxrmi -O Alfresco:Name=Runtime -A FreeMemory -username controlRole -password change_asap -w 100000000 -c 200000000
Caché usada por el servidor de aplicaciones Tomcat para Alfresco:
./check_jmx -U service:jmx:rmi:///jndi/rmi://localhost:50500/alfresco/jmxrmi -O Catalina:type=Cache,host=localhost,path=/alfresco -A cacheSize -username controlRole -password change_asap -w 100000000 -c 200000000
Comprobados esos comandos, primer paso antes de implementar un nuevo plugin de Icinga, pasamos a crear los ficheros de definición de comandos de Icinga, por ejemplo contenido del fichero “alfresco-jmx.cfg“, ojo, revisa las rutas sobre todo del repositorio para que todo funcione correctamente en estos commands:
# ‘check_alfresco_HeapMemoryUsage_Used’ command definition
define command {
command_name    check_alfresco_HeapMemoryUsage_Used
command_line    /usr/local/icinga/libexec/check_jmx -U service:jmx:rmi:///jndi/rmi://’$HOSTADDRESS$':’$ARG1$’/jmxrmi -O java.lang:type=Memory -A HeapMemoryUsage -K used -username ‘$ARG2$’ -password ‘$ARG3$’ -w ‘$ARG4$’ -c ‘$ARG5$’
}
# ‘check_alfresco_NoHeapMemoryUsage_Used’ command definition
define command {
command_name    check_alfresco_NoHeapMemoryUsage_Used
command_line    /usr/local/icinga/libexec/check_jmx -U service:jmx:rmi:///jndi/rmi://’$HOSTADDRESS$':’$ARG1$’/jmxrmi -O java.lang:type=Memory -A NonHeapMemoryUsage -username ‘$ARG2$’ -password ‘$ARG3$’ -w ‘$ARG4$’ -c ‘$ARG5$’
}
# ‘check_alfresco_SystemLoadAverage’ command definition
define command {
command_name    check_alfresco_SystemLoadAverage
command_line    /usr/local/icinga/libexec/check_jmx -U service:jmx:rmi:///jndi/rmi://’$HOSTADDRESS$':’$ARG1$’/jmxrmi -O java.lang:type=OperatingSystem -A SystemLoadAverage -username ‘$ARG2$’ -password ‘$ARG3$’ -w ‘$ARG4$’ -c ‘$ARG5$’
}
# ‘check_alfresco_NumberOfUsers’ command definition
define command {
command_name    check_alfresco_NumberOfUsers
command_line    /usr/local/icinga/libexec/check_jmx -U service:jmx:rmi:///jndi/rmi://’$HOSTADDRESS$':’$ARG1$’/jmxrmi -O Alfresco:Name=Authority -A NumberOfUsers -username ‘$ARG2$’ -password ‘$ARG3$’ -w ‘$ARG4$’ -c ‘$ARG5$’
}
# ‘check_alfresco_NumberOfGroups’ command definition
define command {
command_name    check_alfresco_NumberOfgroups
command_line    /usr/local/icinga/libexec/check_jmx -U service:jmx:rmi:///jndi/rmi://’$HOSTADDRESS$':’$ARG1$’/jmxrmi -O Alfresco:Name=Authority -A NumberOfGroups -username ‘$ARG2$’ -password ‘$ARG3$’ -w ‘$ARG4$’ -c ‘$ARG5$’
}
# ‘check_alfresco_ConnectionPool’ command definition
define command {
command_name    check_alfresco_ConnectionPool
command_line    /usr/local/icinga/libexec/check_jmx -U service:jmx:rmi:///jndi/rmi://’$HOSTADDRESS$':’$ARG1$’/jmxrmi -O Alfresco:Name=ConnectionPool -A NumActive -username ‘$ARG2$’ -password ‘$ARG3$’ -w ‘$ARG4$’ -c ‘$ARG5$’
}
# ‘check_alfresco_ContentStoreSize’ command definition
define command {
command_name    check_alfresco_ContentStoreSize
command_line    /usr/local/icinga/libexec/check_jmx -U service:jmx:rmi:///jndi/rmi://’$HOSTADDRESS$':’$ARG1$’/jmxrmi -O Alfresco:Name=ContentStore,Type=org.alfresco.repo.content.filestore.FileContentStore,Root=/Alfresco-3.1.1E/alf_data/contentstore -A TotalSize -username ‘$ARG2$’ -password ‘$ARG3$’ -w ‘$ARG4$’ -c ‘$ARG5$’
}
# ‘check_alfresco_HibernateConnectCount’ command definition
define command {
command_name    check_alfresco_HibernateConnectCount
command_line    /usr/local/icinga/libexec/check_jmx -U service:jmx:rmi:///jndi/rmi://’$HOSTADDRESS$':’$ARG1$’/jmxrmi -O Alfresco:Name=Hibernate -A ConnectCount -username ‘$ARG2$’ -password ‘$ARG3$’ -w ‘$ARG4$’ -c ‘$ARG5$’
}
# ‘check_alfresco_LuceneIndexesSpacesStoreUsed’ command definition
define command {
command_name    check_alfresco_LuceneIndexesSpacesStoreUsed
command_line    /usr/local/icinga/libexec/check_jmx -U service:jmx:rmi:///jndi/rmi://’$HOSTADDRESS$':’$ARG1$’/jmxrmi -O Alfresco:Name=LuceneIndexes,Index=workspace/SpacesStore -A UsedSize -username ‘$ARG2$’ -password ‘$ARG3$’ -w ‘$ARG4$’ -c ‘$ARG5$’
}
# ‘check_alfresco_LuceneIndexesSpacesStoreNumDocs’ command definition
define command {
command_name    check_alfresco_LuceneIndexesSpacesStoreNumDocs
command_line    /usr/local/icinga/libexec/check_jmx -U service:jmx:rmi:///jndi/rmi://’$HOSTADDRESS$':’$ARG1$’/jmxrmi -O Alfresco:Name=LuceneIndexes,Index=workspace/SpacesStore -A NumberOfDocuments -username ‘$ARG2$’ -password ‘$ARG3$’ -w ‘$ARG4$’ -c ‘$ARG5$’
}
# ‘check_alfresco_RepoServerMgmtSessions’ command definition
define command {
command_name    check_alfresco_RepoServerMgmtSessions
command_line    /usr/local/icinga/libexec/check_jmx -U service:jmx:rmi:///jndi/rmi://’$HOSTADDRESS$':’$ARG1$’/jmxrmi -O Alfresco:Name=RepoServerMgmt -A TicketCountAll -username ‘$ARG2$’ -password ‘$ARG3$’ -w ‘$ARG4$’ -c ‘$ARG5$’
}
# ‘check_alfresco_RepoServerMgmtUsersConnected’ command definition
define command {
command_name    check_alfresco_RepoServerMgmtUsersConnected
command_line    /usr/local/icinga/libexec/check_jmx -U service:jmx:rmi:///jndi/rmi://’$HOSTADDRESS$':’$ARG1$’/jmxrmi -O Alfresco:Name=RepoServerMgmt -A UserCountAll -username ‘$ARG2$’ -password ‘$ARG3$’ -w ‘$ARG4$’ -c ‘$ARG5$’
}
# ‘check_alfresco_TotalMemoryUsed’ command definition
define command {
command_name    check_alfresco_TotalMemoryUsed
command_line    /usr/local/icinga/libexec/check_jmx -U service:jmx:rmi:///jndi/rmi://’$HOSTADDRESS$':’$ARG1$’/jmxrmi -O Alfresco:Name=Runtime -A TotalMemory -username ‘$ARG2$’ -password ‘$ARG3$’ -w ‘$ARG4$’ -c ‘$ARG5$’
}
# ‘check_alfresco_FreeMemory’ command definition
define command {
command_name    check_alfresco_FreeMemory
command_line    /usr/local/icinga/libexec/check_jmx -U service:jmx:rmi:///jndi/rmi://’$HOSTADDRESS$':’$ARG1$’/jmxrmi -O Alfresco:Name=Runtime -A FreeMemory -username ‘$ARG2$’ -password ‘$ARG3$’ -w ‘$ARG4$’ -c ‘$ARG5$’
}
# ‘check_alfresco_AlfrescoCache’ command definition
define command {
command_name    check_alfresco_AlfrescoCache
command_line    /usr/local/icinga/libexec/check_jmx -U service:jmx:rmi:///jndi/rmi://’$HOSTADDRESS$':’$ARG1$’/jmxrmi -O Catalina:type=Cache,host=localhost,path=/alfresco -A cacheSize -username ‘$ARG2$’ -password ‘$ARG3$’ -w ‘$ARG4$’ -c ‘$ARG5$’
}
El uso o invocación de dichos comandos sería algo así como:
check_alfresco_HeapMemoryUsage_Used!PORT!USERNAME!PASSWORD!750000000!800000000
check_alfresco_NoHeapMemoryUsage_Used!PORT!USERNAME!PASSWORD!750000000!800000000
check_alfresco_SystemLoadAverage!PORT!USERNAME!PASSWORD!0.8!0.9
check_alfresco_NumberOfUsers!PORT!USERNAME!PASSWORD!400!500
check_alfresco_NumberOfgroups!PORT!USERNAME!PASSWORD!50!70
check_alfresco_ConnectionPool!PORT!USERNAME!PASSWORD!100000000!200000000
check_alfresco_ContentStoreSize!PORT!USERNAME!PASSWORD!100000000!200000000
check_alfresco_HibernateConnectCount!PORT!USERNAME!PASSWORD!100000000!200000000
check_alfresco_LuceneIndexesSpacesStoreUsed!PORT!USERNAME!PASSWORD!100000000!200000000
check_alfresco_LuceneIndexesSpacesStoreNumDocs!PORT!USERNAME!PASSWORD!100000000!200000000
check_alfresco_RepoServerMgmtSessions!PORT!USERNAME!PASSWORD!100000000!200000000
check_alfresco_RepoServerMgmtUsersConnected!PORT!USERNAME!PASSWORD!100000000!200000000
check_alfresco_TotalMemoryUsed!PORT!USERNAME!PASSWORD!100000000!200000000
check_alfresco_FreeMemory!PORT!USERNAME!PASSWORD!100000000!200000000
check_alfresco_AlfrescoCache!PORT!USERNAME!PASSWORD!100000000!200000000
Espero vuestros comentarios, sugerencias, correcciones y demás. Seguro que todo esto se puede mejorar bastante.
Posiblemente este artículo pueda desembocar en un proyecto que permita instalar y usar este plugin de una forma más rápida y sencilla, y sobre todo sin tener que leer este blog ;)

viernes, abril 17, 2015

ANALIZADOR DE REDES NMAP / 29 ejemplos de Nmap para Admis. de Sistemas / Redes

1. Nmap (Network Mapper, mapeador de redes) es una sofisticada utilidad para la exploración y auditoría de seguridad de redes TCP/IP. Ha sido diseñado para escanear1 de forma rápida, sigilosa y eficaz tanto equipos individuales como redes de gran tamaño. Es una herramienta gratuita, de código abierto bajo licencia GPL, bien documentada, multiplataforma, disponible para consola, y que ofrece también una interfaz gráfica para facilitar su uso. Está escrita por un hacker conocido como Fyodor2 , y se beneficia de las aportaciones de una nutrida comunidad de colaboradores.

2. Nmap es una popular herramienta de seguridad utilizada tanto por administradores de red y analistas de seguridad, como por atacantes. Esto es debido a la gran cantidad de información que es capaz de descubrir de una red utilizando una gran variedad de técnicas que la hacen notablemente efectiva y sigilosa. Para ello, Nmap explora equipos remotos mediante secuencias de paquetes TCP/IP tanto convencionales como no convencionales, es decir, paquetes en bruto convenientemente modificados que provocarán o no una respuesta en el objetivo de la cual poder extraer información. Entre esta información se encuentra, por ejemplo: el estado de los puertos y servicios, el sistema operativo, la presencia de cortafuegos, encaminadotes u otros elementos de red, así como del direccionamiento IP de la subred. El tipo de respuestas recibidas ayudan a determinar la identidad de la pila TCP/IP implementada en el sistema operativo remoto.
 3. La información extraída con Nmap puede ser utilizada para múltiples usos. Los más habituales son los siguientes:
 * Descubrimiento de subredes.
* Análisis de penetración de redes y equipos.
* Evaluación de la implantación de cortafuegos y de la eficacia de herramientas de detección y prevención de intrusiones.
* Descubrimiento del estado de puertos de comunicaciones.
* Descubrimiento de los servicios disponibles en un servidor, así como de sus versiones.
* Descubrimiento del tipo y versión del sistema operativo instalado en el equipo remoto.
* Determinar qué equipos están activos y cuál es el estado de sus puertos y servicios de comunicaciones

 Comando: instrucción tipada en Nmap que contiene los argumentos necesarios
para acotar las características de cada uno de los escaneos ejecutados con esta
herramienta. El formato de un comando en Nmap responde a la siguiente sintaxis.

nmap - - --

Obsérvese la distinta utilización normalizada del guión “-” para cada uno de los
argumentos del comando en Nmap.

29 ejemplos de Nmap para Admis. de Sistemas / Redes

Los comandos de Nmap

Comandos y ejemplos de Nmap

Voy a cubrir la mayor parte del uso de NMAP. Aquí, en esta configuración, he utilizado dos servidores sin firewall para probar el funcionamiento del comando de Nmap.
 
 192.168.0.100 – server1.mimaquina.com
 192.168.0.101 – server2.mimaquina.com
El uso de comandos de Nmap
# nmap [Scan Type(s)] [Options] {target specification}

Cómo instalar NMAP en Linux

La mayoría de las distribuciones Linux de la actualidad como Red Hat, CentOS, Fedora, Debian y Ubuntu han incluido Nmap en sus repositorios de gestión de paquetes por defecto, utilizando Yum y APT. Las dos herramientas se utilizan para instalar y gestionar paquetes de software y actualizaciones. Para instalar Nmap en su distribución específica utilice el siguiente comando.
# yum install nmap  [en sistemas basados en Red Hat]
$ sudo apt-get install nmap [en sistemas basados en Debian]
Una vez que haya instalado la última aplicación nmap, puede seguir las instrucciones proporcionadas en este artículo.

1. Analizar un sistema con nombre de host y la dirección IP

La herramienta Nmap ofrece varios métodos para analizar un sistema. En este ejemplo, estoy realizando una exploración utilizando el nombre de host como server2.mimaquina.com para averiguar todos los puertos abiertos, servicios y la dirección MAC del sistema.
Escaneo mediante el nombre de host
[root@server1 ~]# nmap server2.mimaquina.com

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 15:42 EST
Interesting ports on server2.mimaquina.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.415 seconds
You have new mail in /var/spool/mail/root
Escaneo mediante direcciones IP
[root@server1 ~]# nmap 192.168.0.101

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-18 11:04 EST
Interesting ports on server2.mimaquina.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
958/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.465 seconds
You have new mail in /var/spool/mail/root

2. Escanear utilizando la opción “-v”

Se puede ver que el siguiente comando con la opción "-v" está dando una información más detallada acerca de la máquina remota.
[root@server1 ~]# nmap -v server2.mimaquina.com

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 15:43 EST
Initiating ARP Ping Scan against 192.168.0.101 [1 port] at 15:43
The ARP Ping Scan took 0.01s to scan 1 total hosts.
Initiating SYN Stealth Scan against server2.mimaquina.com (192.168.0.101) [1680 ports] at 15:43
Discovered open port 22/tcp on 192.168.0.101
Discovered open port 80/tcp on 192.168.0.101
Discovered open port 8888/tcp on 192.168.0.101
Discovered open port 111/tcp on 192.168.0.101
Discovered open port 3306/tcp on 192.168.0.101
Discovered open port 957/tcp on 192.168.0.101
The SYN Stealth Scan took 0.30s to scan 1680 total ports.
Host server2.mimaquina.com (192.168.0.101) appears to be up ... good.
Interesting ports on server2.mimaquina.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.485 seconds
               Raw packets sent: 1681 (73.962KB) | Rcvd: 1681 (77.322KB)

3 Escanear varios hosts

Puede escanear múltiples hosts simplemente escribiendo sus direcciones IP o nombres de host con Nmap.
[root@server1 ~]# nmap 192.168.0.101 192.168.0.102 192.168.0.103

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 16:06 EST
Interesting ports on server2.mimaquina.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
Nmap finished: 3 IP addresses (1 host up) scanned in 0.580 seconds

4. Analizar todo una subred

Puede escanear toda una subred o rango de direcciones IP con Nmap proporcionando el comodín * con él.
[root@server1 ~]# nmap 192.168.0.*

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 16:11 EST
Interesting ports on server1.mimaquina.com (192.168.0.100):
Not shown: 1677 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
111/tcp open  rpcbind
851/tcp open  unknown

Interesting ports on server2.mimaquina.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 256 IP addresses (2 hosts up) scanned in 5.550 seconds
You have new mail in /var/spool/mail/root
El resultado anterior se puede ver que nmap escanea toda una subred y le dio la información sobre los hosts que están en la red.

5. Analizar varios servidores utilizando el último octeto de la dirección IP

Puede llevar a cabo exploraciones en varias direcciones IP simplemente especificando el último octeto de la dirección IP. Por ejemplo, aquí se realiza un análisis de las direcciones IP 192.168.0.101, 192.168.0.102 y 192.168.0.103.
[root@server1 ~]# nmap 192.168.0.101,102,103

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 16:09 EST
Interesting ports on server2.mimaquina.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 3 IP addresses (1 host up) scanned in 0.552 seconds
You have new mail in /var/spool/mail/root

6. Analizar la lista de los ejércitos de un archivo

Si usted tiene más hosts para escanear y todos los detalles de acogida están escritos en un archivo, puede hacer que nmap directamente lea ese archivo y realice el análisis. Vamos a ver cómo hacerlo.
Crear un archivo de texto llamado "nmaptest.txt" y definir todas las direcciones IP o nombre de host del servidor que desea hacer una exploración.
[root@server1 ~]# cat > nmaptest.txt

localhost
server2.mimaquina.com
192.168.0.101
A continuación, ejecute el siguiente comando con la opción "iL" con el comando nmap para escanear todas las direcciones IP que aparece en el archivo.
[root@server1 ~]# nmap -iL nmaptest.txt

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-18 10:58 EST
Interesting ports on localhost.localdomain (127.0.0.1):
Not shown: 1675 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
25/tcp  open  smtp
111/tcp open  rpcbind
631/tcp open  ipp
857/tcp open  unknown

Interesting ports on server2.mimaquina.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
958/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Interesting ports on server2.mimaquina.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
958/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 3 IP addresses (3 hosts up) scanned in 2.047 seconds

7. Escanear un rango de direcciones IP

Usted puede especificar un rango de direcciones IP en el desempeño de escaneo con Nmap.
[root@server1 ~]# nmap 192.168.0.101-110

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 16:09 EST
Interesting ports on server2.mimaquina.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 10 IP addresses (1 host up) scanned in 0.542 seconds

8. Escaneado por Red Excluyendo hosts remotos

Puede excluir algunos hosts al realizar una exploración de red completa o cuando se escanea con los comodines con la opción de "–exclude".
[root@server1 ~]# nmap 192.168.0.* --exclude 192.168.0.100

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 16:16 EST
Interesting ports on server2.mimaquina.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 255 IP addresses (1 host up) scanned in 5.313 seconds
You have new mail in /var/spool/mail/root

9. Información Scan OS y Traceroute

Con Nmap, puede detectar qué sistema operativo y la versión que está ejecutando en el host remoto. Para habilitar la detección de sistema operativo y versión, la exploración de la escritura y la Ruta de seguimiento, podemos usar la opción "-A" con NMAP.
[root@server1 ~]# nmap -A 192.168.0.101

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 16:25 EST
Interesting ports on server2.mimaquina.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 4.3 (protocol 2.0)
80/tcp   open  http    Apache httpd 2.2.3 ((CentOS))
111/tcp  open  rpcbind  2 (rpc #100000)
957/tcp  open  status   1 (rpc #100024)
3306/tcp open  mysql   MySQL (unauthorized)
8888/tcp open  http    lighttpd 1.4.32
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
No exact OS matches for host (If you know what OS is running on it, see http://www.insecure.org/cgi-bin/nmap-submit.cgi).
TCP/IP fingerprint:
SInfo(V=4.11%P=i686-redhat-linux-gnu%D=11/11%Tm=52814B66%O=22%C=1%M=080027)
TSeq(Class=TR%IPID=Z%TS=1000HZ)
T1(Resp=Y%DF=Y%W=16A0%ACK=S++%Flags=AS%Ops=MNNTNW)
T2(Resp=N)
T3(Resp=Y%DF=Y%W=16A0%ACK=S++%Flags=AS%Ops=MNNTNW)
T4(Resp=Y%DF=Y%W=0%ACK=O%Flags=R%Ops=)
T5(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=)
T6(Resp=Y%DF=Y%W=0%ACK=O%Flags=R%Ops=)
T7(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=)
PU(Resp=Y%DF=N%TOS=C0%IPLEN=164%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E)

Uptime 0.169 days (since Mon Nov 11 12:22:15 2013)

Nmap finished: 1 IP address (1 host up) scanned in 22.271 seconds
You have new mail in /var/spool/mail/root
En la salida anterior, se puede ver que nmap se acercó con la huella digital TCP / IP del sistema operativo que se ejecuta en máquinas remotas y es más específico sobre el puerto y los servicios que se ejecutan en los hosts remotos.

10. Activar la Detección de OS con Nmap

Utilice la opción "-O" y "-osscan-guess" también ayuda a descubrir la información del sistema operativo.
[root@server1 ~]# nmap -O server2.mimaquina.com

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 17:40 EST
Interesting ports on server2.mimaquina.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
No exact OS matches for host (If you know what OS is running on it, see http://www.insecure.org/cgi-bin/nmap-submit.cgi).
TCP/IP fingerprint:
SInfo(V=4.11%P=i686-redhat-linux-gnu%D=11/11%Tm=52815CF4%O=22%C=1%M=080027)
TSeq(Class=TR%IPID=Z%TS=1000HZ)
T1(Resp=Y%DF=Y%W=16A0%ACK=S++%Flags=AS%Ops=MNNTNW)
T2(Resp=N)
T3(Resp=Y%DF=Y%W=16A0%ACK=S++%Flags=AS%Ops=MNNTNW)
T4(Resp=Y%DF=Y%W=0%ACK=O%Flags=Option -O and -osscan-guess also helps to discover OS
R%Ops=)
T5(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=)
T6(Resp=Y%DF=Y%W=0%ACK=O%Flags=R%Ops=)
T7(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=)
PU(Resp=Y%DF=N%TOS=C0%IPLEN=164%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E)

Uptime 0.221 days (since Mon Nov 11 12:22:16 2013)

Nmap finished: 1 IP address (1 host up) scanned in 11.064 seconds
You have new mail in /var/spool/mail/root

11. Escanear un anfitrión para Detectar Firewall

El siguiente comando realizará una búsqueda en un host remoto para detectar si los filtros de paquetes o Firewall se utiliza por el anfitrión.
[root@server1 ~]# nmap -sA 192.168.0.101

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 16:27 EST
All 1680 scanned ports on server2.mimaquina.com (192.168.0.101) are UNfiltered
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.382 seconds
You have new mail in /var/spool/mail/root

12. Escanear un anfitrión para comprobar su protección por Firewall

Para escanear un host si está protegido por ningún software de filtrado de paquetes o cortafuegos.
[root@server1 ~]# nmap -PN 192.168.0.101

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 16:30 EST
Interesting ports on server2.mimaquina.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.399 seconds

13. Averigüe que redes están activas (vivas)

Con la ayuda de la opción "-sP" simplemente podemos comprobar qué hosts están vivos y en red, con esta opción se salta nmap detección de puertos y otras cosas.
[root@server1 ~]# nmap -sP 192.168.0.*

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-18 11:01 EST
Host server1.mimaquina.com (192.168.0.100) appears to be up.
Host server2.mimaquina.com (192.168.0.101) appears to be up.
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
Nmap finished: 256 IP addresses (2 hosts up) scanned in 5.109 seconds

14. Realizar un análisis rápido

Usted puede realizar un análisis rápido con la opción "-F" para las exploraciones para los puertos que figuran en los archivos de nmap-services y deja todos los demás puertos.
[root@server1 ~]# nmap -F 192.168.0.101

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 16:47 EST
Interesting ports on server2.mimaquina.com (192.168.0.101):
Not shown: 1234 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.322 seconds

15. Encontrar versión de Nmap

Puede encontrar la versión de Nmap está ejecutando en su máquina con la opción "-V".
[root@server1 ~]# nmap -V

Nmap version 4.11 ( http://www.insecure.org/nmap/ )
You have new mail in /var/spool/mail/root

16. Puertos de escaneo de forma consecutiva

Utilice el indicador "-r" para hacerlo no de forma aleatoria.
[root@server1 ~]# nmap -r 192.168.0.101

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 16:52 EST
Interesting ports on server2.mimaquina.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.363 seconds

17. Interfaces de impresión de host y Rutas

Usted puede encontrar la interfaz y ruta de información de host con nmap con la opción "-iflist".
[root@server1 ~]# nmap --iflist

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 17:07 EST
************************INTERFACES************************
DEV  (SHORT) IP/MASK          TYPE     UP MAC
lo   (lo)    127.0.0.1/8      loopback up
eth0 (eth0)  192.168.0.100/24 ethernet up 08:00:27:11:C7:89

**************************ROUTES**************************
DST/MASK      DEV  GATEWAY
192.168.0.0/0 eth0
169.254.0.0/0 eth0
En la salida anterior, se puede ver que el mapa está enumerando las interfaces conectadas a su sistema y sus respectivas rutas.

18. Analizar en busca de puerto específico

Hay varias opciones para descubrir los puertos en la máquina remota con Nmap. Se puede especificar el puerto que desee nmap para escanear con la opción "-p", por defecto escanea nmap sólo puertos TCP.
[root@server1 ~]# nmap -p 80 server2.mimaquina.com

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 17:12 EST
Interesting ports on server2.mimaquina.com (192.168.0.101):
PORT   STATE SERVICE
80/tcp open  http
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) sca

19. Escanear un puerto TCP

También puede especificar los tipos de puertos y los números con nmap para escanear.
[root@server1 ~]# nmap -p T:8888,80 server2.mimaquina.com

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 17:15 EST
Interesting ports on server2.mimaquina.com (192.168.0.101):
PORT     STATE SERVICE
80/tcp   open  http
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.157 seconds

20. Escanear un puerto UDP

[root@server1 ~]# nmap -sU 53 server2.mimaquina.com

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 17:15 EST
Interesting ports on server2.mimaquina.com (192.168.0.101):
PORT     STATE SERVICE
53/udp   open  http
8888/udp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.157 seconds

21. Scan Multiple Ports

You can also scan multiple ports using option “-p“.
[root@server1 ~]# nmap -p 80,443 192.168.0.101

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-18 10:56 EST
Interesting ports on server2.mimaquina.com (192.168.0.101):
PORT    STATE  SERVICE
80/tcp  open   http
443/tcp closed https
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.190 seconds

22. Puertos de escaneo de alcance de la red

Puede escanear puertos con rangos utilizando expresiones.
[root@server1 ~]#  nmap -p 80-160 192.168.0.101

23. Encontrar versión Host Services Números

Podemos encontrar versiones de servicios que se ejecutan en máquinas remotas con la opción "-sV".
[root@server1 ~]# nmap -sV 192.168.0.101

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 17:48 EST
Interesting ports on server2.mimaquina.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 4.3 (protocol 2.0)
80/tcp   open  http    Apache httpd 2.2.3 ((CentOS))
111/tcp  open  rpcbind  2 (rpc #100000)
957/tcp  open  status   1 (rpc #100024)
3306/tcp open  mysql   MySQL (unauthorized)
8888/tcp open  http    lighttpd 1.4.32
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 12.624 seconds

24. Analizar hosts remotos a través de TCP ACK (PA) y TCP Syn (PS)

A veces, los cortafuegos de filtrado de paquetes bloquea las solicitudes de ping ICMP estándar, en ese caso, podemos utilizar métodos TCP ACK y TCP Syn para escanear hosts remotos.
[root@server1 ~]# nmap -PS 192.168.0.101

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 17:51 EST
Interesting ports on server2.mimaquina.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.360 seconds
You have new mail in /var/spool/mail/root

25. Analizar Host remoto para puertos específicos con TCP ACK

[root@server1 ~]# nmap -PA -p 22,80 192.168.0.101

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 18:02 EST
Interesting ports on server2.mimaquina.com (192.168.0.101):
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.166 seconds
You have new mail in /var/spool/mail/root

26. Analizar Host remoto para puertos específicos con TCP Syn

[root@server1 ~]# nmap -PS -p 22,80 192.168.0.101

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 18:08 EST
Interesting ports on server2.mimaquina.com (192.168.0.101):
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.165 seconds
You have new mail in /var/spool/mail/root

27. Realizar un escaneo sigiloso

[root@server1 ~]# nmap -sS 192.168.0.101

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 18:10 EST
Interesting ports on server2.mimaquina.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.383 seconds
You have new mail in /var/spool/mail/root

28. Compruebe más puertos utilizando TCP Syn

[root@server1 ~]# nmap -sT 192.168.0.101

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 18:12 EST
Interesting ports on server2.mimaquina.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
111/tcp  open  rpcbind
957/tcp  open  unknown
3306/tcp open  mysql
8888/tcp open  sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.406 seconds
You have new mail in /var/spool/mail/root

29. Realizar un análisis tcp nula para engañar a un servidor de seguridad

[root@server1 ~]# nmap -sN 192.168.0.101

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-11-11 19:01 EST
Interesting ports on server2.mimaquina.com (192.168.0.101):
Not shown: 1674 closed ports
PORT     STATE         SERVICE
22/tcp   open|filtered ssh
80/tcp   open|filtered http
111/tcp  open|filtered rpcbind
957/tcp  open|filtered unknown
3306/tcp open|filtered mysql
8888/tcp open|filtered sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 1.584 seconds
You have new mail in /var/spool/mail/root