viernes, 11 de marzo de 2011

Modificar capturas pcap con tcprewrite y un poco de zenity.

La cuestion es la siguiente, tenemos un .pcap entre una maquina X comunicandose con un servidor X. Por razones que no vienen al caso, tenemos que modificarlo para que la ip de la maquina se cambie dentro de la traza. Este seria el script para hacerlo incluso bonito:

#!/bin/bash
FILE=`zenity --file-selection --title="SELECCIONA LA CAPTURA ORIGINAL"`
wireshark "$FILE" & sleep 5
ORIG=`zenity --entry --title="IP ORIGINAL" --text="Introduce la IP original" --entry-text "10.0.0.0"`
NEW=`zenity --entry --title="IP NUEVA" --text="Introduce la IP nueva" --entry-text "10.10.10.100"`
MOD=$(zenity --file-selection --save --title="SELECCIONA DONDE GUARDARLA" --confirm-overwrite)
tcprewrite --pnat=$ORIG/32:$NEW/32 --infile="$FILE" --outfile="$MOD" --skipbroadcast
killall wireshark
exit


El flujo seria: Nos pide la traza original, nos la abre con el wireshark, nos pide la ip original, nos pide la ip nueva, nos pide donde guardar la nueva traza, modifica el pcap, cierra el wireshark, y chapa.

La cuestión es utilizar la opción de nat que ofrece tcprewrite poniéndole una mascara 32. De esta manera solo cambiara la ip que le digamos.

Sencillo, rápido, bonito, en 527 bytes y 9 lineas de bash. ¿Alguien da mas?

P.d: De momento solo le he encontrado un bug (seguro que tiene otros mil), al sobreescribir la captura elimina paquetes ¿?

domingo, 13 de febrero de 2011

Virtualbox + Phpvirtualbox en opensuse 11.2

Vamos a instalar VirtualBox y su interfaz http phpvirtualbox desde cero. Lo haremos sobre opensuse 11.2.

Empezamos con una instalación limpia y por defecto, actualizaremos e instalaremos los repositorios Packman (must have):

# /etc/zypp/repos.d/
# wget -c http://mirror.geht-schon.de/packman.links2linux.de/suse/11.2/packman.repo

# zypper up


Instalaremos las dependencias que necesitamos:

# zypper in kernel-source kernel-devel kernel-desktop-devel kernel-default-devel apache2 libapache2-mod-php5

Para instalar el Virtualbox tenemos dos opciones, bajar el rpm o instalar el repositorio.

Opcion 1, bajar el paqute:

Bajaremos el Virtualbox de su pagina y lo instalaremos:

# cd /tmp
# wget -c http://download.virtualbox.org/virtualbox/4.0.2/VirtualBox-4.0-4.0.2_69518_openSUSE112-1.i586.rpm
# zypper in VirtualBox-4.0-4.0.2_69518_openSUSE112-1.i586.rpm

Opcion 2, instalar el repositorio e instalar el paquete:

# cd /etc/zypp/repos.d/ # wget http://download.virtualbox.org/virtualbox/rpm/opensuse/11.2/virtualbox.repo # zypper up # zypper in virtualbox

Una vez instalado, añadiremos nuestro usuario normal al grupo vboxusers:

# usermod -G vboxusers huskerdu
# id huskerdu


En este ejemplo hemos añadido al usuario "huskerdu" al grupo. El comando id lo utilizaremos para comprobar que lo hemos hecho bien...
Despues bajamos el extension pack y lo instalamos:

# cd /tmp
# wget -c http://download.virtualbox.org/virtualbox/4.0.2/Oracle_VM_VirtualBox_Extension_Pack-4.0.2-69518.vbox-extpack
# VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.0.2-69518.vbox-extpack

Ahora bajaremos el phpvirtualbox y lo pondremos en su carpeta correspondiente:

