domingo, 27 de marzo de 2011
OpenVPN en Squeeze
Configurando un OpenVPN Roadwarrior
Primero lo primero:
# aptitude install openvpn
Vamos al directorio donde estan los certificados easy-rsa
#cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/
Creamos los certificados para el CA
#. ./vars
#./clean-all
#./build-ca
Creando el certificado para el server
#./build-key-server server
Creamos el certificado para el cliente
#./build-key cliente
Construimos el diffie hellman
#./build-dh
Las llaves creadas estan en la carpeta keys
#cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/
#ls -al
ca.key ca.crt server.key server.csr server.crt cliente.key client.crt cliente.csr
Tenemos lo siguiente
ca.key-> debe estar en el Server CA
client.crt-> debe estar en el cliente
client.key-> debe estar en el cliente
server.crt-> debe estar el server OPENVPN
server.key-> debe estar el server OPENVPN
ca.crt-> Debe estar en el server y en todos los clientes.
Vamos a modificar el archivo server.conf que esta en:
#cd /usr/share/doc/openvpn/examples/sample-config-files/
# nano server.conf
port 1194
proto udp
dev tun
ca /usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/ca.crt
cert /usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/server.crt
key /usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/server.key
dh /usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 192.168.1.0 255.255.255.0"
;push "redirect-gateway def1"
push "dhcp-option DNS 192.168.1.1"
client-to-client
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
log /var/log/openvpn.log
log-append /var/log/openvpn.log
verb 3
Despues de modificarlo copiarlo a /etc/openvpn" directory
#cp server.conf /etc/openvpn/
Iniciamos el servicio
# /etc/init.d/openvpn start
configurar el iptables con las reglas basicas
Si ya se tiene un firewall se debe adicionar estas reglas
iptables -A INPUT -i tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -j ACCEPT
Con eso se tiene la parte del server, pero falta el cliente
Si es un winbug que es el comun de los casos se hace lo siguiente:
Se instala el cliente openvpn:
http://openvpn.se/download.html
Despues de instalar openvpn cliente, poner los archivos en la carpeta config
Creamos el archivo cliente.ovpn con el contenido
*****
client
dev tun
proto udp
remote ipdelserver 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca “C:\\Archivos de programa\\OpenVPN\\config\\ca.crt”
cert “C:\\Archivos de programa\\OpenVPN\\config\\cliente.crt”
key “C:\\Archivos de programa\\OpenVPN\\config\\cliente.key”
comp-lzo
verb 4
*****
Creamos la interface del openvpn en el winbugs
Inicio --> todos los programas --> OpenVPN --> Add a new TAP-win32 virtual ethernet adapter
En la capeta:
C:\Archivos de programa\OpenVPN\config
Debemos tener los archivos
cliente.ovpn, cliente.crt, cliente.key y ca.crt
Luego recien vamos al icono en la parte inferior, le damos click derecho y conect, te debe salir verde como en la figura sino cuestion de mirar los logs
PD: Siempre es bueno mirar los logs en el cliente y en el server para detectar posibles inconvenientes.
Fuente:
http://openvpn.net/index.php/open-source/documentation/howto.html
http://cihan.me/how-to-setup-openvpn-server-on-debian-lenny/
Ntop en Wheezy
Ntop es una famosa herramienta para visualizar el trafico en tiempo real
Actualmente se encuentra en los repositorios de Wheezy lo instalamos
# aptitude install ntop
Luego te pide un pass para el admin
Y listo ya tienes el ntop:
http://laipdentop:3000
Luego de un rato te muestra el trafico
Ahora si desean que pida password al inicio de abrir la pagina solo basta ir a
Admin -> Configure -> protect URLs y abajo hacer clic en "Add URL"
No añadir nada dejarlo en blanco
Seleccionar el usuario puede der el admin
luego click en el boton "Add URL"
Ahora cuando vayas al link
http://laipdentop:3000
Saldra una ventana para que pongas el user y pass
Fuente:
http://www.ntopsupport.com/faq.html
miércoles, 23 de marzo de 2011
PostgreSQL server failed to start
El problema inicial para variar era que no se podia iniciar el servicio del postgresql, lo que paso fue lo siguiente:
Tenia configurado el network-manager de gnome y por ello comente todo el contenido de /etc/network/interfaces
No podia hacer ping al localhost y me salia este mensaje cada vez que queria levantar el servicio
Starting PostgreSQL 9.0 database server: mainThe PostgreSQL server failed to start. Please check the log output: 2011-03-23 10:31:36 PET LOG: no se pudo enlazar al socket IPv4: No se puede asignar la direcci?n solicitada 2011-03-23 10:31:36 PET HINT: ?Hay otro postmaster corriendo en el puerto 5432? Si no, aguarde unos segundos y reintente. 2011-03-23 10:31:36 PET WARNING: no se pudo crear el socket de escucha para <> 2011-03-23 10:31:36 PET FATAL: no se pudo crear ning?n socket TCP/IP ... failed!
Solucion:
Agregar en el /etc/network/interfaces
auto lo
iface lo inet loopback
Listo con ello ya se puede levantar el servicio
Habilitar acceso remoto al Postgresql
nano /etc/postgresql/9.0/main/postgresql.conf
listen_addresses = '*'
nano /etc/postgresql/9.0/main/pg_hba.conf
host all all 0.0.0.0/0 md5
Reiniciar el servicio y listo
Desde otra ubicacion
# psql -h ipexterna -U usario -W
Listo
Saludos
Fuente:
http://ubuntuforums.org/showthread.php?t=1612198
http://kb.mediatemple.net/questions/1237/How+do+I+enable+remote+access+to+my+PostgreSQL+server%3F
Tenia configurado el network-manager de gnome y por ello comente todo el contenido de /etc/network/interfaces
No podia hacer ping al localhost y me salia este mensaje cada vez que queria levantar el servicio
Starting PostgreSQL 9.0 database server: mainThe PostgreSQL server failed to start. Please check the log output: 2011-03-23 10:31:36 PET LOG: no se pudo enlazar al socket IPv4: No se puede asignar la direcci?n solicitada 2011-03-23 10:31:36 PET HINT: ?Hay otro postmaster corriendo en el puerto 5432? Si no, aguarde unos segundos y reintente. 2011-03-23 10:31:36 PET WARNING: no se pudo crear el socket de escucha para <
Solucion:
Agregar en el /etc/network/interfaces
auto lo
iface lo inet loopback
Listo con ello ya se puede levantar el servicio
Habilitar acceso remoto al Postgresql
nano /etc/postgresql/9.0/main/postgresql.conf
listen_addresses = '*'
nano /etc/postgresql/9.0/main/pg_hba.conf
host all all 0.0.0.0/0 md5
Reiniciar el servicio y listo
Desde otra ubicacion
# psql -h ipexterna -U usario -W
Listo
Saludos
Fuente:
http://ubuntuforums.org/showthread.php?t=1612198
http://kb.mediatemple.net/questions/1237/How+do+I+enable+remote+access+to+my+PostgreSQL+server%3F
Etiquetas:
debian,
postgresql,
wheezy
martes, 22 de marzo de 2011
Drivers HP dv6 en Debian Wheezy & candy tools
Para el conky solo basta seguir los pasos de este link
http://gnome-look.org/content/show.php/CONKY-colors?content=92328
En caso del compiz
# aptitude install compiz compizconfig-settings-manager compiz-fusion-plugins-main compiz-gnome compiz-gtk
# aptitude install fusion-icon
Ir a Sistema -> Preferencias -> aplicaciones al inicio
Y poner los datos
Nombre: compiz
comando: compiz --replace
El Network manager:
http://wiki.debian.org/NetworkManager
Para setear levantar el wifi
# aptitude install wireless-tools
# aptitude install firmware-b43-lpphy-installer
# iwconfig
Listo wifi up
Para levantar el sonido en una HP dv6
Basta hacer como root:
# alsctl init
Y hace la magia del sonido
Fuente:
http://forums.debian.net/viewtopic.php?f=7&t=42350
http://wiki.debian.org/bcm43xx
http://wiki.debian.org/Compiz
http://gnome-look.org/content/show.php/CONKY-colors?content=92328
En caso del compiz
# aptitude install compiz compizconfig-settings-manager compiz-fusion-plugins-main compiz-gnome compiz-gtk
# aptitude install fusion-icon
Ir a Sistema -> Preferencias -> aplicaciones al inicio
Y poner los datos
Nombre: compiz
comando: compiz --replace
El Network manager:
http://wiki.debian.org/NetworkManager
Para setear levantar el wifi
# aptitude install wireless-tools
# aptitude install firmware-b43-lpphy-installer
# iwconfig
Listo wifi up
Para levantar el sonido en una HP dv6
Basta hacer como root:
# alsctl init
Y hace la magia del sonido
Fuente:
http://forums.debian.net/viewtopic.php?f=7&t=42350
http://wiki.debian.org/bcm43xx
http://wiki.debian.org/Compiz
jueves, 17 de marzo de 2011
Sagan 0.1.8 con Barnyard2 support en Snorby 2.2.5
Es una herramienta para visualizar los logs en realtime, ademas usa una serie de reglas (tipo snort) para detectar anomalias en la red.
Ademas existen varios front ends para snort que pueden ser usados por sagan como es el Snorby, Base, Sguil, etc .. En este caso vamos a usar Snorby
Vamos con los paquetes necesarios, primero actualizamos
# aptitude update
# aptitude upgrade
Necesitamos el paquete PCRE
aptitude install libpcre3-dev libpcre3
Paquetes opcionales:
Si deseas recibir alertas en tu correo
# aptitude install libesmtp-dev
Si deseas guardar la info en una base de datos mysql
# aptitude install libmysqlclient15-dev
Si deseas usar postgresql
#aptitude install postgresql-server-dev-8.4
Security Information Management System
#aptitude install libprelude-dev
Log normalizing library
#aptitude install liblognorm-dev
Para este caso vamos a usar el mysql
*************
Bajamos el sagan http://sagan.softwink.com/download
La version actual es la 0.1.8 con soporte unified2
Compilamos e instalamos
# ./configure --disable-postgresql
# make && make install
Ahora sigue la configuracion del syslog-ng, si no lo tenemos lo instalamos de los repositorios
# aptitude install syslog-ng
Ahora sagan tiene dos formas de tratar los datos entrantes, por medio de FIFO o program mode:
- FIFO (First In/First Out),
Syslog-ng envia los eventos al archivo /var/run/sagan.fifo, de este modo Sagan logra leer este archivo.
Para ello se debe crear el archivo
mkfifo /var/run/sagan.fifo
ls -l /var/run/sagan.fifo
prw------- 1 root root 0 mar 17 17:56 /var/run/sagan.fifo
Debemos modificar el syslog-nd.conf, y añadir las lineas correspondientes segun el archivo ejemplo de la pagina de sagan http://sagan.softwink.com/syslog-ng-fifo.txt
- Program mode
significa que Sagan tomara los eventos via standard input (stdin)
Igualmente reemplazamos el archivo syslog-ng.conf o usamos el dado por la pagina del autor
http://sagan.softwink.com/syslog-ng-program.txt
En mi caso escogo el modo FIFO y renombro el syslog-ng.conf que viene por default y uso el archivo ejemplo syslog-ng.conf de la pagina sagan.
Ahora vamos a modificar el archivo de configuracion sagan.conf, que debe estar en
/usr/local/etc/sagan.conf
Modificamos
sagan_host 192.168.0.2 --> poner la ip de la PC
Si deseamos loggearnos a una base de datos snort;
# [Required if logging to a Snort database]
; sagan_hostname sagan
; sagan_interface syslog
; sagan_filter none
; sagan_detail 1
; maxdb_threads 50
; output database: log, mysql, user=sagan password=secret dbname=snort_db host=192.168.0.1
#Vamos a usar el Unified2 output plugin
output unified2: filename sagan.log, limit 128
En mi caso comente lo siguiente
porque al ejecutar el sagan me salia violacion de segmento:
#normalize: cisco, $RULE_PATH/cisco-normalize.rulebase
#normalize: openssh, $RULE_PATH/openssh-normalize.rulebase
#normalize: smtp, $RULE_PATH/smtp-normalize.rulebase
#normalize: dns, $RULE_PATH/dns-normalize.rulebase
#normalize: imap, $RULE_PATH/imap-normalize.rulebase
Reglas de Sagan
Para poder usar las reglas dadas por sagan hay que descargarlo de:
http://sagan.softwink.com/rules/sagan-rules-current.tar.gz
Y copiamos los archivos a la ruta definida por la variable $RULE_PATH
var RULE_PATH /usr/local/etc/sagan-rules
Creamos la carpeta sagan-rules y copiamos los archivos ahi
Creamos el usuario sagan luego, lo hacemos propietario de los archivo con el comando chown
debian:~# chown -R sagan.sagan /var/log/sagan
debian:~# chown -R sagan.sagan /var/run/sagan
debian:~# chown -R sagan.sagan /var/run/sagan.fifo
Configurando Barnyard2
Copiamos el archivo de ejemplo de la pagina de sagan
https://wiki.softwink.com/bin/view/Main/Barnyard2HowTo
Y modificamos la ultima linea con los datos respectivos de la base de datos.
creamos el archivo
# touch /var/log/barnyard2/barnyard2-sagan.waldo
# chown -R sagan.sagan /var/log/barnyard2/barnyard2-sagan.waldo
Ejecutamos sagan
# /usr/local/bin/sagan
Ejecutamos el Barnyard2
# /usr/local/bin/barnyard2 -c /usr/local/etc/barnyard2.conf -d /var/log/sagan -f sagan.log -w /var/log/barnyard2/barnyard2-sagan.waldo -S /usr/local/etc/sagan-rules/sagan-sid-msg.map -C /usr/local/etc/sagan-rules/classification.config
Si todo sale bien sale un mensaje como este:
Despues de un rato vemos que aparece el sensor y los respectivos eventos
Vamos a la interface del snorby y vemos la aparicion de un sensor mas:
Vemos los eventos de ese sensor
Y los detalles
PD: A veces tenia el problema que al momento de ejecutar el barnyard2 me salia un mensaje como este:
WARNING: Can't extract timestamp extension from 'sagan.log'using base 'sagan.log'
Waiting for new data
WARNING: Can't extract timestamp extension from 'sagan.log'using base 'sagan.log'
Esto sucede porque hay un sagan.log que tiene informacion acerca del funcionamiento de sagan y el unified2 tambien se llama sagan.log.
Para solucionarlo modificamos el archivo sagan.conf en la parte de unified2
output unified2: filename sagan.u2, limit 128
Y el comando quedaria asi:
# /usr/local/bin/barnyard2 -c /usr/local/etc/barnyard2.conf -d /var/log/sagan -f sagan.u2 -w /var/log/barnyard2/barnyard2-sagan.waldo -S /usr/local/etc/sagan-rules/sagan-sid-msg.map -C /usr/local/etc/sagan-rules/classification.config
Ahora si no habria conflictos de ningun tipo
Fuente:
Help from Champ Clark III Sagan's creator
https://wiki.softwink.com/bin/view/Main/SaganHOWTO
http://muchikon.blogspot.com/2010/07/sagan-en-debian.html
OpenFPC 0.5 con Snorby 2.2.5
OpenFPC es basicamente un conjunto de herramientas que permite capturar el trafico de determinado evento y dartelo en formato *.pcap para su posterior analisis con el wireshark por ejemplo, vamos integrar esta opcion con el snorby.
OpenFPC tiene muchas mas opciones las cuales pueden ser revisadas en su pagina oficial
Actualizamos el sistema
# aptitude update
# aptitude upgrade
# aptitude install apache2 daemonlogger tcpdump tshark libarchive-zip-perl libfilesys-df-perl libapache2-mod-php5 mysql-server php5-mysql libdatetime-perl libdbi-perl libdate-simple-perl php5-mysql libterm-readkey-perl libdate-simple-perl
Vamos a descargar el openfpc de su pagina oficial
http://code.google.com/p/openfpc/downloads/list
# tar zxvf openfpc-0.5-281.tgz
# mv openfpc-0.5-281 /var/www/
# mv openfpc-0.5-281/ openfpc
# cd openfpc
# ./openfpc-install.sh install
# openfpc –action start
# openfpc-client -a status
Habilitamos el openfpc en a interface de administracion de Snorby
Fuente:
http://leonward.wordpress.com/2010/12/06/insta-snorby-0-4-with-openfpc/
http://www.openfpc.org/
http://code.google.com/p/openfpc/
miércoles, 16 de marzo de 2011
Pulledpork en Debian Wheezy
Vamos a configurar el pulledpork en el Snort
Descargamos
# wget http://pulledpork.googlecode.com/files/pulledpork-0.5.0.tar.gz
# tar -zxf pulledpork-0.5.0.tar.gz && cd pulledpork-0.5.0
# cp pulledpork.pl /usr/sbin && cp etc/*.conf /etc/snort
Vamos a bajar las reglas del snort para ello necesitamos el oinkcode
https://www.snort.org/account/oinkcode
Ahora procedemos a modificar el archivo pulledpork.conf
# nano /etc/snort/pulledpork.conf
Comentamos lo referente a emergingthreats
Modificamos la ruta:
rule_url=http://www.snort.org/reg-rules/|snortrules-snapshot-2900.tar.gz|oinkcode
Cambiamos:
rule_path=/etc/snort/rules/snort.rules
rule_path=/etc/snort/rules/local.rules
sid_msg=/etc/snort/sid-msg.map
config_path=/etc/snort/snort.conf
distro=Debian-Lenny
snort_version=2.9.0.4
/etc/snort/enablesid.conf
/etc/snort/disablesid.conf
/etc/snort/modifysid.conf
Y comentamos
#sostub_path=/usr/local/etc/snort/rules/so_rules.rules
Deshabilita las reglas de bloqueo (fwsam)
# echo pcre:fwsam /etc/snort/disablesid.conf
Modificamos
# nano /etc/snort/modifysid.conf
La ultima linea cambiarlo a (hay un error de tipeo):
302,429,1821 "$EXTERNAL_NET" "$HOME_NET"
# pulledpork.pl -c /etc/snort/pulledpork.conf
Al final tenemos el mensaje de Fly piggy Fly !!!
Reiniciamos el servicio
# /etc/init.d/snortbarn restart
Snort is on Fire !!!
Fuente:
https://www.snort.org/docs
Snort 2.9.0.4 en Debian Wheezy con Barnyard2
Vamos con la instalacion de un IDS famoso "Snort", con barnyard en base de datos mysql.
Actualizamos
# aptitude update
# aptitude upgrade
Instalamos las dependecias
# aptitude install apache2 libapache2-mod-php5 libwww-perl mysql-server mysql-common mysql-client php5-mysql libnet1 libnet1-dev libpcre3 libpcre3-dev autoconf libcrypt-ssleay-perl libmysqlclient-dev php5-gd php-pear libphp-adodb php5-cli libtool libssl-dev gcc-4.4 g++ automake gcc make flex bison apache2-doc ca-certificates vim
Instalamos los prerequisitos
libpcap, libdnet, and DAQ.
Install libpcap:
# cd /usr/src
# wget http://www.tcpdump.org/release/libpcap-1.1.1.tar.gz
# tar -zxf libpcap-1.1.1.tar.gz && cd libpcap-1.1.1
# ./configure --prefix=/usr --enable-shared
# make && make install
Install libdnet:
# cd /usr/src
# wget http://libdnet.googlecode.com/files/libdnet-1.12.tgz
# tar -zxf libdnet-1.12.tgz && cd libdnet-1.12
# ./configure --prefix=/usr --enable-shared
# make && make install
Install DAQ:
# cd /usr/src
# wget http://www.snort.org/dl/snort-current/daq-0.5.tar.gz
# tar -zxf daq-0.5.tar.gz && cd daq-0.5
DAQ necesita ser parchado para reconocer el parametro "buffer_size".
# vi /usr/src/daq-0.5/os-daq-modules/daq_pcap.c
En la linea line 219 reemplazar:
context->buffer_size = strtol(entry->key, NULL, 10);
con:
context->buffer_size = strtol(entry->value, NULL, 10);
# ./configure
# make && make install
Actualizamos la ruta del "shared library"
# echo >> /etc/ld.so.conf /usr/lib && ldconfig
Bajamos e instalamos el snort
# wget http://www.snort.org/dl/snort-current/snort-2.9.0.4.tar.gz -O snort-2.9.0.4.tar.gz
# tar -zxf snort-2.9.0.4.tar.gz && cd snort-2.9.0.4
# ./configure --with-mysql --enable-dynamicplugin --enable-perfprofiling --enable-ipv6 --enable-zlib --enable-reload
# make && make install
Creamos las carpetas
# mkdir /etc/snort /etc/snort/rules /var/log/snort /var/log/barnyard2 /usr/local/lib/snort_dynamicrules
Buscamos la regla para usuarios registrados
https://www.snort.org/snort-rules/?#rules
Descomprimimos las reglas en el directorio de snort
# tar xvfz snortrules-snapshot-2903.tar.gz -C /etc/snort
agregamos el usuario y grupo snort, configuramos permisos y copiamos archivos
# groupadd snort && useradd -g snort snort
# chown snort:snort /var/log/snort /var/log/barnyard2
# cp /usr/src/snort-2.9.0.4/etc/*.conf* /etc/snort
# cp /usr/src/snort-2.9.0.4/etc/*.map /etc/snort
Nota: No encontre con el snort el archivo "sid-msg.map" para configurar el barnyard2 por lo que me baje el archivo de
wget http://rules.emergingthreats.net/open/suricata/emerging.rules.tar.gz
Luego fui a la carpeta rules y copie el archivo.
cp sid-msg.map /etc/snort/
Creamos un acceso directo del snort
#ln -s /usr/local/bin/snort /usr/sbin/snort
Configuracion del archivo snort.conf
# nano /etc/snort/snort.conf
Buscamos “RULE_PATH ../rules” y lo reemplazamos por:
var RULE_PATH /etc/snort/rules
Seguimos buscamos por “PREPROC_RULE_PATH ../preproc_rules”, y reemplazar por:
PREPROC_RULE_PATH /etc/snort/preproc_rules
Como vamos a usar el barnyard2 adicionamos en el archivo
output unified2: filename snort.log, limit 128
Buscamos:
# include $PREPROC_RULE_PATH/preprocessor.rules
# include $PREPROC_RULE_PATH/decoder.rules
Y lo descomentamos
Buscamos y lo comentamos quedando
#preprocessor normalize_ip4
#preprocessor normalize_tcp: ips ecn stream
#preprocessor normalize_icmp4
#preprocessor normalize_ip6
#preprocessor normalize_icmp6
Coonfiguramos el MySQL
# mysql -u root -p #Pones el password
mysql> create database snort;
mysql> create user 'snortuser'@'localhost' IDENTIFIED BY 'pass';
mysql> grant all privileges on snort.* to 'snortuser'@'localhost' with grant option;
mysql> flush privileges;
mysql> exit;
Ahora vamos a importar el esquema de la base de datos:
Vamos a la carpeta schema del directorio donde descomprimimos el snort
# cd schemas/
# mysql -p -u snortuser snort < create_mysql
Enter password:
# mysql -u root -p
Enter password:
mysql> use snort;
mysql> show tables; # deberiamos ver las tablas que importamos.
mysql> exit;
Instalacion y configuracion del barnyard2
# cd /usr/src
# wget http://www.securixlive.com/download/barnyard2/barnyard2-1.9.tar.gz
# tar -zxf barnyard2-1.9.tar.gz && cd barnyard2-1.9
# ./configure --with-mysql
# make && make install
# mv /usr/local/etc/barnyard2.conf /etc/snort
# nano /etc/snort/barnyard2.conf
Buscamos la linea #215 y lo cambiamos por: output alert_fast
Al final del archivo agregamos la conexion al mysql
output database: log, mysql, user=snortuser password=pass dbname=snort host=localhost
La prueba de fuego
Ejecutamos el snort
# /usr/local/bin/snort -q -u snort -g snort -c /etc/snort/snort.conf -i eth0
Ejecutamos el barnard2
# /usr/local/bin/barnyard2 -c /etc/snort/barnyard2.conf -d /var/log/snort -f snort.log -w /etc/snort/bylog.waldo -G /etc/snort/gen-msg.map -S /etc/snort/sid-msg.map -C /etc/snort/classification.config
Si todo sale bien con el barnyard tendran una imagen similar a esta:
Vemos que los datos estan siendo insertados en la base de datos
# mysql -u root -p -D snort -e "select count(*) from event"
Script de inicio de snort y barnayard2
# nano /etc/init.d/snortbarn
y copiamos el contenido
--------------------------------------------------------------------------------------
#! /bin/sh
#
### BEGIN INIT INFO
# Provides: snortbarn
# Required-Start: $remote_fs $syslog mysql
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# X-Interactive: true
# Short-Description: Start Snort and Barnyard
### END INIT INFO
. /lib/init/vars.sh
. /lib/lsb/init-functions
mysqld_get_param() {
/usr/sbin/mysqld --print-defaults \
| tr " " "\n" \
| grep -- "--$1" \
| tail -n 1 \
| cut -d= -f2
}
do_start()
{
log_daemon_msg "Starting Snort and Barnyard" ""
# Make sure mysql has finished starting
ps_alive=0
while [ $ps_alive -lt 1 ];
do
pidfile=`mysqld_get_param pid-file`
if [ -f "$pidfile" ] && ps `cat $pidfile` >/dev/null 2>&1; then ps_alive=1; fi
sleep 1
done
/sbin/ifconfig eth1 up
/usr/local/bin/snort -q -u snort -g snort -c /etc/snort/snort.conf -i eth1 &
/usr/local/bin/barnyard2 -q -c /etc/snort/barnyard2.conf -d /var/log/snort -f snort.log -w /etc/snort/bylog.waldo \
-G /etc/snort/gen-msg.map -S /etc/snort/sid-msg.map -C /etc/snort/classification.config 2> /dev/nul &
log_end_msg 0
return 0
}
do_stop()
{
log_daemon_msg "Stopping Snort and Barnyard" ""
kill $(pidof snort) 2> /dev/nul
kill $(pidof barnyard2) 2> /dev/nul
log_end_msg 0
return 0
}
case "$1" in
start)
do_start
;;
stop)
do_stop
;;
restart)
do_stop
do_start
;;
*)
echo "Usage: snort-barn {start|stop|restart}" >&2
exit 3
;;
esac
exit 0
--------------------------------------------------------------------------------------
Lo hacemos ejecutable
# chmod +x /etc/init.d/snortbarn
# insserv -f -v snortbarn
Snort y Barnyard2 empezara autmaticamente al bootear
Nota: para hacerlo funcionar con el snorby, bastaria obviar la creacion de bd hecho en este jautu, porque con el snorby tambien lo creas.
Los datos de usuario y base de datos lo sacamos del archivo barnyard2.conf esos datos deben coincidir con los datos del archivo de snorby database.yml
Una vez echo eso e iniciar el worker, veras los datos procesados en el snorby
Fuente:
http://www.snort.org/docs
Snorby 2.2.5 en Debian Wheezy
Snorby es un frontend para IDS como es el snort, mas info en su pagina oficial
A continuacion los pasos para tener configurado el snorby, luego en otro post lo uniremos con el snort.
Primero actualizar el sistema
# aptitude update
# aptitude upgrade
Luego instalamos las paquetes necesarios
aptitude install gcc g++ build-essential libssl-dev libreadline5-dev zlib1g-dev linux-headers-generic libsqlite3-dev libxslt-dev libxml2-dev imagemagick git-core libmysqlclient-dev mysql-server libmagickwand-dev default-jre
Bajamos el wkhtmltopdf
# wget http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.10.0_rc2-static-i386.tar.bz2
# tar xvjf wkhtmltopdf-0.10.0_rc2-static-i386.tar.bz2
# cp wkhtmltopdf-i386 /usr/sbin/wkhtmltopdf
Bajamos el ruby
# wget http://ftp.ruby-lang.org//pub/ruby/1.9/ruby-1.9.2-p0.tar.gz
# tar -xvzf ruby-1.9.2-p0.tar.gz
# cd ruby-1.9.2-p0
# ./configure
# make && make install
Vemos la version:
# ruby -v
ruby 1.9.2p0 (2010-08-18 revision 29036) [i686-linux]
Instalamos los gems
# gem install thor i18n bundler
# gem install tzinfo builder memcache-client rack rack-test erubis mail text-format
# gem install rack-mount --version=0.4.0
# gem install rails sqlite3-ruby
Instalando Snorby
git clone http://github.com/Snorby/snorby.git /var/www/snorby
Editamos los archivos de configuracion
# nano /var/www/snorby/config/database.yml
snorby: &snorby
adapter: mysql
username: root
password: poner el pass de root
host: localhost
Editamos
# nano /var/www/snorby/config/snorby_config.yml
development:
domain: localhost:3000
wkhtmltopdf: /usr/sbin/wkhtmltopdf
#wkhtmltopdf: /Users/mephux/.rvm/gems/ruby-1.9.2-p0/bin/wkhtmltopdf
test:
domain: localhost:3000
wkhtmltopdf: /usr/sbin/wkhtmltopdf
production:
domain: localhost:3000
wkhtmltopdf: /usr/sbin/wkhtmltopdf
Luego de modificar vamos con la configuracion del Snorby
# cd /var/www/snorby
# bundle install
# bundle update activesupport
# bundle update railties
# bundle update rails
# rake snorby:setup
En el archivo inicial de database.yml
edit /var/www/snorby/config/database.yml pusimos el pass de root, ahora crearemos un usuario para esa base de datos
# mysql -u root -p
creat user 'snorbyuser'@'localhost' IDENTIFIED BY 'pass';
grant all privileges on snorby.* to 'snorbyuser'@'localhost' with grant option;
flush privileges;
Ahora modificamos el archivo database.yml
snorby: &snorby
adapter: mysql
username: snorbyuser
password: pass
host: localhost
Integracion de Snorby con el Apache2 Passenger
Instalamos las dependencias
aptitude install apache2 apache2-prefork-dev libapr1-dev libaprutil1-dev libopenssl-ruby libcurl4-openssl-dev
# /etc/init.d/apache2 restart
Instalamos el modulo passenger
# gem install --no-ri --no-rdoc --version 3.0.3 passenger
Instalamos el passenger modulo para apache2
Nos vamos al directorio
# cd /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.3/bin
En ese directorio ejecutamos
# ./passenger-install-apache2-module -a
Creamos el archivo con el contenido
# nano /etc/apache2/mods-available/passenger.load
LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.3/ext/apache2/mod_passenger.so
Creamos el archivo con el contenido
# nano /etc/apache2/mods-available/passenger.conf
Habilitamos los modulos
# a2enmod passenger
# a2enmod rewrite
# a2enmod ssl
# /etc/init.d/apache2 restart
Integramos Snorby con Apache2
Creamos el archivo "snorby" dentro de /etc/apache2/sites-available :
Habilitando el website :
# ln -s /etc/apache2/sites-available/snorby /etc/apache2/sites-enabled/snorby
Agregamos en el archivo /etc/apache2/ports.conf
NameVirtualHost *:90
Listen 90
# /etc/init.d/apache2 restart
Finalmente tenemos la pagina de logueo
usuario: snorby@snorby.org
pass: snorby
PD1: Si tienes algun inconveniente seria bueno revisar el archivo /var/log/apache2/error.log
PD2: Tambien es bueno correr en modo consola con el
# rails s -e production
y ver la salida por si se presenta algun detalle
PD2: Verificar que todo el contenido de /var/www/snorby pertenezca a www-data
PD3: Thanks to mephux for the support through the snorby irc channel, very helpful
Saludos
Fuente:
http://snorby.org/
http://www.corelan.be/index.php/2011/02/27/cheat-sheet-installing-snorby-2-2-with-apache2-and-suricata-with-barnyard2-on-ubuntu-10-x/
Suscribirse a:
Entradas (Atom)