Usando Linux para muchas cosas y disfrutando de videojuegos, en dispositivos moviles, consolas y pc. Using Linux for many things and enjoying video games, mobile devices, consoles and pc

Como instalar Clamav y usarlo en Linux paso a paso

DriveMeca instalando ClamAV y usandolo en Linux paso a paso
Nunca tendremos la certeza de si un archivo tiene o no virus y mas hoy en el día en que Internet, la red de redes, juega un papel importante en las comunicaciones diarias de todos. Uso Linux me dirás, muy bien, te felicito, pero aun nuestro OS favorito puede sufrir un ataque por un virus, troyano, etc y es en ese momento que tenemos que estar preparados para poder salir del problema sin inconvenientes. Como?, sencillo, usando Clamav, un popular antivirus multiplataforma (ya dije que es opensource?) el cual hoy te mostrare paso a paso como instalarlo y configurarlo en varias distribuciones Linux populares del momento. Para este tutorial en español he escogido Centos / RedHat y Ubuntu desktop / Ubuntu Server (para mis, las mas usadas en el ámbito empresarial) pero esto no quiere decir que la configuracion en otras no sea algo parecida.


Requerimientos para instalar Clamav

  • Linux Ubuntu Desktop o Linux Ubuntu server
  • Linux Centos 7.x o Linux RedHat 7.x
  • Conectividad a internet


Todos los comandos se ejecutaran desde una consola y debemos tener acceso a la cuenta root o privilegios de root independientemente de la distro que usemos

Instalamos Clamav en Centos / RedHat

-Instalamos el repositorio Epel
yum install epel-release

-Instalamos Clamav
yum install clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd

-Creeríamos que si están los rpms, clamav debería funcionar al instalarlo. No es asi, debemos hacer unos cambios. Primero copiamos el conf de clamd.conf a /etc/clamd.d (donde normalmente lo busca el daemon)
cp /usr/share/clamav/template/clamd.conf /etc/clamd.d/clamd.conf


Configuramos Clamd y Freshclam en Linux Ubuntu

-Editamos el conf, normalmente los valores por default son suficientes pero listare los importantes. Es buena practica verificarlos todos y si necesitamos habilitar o deshabilitar alguno, lo hagamos documentando que hicimos para mas adelante poder ver donde hay un posible error
vi /etc/clamd.d/clamd.conf
#Comentamos esta linea para poder ejecutarlo
#Example

LogFile /var/log/clamd
LogFileMaxSize 2M
LogTime yes
LogRotate yes
ExtendedDetectionInfo yes
#Usuario que ejecutara clamav
User clamscan
#Donde se creara el socket
LocalSocket /var/run/clamd.scan/clamd.sock
FixStaleSocket yes
SelfCheck 600

-Editamos el conf de freshclam, el servicio encargado de descargar las firmas de virus actualizadas para el uso de clamav
vi /etc/freshclam.conf
#
#Example
DatabaseDirectory /var/lib/clamav
UpdateLogFile /var/log/freshclam.log
LogFileMaxSize 2M
LogTime yes
LogRotate yes
DatabaseOwner clamupdate

-Cambiamos el dueño y grupo (owner y group) del conf para que pueda ser leído por el servicio
chown clamscan.clamscan /etc/freshclam.conf

-Verificamos que el archivo para ejecutar el servicio exista y tenga el siguiente contenido
vi /usr/lib/systemd/system/clam-freshclam.service
[Unit]
Description = freshclam scanner
After = network.target
[Service]
Type = forking
ExecStart = /usr/bin/freshclam -d -c 4
Restart = on-failure
PrivateTmp = true
[Install]
WantedBy=multi-user.target

-Activamos el servicio de freshclam (clam-freshclam) y lo iniciamos. Apenas se ejecuta, descargara las firmas de virus actualizadas a /var/lib/clamav
systemctl enable clam-freshclam
systemctl start clam-freshclam

-Verificamos el servicio este ejecutándose correctamente
systemctl status clam-freshclam
● clam-freshclam.service - freshclam scanner
   Loaded: loaded (/usr/lib/systemd/system/clam-freshclam.service; enabled; vendor preset: disabled)
   Active: active (running) since sáb 2016-07-30 19:33:41 COT; 43s ago
  Process: 17245 ExecStart=/usr/bin/freshclam -d -c 4 (code=exited, status=0/SUCCESS)
 Main PID: 17246 (freshclam)
   CGroup: /system.slice/clam-freshclam.service
           └─17246 /usr/bin/freshclam -d -c 4

jul 30 19:33:41 cen7.test.com systemd[1]: Starting freshclam scanner...
jul 30 19:33:41 cen7.test.com freshclam[17246]: freshclam daemon 0.99.2 (OS: linux-gnu, ARCH: x86_64, CPU: x86_64)
jul 30 19:33:41 cen7.test.com freshclam[17246]: ClamAV update process started at Sat Jul 30 19:33:41 2016
jul 30 19:33:41 cen7.test.com systemd[1]: Started freshclam scanner.
jul 30 19:33:41 cen7.test.com freshclam[17246]: main.cvd is up to date (version: 57, sigs: 4218790, f-level: 60, builder: amishhammer)
jul 30 19:34:09 cen7.test.com freshclam[17246]: getfile: daily-21724.cdiff not found on database.clamav.net (IP: 128.199.133.36)
jul 30 19:34:09 cen7.test.com freshclam[17246]: getpatch: Can't download daily-21724.cdiff from database.clamav.net

-Corregimos el archivo de ejecución del servicio clamd. En el rpm viene con .@ y no lo encontrara sino lo arreglamos
mv /usr/lib/systemd/system/clamd@.service /usr/lib/systemd/system/clamd.service

-Verificamos el archivo de ejecusion del servicio de clamd, debe contener lo siguiente
vi /usr/lib/systemd/system/clamd.service
[Unit]
Description = clamd scanner (%i) daemon
After = syslog.target nss-lookup.target network.target

[Service]
Type = simple
ExecStart = /usr/sbin/clamd -c /etc/clamd.d/clamd.conf --foreground=yes
Restart = on-failure
PrivateTmp = true

[Install]
WantedBy=multi-user.target

-Creamos un archivo para los logs de clamd y le damos permisos de clamscan (owner y group)
touch /var/log/clamd
chown clamscan.clamscan /var/log/clamd

-Activamos el servicio clamd y lo ejecutamos
systemctl enable clamd
systemctl start clamd

-Verificamos este ejecutandose correctamente
systemctl status clamd
● clamd.service - clamd scanner () daemon
   Loaded: loaded (/usr/lib/systemd/system/clamd.service; enabled; vendor preset: disabled)
   Active: active (running) since sáb 2016-07-30 19:51:45 COT; 4s ago
 Main PID: 17408 (clamd)
   CGroup: /system.slice/clamd.service
           └─17408 /usr/sbin/clamd -c /etc/clamd.d/clamd.conf --foreground=yes