# cd /srv/www/htdocs
# rm -r *
# wget -c http://phpvirtualbox.googlecode.com/files/phpvirtualbox-4.0-3.zip
# unzip phpvirtualbox-4.0-3.zip
# cd phpvirtualbox-4.0-3
# mv * ..
# cd ..
# rmdir phpvirtualbox-4.0-3
# rm phpvirtualbox-4.0-3.zip


Reiniciamos el apache:

# service apache2 restart

A partir de este punto ya tendremos phpvirtualbox corriendo si vamos a http://localhost, pero solo veremos un bonito cartel de error:


Vamos a configurarlo un poco... Hacemos copia y editamos el archivo de configuración:

# cp /srv/www/htdocs/config.php-example /srv/www/htdocs/config.php
# nano /srv/www/htdocs/config.php


Cambiamos el usuario y password en el fichero mas o menos así:

/* Username / Password for system user that runs VirtualBox */
var $username = 'huskerdu';
var $password = 'felipe';
var $location = 'http://127.0.0.1:18083/';


VBoxManage setproperty websrvauthlibrary default
VBoxManage setproperty websrvauthlibrary null


To be continued...


miércoles, 9 de febrero de 2011

Creacion de certificados con openssl.

Como crear certificado, key y certificado CA con openssl en 10 minutos y sin despeinarse (casi):

Creamos un certificado de CA o entidad certificadora:



# openssl req -x509 -newkey rsa:2048 -keyout cakey.pem -days 3650 -out cacert.pem


Creamos la key para los certificados:


#
openssl genrsa -des3 -out serv-priv.pem -passout pass:[password] 2048


Generamos una petición con los datos del propietario del certificado:


# openssl req -new -subj "/DC=dominio.com/OU=com/CN=dominio" -key

serv-priv.pem -passin pass:[password] -out petic-certificado-serv.pem


Editamos un fichero que se llame config.txt (por ejemplo) con lo siguiente:


basicConstraints = critical,CA:FALSE

extendedKeyUsage = serverAuth


Y creamos el certificado:


# openssl x509 -CA cacert.pem -CAkey cakey.pem -req -in petic-certificado-serv.pem -days 15 -extfile config.txt -sha1 -CAcreateserial -out servidor-cert.pem


domingo, 6 de febrero de 2011

Host inaccesible desde Vcenter.

A veces ocurre que un host aparece como "disconnected" en el Vcenter, para poder volver a conectar con el, nos vamos al esx y reiniciamos el servicio mgmt-vmware:

# service mgmt-vmware restart

Si se nos queda colgado en el reinicio, entramos por otra consola y buscamos el proceso hostd:

# ps -ef | grep hostd

Buscamos el proceso vmware-watchdog y lo matamos directamente:

# kill -9 [numero de proceso]

Y nos vamos a tomar una caña fresquita...

Edito:

Dejo la caña en la barra y vuelvo al tajo, esto no soluciono mi problema...

Despues de leer varios articulos en la kb de vmware, el problema esta en los keepalive (mas o menos) que el esx lanza al vcenter, y que en mi caso, estos se encuentran en dos redes distintas... El nat en el firewall con una ip virtual no funciono, ya que al volver a reconectar se "pispa" de que le has cambiado el valor y lo machaca. ¿La solucion? aumentar el timeout de los keepalive.
Esto se hace editando (en el vcenter) el archivo:

C:/Documents and Settings/All Users/Application Data/VMware/VMware VirtualCenter/vpxd.cfg

E insertando, en la seccion vpxd esto:


600


El valor a 600 lo he puesto a ojo, ya veremos como se comporta...
Despues reiniciamos el servicio VirtualCenter Service y arreando.

jueves, 3 de febrero de 2011

Shit happens, o como quitar las tarjetas de red residuales.

Cuando virtualizas una maquina o la mueves de un sistema de virtualizacion a otro, se van creando nuevas tarjetas de red dejando las anteriores como rémoras en el sistema (he dicho rémoras?), para eliminarlas:


1. Abrir una línea de comandos ejecutando cmd.exe.
2. Escribir: set devmgr_show_nonpresent_devices=1 y presionar ENTRAR.
3. Abrir el administrador de dispositivos escribiendo en la línea de comandos: DEVMGMT.MSC y pulsar ENTRAR.
4. En el Administrador de dispositivos pulsar en el menú Ver y marcar Mostrar dispositivos ocultos.
5. Expandir el ítem Adaptadores de red.
6. Seleccionar los adaptadores que aparecen en color atenuado, clic con el botón secundario del ratón y Desinstalar.


Siempre y cuando te molesten...

miércoles, 26 de enero de 2011

Encriptar archivos y/o carpetas bajo linux y complicarlo poco a poco.

Pues tienes un ubuntu server 10.10 (todo consola) al cual le tienes que meter una carpeta encriptada en el home de un usuario. ¿Solucion? encfs. Vamos alla...

Instalamos encfs:

sudo apt-get install encfs

Creamos en el home dos carpetas, por ejemplo enc y noenc. El contenido encriptado se guardara en enc y se montara desencriptado en noenc:

mkdir ~/enc ~/noenc

Encriptamos el contenido de la carpeta enc y lo montamos en noenc:

encfs ~/enc ~/noenc

Nos preguntara que nivel de seguridad queremos, si le damos al enter pondra el "por defecto" y nos preguntara el password para la carpeta encriptada.

A partir de este punto ya tenemos la carpeta enc encriptada y su contenido montado en noenc. Si queremos desmontar la carpeta y dejar solo lo encriptado lo hacemos con:

fusermount -u ~/noenc

Y si queremos volver a montarla usariamos otra vez:

encfs ~/enc ~/noenc

¿El problema? Nos pide el pass. Si queremos que se monte tras el login del usuario, por ejemplo, metiendo una linea en el .bashrc tenemos que pasarle el pass a enfs. Hasta donde yo se no se puede pasar el pass como parametro, asi que lei a un tipo habilidoso que creo un programa en C que lo hacia, ya que si existe el parametro --extpass. El codigo del programa llamado, por ejemplo, pass.cc seria:



#include 

int main()
{
//Put your password retreival functions here
std::cout << "my password" <<>
return 0;
//PD: All cout will be interpreted as password.
}


Cambiando "my password" por el password que pusimos antes, y ojo, dejando las comillas.
Una vez creado el codigo lo compilamos con:

g++ pass.cc -o pass

Lo cual nos dara un ejecutable llamado pass que le podremos pasar como parametro al encfs con la sentencia:

encfs ~/enc ~/noenc --extpass=~/pass

Pondria las fuentes, pero ocuparian mas que el post, y tampoco recuerdo todo lo que he leido.

domingo, 23 de enero de 2011

Login, sudo y gksudo con autenticador biometrico en Lenovo (Ouyea!)

De como habilitar el "fingerprint" en Ubuntu con un Lenovo L512:

Añadimos los repositorios y actualizamos:

sudo add-apt-repository ppa:fingerprint/fingerprint-gui
sudo apt-get update

Instalamos los paquetes:

sudo apt-get install fingerprint-gui policykit-1-fingerprint-gui libbsapi

Una vez instalado, hacemos un logout y nos escaneamos las huellas en:

Sistema > Preferencias > Fingerprint GUI

Y a disfrutar de la vida que son dos dias.

Fuente: https://launchpad.net/~fingerprint/+archive/fingerprint-gui

lunes, 13 de diciembre de 2010

Virtualizar un Esx (dentro de un Esx) (sic).

Instalamos el Esx como un RedHat 5 de 64b. Teniendo en cuenta que hay que darle al menos 2gb de memoria (esto se puede cambiar luego con un truco).

Una vez instalado hay que hacerle un par de "apaños". Lo primero es habilitar el modo promiscuo en el Vswitch que utlize la maquina virtual, ya que si no no habra red. Esto se habilita en:

> Configuration > vSwitch properties > edit > Security

Tambien hay que cambiar un parametro para poder correr las maquinas virtuales que creemos dentro, ya que si no nos saldra un warning avisando de que no puedes correr una maquina virtual dentro de una maquina virtual. Esto se cambia en:

> Settings > Options > Advanced > General > Configuration parameters

Creamos un nuevo valor pinchando en "add row" con los valores:

monitor_control.restrict_backdoor TRUE

Y rizando el rizo... Si queremos tomar snapshots del Esx que esta virtualizado en el Esx tenemos que ejecutar este comando en la shell de la maquina fisica:

esxcfg-advcfg -s 1 /COW/PermitVmfsOnRedoHierarchy

That's all...

Fuente: http://www.vcritical.com/2009/05/vmware-esx-4-can-even-virtualize-itself/

lunes, 1 de noviembre de 2010

Instalacion de Vmware Server 2.0.2 sobre Ubuntu server 10.04

Esto es una recopilación de información de distintos sitios que me ha servido para poder instalarlo. Las versiones utilizadas son:

S.o: Ubuntu server 10.04
Kernel: 2.6.32-25-generic
Vmware server: 2.0.2-203138

He seguido las instrucciones de esta pagina:

http://www.howtoforge.com/vmware-server-2.0.2-x-on-ubuntu-server-10.04-with-vmware-remote-console-plug-inhttp://www.howtoforge.com/vmware-server-2.0.2-x-on-ubuntu-server-10.04-with-vmware-remote-console-plug-in

Y solo me ha dado problemas al no tener los headers instalados, lo cual se solventa siguiendo los pasos de esta pagina:

http://ubuntuforums.org/archive/index.php/t-25258.html

Los pasos serian estos:

1. Configurar la red con una ip estática editando el /etc/network/interfaces y el /etc/resolv.conf
2. Instalar las dependencias y crear el enlace a los headers:

apt-get install -y gcc linux-headers-`uname -r`
ln -s linux-headers-2.6.32-25-generic /usr/src/linux

3. Reiniciamos.
4. Creamos la carpeta para el server, lo descargamos copiamos ahí y lo descomprimimos.

mkdir /root/vm
cd /root/vm
tar xvfz VMware-server-2.0.2-203138.i386.tar.gz

5. Creamos la carpeta para los parches, los bajamos y descomprimimos.

mkdir /root/dev
cd /root/dev
wget http://nerdbynature.de/bits/2.6.32-22/00-vmware-2.6.32_functional.diff.txt
wget http://nerdbynature.de/bits/2.6.32-22/02-vmnet-include.diff.txt.gz
wget http://nerdbynature.de/bits/2.6.32-22/01-vmware-2.6.32_cosmetic.diff.txt
wget http://nerdbynature.de/bits/2.6.32-22/vmware-config.pl.diff.txt
wget http://nerdbynature.de/bits/2.6.32-22/patch-vmware_2.6.3x.sh.txt
gunzip 02-vmnet-include.diff.txt.gz

6. Cambiamos el nombre a los ficheros.

mv 00-vmware-2.6.32_functional.diff.txt 00-vmware-2.6.32_functional.diff
mv 01-vmware-2.6.32_cosmetic.diff.txt 01-vmware-2.6.32_cosmetic.diff
mv 02-vmnet-include.diff.txt 02-vmnet-include.diff
mv patch-vmware_2.6.3x.sh.txt patch-vmware_2.6.3x.sh
mv vmware-config.pl.diff.txt vmware-config.pl.diff

7. Editamos el fichero patch-vmware_2.6.3x.sh y cambiamos su contenido por:

#!/bin/sh
#
# (C) 2010 lists@nerdbynature.de
#
# 00-vmware-2.6.32_functional.diff
# - based on vmware-server-modules-linux-2.6.32.patch
# - see http://communities.vmware.com/message/1389232#1389232
#
# 01-vmware-2.6.32_cosmetic.diff
# - based on rbihlmeyer's comments in http://communities.vmware.com/thread/232842
#
# 02-vmnet-include.diff
# - stuff .h and .c files in separate directories, as the other
# modules do it
#
# vmware-config.pl.diff
# - based on http://communities.vmware.com/message/1398525#1398525
#
DIR=/root/dev/
PATCHES="00-vmware-2.6.32_functional.diff 01-vmware-2.6.32_cosmetic.diff 02-vmnet-include.diff"
# unset me!
# DEBUG=echo
if [ -z "$1" -o ! "`ls "$1"/*tar 2>/dev/null | wc -l`" = 4 ]; then
echo "Usage: `basename $0` [vmware-modules-source directory]"
exit 1
else
SRC="$1"
fi
cd $SRC
$DEBUG mkdir orig || exit 1
$DEBUG mv *tar orig/
# untar
for t in orig/*.tar; do
$DEBUG tar -xf $t
done
# patch
for p in $PATCHES;
do $DEBUG patch -p1 < "$DIR"/"$p" done # tar for d in *-only; do $DEBUG tar -cf `echo $d | sed 's/-only/.tar/'` $d done $DEBUG rm -rf *-only # vsock.ko needs symbols from vmci $DEBUG cd ../../../bin || exit 2 if [ -x vmware-config.pl -a -f $DIR/vmware-config.pl.diff ]; then $DEBUG patch -p0 < $DIR/vmware-config.pl.diff fi
8. Aplicamos los parches.

chmod u+x patch-vmware_2.6.3x.sh
./patch-vmware_2.6.3x.sh /root/vm/vmware-server-distrib/lib/modules/source

9. Instalamos el server.

cd /root/vm/vmware-server-distrib
./vmware-install.pl

10. La instalación se hace con los valores por defecto (o no) y no debería dar ningún problema.
11. Reiniciamos.

Y una vez reiniciado el sistema ya podremos entrar al vmware-server (si no hemos cambiado los puertos en la instalación) con nuestras credenciales de root a través de:

https://[ip_del_servidor]:8333
http://[ip_del_servidor]:8222



domingo, 24 de octubre de 2010

Script instalacion de openvas y greenbone

Este script esta probado sobre ubuntu server 10.10. No instala el cliente, ya que la idea es manejarlo en remoto a través de http con el greenbone.

#!/bin/bash

cd /tmp

# Bajar los paquetes.

wget http://wald.intevation.org/frs/download.php/767/openvas-libraries-3.1.2.tar.gz
wget http://wald.intevation.org/frs/download.php/754/openvas-scanner-3.1.0.tar.gz
wget http://wald.intevation.org/frs/download.php/757/openvas-client-3.0.1.tar.gz
wget http://wald.intevation.org/frs/download.php/773/openvas-manager-1.0.2.tar.gz
wget http://wald.intevation.org/frs/download.php/774/greenbone-security-assistant-1.0.2.tar.gz

# Descompimir los paquetes

tar xvfz openvas-*
tar xvfz greenbone*

# Borrar los paquetes

rm *.gz

# Instalar dependencias

apt-get install -y build-essential libgtk2.0-dev libglib2.0-dev libssl-dev htmldoc libgnutls-dev libpcap0.8-dev bison libgpgme11-dev libsmbclient-dev snmp pnscan cmake uuid uuid-dev libgtk2.0-dev libxml2-dev libxslt-dev libmicrohttpd-dev doxygen sqlite3 libsqlite3-dev rsync

# Instalar librerias

cd /tmp/openvas-libraries-3.1.2/
./configure && make && make install
echo “include /usr/local/lib” >> /etc/ld.so.conf && ldconfig

# Instalar scaner

cd /tmp/openvas-scanner-3.1.0/
./configure && make && make install

# Instalar manager

cd /tmp/openvas-manager-1.0.2/
cmake .
make && make doc && make install && make rebuild_cache

#Instalar greenbone

cd /tmp/greenbone-security-assistant-1.0.2/
cmake .
make && make doc && make install && make rebuild_cache

# Limpiar tmp

cd /tmp
rm -r openvas* greenbone*

# Configurar openvas

openvas-mkcert
openvas-adduser
openvas-nvt-sync

# Arrancar el demonio

openvassd

# Crear el certificado de cliente

openvas-mkcert-client -n om -i

# Arrancar el manager

openvasmd --sport 9390 --update &

# Arrancar greenbone

gsad --mport 1241 -v --http-only

domingo, 26 de septiembre de 2010

Instalacion de vmware workstation en Fedora 13.

Al iniciar el programa, inicia la instalacion de modulos de kernel. Ante cualquier aviso de problema (gcc, headers, etc), sobre todo si nuestro kernel es de tipo "Pae" instalar:

yum install kernel-devel kernel-headers kernel-PAE-devel

Tambien podemos comprobar nuestro kernel con:

uname -r

Para asegurarnos de que realmente tenemos instalados los paquetes correspondientes a nuestro kernel.

Aceleracion 3d en vmware workstation en lenovo sl510

Al arrancar las maquinas avisa de que la aceleracion esta desactivada. La solucion pasa por instalar el paquete driconf y activar la opcion de texturas S3TC.

domingo, 19 de septiembre de 2010

Desactivar las notificaciones de cron.

Las cosas mas tontas pueden ser las que mas guerra den...
Para que cron no mande un mail cada vez que complete una tarea, edita el crontab y añade:

# crontab -e
MAILTO=""

Al añadir una dirección vacía se evita que notifique al dueño de la tarea.

lunes, 13 de septiembre de 2010

Habilitar acceso web en esx.

Para habilitar el acceso a través del navegador al esx:

  • Configuramos el servicio para que arranque con la maquina...
chkconfig --level 345 vmware-webAccess on

  • Comprobamos...
chkconfig --list vmware-webAccess

  • Arrancamos manualmente el servicio...

service vmware-webAccess start

  • En caso de tener habilitado el firewall, permitimos el paso...

esxcfg-firewall --enableService webAccess

Fuente: http://www.bujarra.com/?p=3639

domingo, 29 de agosto de 2010

Wake on lan.

Levantate y anda desde linux para linux:

  • Nos aseguramos de que la opcion este habilitada en la bios
  • Vemos la configuracion de la tarjeta con ethtool:
#ethtool eht1
  • Nos escupira dos opciones como estas:
Supports Wake-on: g
Wake-on: d
  • Cambiamos el tipo de wol para que atienda a un magic packet:
# ethtool -s eth1 wol g
  • Nos apuntamos la mac del equipo a levantar
  • Por ultimo levantamos el equipo con:
#wakeonlan [mac del equipo a levantar]

Si queremos arrancar un equipo a traves de internet, tendremos que mapear el puerto 6789 y lo levantaremos con:

#wakeonlan -i [ip remota] -p 6789 [mac del equipo a levantar]

viernes, 13 de agosto de 2010

Limpiar la tabla nat.

A veces, al ir a chapar un puerto nos da un error de entradas nat en uso:

cisco(config)#no ip nat inside source static tcp 10.0.0.15 22 interface ATM0.1 22
%Static entry in use, cannot remove

La solucion, limpiarla en plan Atila:

do clear ip nat translation forced
no ip nat inside source static tcp 10.0.0.15 22 interface ATM0.1 22

Y a otra cosa...

lunes, 17 de mayo de 2010

Cambiar la ip a un Esx.

Para cambiar correctamente la ip a un servidor Esx:

1.- Eliminamos la interfaz con la direccion antigua:

esxcfg-vswif -d [interfaz]

2.- Creamos un nuevo interfaz con:

esxcfg-vswif -a [interfaz] -p "Service Console" -i [ip del interfaz] -n [mascara] -b [broadcast]

3.- Editamos /etc/sysconfig/network file para cambiar el gateway.

4.- Reseteamos el interfaz creado con:

esxcfg-vswif -s [interfaz] (Esto lo deshabilita)
esxcfg-vswif -e [interfaz] (Esto lo habilita)

5.- Reseteamos las dns con:

ipconfig /flushdns
ipconfig /registerdns

domingo, 16 de mayo de 2010

Problemas de red en Esx sobre Workstation.

Al instalar Esx sobre workstation en Linux, la red no funciona. Esto es porque al arrancar la maquina virutal con nuestro usuario, no tenemos derecho a poner la tarjeta en modo promiscuo.
La solucion pasa por crear un grupo de usuarios y darles permisos:

chgrp (grupo) /dev/vmnet0
chmod g+rw /dev/vmnet0

O darle permisos a todo hijo de vecino:

chmod a+rw /dev/vmnet0

Tambien se le pueden dar los permisos pertinentes en udev con el siguiente comando:

cp -rp /dev/vmnet0 /lib/udev/devices
chmod 777 /lib/udev/devices/vmnet0


Bajar los requisitos de memoria en Esx y Esxi.

Por defecto Esx(x) necesita 2 gb. de memoria para su instalacion, pero una vez instalado, se puede aplicar esto para hacerlo funcionar con menos:

Esx:

1.- Instalamos con los 2 gb. requeridos.
2.- Entramos por consola y editamos /etc/vmware/init/init.d/00.vmnix
2.- Cambiamos el valor de la entrada RequiredMemory=2064384 por lo que queramos.
3.- Apagamos la maquina, le ponemos la memoria que queramos y listo.

Esxi:

El procedimiento es algo distinto ya que tenemos que entrar al Esxi por una "backdoor" de mantenimiento.

1.- Entramos a la consola del Esxi.
2.- Pulsamos Alt+F1.
3.- Tecleamos unsupported para iniciar el logeo de soporte (no aparecera ningun texto).
4.- Introducimos el password de root.
5.- Editamos el fichero /etc/vmware/esx.conf añadiendo /vmkernel/MinMemoryCheck = "false"
6.- Una vez realizados los cambios, tecleamos exit para salir del modo soporte.
7.- Pulsamos Alt+F2 para volver al modo Dcui.

domingo, 14 de marzo de 2010

Snort en Centos.

Script de instalacion:

#Instalamos las dependencias

yum -y install mysql mysql-bench mysql-server mysql-devel mysqlclient10 php-mysql httpd gcc pcre-devel php-gd gd mod_ssl glib2-devel gcc-c++ bison flex php-pear

#Iniciamos los servicios de la base de datos y del apache

/etc/init.d/httpd start
/etc/init.d/mysqld start
chkconfig mysqld on
chkconfig httpd on

#Crearemos nuestro directorio donde pondremos todos los pquetes que vayamos a utilizar

mkdir /opt/ids
cd /opt/ids
wget http://www.tcpdump.org/release/libpcap-1.0.0.tar.gz
tar xfz libpcap-1.0.0.tar.gz
cd libpcap-1.0.0
./configure
make
make install
cd ..
wget http://dl.snort.org/snort-current/snort-2.8.5.3.tar.gz
tar xzf snort-2.8.5.3.tar.gz
cd snort-2.8.5.3
./configure --with-mysql --enable-dynamicplugin
make
make install

#Una vez instalado seguimos con los siguientes pasos

groupadd snort
useradd -g snort snort -s /sbin/nologin
mkdir /etc/snort
mkdir /etc/snort/rules
mkdir /var/log/snort
cp /opt/ids/snort-2.8.5.1/etc/* /etc/snort/.

Una vez realizada la instalacion, nos bajamos las reglas de snort.org (hay que estar registrado) y las guardamos en /opt/ids.

cd /opt/ids/
tar xvfz snortrules*.tar.gz
cp rules/* /etc/snort/rules/

Ahora editamos el archivo de configuracion:

gedit /etc/snort/snort.conf

Y establecemos lo siguiente:

var HOME_NET 10.0.0.0/24
var EXTERNAL_NET !$HOME_NET
var RULE_PATH /etc/snort/rules

Acto seguido, configuramos mysql:

# mysql
mysql> SET PASSWORD FOR root@localhost=PASSWORD('*****');
mysql> mysql> create database snort;
mysql> grant INSERT,SELECT on root.* to snort@localhost;
mysql> SET PASSWORD FOR snort@localhost=PASSWORD('*****');
mysql> grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort.* to snort@localhost;
mysql> grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort.* to snort;
mysql> EXIT

Volvemos a editar /etc/snort/snort.conf para descomentar la opcion output database y dejarla asi:

output database: log, mysql, user=snort password=***** dbname=snort sensor_name=LAN host=localhost

Ahora configuramos el intarfaz http:

Hecho esto, vamos a configurar la interfaz web para monitorear el IDS

Script de instalacion de base:

cd /opt/ids/
pear upgrade --force pear
pear channel-update pear.php.net
pear install --alldeps Image_Graph-alpha Image_Canvas-alpha Image_Color Numbers_Roman
pear install -f Image_Graph
pear install -f Image_Canvas
wget http://downloads.sourceforge.net/project/adodb/adodb-php5-only/adodb-509a-for-php5/adodb509a.tgz
wget http://downloads.sourceforge.net/project/secureideas/BASE/base-1.4.4/base-1.4.4.tar.gz
cd /var/www/
tar xfz /opt/ids/adodb509a.tgz
mv adodb5 adodb
cd html/
tar xfz /opt/ids/base-1.4.4.tar.gz
mv base-1.4.4 base
cd base/
cp base_conf.php.dist base_conf.php

Ahora editamos el archivo /var/www/html/base/base_conf.php y lo dejamos asi:

$BASE_urlpath = ‘/base’;

$DBlib_path = ‘/var/www/adodb/ ‘;

$DBtype = ‘mysql’;
$alert_dbname = ’snort’;
$alert_host = ‘localhost’;
$alert_port = ”;
$alert_user = ’snort’;
$alert_password = ‘contraseña’;

Finalmente iniciamos el servicio de snort:

snort -D -c /etc/snort/snort.conf -i eth0

Y lo incluimos en el rc para que se inicie al arrancar:

echo "snort -D -c /etc/snort/snort.conf -i eth0" >> /etc/rc.d/rc.local

Como apunte final, para instalar oinkmaster y actualizar las reglas automaticamente:

Script de instalacion de oinkmaster:


chown snort.snort /etc/snort/ -R
cd /opt/ids
wget http://prdownloads.sourceforge.net/oinkmaster/oinkmaster-2.0.tar.gz

tar xzf oinkmaster-2.0.tar.gz
cd oinkmaster-2.0
cp oinkmaster.pl /usr/bin/
cp contrib/makesidex.pl /usr/bin/
cp oinkmaster.conf /etc/

Nos logeamos a www.snort.org y generamos nuestro codigo oinkmaster y lo introducimos editando /etc/oinkmaster.conf añadiendo esta linea:

url=http://www.snort.org/pub-bin/oinkmaster.cgi/*****/snortrules-snapshot-2.8.tar.gz

En lugar del ponemos el codigo que generamos en la web de www.snort.org

Nos ubicamos en /etc y hacemos lo siguiente

cd /etc/
makesidex.pl /etc/snort/rules > autodisable.conf

Ahora ponemos en el cron lo siguiente, de esta manera se actualizara todos los
dias a las 23:59 horas

crontab -u snort -e

59 23 * * * oinkmaster.pl -C /etc/oinkmaster.conf -C /etc/autodisable.conf -o /etc/snort/rules