jul 30 19:51:45 cen7.test.com systemd[1]: Started clamd scanner () daemon.
jul 30 19:51:45 cen7.test.com systemd[1]: Starting clamd scanner () daemon...
jul 30 19:51:45 cen7.test.com clamd[17408]: Received 0 file descriptor(s) from systemd.
jul 30 19:51:45 cen7.test.com clamd[17408]: clamd daemon 0.99.2 (OS: linux-gnu, ARCH: x86_64, CPU: x86_64)
jul 30 19:51:45 cen7.test.com clamd[17408]: Running as user clamscan (UID 995, GID 993)
jul 30 19:51:45 cen7.test.com clamd[17408]: Log file size limited to 2097152 bytes.
jul 30 19:51:45 cen7.test.com clamd[17408]: Reading databases from /var/lib/clamav
jul 30 19:51:45 cen7.test.com clamd[17408]: Not loading PUA signatures.
jul 30 19:51:45 cen7.test.com clamd[17408]: Bytecode: Security mode set to "TrustSigned".

-Es buena politica verificar logs para certificar que todo este ejecutandose correctamente. Comenzamos mirando el log de freshclam para estar seguros de que se descargaron las firmas de virus
cat /var/log/freshclam.log
Sat Jul 30 19:33:41 2016 -> --------------------------------------
Sat Jul 30 19:33:41 2016 -> freshclam daemon 0.99.2 (OS: linux-gnu, ARCH: x86_64, CPU: x86_64)
Sat Jul 30 19:33:41 2016 -> ClamAV update process started at Sat Jul 30 19:33:41 2016
Sat Jul 30 19:33:41 2016 -> main.cvd is up to date (version: 57, sigs: 4218790, f-level: 60, builder: amishhammer)
Sat Jul 30 19:34:09 2016 -> WARNING: getfile: daily-21724.cdiff not found on database.clamav.net (IP: 128.199.133.36)
Sat Jul 30 19:34:09 2016 -> WARNING: getpatch: Can't download daily-21724.cdiff from database.clamav.net
Sat Jul 30 19:34:40 2016 -> nonblock_connect: connect timing out (30 secs)
Sat Jul 30 19:34:40 2016 -> Can't connect to port 80 of host database.clamav.net (IP: 104.131.196.175)
Sat Jul 30 19:34:40 2016 -> Trying host database.clamav.net (69.12.162.28)...
Sat Jul 30 19:34:40 2016 -> WARNING: getfile: daily-21724.cdiff not found on database.clamav.net (IP: 69.12.162.28)
Sat Jul 30 19:34:40 2016 -> WARNING: getpatch: Can't download daily-21724.cdiff from database.clamav.net
Sat Jul 30 19:34:40 2016 -> Trying host database.clamav.net (64.22.33.90)...
Sat Jul 30 19:34:41 2016 -> WARNING: getfile: daily-21724.cdiff not found on database.clamav.net (IP: 64.22.33.90)
Sat Jul 30 19:34:41 2016 -> WARNING: getpatch: Can't download daily-21724.cdiff from database.clamav.net
Sat Jul 30 19:34:41 2016 -> WARNING: Incremental update failed, trying to download daily.cvd
Sat Jul 30 19:34:59 2016 -> Downloading daily.cvd [100%]
Sat Jul 30 19:35:00 2016 -> daily.cvd updated (version: 21999, sigs: 468291, f-level: 63, builder: neo)
Sat Jul 30 19:35:01 2016 -> Downloading bytecode-279.cdiff [100%]
Sat Jul 30 19:35:01 2016 -> Downloading bytecode-280.cdiff [100%]
Sat Jul 30 19:35:02 2016 -> Downloading bytecode-281.cdiff [100%]
Sat Jul 30 19:35:02 201apt-get install clamav-daemon6 -> Downloading bytecode-282.cdiff [100%]
Sat Jul 30 19:35:03 2016 -> Downloading bytecode-283.cdiff [100%]
Sat Jul 30 19:35:03 2016 -> bytecode.cld updated (version: 283, sigs: 53, f-level: 63, builder: neo)
Sat Jul 30 19:35:07 2016 -> Database updated (4687134 signatures) from database.clamav.net (IP: 194.8.197.22)
Sat Jul 30 19:35:07 2016 -> --------------------------------------

-Miramos el contenido del log de clamd
cat /var/log/clamd 
Sat Jul 30 19:53:34 2016 -> +++ Started at Sat Jul 30 19:53:34 2016
Sat Jul 30 19:53:34 2016 -> Received 0 file descriptor(s) from systemd.
Sat Jul 30 19:53:34 2016 -> clamd daemon 0.99.2 (OS: linux-gnu, ARCH: x86_64, CPU: x86_64)
Sat Jul 30 19:53:34 2016 -> Running as user clamscan (UID 995, GID 993)
Sat Jul 30 19:53:34 2016 -> Log file size limited to 2097152 bytes.
Sat Jul 30 19:53:34 2016 -> Reading databases from /var/lib/clamav
Sat Jul 30 19:53:34 2016 -> Not loading PUA signatures.
Sat Jul 30 19:53:34 2016 -> Bytecode: Security mode set to "TrustSigned".


Instalamos Clamav en Linux Ubuntu server o Linux Ubuntu Desktop

-Abrimos una consola e instalamos clamav
sudo apt install clamav-daemon


Instalamos Clamav en Linux Ubuntu

-Verificamos la configuracion de freshclam. Los defaults por lo general funcionaran muy bien
sudo vi /etc/clamav/freshclam.conf

-Descargamos por primera vez las firmas de virus usadas por clamav. Sin las firmas, clamav no ejecutara y mostrara un error comentandolo
sudo freshclam
ClamAV update process started at Mon Aug  1 12:42:01 2016
WARNING: Your ClamAV installation is OUTDATED!
WARNING: Local version: 0.99 Recommended version: 0.99.2
DON'T PANIC! Read http://www.clamav.net/support/faq
Downloading main.cvd [100%]
main.cvd updated (version: 57, sigs: 4218790, f-level: 60, builder: amishhammer)
Downloading daily.cvd [100%]
daily.cvd updated (version: 22009, sigs: 473001, f-level: 63, builder: neo)
Downloading bytecode.cvd [100%]
bytecode.cvd updated (version: 283, sigs: 53, f-level: 63, builder: neo)
Database updated (4691844 signatures) from db.local.clamav.net (IP: 200.236.31.1)
WARNING: Clamd was NOT notified: Can't connect to clamd through /var/run/clamav/clamd.ctl: No such file or directory

-Verificamos ya tengamos las firmas de virus descargadas
ls -la /var/lib/clamav/
total 117696
drwxr-xr-x  2 clamav clamav      4096 ago  1 12:45 .
drwxr-xr-x 41 root   root        4096 ago  1 11:48 ..
-rw-r--r--  1 clamav clamav     86357 ago  1 12:45 bytecode.cvd
-rw-r--r--  1 clamav clamav  11265457 ago  1 12:44 daily.cvd
-rw-r--r--  1 clamav clamav 109143933 ago  1 12:44 main.cvd
-rw-------  1 clamav clamav       260 ago  1 12:45 mirrors.dat

-Activamos el servicio de freshclam (clamav-freshclam) y lo ejecutamos
sudo systemctl enable clamav-freshclam
sudo systemctl start clamav-freshclam

-Verificamos se este ejecutando servicio de freshclam
sudo systemctl status clamav-freshclam
● clamav-freshclam.service - ClamAV virus database updater
   Loaded: loaded (/lib/systemd/system/clamav-freshclam.service; enabled; vendor
   Active: active (running) since lun 2016-08-01 12:23:05 COT; 16s ago
     Docs: man:freshclam(1)
           man:freshclam.conf(5)
           http://www.clamav.net/lang/en/doc/
 Main PID: 4424 (freshclam)
    Tasks: 1
   Memory: 4.7M
      CPU: 246ms
   CGroup: /system.slice/clamav-freshclam.service
           └─4424 /usr/bin/freshclam -d --foreground=true

ago 01 12:23:05 ubuser systemd[1]: Started ClamAV virus database updater.
ago 01 12:23:05 ubuser freshclam[4424]: ClamAV update process started at Mon Aug
ago 01 12:23:05 ubuser freshclam[4424]: WARNING: Your ClamAV installation is OUT
ago 01 12:23:05 ubuser freshclam[4424]: WARNING: Local version: 0.99 Recommended
ago 01 12:23:05 ubuser freshclam[4424]: DON'T PANIC! Read http://www.clamav.net/

-Activamos y ejecutamos el servicio de clamav (clamav-daemon)
sudo systemctl enable clamav-daemon
sudo systemctl start clamav-daemon

-Verificamos se este ejecutandose el servicio
sudo systemctl status clamav-daemon
● clamav-daemon.service - Clam AntiVirus userspace daemon
   Loaded: loaded (/lib/systemd/system/clamav-daemon.service; enabled; vendor pr
   Active: active (running) since lun 2016-08-01 12:46:38 COT; 4s ago
     Docs: man:clamd(8)
           man:clamd.conf(5)
           http://www.clamav.net/lang/en/doc/
 Main PID: 4630 (clamd)
    Tasks: 1
   Memory: 244.2M
      CPU: 4.400s
   CGroup: /system.slice/clamav-daemon.service
           └─4630 /usr/sbin/clamd --foreground=true

ago 01 12:46:38 ubuser systemd[1]: Started Clam AntiVirus userspace daemon.

-Como buena politica miramos logs, en este caso el de clamav para verificar si hay errores o no se pudo cargar algun modulo
cat /var/log/clamav/clamav.log
Mon Aug  1 12:46:39 2016 -> +++ Started at Mon Aug  1 12:46:39 2016
Mon Aug  1 12:46:39 2016 -> Received 1 file descriptor(s) from systemd.
Mon Aug  1 12:46:39 2016 -> clamd daemon 0.99 (OS: linux-gnu, ARCH: x86_64, CPU: x86_64)
Mon Aug  1 12:46:39 2016 -> Running as user clamav (UID 111, GID 117)
Mon Aug  1 12:46:39 2016 -> Log file size limited to 4294967295bytes.
Mon Aug  1 12:46:39 2016 -> Reading databases from /var/lib/clamav
Mon Aug  1 12:46:39 2016 -> Not loading PUA signatures.
Mon Aug  1 12:46:39 2016 -> Bytecode: Security mode set to "TrustSigned".
Mon Aug  1 12:46:45 2016 -> Loaded 4686446 signatures.
Mon Aug  1 12:46:47 2016 -> TCP: No tcp AF_INET/AF_INET6 SOCK_STREAM socket received from systemd.
Mon Aug  1 12:46:47 2016 -> LOCAL: Received AF_UNIX SOCK_STREAM socket from systemd.
Mon Aug  1 12:46:47 2016 -> Limits: Global size limit set to 104857600 bytes.
Mon Aug  1 12:46:47 2016 -> Limits: File size limit set to 26214400 bytes.
Mon Aug  1 12:46:47 2016 -> Limits: Recursion level limit set to 16.
Mon Aug  1 12:46:47 2016 -> Limits: Files limit set to 10000.
Mon Aug  1 12:46:47 2016 -> Limits: MaxEmbeddedPE limit set to 10485760 bytes.
Mon Aug  1 12:46:47 2016 -> Limits: MaxHTMLNormalize limit set to 10485760 bytes.
Mon Aug  1 12:46:47 2016 -> Limits: MaxHTMLNoTags limit set to 2097152 bytes.
Mon Aug  1 12:46:47 2016 -> Limits: MaxScriptNormalize limit set to 5242880 bytes.
Mon Aug  1 12:46:47 2016 -> Limits: MaxZipTypeRcg limit set to 1048576 bytes.
Mon Aug  1 12:46:47 2016 -> Limits: MaxPartitions limit set to 50.
Mon Aug  1 12:46:47 2016 -> Limits: MaxIconsPE limit set to 100.
Mon Aug  1 12:46:47 2016 -> Limits: PCREMatchLimit limit set to 10000.
Mon Aug  1 12:46:47 2016 -> Limits: PCRERecMatchLimit limit set to 5000.
Mon Aug  1 12:46:47 2016 -> Limits: PCREMaxFileSize limit set to 26214400.
Mon Aug  1 12:46:47 2016 -> Archive support enabled.
Mon Aug  1 12:46:47 2016 -> Algorithmic detection enabled.
Mon Aug  1 12:46:47 2016 -> Portable Executable support enabled.
Mon Aug  1 12:46:47 2016 -> ELF support enabled.
Mon Aug  1 12:46:47 2016 -> Mail files support enabled.
Mon Aug  1 12:46:47 2016 -> OLE2 support enabled.
Mon Aug  1 12:46:47 2016 -> PDF support enabled.
Mon Aug  1 12:46:47 2016 -> SWF support enabled.
Mon Aug  1 12:46:47 2016 -> HTML support enabled.
Mon Aug  1 12:46:47 2016 -> Self checking every 3600 seconds.


Usando Clamav en Linux Ubuntu de forma gráfica

-Aunque en la mayoría de los casos usaremos clamav desde linea de comandos, hay ocasiones en que lo instalaremos en nuestra estación de trabajo o en un Linux Ubuntu Server con interfaz gráfica. Para estas oportunidades es que podemos usar clamtk. Lo instalamos desde linea de comandos
sudo apt install clamtk clamtk-nautilus

-Después de instalado podemos ejecutarlo, ya sea desde linea de comandos (sudo clamtk), Unity o desde el menú de MATE como en la siguiente imagen podrás ver
DriveMeca instalando ClamAV y usandolo en Linux paso a paso

-La ventana principal de Clamtk muestra todas las opciones (o inicio de opciones) en un único lugar. Lo primero que debemos hacer es verificar su configuracion dando click al botón Configuración
DriveMeca instalando ClamAV y usandolo en Linux paso a paso

-En Configuración veremos varias opciones, unas con valores por default y otras que podemos activar. Regresamos a la ventana principal dando click al botón Back
DriveMeca instalando ClamAV y usandolo en Linux paso a paso

-En la parte inferior de la ventana principal veremos en la sección Análisis los botones para hacer una búsqueda de virus. En este ejemplo doy click al botón Analizar una carpeta, elegimos y se ejecuta. Al final debe salir una ventana diciéndonos que termino y no se encontraron amenazas (virus)
DriveMeca instalando ClamAV y usandolo en Linux paso a paso


Usando Clamav desde linea de comandos en Linux (cualquier distribución)

-A veces necesitamos un rápido chequeo y no esperar a que nuestro servicio detecte un problema. Para esto podemos ejecutar desde linea de comandos clamscan y pasarle el directorio a verificar como parámetro. Una forma rápida y conveniente de verificar archivos en una carpeta Linux
clamscan -v Documentos/
..
..
Scanning Documentos/Guane.docx
Documentos/Guane.docx: OK

----------- SCAN SUMMARY -----------
Known viruses: 4686446
Engine version: 0.99
Scanned directories: 1
Scanned files: 55
Infected files: 0
Data scanned: 306.31 MB
Data read: 527.63 MB (ratio 0.58:1)
Time: 31.175 sec (0 m 31 s)

Verificando versión de Clamav

-Abrimos una consola y ejecutamos
clamscan -V
ClamAV 0.99/22010/Mon Aug  1 14:12:44 2016

Artículos recomendadosVerificando si una ip publica esta reportada por spam
                                            Como bloquear una ip o email en postfix
                                            Como instalar Linux Centos 7 paso a paso
                                            Configurando servicios en Linux Centos / RedHat
                                            Como instalar y configurar Ubuntu Server 16.04 LTS paso a paso
                                            Como instalar interfaz grafica en Ubuntu server paso a paso


Ahora ya estas mas protegido de virus, troyanos y otras amenazas en Linux Ubuntu / Linux Ubuntu Server / Linux Centos 7.x y Linux RedHat 7.x con este tutorial de ClamAV español. Te gusto el articulo? hazme un favor, compártelo en tus redes sociales (compartir es sexy). Escríbeme en los comentarios aquí debajo y pasa la voz compartiendo el tweet.

Sígueme en twitter google+facebook o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.

Share/Bookmark

Instalando y configurando Nessus

DriveMeca instalando y configurando Nessus en Linux Ubuntu
Que posición tomas a la hora de proteger tus equipos? Esperas a enfrentar el ataque o te preparas antes defendiéndote lo mas posible? Muchas son las teorías de una u otra posición. Yo particularmente prefiero adelantarme al ataque y preparar la defensa lo mas posible, es decir, leo noticias de bugs, vulnerabilidades, ataques, etc. Ahora, dependiendo de la cantidad de equipos sera la complejidad de la tarea y es aquí donde entra nuestro tema del articulo de hoy. Nessus es una herramienta que nos permitirá chequear que tan seguro es un equipo o servidor.
En nuestro articulo de hoy te mostrare como instalar y configurar Nessus en un Linux Ubuntu 16.04.
Para esto todos los comandos serán ejecutados como root y nuestro Ubuntu debe estar actualizado con las ultimas actualizaciones publicadas.

Requerimientos para Nessus en Linux Ubuntu



-Algo importante a tener en cuenta es que Nessus para usarlo en casa, sin propósitos comerciales es gratis, si lo usamos para una LAN o equipos comerciales, debemos comprar una licencia.

-Descargamos la ultima versión de Nessus desde este URL eligiendo la versión que se adecue a nuestro hardware (32 o 64bits). En el momento de escribir este articulo la ultima era la 6.8.0. Nuestro Ubuntu debe estar conectado a Internet para que descargue actualizaciones de pluggins y registre la licencia generada.
DriveMeca instalando y configurando Nessus en Linux Ubuntu

-Aceptamos la licencia
DriveMeca instalando y configurando Nessus en Linux Ubuntu


Instalación de Nessus en Linux Ubuntu

-Abrimos una consola de texto e instalamos Nessus
sudo dpkg -i Descargas/Nessus-6.8.0-ubuntu1110_amd64.deb
..
Preparando para desempaquetar .../Nessus-6.8.0-ubuntu1110_amd64.deb ...
Desempaquetando nessus (6.8.0) ...
Configurando nessus (6.8.0) ...
Unpacking Nessus Core Components...
nessusd (Nessus) 6.8.0 [build M20061] for Linux
Copyright (C) 1998 - 2016 Tenable Network Security, Inc

Processing the Nessus plugins...
[##################################################]

All plugins loaded (1sec)

 - You can start Nessus by typing /etc/init.d/nessusd start
 - Then go to https://cabrera-VAIO:8834/ to configure your scanner

Procesando disparadores para systemd (229-4ubuntu7) ...
Procesando disparadores para ureadahead (0.100.0-19) ...
ureadahead will be reprofiled on next reboot

-Ejecutamos como root el servicio de Nessus ya instalado
sudo /etc/init.d/nessusd start


Configuración de Nessus en Linux Ubuntu

-Abrimos un browser y navegamos a la ip del equipo Linux Ubuntu con el puerto 8834, en mi ejemplo es https://localhost:8834/ Damos click al botón Continue
DriveMeca instalando y configurando Nessus en Linux Ubuntu

-Creamos una cuenta de usuario para Nessus y damos click al botón Continue
DriveMeca instalando y configurando Nessus en Linux Ubuntu

-Escogemos el tipo de registro (en mi caso es para uso en el hogar Home) y damos click al link Registering this scanner
DriveMeca instalando y configurando Nessus en Linux Ubuntu

-Se nos abrirá otra pagina donde veremos las opciones de licenciamiento. Como te comentaba al comienzo de este articulo, la opción gratis es Nessus Home y es restringida a usarse solo en casa sin fines comerciales. Damos click a su botón Register Now
DriveMeca instalando y configurando Nessus en Linux Ubuntu

-Llenaremos un formato con nuestros datos teniendo cuidado de escribir un email que funcione y damos click al botón Register
DriveMeca instalando y configurando Nessus en Linux Ubuntu

-Verificamos nuestro email ya que se nos enviara el numero de licencia. Lo copiamos y pegamos en la caja de texto Activation Code y damos click al botón Continue
DriveMeca instalando y configurando Nessus en Linux Ubuntu

-En caso de que no se pueda enviar el código, puedes verificar dando click a Advanced Settings y configurar tu acceso por proxy a Internet (si es que sales por medio de un proxy)
DriveMeca instalando y configurando Nessus en Linux Ubuntu

-Comienza la descarga de pluggins de los servidores de Nessus, tiempo para ir por un café ;-)
DriveMeca instalando y configurando Nessus en Linux Ubuntu

-Al terminar se nos pedirá usuario y contraseña para entrar a la consola web. Ingresamos los datos de la cuenta creada en pasos anteriores y damos click al botón Sign In
DriveMeca instalando y configurando Nessus en Linux Ubuntu

-La consola web es minimalista. Para iniciar basta con darle click al botón New Scan
DriveMeca instalando y configurando Nessus en Linux Ubuntu

-Veremos varias plantillas, unas disponibles para nuestro plan Gratis y otras que para usarse tendríamos que licenciar (Upgrade). Para nuestro uso, es suficiente con el plan Home. Damos click a la plantilla Advanced Scan
DriveMeca instalando y configurando Nessus en Linux Ubuntu

-Se nos pedirán unos datos básicos como son un Name (nombre descriptivo), Description (descripción), Targets (IPs de equipos a scanear, máximo 16)
DriveMeca instalando y configurando Nessus en Linux Ubuntu

-En la parte superior veremos a manera de menú varios links siendo interesante el de plugins donde podemos habilitar o des habilitarlos (por default todos vienen activos). Damos click al botón Save
DriveMeca instalando y configurando Nessus en Linux Ubuntu

-Ya fuera le damos click al botón Launch superior derecho para ejecutar el scan
DriveMeca instalando y configurando Nessus en Linux Ubuntu

-El scan se ejecuta se nos muestra un resumen de las vulnerabilidades encontradas marcadas por colores. Damos click al link Vulnerabilities
DriveMeca instalando y configurando Nessus en Linux Ubuntu

-Veremos un listado de las vulnerabilidades encontradas organizadas de mayor impacto a menor impacto. Damos click a una vulnerabilidad
DriveMeca instalando y configurando Nessus en Linux Ubuntu

-Veremos una descripción amplia con posibilidad de descargar archivos con mas información de como corregirla
DriveMeca instalando y configurando Nessus en Linux Ubuntu

Puede que no sea perfecta esta solución, pero si creo que ayuda mucho para conocer nuestras debilidades, corregirlas y no esperar a que nos ataquen para buscar soluciones.

Artículos recomendados: Actualizando Linux Ubuntu MATE a Xenial Xerus 16.04 LTS paso a paso
                                           Como instalar Virtualbox en Linux Ubuntu 16.04
                                           Como instalar y configurar Gogs en Linux Ubuntu server
                                           Como instalar MySQL Workbench en Linux Ubuntu paso a paso

Ya conocías la herramienta Nessus?, Conoces otra parecida, cual? Te gusto el articulo? hazme un favor, compártelo en tus redes sociales (compartir es sexy). Escríbeme en los comentarios aquí debajo y pasa la voz compartiendo el tweet.

Sígueme en twitter google+facebook o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.

Share/Bookmark

Como instalar PNP4Nagios

DriveMeca instalando PNP4Nagios en Nagios 4 en un servidor Linux Centos 7
Tienes Nagios para monitorear dispositivos y te gustaría poder graficar el desempeño de ellos? Bien, te presento PNP4Nagios, un plugin o complemento que analiza datos de desempeño y los almacena por medio de rrd (Round Robin Databases). Hoy te mostrare en este tutorial en español como instalar PNP4Nagios paso a paso, con screenshoots y de forma sencilla.

Requerimientos de PNP4Nagios en Linux Centos 7

-Instalamos dependencias

yum install rrdtool rrdtool-perl php-gd 

-Modificamos httpd.conf activando mod_rewrite

vi /etc/httpd/conf/httpd.conf
<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

-Descargamos y descomprimimos PNP4Nagios

wget -c http://downloads.sourceforge.net/project/pnp4nagios/PNP-0.6/pnp4nagios-0.6.25.tar.gz

-Descomprimimos el archivo y entramos a su directorio

tar xzvf pnp4nagios-0.6.25.tar.gz
cd pnp4nagios-0.6.25


Compilamos PNP4Nagios en Linux Centos 7

-Nos preparamos para compilar código

./configure
..
..
..
*** Configuration summary for pnp4nagios-0.6.25 03-01-2015 ***

  General Options:
  -------------------------         -------------------
  Nagios user/group:                nagios nagios
  Install directory:                /usr/local/pnp4nagios
  HTML Dir:                         /usr/local/pnp4nagios/share
  Config Dir:                       /usr/local/pnp4nagios/etc
  Location of rrdtool binary:       /bin/rrdtool Version 1.4.8
  RRDs Perl Modules:                FOUND (Version 1.4008)
  RRD Files stored in:              /usr/local/pnp4nagios/var/perfdata
  process_perfdata.pl Logfile:      /usr/local/pnp4nagios/var/perfdata.log
  Perfdata files (NPCD) stored in:  /usr/local/pnp4nagios/var/spool

  Web Interface Options:
  -------------------------         -------------------
  HTML URL:                         http://localhost/pnp4nagios
  Apache Config File:               /etc/httpd/conf.d/pnp4nagios.conf


  Review the options above for accuracy.  If they look okay,
  type 'make all' to compile.

-Compilamos

make all

-Instalamos

make fullinstall
..
..
..
*** Configuration summary for pnp4nagios-0.6.25 03-01-2015 ***

  General Options:
  -------------------------         -------------------
  Nagios user/group:                nagios nagios
  Install directory:                /usr/local/pnp4nagios
  HTML Dir:                         /usr/local/pnp4nagios/share
  Config Dir:                       /usr/local/pnp4nagios/etc
  Location of rrdtool binary:       /bin/rrdtool Version 1.4.8
  RRDs Perl Modules:                FOUND (Version 1.4008)
  RRD Files stored in:              /usr/local/pnp4nagios/var/perfdata
  process_perfdata.pl Logfile:      /usr/local/pnp4nagios/var/perfdata.log
  Perfdata files (NPCD) stored in:  /usr/local/pnp4nagios/var/spool

  Web Interface Options:
  -------------------------         -------------------
  HTML URL:                         http://localhost/pnp4nagios
  Apache Config File:               /etc/httpd/conf.d/pnp4nagios.conf



*** Main program, Scripts and HTML files installed ***

Enjoy.

-Activamos servicios httpd y npcd

systemctl enable npcd
systemctl restart httpd
systemctl start npcd

-Abrimos un browser y navegamos a http://192.168.1.10/pnp4nagios/ El sistema hará un chequeo y todo debe quedarnos en verde, en caso contrario debemos corregir para poder continuar
DriveMeca instalando PNP4Nagios en Nagios 4 en un servidor Linux Centos 7


-Ya instalado, renombramos el php de instalación y prevenimos que se use nuevamente por seguridad

mv /usr/local/pnp4nagios/share/install.php /usr/local/pnp4nagios/share/1234install.php
touch /usr/local/pnp4nagios/share/install.ignore
chown nagios.nagios /usr/local/pnp4nagios/share/install.ignore

-Recargamos la pagina en nuestro navegador

-Copiamos código del fichero pnp4nagios-0.6.25/sample-config/nagios.cfg-sample a nagios.cfg

vi /usr/local/nagios/etc/nagios.cfg
process_performance_data=1

service_perfdata_file=/usr/local/pnp4nagios/var/service-perfdata

service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTATETYPE$

service_perfdata_file_mode=a

service_perfdata_file_processing_interval=15

service_perfdata_file_processing_command=process-service-perfdata-file

host_perfdata_file=/usr/local/pnp4nagios/var/host-perfdata

host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$

host_perfdata_file_mode=a

host_perfdata_file_processing_interval=15

host_perfdata_file_processing_command=process-host-perfdata-file

-Copiamos código del fichero pnp4nagios-0.6.25/sample-config/misccommands.cfg-sample a commands.cfg

vi /usr/local/nagios/etc/objects/commands.cfg
#
# Bulk with NPCD mode
#
define command {
       command_name    process-service-perfdata-file
       command_line    /bin/mv /usr/local/pnp4nagios/var/service-perfdata /usr/local/pnp4nagios/var/spool/service-perfdata.$TIMET$
}

define command {
       command_name    process-host-perfdata-file
       command_line    /bin/mv /usr/local/pnp4nagios/var/host-perfdata /usr/local/pnp4nagios/var/spool/host-perfdata.$TIMET$
}

-Definimos plantillas para hosts y servicios

vi /usr/local/nagios/etc/objects/templates.cfg
define host {
 name host-pnp
 action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=_HOST_
 register 0
}

define service {
 name srv-pnp
 action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=$SERVICEDESC$
 register 0
}

-Usamos las plantillas con algún dispositivo o host recordando que para que funcione debemos tener definido process_performance_data=1, en este caso la plantilla de generic-host debe tenerlo activo, al igual seria con algún servicio.

vi /usr/local/nagios/etc/objects/templates.cfg
define host{
        name                            linux-server    
        use                             generic-host,host-pnp   
        check_period                    24x7            
        check_interval                  5               
        retry_interval                  1               
        max_check_attempts              10              
        check_command                   check-host-alive 
        notification_period             workhours                                                               
        notification_interval           120            
        notification_options            d,u,r           
        contact_groups                  admins          
        register                        0               
        }

-Copiamos
cp contrib/ssi/status-header.ssi /usr/local/nagios/share/ssi/
chown nagios.nagios /usr/local/nagios/share/ssi/status-header.ssi

-Algunos cambios necesarios
mkdir /var/lib/php/session
chown root.apache /var/lib/php/session
chmod 770 /var/lib/php/session/

-Reiniamos servicios
systemctl restart npcd
systemctl restart nagios

Verificamos configuracion de PNP4Nagios en Linux Centos 7

-Verificamos la configuracion de PNP4Nagios
cd /usr/local/pnp4nagios/bin
wget -c http://verify.pnp4nagios.org/verify_pnp_config

perl verify_pnp_config --mode bulk+npcd --config=/usr/local/nagios/etc/nagios.cfg --pnpcfg=/usr/local/pnp4nagios/etc
[INFO]  ========== Starting Environment Checks ============
[INFO]  My version is: verify_pnp_config-0.6.25-R.40
[INFO]  Start Options: verify_pnp_config --mode bulk+npcd --config=/usr/local/nagios/etc/nagios.cfg --pnpcfg=/usr/local/pnp4nagios/etc
[INFO]  Reading /usr/local/nagios/etc/nagios.cfg
[OK  ]  Running product is 'nagios'
[OK  ]  object_cache_file is defined
[OK  ]  object_cache_file=/usr/local/nagios/var/objects.cache
[INFO]  Reading /usr/local/nagios/var/objects.cache
[OK  ]  resource_file is defined
[OK  ]  resource_file=/usr/local/nagios/etc/resource.cfg
[INFO]  Reading /usr/local/nagios/etc/resource.cfg
[INFO]  Reading /usr/local/pnp4nagios/etc/process_perfdata.cfg
[INFO]  Reading /usr/local/pnp4nagios/etc/pnp4nagios_release
[OK  ]  Found PNP4Nagios version "0.6.25"
[OK  ]  Effective User is 'nagios'
[OK  ]  User nagios exists with ID '1002'
[OK  ]  Effective group is 'nagios'
[OK  ]  Group nagios exists with ID '1002'
[INFO]  ========== Checking Bulk Mode + NPCD Config  ============
[OK  ]  process_performance_data is 1 compared with '/1/'
[OK  ]  service_perfdata_file is defined
[OK  ]  service_perfdata_file=/usr/local/pnp4nagios/var/service-perfdata
[OK  ]  service_perfdata_file_template is defined
[OK  ]  service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTATETYPE$
[OK  ]  PERFDATA template looks good
[OK  ]  service_perfdata_file_mode is defined
[OK  ]  service_perfdata_file_mode=a
[OK  ]  service_perfdata_file_processing_interval is defined
[OK  ]  service_perfdata_file_processing_interval=15
[OK  ]  service_perfdata_file_processing_command is defined
[OK  ]  service_perfdata_file_processing_command=process-service-perfdata-file
[OK  ]  host_perfdata_file is defined
[OK  ]  host_perfdata_file=/usr/local/pnp4nagios/var/host-perfdata
[OK  ]  host_perfdata_file_template is defined
[OK  ]  host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$
[OK  ]  PERFDATA template looks good
[OK  ]  host_perfdata_file_mode is defined
[OK  ]  host_perfdata_file_mode=a
[OK  ]  host_perfdata_file_processing_interval is defined
[OK  ]  host_perfdata_file_processing_interval=15
[OK  ]  host_perfdata_file_processing_command is defined
[OK  ]  host_perfdata_file_processing_command=process-host-perfdata-file
[INFO]  Nagios config looks good so far
[INFO]  ========== Checking config values ============
[OK  ]  npcd daemon is running
[OK  ]  /usr/local/pnp4nagios/etc/npcd.cfg is used by npcd and readable
[INFO]  Reading /usr/local/pnp4nagios/etc/npcd.cfg
[OK  ]  perfdata_spool_dir is defined
[OK  ]  perfdata_spool_dir=/usr/local/pnp4nagios/var/spool
[OK  ]  -1 files found in /usr/local/pnp4nagios/var/spool
service_perfdata_file_processing_command at verify_pnp_config line 462.
[OK  ]  Command process-service-perfdata-file is defined
[OK  ]  '/bin/mv /usr/local/pnp4nagios/var/service-perfdata /usr/local/pnp4nagios/var/spool/service-perfdata.$TIMET$'
[OK  ]  Command looks good
host_perfdata_file_processing_command at verify_pnp_config line 462.
[OK  ]  Command process-host-perfdata-file is defined
[OK  ]  '/bin/mv /usr/local/pnp4nagios/var/host-perfdata /usr/local/pnp4nagios/var/spool/host-perfdata.$TIMET$'
[OK  ]  Command looks good
[OK  ]  Script /usr/local/pnp4nagios/libexec/process_perfdata.pl is executable
[INFO]  ========== Starting global checks ============
[OK  ]  status_file is defined
[OK  ]  status_file=/usr/local/nagios/var/status.dat
[INFO]  host_query =
[INFO]  service_query =
[INFO]  Reading /usr/local/nagios/var/status.dat
[INFO]  ==== Starting rrdtool checks ====
[OK  ]  RRDTOOL is defined
[OK  ]  RRDTOOL=/bin/rrdtool
[OK  ]  /bin/rrdtool is executable
[OK  ]  RRDtool 1.4.8  Copyright 1997-2013 by Tobias Oetiker <tobi@oetiker.ch>
[OK  ]  USE_RRDs is defined
[OK  ]  USE_RRDs=1
[OK  ]  Perl RRDs modules are loadable
[INFO]  ==== Starting directory checks ====
[OK  ]  RRDPATH is defined
[OK  ]  RRDPATH=/usr/local/pnp4nagios/var/perfdata
[OK  ]  Perfdata directory '/usr/local/pnp4nagios/var/perfdata' exists
[WARN]  1 hosts/services are not providing performance data
[WARN]  'process_perf_data 1' is set for 2 hosts/services which are not providing performance data!
[OK  ]  'process_perf_data 1' is set for 20 of your hosts/services
[INFO]  ==== System sizing ====
[OK  ]  19 hosts/service objects defined
[INFO]  ==== Check statistics ====
[WARN]  Warning: 2, Critical: 0
[WARN]  Checks finished...


Comprobamos PNP4Nagios

-Navegando a nuestra consola web de Nagios veremos unos nuevos iconos o botones, son los de PNP4Nagios
DriveMeca instalando PNP4Nagios en Nagios 4 en un servidor Linux Centos 7

-Si dejamos el cursor del mouse encima de uno de estos botones, PNP4Nagios nos mostrara en un popup un breve resumen
DriveMeca instalando PNP4Nagios en Nagios 4 en un servidor Linux Centos 7

-Y si damos click en el botón nos abrirá una nueva pagina con la información detallada en gráficas RRD. Esta la podemos exportar en PDF, ver en rangos de fechas y varias opciones útiles mas
DriveMeca instalando PNP4Nagios en Nagios 4 en un servidor Linux Centos 7


Artículos recomendadosMonitorea pfSense por medio de NRPE y Nagios
                                           Como instalar NRPE en Nagios paso a paso
                                           La guia FINAL de OCS Inventory en Centos 7
                                          Potencia tu Linux Centos e instala los repositorios RPMForge / Epel / Remi


Ya puedes mostrar tus gráficas de rendimiento y saber en todo momento el comportamiento de tus dispositivos monitoreados. Viendo esto planeas probar PNP4Nagios? ya lo usas? que tal te ha parecido?Te gusto el articulo? hazme un favor, compártelo en tus redes sociales (compartir es sexy). Escríbeme en los comentarios aquí debajo y pasa la voz compartiendo el tweet.

Sígueme en twitter google+facebook o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.

Share/Bookmark

Monitorea pfSense por medio de NRPE y Nagios

DriveMeca monitoreando un firewall pfSense con NRPE en un Nagios
Tu firewall pfSense esta funcionando perfecto dejandote tiempo para hacer otras tareas y estas confiado, que malo puede pasar? Pasar, puede pasar que se dañe un disco o que estes bajo ataque y no te hayas dado cuenta, pueden pasar muchas cosas y preciso en el momento en que no estabas mirando logs o monitoreando tu confiable firewall. Por esto es que hoy te traigo este articulo en el que agregaremos una capa de monitoreo con NRPE a tu pfSense para incluirlo en Nagios. Todo como ya es costumbre en español, paso a paso y con screenshoots para que no te pierdas y puedas hacerlo fácilmente

Requerimientos para agregar pfSense a Nagios

  • pfSense firewall 2.x instalado y actualizado a la fecha
  • Nagios instalado y actualizado a la fecha
  • Plugins de Nagios instalados y actualizados
  • Conectividad a internet y entre ambos equipos

-Vamos al menú System - Package Manager - Available Packages, escribimos en la caja de texto nrpe. Presionamos Enter y nos aparecerá debajo, le damos click a su botón verde Install
DriveMeca monitoreando un firewall pfSense con NRPE en un Nagios

-Se nos pide confirmar la instalación. Damos click al botón verde Confirm
DriveMeca monitoreando un firewall pfSense con NRPE en un Nagios

-Se instala con éxito el paquete nrpe en nuestro pfSense
DriveMeca monitoreando un firewall pfSense con NRPE en un Nagios

-A continuación vamos al menú Services - NRPEv2 y le damos click
DriveMeca monitoreando un firewall pfSense con NRPE en un Nagios

-En la pagina que nos aparecerá activamos el servicio Enable NRPE, permitimos parámetros activando Allow Arguments. Por default ya vendrán varios comandos activos para ejecutarlos via el daemon NRPE
DriveMeca monitoreando un firewall pfSense con NRPE en un Nagios

-En la sección Commands las columnas tienen los significados, nombre (el que usaremos en los conf de nagios y solo permite caracteres de la a-z o A-Z en ese rango), ejecución con privilegios (sudo), listado de plugins instalados en el firewall pfSense (podemos escogerlos en su lista desplegable), parámetro warning (no es grave pero hay que prestar atención), parámetro critical (es grave), parámetros extras. Esta sección nos permite crear nuevos comandos o eliminar los ya creados por medio del botón Delete
DriveMeca monitoreando un firewall pfSense con NRPE en un Nagios

Permitimos trafico NRPE entre pfSense y Nagios

-Este paso solo es necesario si tu equipo Nagios esta fuera de la LAN y hará la conexión via internet (Si ambos equipos están en la LAN, no es necesario y puedes saltar al siguiente paso a crear los comandos NRPE). Creamos un Alias en el menú Firewall - Aliases. Damos click al botón verde +Add
DriveMeca monitoreando un firewall pfSense con NRPE en un Nagios

-Escribimos un nombre (Nagios), Description (descripcion), Type (Host(s)) y por ultimo tenemos dos variantes, un hostname (en caso de que tengas tu equipo Nagios con un dominio y es visible en internet) o con la ip publica. Damos click al botón Save
DriveMeca monitoreando un firewall pfSense con NRPE en un Nagios

-Seguidamente vamos al menú Firewall - Rules y agregamos una regla dando click al botón verde Add (sugiero que sea para colocarla al final)
DriveMeca monitoreando un firewall pfSense con NRPE en un Nagios

-En la sección Source elegimos Single host or alias y escribimos Nagios (el alias que nos creamos en el paso anterior). En Destination elegimos WAN address y Destination port range any y any en la ultima columna. La explicación de la regla es que aceptaremos conexiones del equipo Nagios en la interfaz de red Wan por cualquier puerto. Escribimos un comentario sobre esta regla en Description y damos click al botón Save
DriveMeca monitoreando un firewall pfSense con NRPE en un Nagios

Creamos un comando NRPE en pfSense para monitorear con Nagios

-Para crear un comando nuevo damos click al botón inferior verde +Add y nos aparecerá uno en blanco en la parte inferior del listado. Para este articulo agregare un chequeo de https, entonces escribimos check_https (primera columna izquierda), activamos Sudo, elegimos check_http (tercera columna), dejamos en blanco la cuarta y quinta columna. Escribimos en la sexta columna -H pfgw -S (-H con el hostname del equipo y -S para que verifique via https). Damos click al botón Save
DriveMeca monitoreando un firewall pfSense con NRPE en un Nagios


Agregamos pfSense Firewall a Nagios por medio de NRPE

-En nuestro servidor Nagios nos vamos al directorio de objects a crear definiciones
cd /usr/local/nagios/etc/objects

-Hacemos una copia del conf localhost creando uno nuevo para pfsense llamado firewall.cfg
cp localhost.cfg firewall.cfg

-Editamos templates.cfg y creamos una plantilla para pfSense (el dia de mañana puede que tengas otro que agregar a Nagios)
vi templates.cfg
# pfSense definition

define host{
 name                   pfsense           ;Nombre de la plantilla    
 use                    generic-host      ;Basado en plantilla generic-host
 check_period           24x7              ;Se chequea 24 horas por 7 dias        
 check_interval         5                 ;Chequeo cada 5 minutos            
 retry_interval         1                 ;Se reintenta en caso de fallo al minuto            
 max_check_attempts     10                ;Maximo se repite el chequeo 10 veces          
 check_command          check-host-alive  ;Comando a usar para verificar que el host este activo
 notification_period    24x7              ;Enviar notificaciones 24 horas por 7 dias    
 notification_interval  120               ;Intervalo de envio de notificaciones de 120 minutos          
 notification_options   d,u,r             ;Opciones d (down) u (up) y r (recovery)        
 contact_groups         admins            ;Enviar notificaciones al grupo admins      
 register               0                 ;No se registra al ser una plantilla            
}

-Modificamos nuestro horario de trabajo
vi timeperiods.cfg
# 'workhours' Definición de horario laboral normal de 8am a 5pm de lunes a viernes
define timeperiod{
        timeperiod_name workhours
        alias                      Normal Work Hours
        monday                08:00-17:00
        tuesday                08:00-17:00
        wednesday          08:00-17:00
        thursday              08:00-17:00
        friday                  08:00-17:00
        }

-Editamos el cfg de firewall y creamos la definición de nuestro pfSense firewall (OJO, reemplazar las xxx por la ip real del equipo al igual que el hostname y alias). A continuacion creamos un hostgroup donde iremos agrupando a los firewalls que vayamos colocando en Nagios y comenzamos a crear uno por uno los comandos a ejecutar por medio de NRPE en el equipo remoto, en este caso, nuestro firewall (recuerda que nombre al equipo pfgw en su alias)
vi firewall.cfg
define host{
        use                     pfsense            ; Nombre de plantilla a usar
                                                   ; Esta definición hereda variables de la plantilla
        host_name         pfgw.test.com
        alias                   pfgw
        address              xxx.xxx.xxx.xxx ;IP del equipo
        }

define hostgroup{
        hostgroup_name  firewalls ; Nombre del grupo
        alias           Firewall servers ; Nombre largo del grupo
        members         pfgw     ; Lista separada por comas de equipos pertenecientes al grupo
        }

#Usuarios / pfgw
define service{
        use                             local-service
        host_name                       pfgw
        service_description             Usuarios
        check_command                   check_nrpe!check_users
        }

#Carga / pfgw
define service{
        use                             local-service
        host_name                       pfgw
        service_description             Carga
        check_command                   check_nrpe!check_load
        }

#Particion /  pfgw
define service{
        use                             local-service
        host_name                       pfgw
        service_description             Particion /
        check_command                   check_nrpe!check_root
        }

#Particion /var  pfgw
define service{
        use                             local-service
        host_name                       pfgw
        service_description             Particion /var
        check_command                   check_nrpe!check_var
        }

#Procesos zombie  pfgw
define service{
        use                             local-service
        host_name                       pfgw
        service_description             Procesos zombie
        check_command                   check_nrpe!check_zombie_procs
        }

#Total de procesos  pfgw
define service{
        use                             local-service
        host_name                       pfgw
        service_description             Total de procesos
        check_command                   check_nrpe!check_total_procs
        }

#Https  pfgw
define service{
        use                             local-service
        host_name                       pfgw
        service_description             Https
        check_command                   check_nrpe!check_https
        }

-Editamos nagios.cfg y agregamos una linea para incluir a firewall.cfg
vi ../nagios.cfg
cfg_file=/usr/local/nagios/etc/objects/firewall.cfg

-Ya casi terminamos pero debemos verificar que todo nuestro trabajo esta ok y no tenemos errores en los archivos de configuracion de nagios
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Nagios Core 4.1.1
Copyright (c) 2009-present Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 08-19-2015
License: GPL

Website: https://www.nagios.org
Reading configuration data...
   Read main config file okay...
   Read object config files okay...

Running pre-flight check on configuration data...

Checking objects...
Checked 9 services.
Checked 2 hosts.
Checked 1 host groups.
Checked 0 service groups.
Checked 1 contacts.
Checked 1 contact groups.
Checked 25 commands.
Checked 5 time periods.
Checked 0 host escalations.
Checked 0 service escalations.
Checking for circular paths...
Checked 2 hosts
Checked 0 service dependencies
Checked 0 host dependencies
Checked 5 timeperiods
Checking global event handlers...
Checking obsessive compulsive processor commands...
Checking misc settings...

Total Warnings: 0
Total Errors:   0

Things look okay - No serious problems were detected during the pre-flight check

-Reiniciamos el servicio de Nagios
systemctl restart nagios

-Abrimos un browser y navegamos a la pagina de nuestro Nagios Core. En ella ya debemos poder ver el equipo pfgw (pfSense) con todos los servicios que estamos chequeando via check_nrpe
DriveMeca monitoreando un firewall pfSense con NRPE en un Nagios


Artículos recomendados: Que tanto usas tu proxy, Estadisticas de squid en pfsense 2
                                            Como instalar y configurar pfSense Squid Transparent Proxy
                                            pfSense SquidGuard tutorial paso a paso
                                            Como actualizar pfSense paso a paso

Ahora si podemos decir que no estamos ciegos con respecto a que esta pasando en nuestro firewall pfSense. Gracias a NRPE podemos agregar mas chequeos dependiendo de nuestras necesidades. Te gusto el articulo? hazme un favor, compártelo en tus redes sociales (compartir es sexy). Escríbeme en los comentarios aquí debajo y pasa la voz compartiendo el tweet.

Sígueme en twitter google+facebook o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.

Share/Bookmark