SEGURIDAD

El trabajo final de Seguridad y Principios de seguridad

INSTALACIÓN DE UN SISTEMA DE AUDITORÍA noviembre 2, 2009

Archivado en: auditoria — svelasquez @ 8:47 pm
Tags:

Para linux existen varias herramientas administrativas que permiten hacer auditoría al sistema, evaluando riesgos y vulnerabilidades que se puedan convertir en un problema.

 

Entre los diferentes programas que ofrecen este servicio están: Lynis, Tiger, Nessus, Cops, Satan, entre otros.


1.  LYNIS

Cuando busqué sobre Lynis me gustó mucho lo que vi, así que pensé que sería la herramienta perfecta: sencilla, mostraba salidas amigables al usuario, se podría correr desde un medio externo sin necesidad de hacer instalación, etc. Asi que decidí usarla.

“Lynis es un script de auditoría para sistemas Unix, que puede ayudar a los auditores a hacer un repaso rápido del estado de la seguridad de un sistema. Tiene como principal ventaja, al menos a mi juicio, que puede ser ejecutado sin tener que instalarse, lo que hace que no tengamos que andar repitiendo instalaciones para analizar distintas máquinas.” Tomado de: http://www.sahw.com/wp/archivos/2008/07/01/auditoria-de-sistemas-unix-mediante-lynis/

  

Instalación:


Paso 1: Se debe crear un directorio, por ejemplo /usr/local/lynis. Entonces con el gestor de archivos o por medio de la consola lo creamos:

 mkdir /usr/local/lynis

cd /usr/local/lynis

  

Paso 2: Ahora debemos descargarlo:


wget http://downloads.rootkit.nl/lynis-1.2.7.tar.gz

 

 

Paso 3: Luego es necesario desempaquetarlo:

 

—- tar xfvz lynis-1.2.7.tar.gz


Esto creará una carpeta llamada lynis-1.2.7 en el directorio que se definió en el paso 1.

Cuando abrí la carpeta me encontré con un archivo llamado README. Allí mencionaban que esta herramienta no necesitaba ser instalada, pero que si quería instalarla debería hacer lo siguiente: crear un paquete RPM usando el archivo lynis.spec que se puede obtener de la página de Lynis. En este archivo se debe cambiar la versión por 1.2.7.

Luego encontré el primer problema: en la página me decían que hiciera unos paquetes rpm mediante un comando, pero en el archivo de linys.spec me decían que digitara otro. Al final me fui por el comando del archivo lynis.spec:

rpmbuild –ba lynis.spec

En la consola apareció un error que hacia referencia a un “README TODO” , específicamente que no se podía aplicar un comando  a “TODO” , así que desconcertado por el error decidí ir al archivo lynis.spec y buscar la palabra “TODO” y cuando la encontré al lado de la palabra “README”, decidí quitarla a ver si ese era el problema. Volví a ejecutar el comando anterior en la consola y ahora todo pareció terminar bien.

Pero en el siguiente paso no sabía que debía instalar. En las salidas de consola ví que se había escrito un archivo de tipo .rpm en /usr/src/rpm/SRPMS/lynis-1.2.7-1.src.rpm y lo instalé mediante el comando

—- rpm /ivh /usr/src/rpm/SRPMS/lynis-1.2.7-1.src.rpm

y al parecer todo instaló bien.

 

 

Paso 4: Ya no existían más pasos para hacer entonces decidí ejecutarlo con la orden “lynis” (para cuando el programa está instalado en la máquina), y como cosa rara no funcionó. Entonces decidí correrlo como si no se hubiera instalado mediante el comando :

./lynis

Aquí me salió la siguiente pantalla:
Me decía que debía incluir un parámetro para lynis, así que escogí el “–Q” que analiza sin esperar entradas de usuario. Lo ejecuté así:

./lynis –Q

Y empezó el análisis. Éstos son algunos de los pantallazos:








Todo iba muy bien pero cuando llegó al análisis de “ssh support” no siguió el escaneo. Dejé el computador prendido toda la noche a ver si en la mañana ya había terminado pero cuando me levanté todavía seguía ahí sin hacer nada.

Decidí entonces cambiarme de herramienta. Encontré a Nessus.

 

2. NESSUS

“Nessus es es un programa de escaneo de vulnerabilidades en diversos sistemas operativos. Consiste en nessusd, el daemon Nessus, que realiza el escaneo en el sistema objetivo, y nessus, el cliente (basado en consola o gráfico) que muestra el avance y reporte de los escaneos. Desde consola nessus puede ser programado para hacer escaneos programados con cron.

En operación normal, nessus comienza escaneando los puertos con nmap o con su propio escaneador de puertos para buscar puertos abiertos y después intentar varios exploits para atacarlo. Las pruebas de vulnerabilidad, disponibles como una larga lista de plugins, son escritos en NASL (Nessus Attack Scripting Language, Lenguaje de Scripting de Ataque Nessus por sus siglas en inglés), un lenguaje scripting optimizado para interacciones personalizadas en redes.

Opcionalmente, los resultados del escaneo pueden ser exportados en reportes en varios formatos, como texto plano, XML, HTML, y LaTeX. Los resultados también pueden ser guardados en una base de conocimiento para referencia en futuros escaneos de vulnerabilidades.” Tomado de http://es.wikipedia.org/wiki/Nessus

Pero cuando comencé a buscar sobre la forma de instalación no entendí bien que debía hacer, no encontraba documentación clara y me rendí. El tiempo que tengo es poco para lo mucho que debo hacer, así que necesitaba una herramienta sencilla, fácil de instalar y usar. Encontré a Tiger.


3. TIGER

“Tiger se dedica a descubrir problemas de seguridad en máquinas UNIX. Tiger, que toma el nombre de un equipo de futbol americano, es un conjunto de Bourne shell scripts, programas en C y ficheros de datos que se usan para realizar una auditoría de seguridad de sistemas UNIX. Es multiplataforma.

Se desarrolló para escanear sistemas que se querían fueran accesibles desde el exterior de un campus. Se ejecuta localmente.

El objetivo primordial de Tiger es analizar el sistema para tratar de encontrar maneras de obtener privilegios de superusuario. Su diseño parte de la hipótesis de que cualquier otro uid o gid puede ser obtenido por personas no autorizadas, es decir, que cualquier persona puede hacerse pasar por un usuario cualquiera de la máquina, excepto, por supuesto, por el superusuario.

Algunos de los chequeos que reliza Tiger son:

  • aliases de mail.
  • exportación por NFS.
  • variables de inetd.
  • variables del PATH.
  • ficheros .rhosts y .netrc.
  • permisos de ficheros y directorios.
  • avisa de la existencia de parches de mantenimiento.
  • paths que se encuentren en ficheros que den algún warning.
  • ofrece ayuda sobre todos los temas.
  • lanza automáticamente el CRACK.” Tomado de: http://albertjh.cymaho.com/?p=446

A continuación se describirá como es el proceso de instalación y uso de dicha herramienta.

Instalación :

Tiger se puede instalar fácilmente mediante el comando:

apt-get install tiger

Sus archivos de configuración están en: /etc/tiger/

Uso:

Para ejecutarlo podemos hacerlo mediante la instrucción

tiger

La aplicación ahora comenzará a escanear vulnerabilidades y dejará un reporte completo en /var/log/tiger. Dicho reporte tendrá los resultados para las alertas y fallos encontrados y en algunos casos la explicación de por qué es peligroso. Este archivo es fácil de leer y muy útil para una persona que esté auditando la seguridad en los equipos.



Aquí hay algunos screenshots del archivo de resultados, mostrando las advertencias y las fallas (warnings y fails) de seguridad






En dicho archivo se describen por ejemplo errores como: checksums de paquetes que no concuerdan, el sistema acepta redireccion de paquetes ICMP, el sistema no está protegido contra ataques syn-flood, archivos importantes que tienen permisos que no deberian ser.

Esta instalación fue fácil y sin tantas marañas como los otros programas anteriores, aunque debe reconocerse la utilidad de la interfaz gráfica de Nessus y el orden de presentación de resultados de Lynis. Aun así, para este trabajo final, me quedo con Tiger, por su facilidad, documentación y simplicidad, aspectos muy valiosos para un usuario que no es un linuxero profesional. XD
 

Una guía completa del uso de Tiger puede encontrarse en : http://sidux.com/index.php?module=Wikula&tag=Tiger

 

CONFIGURACIÓN DE FIREWALL octubre 30, 2009

Archivado en: Uncategorized — svelasquez @ 11:04 pm

A continuación se describirá como configurar el firewall usando iptables para el servidor web.

En internet existen muchas recomendaciones y scripts para configurar el firewall de los servidores. Específicamente voy a trabajar con un script obtenido de la página web:

http://www.sns.ias.edu/~jns/wp/2006/01/12/iptables-example-rulesets/

Este es un script que describe paso a paso la protección de puertos y servicios para un usuario. Se harán modificaciones para adecuarlo al servidor.       Este archivo lo copiamos directamente desde el navegador y lo pegamos en un documento en blanco. Las líneas que se deben cambiar son:

 

  IFACE=”eth0,ppp0 …… as appropriate” En mi caso esta línea se debe cambiar por  IFACE=”eth2″

IPADDR=”your_ip_address_here”. Se debe cambiar por la IP del servidor. En este caso la dirección es 192.168.0.101/24

NAMESERVER_1=”x.x.x.x” Aquí se debe poner la dirección IP del DNS. Como no tenemos servidor DNS implementado pondré la de localhost: 127.0.0.1/24

NAMESERVER_2=”x.x.x.x” se debe eliminar esta línea.

BROADCAST=”x.x.x.255″ se debe cambiar por BROADCAST=”255.255.255.255″

 

Se debe eliminar las líneas:

  # Refuse packets claiming to be from a Class C private network.

  iptables -A INPUT  -i $IFACE -s $CLASS_C -j DROP

    (Pues para las pruebas nos conectaremos con una dirección clase c).

 y también las líneas:

  iptables -A INPUT -i $IFACE -p udp -s $NAMESERVER_2 --sport 53 -m state --state ESTABLISHED -j ACCEPT

  iptables -A OUTPUT -o $IFACE -p udp -d $NAMESERVER_2 --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT

 

Como se trata de un servidor web, el Puerto 80 en la cadena de input debe estar abierto para conexiones nuevas o establecidas,

mientras que en la de output solo se debe permitir a conexiones establecidas.

  iptables -A INPUT  -i $IFACE -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT

  iptables -A OUTPUT -o $IFACE -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT

      Lo mismo aplica para el Puerto 443:

    iptables -A INPUT  -i $IFACE -p tcp --dport 443 -m state --state NEW, ESTABLISHED -j ACCEPT

    iptables -A OUTPUT -o $IFACE -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT

 

   Se debe guardar el archivo con el nombre que desee. En mi caso lo guardé en el Desktop con el nombre de "firewall".

Se deben cambiar los permisos de dicho archivo para que pueda ser ejecutado:

----> cd Desktop
----> chmod 700 firewall

 

Por prevención eliminamos las reglas existentes:


  ----> Iptables -F

 Ahora lo debemos ejecutar mediante:

----> ./firewall

 

Si deseamos ver las reglas que hemos creado en el firewall lo hacemos mediante:

—-> iptables -L 

 

     Prueba

Si tenemos otra máquina virtual, podemos acceder a nuestro servidor web mediante el navegador.  Para ello debemos configurarle una dirección IP que haga parte de la misma red.  Como la maquina virtual posee la IP 192.168.0.103/24, entonces en la máquina de prueba se configura la IP 192.168.0.104/24.

Buscamos mediante el gestor de archivos el documento /etc/hosts.  Y añadimos una entrada así:

    192.168.0.103  velasquez.seguridad.net

Guardamos el archivo y abrimos el navegador.  Allí digitamos http://velasquez.seguridad.net  y nos muestra la pagina inicial del servidor web que configuramos.

 


			

 

 

Si intentamos  conectarnos a https://velasquez.seguridad.net, es decir en modo seguro, vamos a tener un mensaje de error debido a que el certificado digital del servidor no está firmado por una entidad reconocida.

 

     Esto se corrige obteniendo un certificado digital otorgado por una entidad certificadora reconocida.

Con esto hemos configurado el firewall y terminado el trabajo final!!!

 

INSTALACIÓN DE UN SERVIDOR WEB SEGURO CON CERTIFICADO DIGITAL octubre 30, 2009

Archivado en: Uncategorized — svelasquez @ 10:21 pm
Tags: ,

En esta entrada describiré como se debe montar un servidor web seguro, y la elaboración de su certificado digital.  

El servidor a usar será Apache 2.  Para el correcto funcionamiento de éste se necesita que cuente con un certificado digital de seguridad.  Estos certificados son expedidos por entidades certificadoras, llamadas CA, como Verisign, y en Colombia, Certicámaras.  Lo que haría una empresa que quisiera asegurar su  servidor es crear una petición de certificado (archivo con extensión.crs) y envariala a una de éstas entidades, las cuales le devolverán el certificado digital que debe instalar en el servidor. Este certificado tiene la extensión .crt.  

Lo que voy a hacer para mostar  como se debe configurar el servidor,  es crear un certificado digital  autofirmado para una entidad certificadora ficticia,  luego firmar la petición de certificado del servidor y así no  tener que pagar por dicho certificado.  (OJO: Solo fines académicos)

Utilizaré openssl para hacer los certificados. Así que comencemos:   

 Paso 1: Instalar openssl   

Openssl se puede instalar  mediante  la instrucción:  

—–> aptitude install openssl

 Paso 2: Crear directorios   

Es recomnedable que creemos directorios para organizar los certificados que generemos y no llegar a confundirnos.  Crearé una carpeta en root llamada “Certificados” y dentro de ella dos directorios más, llamados “CA” y   “servidor”.  Ésto se logra mediante las instrucciones:  

—–> mkdir Certificados

—–> cd Certificados

—–> mkdir CA

—–> mkdir servidor


   Paso 3: Crear el certificado autofirmado de la entidad certificadora
  

Para crear el certificado se debe hacer primero la llave privada de la entidad guardándola en la carpeta CA creada anteriormente mediante las instrucciones:  

 —–> cd Certificados/CA

 —–> openssl genrsa -des3 -out ca_sergio.key 1024

Ésto significa que en la carpeta “CA” nos generará un archivo llamado ca_sergio.key que contendrá la llave hecha con los siguientes parámetros:  

  • algoritmo de cifrado : des3
  • tamaño de la llave en bits: 1024

  

Después tendremos que digitar un password.  En este caso será:   “entidad”.  Éste password es para asegurar la llave privada de la entidad certificadora.  


Ahora debemos generar el certificado digital.  Este certificado será firmado con la llave  obtenida anteriormente:  

—–> openssl req -new -x509 -days 365 -key ca_sergio.key -out ca_sergio.crt

Con esta instrucción hemos creado un nuevo  certificado  para la entidad certificadora llamado ca_sergio.crt y firmado con la llave que creamos anteriormente ca_sergio-key  

Otros parámetros importantes de la instrucción son:  

  • estándar del certificado: x509
  • Vigencia del certificado: 365 dias

Ahora se nos pedirá el password que le pusimos a la llave, y  luego tendremos que completar la información del certificado como se muestra a continuación:  

  • Country Name (2 letter code) [AU]:CO
  • State or Province Name (full name) [Some-State]:Antioquia
  • Locality Name (eg, city) []:Medellin
  • Organization Name (eg, company) [Internet Widgits Pty Ltd]:OREX
  • Organizational Unit Name (eg, section) []:Unidad de Certificación
  • Common Name (eg, YOUR name) []:www.orex.com.co
  • Email Address []:info@orex.com.co

    
 

  

Con esto ha quedado listo el certificado autofirmado de la entidad certificadora.
   


Paso 3: Crear el certificado para el servidor web
  

Ahora se debe crear el certificado para el servidor web, pero primero necesitamos  su llave privada :
Nos debemos ubicar en la carpeta servidor:  

—–> cd Certificados/servidor

Luego digitamos:  

—–> openssl genrsa -des3 -out srv_sergio.key 1024

Con esto hemos creado un archivo de lave llamado srv_sergio.key donde:  

  • El algoritmo de encripción es des3
  • Tamaño de la llave en bits:1024

    

Luego se debe crear la petición de certificado digital del servidor web, eso se logra mediante el comando:   

—–> openssl req -new -key srv_sergio.key -out srv_sergio.crs

También nos pide un password para proteger la llave privada del servidor. En este caso ingresé “servidor”.  

Debemos introducir la información de la petición de certificado digital como:  

  •  Country Name (2 letter code) [AU]:CO
  • State or Province Name (full name) [Some-State]:Antioquia
  • Locality Name (eg, city) []:Medellín
  • Organization Name (eg, company) [Internet Widgits Pty Ltd]:Velasquez s.a.
  • Organizational Unit Name (eg, section) []: Departamento de Certificación
  • Common Name (eg, YOUR name) []:velasquez.seguridad.net
  • Email Address []:sergio@velasquez.seguridad.net
  • Please enter the following ‘extra’ attributes to be sent with your certificate request
  • A challenge password []:
  • An optional company name []:

  

    
 

Una vez que tenemos la petición anterior podemos generar, con el certificado autofimado de la CA,  el certificado del servidor:  

—–>  openssl x509 -req -in srv_sergio.crs -out srv_sergio.crt -sha1 -CA ../CA/ca_sergio.crt -CAkey ../CA/ca_sergio.key -CAcreateserial -days 365  

Los valores especificados en dicha instrucción corresponden a:
  

  • Petición de certificado del servidor: -req -in srv_sergio.crs
  • Algoritmo hash: sha1
  • Certificado de la CA:  CA ../CA/ca_sergio.crt
  • Llave privada de la CA: CAkey ../CA/ca_sergio.key
  • Vigencia del certificado: 365 días

    

  Luego saldrá en la consola una confirmación y la información que contiene el certificado:  

 Signature ok  

 subject=/C=CO/ST=Antioquia/L=Medellin/O=Velasquez s.a./OU=Departamento de  Certificación/CN=velasquez.seguridad.net/emailAddress=sergio@velasquez.seguridad.net  

 Debemos  ingresar  la contraseña de la llave privada de la entidad (“entidad”), y con ésto hemos completado la  generación del  certificado srv_sergio.crt

  
 

  

   
 


     Paso 4: Instalación y configuración del servidor  

El servidor a usar será Apache 2. La forma de instalarlo es:  

—–> aptitude install apache2  

Se debe crear una carpeta llamada ssl en /etc/apache2/ y  allí copiar los archivos srv_sergio.crt y srv_sergio.key creadas anteriormente.
En esa misma carpeta se debe generar una archivo  nombrado  “nombredelservidor.pem”, es decir velasquez.seguridad.net.pem. 

Éste archivo contiene la llave y el certificado  que pusimos en la carpeta. El comando para hacer esto es cat, y la instrucción completa sería:  
—–> cat srv_sergio.key srv_sergio.crt >velasquez.seguridad.net.pem  

A dicho archivo se le deben adicionar 3 líneas muy importantes para crear la llave sin password, pues sería muy molesto que cada que el

servidor Apache inicie se pida la llave. Dichas líneas son:

—–> cp srv_sergio.key srv_sergio.bak

—–> cp velasquez.seguridad.net.pem velasquez.seguridad.net.pem.bak

—–> openssl rsa -in srv_sergio.key -out no.pwd.srv_sergio.key

Nótese que el archivo con nombre “no.pwd.srv_sergio.key” se convertirá en la llave sin password que usará el servidor.  

Se requiere crear  un archivo nombrado como nombredominio.pem con la llave que no requiere password:  

—–> cat no.pwd.srv_sergio.key srv_sergio.crt >velasquez.seguridad.net.pem  

El servidor Apache 2 buscará el certificado y la llave en el archivo que acabamos de crear y no pedirá la clave cada que se inicie. 

 
   P
aso 5: Configuración del sitio ssl

   Ahora se debe configurar el sitio ssl, para ello necesitamos habilitar  el módulo ssl del apache:  

—–> a2enmod ssl  

y aparecerá un mensaje que dice: 


—–> Module ssl installed; run /etc/init.d/apache2 force-reload to enable.

Ahora debemos buscar un archivo llamado “default” en la carpeta etc/apache2/sites-available/.  Este archivo es un modelo de como se debe configurar el sitio ssl. Para no ir a destruirlo creamos una copia  y la pegamos en el mismo lugar pero le cambiamos el nombre a velasquez.seguridad.net:  

—–> cp /etc/apache2/sites-available/default /etc/apache2/sites-available/velasquez.seguridad.net  

En dicho archivo modificamos las líneas:  

NameVirtualHost velasquez.seguridad.net:443
<VirtualHost velasquez.seguridad.net:443> Este es el dominio del sitio y el puerto https

ServerAdmin sergio@velasquez.seguridad.net   Es el administrador del dominio. 

 Y añadimos las líneas:  

SSLEngine on
SSLCertificateFile    /etc/apache2/ssl/velasquez.seguridad.net.pem  


Se debe habilitar el sitio en la carpeta “etc/apache2/sites-enabled/” mediante  el comando:  

—–> a2ensite velasquez.seguridad.net
  

Paso 6: Pruebas  

Para poder probar el servidor  debemos  asociar nuestro dominio con la dirección loopback 127.0.0.1, así que en el archivo /etc/hosts se debe agregar la línea:

 127.0.0.1 velasquez.seguridad.net 

se debe reiniciar el servidor: 

—–> /etc/init.d/apache2 restart


  
En un browser como Mozilla entramos a la página que corresponde a nuestro dominio: 

https://velasquez.seguridad.net

Aparece una ventana de error indicando que la conexión segura falló, pues el certificado está firmado por una entidad certificadora no reconocida.  


Entonces debemos instalar ese certificado.  Se debe dar click en agregar excepción.  


Luego aparecerá una ventana preguntándonos si deseamos confirmar la excepción.  

  

      ¿Cómo veo el certificado digital?  

En esta misma ventana damos click en el botón ver, y aparece la información del certificado.  


Si nos pasamos a la pestaña de detalles podemos ver la información detallada del issuer y del subject dando click en esos campos:  



Una vez la confirmemos,  el certificado quedará instalado y no saldrá nunca más saldrá la ventana de error inicial y  se puede ver la página principal del servidor. Aparece un candado en la parte inferior  que significa que se ha establecido una conexión segura.  


Así se logra que el servidor web este seguro y  la trasmisión de datos sea cifrada. 

 

PESQUISA BIBLIOGRÁFICA octubre 30, 2009

Archivado en: servidor web — svelasquez @ 9:45 pm
Tags:

En medio de tantos trabajos y exámenes finales, y después de que ningún trabajo me funciona, decidí empezar con éste.   

 Aquí presento la pesquisa bibliográfica:  

1. Instalación y configuración de un servidor web (en este caso apache2):
  

Disponible en: Vínculo corto  

 
 

 

 
 

  •   Título: “Instalar y configurar un servidor web Apache en Ubuntu.”  
  • Autor: Esta entrada fue publicada por un usuario llamado “Juan”. La fuente de donde “Juan” obtuvo los datos es: el Instituto de tecnologías educativas en España, alojados en Vínculo corto
  • Fecha de consulta: Domingo, 25 de Octubre de 2009 a las 7:58  a.m.
  • Resumen: Esta entrada de blog se convierte en un manual en el que paso a paso se detalla la configuración de un servidor Apache 2 en Ubuntu. Abarca también la organización de carpetas o directorios que almacenarán los sitios a alojar y el tema de los certificados digitales, su creación e instalación. El contenido es bueno, detallado y amplio.  Está bien escrito aunque al lector le gustaría encontrar más screenshots. Es muy importante para el trabajo a desarrollar porque aquí se describe cuales son los comandos para dejar el servidor web funcionando sin problemas. Puntuación: 4.0

  
 

2. Configuración del firewall (Iptables)
 

 Disponible en: vínculo corto
 

 
 

 

  • Título: ¨ Quick HOWTO : Ch14 : Linux Firewalls Using iptables¨
  • Autor: (No aparece)
  • Fecha de consulta: Domingo, 25 de Octubre de 2009 a las 8:26 a.m.
  • Resumen: Es un manual muy interesante para la entender y familiarizarse con iptables. Abarca desde la explicación de qué es hasta las reglas que se deben armar para permitir diferentes servicios como ssh, web, etc. Aunque es largo, es muy provechoso, bien escrito y coherente. Puntuación: 4.7

3. Instalación y configuración del servicio de detección de intrusos (SNORT)  

 
 

Disponible en: Vínculo corto  

 

  • Título: ¨Snort 2.8.4.1 Ubuntu 9. Installation Guide ¨
  • Autor: Nick Moore
  • Fecha de consulta: Domingo, 25 de Octubre de 2009 a las 8:52 a.m.
  • Resumen: Es un manual en formato pdf donde se describe la forma de instalar y configurar SNORT. También abarca la instalación y configuración de MySql y BASE, haciendo todo esto desde una maquina virtual en VMWare. Está bien estructurado, bien presentado, es ordenado y claro.  Puntuación: 4.5

 
 

4. Instalación y configuración de interfaz de auditoría de detección de Intrusos (BASE )
 

 Disponible en: Vínculo corto
  

 

  
 

  • Título:  ¨ Intrusion Detection: Snort, Base, MySQL, and Apache2 On Ubuntu 7.10 (Gutsy Gibbon) (Updated)
  • Autor: ( Usuario llamado volksman)
  • Fecha de consulta: Domingo, 25 de Octubre de  2009 a las 9:11 a.m.
  • Resumen:  Es un  post excelente. Describe la forma de  instalar y configurar SNORT,  Base y MySQL en Ubuntu. El contenido está muy bien organizado, se separan las acciones por pasos. Sería bueno que incluyera screenshots. El diseño del portal puede mejorarse para ser más amigable. Este post sirvió para la mayoría de instalaciones del trabajo final. Tiene 2 errores en cuanto a cambiarse de directorios, pero no es nada grave. Muy útil!.  Puntuación: 4.6

  
 

 
 

 5.  Instalación de SNORT y BASE

Disponible en: Vínculo corto  

 
 

 

  • Título:  ¨ How to install Snort + BASE, a intrusion detection system for Debian/Ubuntu¨
  • Autor:  (Usuario llamado funk)
  • Fecha de consulta: Domingo, 25 de Octubre de  2009 a las 9:24 a.m.
  • Resumen:  Es un  post muy completo que describe la forma de instalación de SNORT y BASE en Ubuntu/Debian. Es muy parecido al recurso enunciado en el numeral anterior. Este mejora la presentación de contenidos pero no explica mucho más allá del anterior.  El contenido está bien estructurado, explicado y ordenado, no posee screenshots.    Puntuación: 4.4

 
 

Éstas son sólo otras de las páginas que servirán como soporte al desarrollo de este trabajo:  

 

INSTALACIÓN Y CONFIGURACIÓN DE UN SISTEMA DE DETECCIÓN DE INTRUSOS (SNORT) octubre 30, 2009

Archivado en: SNORT — svelasquez @ 9:12 pm
Tags: ,

En este post se detalla la forma de instalar un sistema de detección de intrusos SNORT en Ubuntu, luego de haber configurado el servidor web seguro.

Paso 1: Obtener privilegios de Súper-usuario

El primer paso es contar con privilegios de súper-usuario. Esto se logra mediante el comando:

 ----->sudo su –

Paso 2: Instalar algunos paquetes

EL siguiente comando instalará varios de los paquetes necesarios para que SNORT y BASE funcionen correctamente.

----->apt-get install libpcap0.8-dev libmysqlclient15-dev mysql-client-5.0 mysql-server-5.0 bison flex
      libapache2-mod-php5 php5-gd php5-mysql libphp-adodb php-pear libc6-dev g++ gcc pcregrep libpcre3-dev

Durante la instalación se harán algunas preguntas como si desea configurar una base de datos a la que snort-mysql enviará registros? A esto respondemos que no, pues la base de datos la configuraremos manualmente después.

Se debe ingresar una contraseña para el usuario root de mysql.

Se debe confirmar dicha contraseña:

Luego se debe esperar a que se instalen los paquetes restantes.

Paso 3: Descargar y compilar SNORT.

Una vez terminada la instalación de paquetes necesarios, se debe descargar la última versión de SNORT (2.8.5.1) y las reglas (snortrules-snapshot-CURRENT).     

Éstas las podemos encontrar en la página web de SNORT : http://www.snort.org/downloads. Para descargar las reglas debemos contar con una cuenta, por lo que la descarga de las reglas es mejor hacerla mediante el gestor de descargas del navegador.

Debemos ubicarnos en el directorio /usr/src/

—–>  cd /usr/src

 La instrucción para la descarga de SNORT es

  ----> wget http://dl.snort.org/snort-current/snort-2.8.5.1.tar.gz
   Ahora podemos entrar a la página de SNORT para descargar las reglas. La URL en donde pueden conseguirse es:
    Escogemos la opción guardar y seleccionamos  el  directorio /usr/src/

   A continuación se deben desempaquetar y compilar dichos archivos mediante las siguientes instrucciones:

    —-> tar zxvf snort-2.8.5.1.tar.gz
    —-> cd snort-2.8.5.1
    —-> tar zxvf ../snortrules-snapshot-CURRENT.tar.gz

   Estas operaciones pueden tardar unos minutos.

   Luego se deben compilar mediante:

    —-> ./configure -enable-dynamicplugin –with-mysql
    —-> make
    —-> make install

   En caso de no tener instalado make, se puede instalar mediante el comando

     ---->apt-get install make
 
En este punto se debe configurar SNORT. Para ello podemos ejecutar los siguientes comandos:
----> mkdir /etc/snort /etc/snort/rules /var/log/snort ----> cd /usr/src/snort-2.8.5.1/etc ----> cp * /etc/snort/ ----> cd ../rules ----> cp * /etc/snort/rules
En los comandos anteriores se crean las carpetas necesarias para la configuración de SNORT y se copian los archivos y las reglas a las carpetas correspondientes. Se debe abrir el archivo snort.conf ubicado en /etc/snort/snort.conf para modificar la ruta donde SNORT encontrará las reglas, cambiando "var RULE_PATH ../rules" a "var RULE_PATH /etc/snort/rules" También se debe configurar en SNORT la base de datos necesaria. Para esto se descomenta la línea # output database: log, mysql, user="... Y se reemplazan por los valores: "User=snort", "password=snort", "dbname=snort". Estos valores se deben tener presentes

    a la hora de configurar la base de datos. Una vez hecho esto se debe guardar el archivo y cerrarlo.    

  Paso 4: Configurar MySQL

Para configurar MySQL se necesita tener permisos de súper-usuario, lo cual se logra así;

  —-> mysql -u root –p

   Y debemos ingresar la contraseña para el usuario root de la base de datos. Ahora debemos crear la base de datos   que  se  configuraron en SNORT. (usuario, password y nombre de la base de datos).

  —-> create database snort;
  —-> grant all privileges on snort.* to ‘snort’@'localhost’ identified by ‘snort’;
  —-> exit

   Ya hemos creado la base de datos pero no hay tablas en ella, así que podemos usar el schema de SNORT:

 
  —-> mysql -D snort -u snort -p < /usr/src/snort-2.8.5.1/schemas/create_mysql
 

   Paso 5: Prueba de SNORT

   Ahora se debe probar el correcto funcionamiento. Para ello digitamos:

  —-> snort -c /etc/snort/snort.conf

   Si todo está bien configurado podrá ver un cerdo hecho en caracteres ASCII en la pantalla de la consola, la cual se

   queda congelada.

 

     Para recuperar la consola presione Ctrl+c. Así concluye la instalación y configuración de SNORT.

 

INSTALACIÓN Y CONFIGURACIÓN DE BASE octubre 30, 2009

Archivado en: BASE,SNORT — svelasquez @ 7:11 pm
Tags: , ,

BASE (Basic Analysis and Security Engine) es una interfaz web que permite ver las amenazas y ataques que se intentan hacer a nuestro servidor web. En este post se describe la forma de instalarlo una ves tenemos listo el servidor y se ha configurado SNORT correctamente.
 

     Paso 1: Descarga.
 

El primer paso es descargar la última versión de SNORT. En este caso la última versión es la 1.4.4. Podemos descargarla mediante el navegador desde la página:
 

O en la terminal digitamos: 

—-> wget http://easynews.dl.sourceforge.net/sourceforge/secureideas/base-1.3.9.tar.gz 

Este archivo se debe ubicar en el directorio raíz donde se tiene el sitio, en mi caso /var/www/ 

     Paso 2: Descomprimir el archivo


Ahora es necesario descomprimir el archivo y asignarle permisos especiales al directorio, así:
—-> cd /var/www/
—-> tar zxvf ~/base-1.4.4.tar.gz
—-> chmod 757 base-1.4.4

 

     Paso 3: Activar módulos
 

Se deben activar algunos módulos que base necesita para funcionar. Si no se cuenta con pear, o si la versión es más antigua que la necesaria, se puede actualizar mediante: 

—->pear upgrade –alldeps-pear 

Luego:

—-> pear install Image_Color

—-> pear install Image_Canvas-alpha 

—-> pear install Image_Graph-alpha

—-> pear install mail

—-> pear install Mail_Mime

     Paso 4: Configuración de BASE
 

Ahora debemos configurar BASE abriendo el navegador y digitando http://YOUR.IP.ADDRESS/base-1.4.49/setup, que en mi caso sería
 http://velasquez.seguridad.net/base-1.4.4/setup


Se visualizará una pantalla inicial de BASE en donde se podrá seleccionar el lenguaje. Se debe hacer click en continuar.

      Paso 4.1:

Se debe ingresar la ruta para ADODB.   ADODB es un conjunto de librerías de bases de datos para PHP. La dirección que se debe ingresar allí es:

/usr/share/php/adodb.
 


 

     Paso 4.2: Introducir criterios de la base de datos.
 

Se debe seleccionar en el tipo de Base de datos la opción MySQL, digitar el nombre de la base de datos, que n mi caso se llama “snort” digitar el Database Host como “localhost”, y el nombre de usuario y contraseña de ese usuario para SNORT, que en mi caso son “snort” y “snort” respectivamente. Luego debemos hacer click en el botón para enviar los datos.
 


 

     Paso 4.3: ¿Autenticación?

Se presenta una pantalla donde se pregunta si desea control de autenticación a BASE. En mi caso lo dejé sin autenticación. Si este es el caso se debe hacer click en el botón de enviar, pero si desea más seguridad puede fortalecerla ingresando un nombre de usuaro y una contraseña y luego marcando la opción de manejo de autenticación.
 


 

      Paso 4.4: Crear configuraciones automáticas
 

Se debe hacer click en el botón de Create BASE AG.
Luego de esto en la parte inferior aparecerá un botón que dirá Now continue to step 5. Se debe hacer click ahí. 


 


 

     Paso 5: Click en Main Page.
 

Se recomienda marcar esta página en el browser.
 


 

Ahora hemos configurado BASE pero no es accesible desde https://localhost/velasquez.  Para hacer cabiamos el nombre de la carpeta  /var/www/base-1.4.4 a  /var/www/velasquez.

Tambien debemos abrir el archivo base_conf.php y modificar las líneas:

$BASE_urlpath = ‘/velasquez’;
$DBlib_path = ‘/usr/share/php/adodb’;
$alert_dbname   = ‘snort’;
$alert_password = ‘snort’; 
Luego se deben cambiar de nuevo los permisos al directorio de BASE, para ello digitamos en la consola:
 

—> chmod 755 /var/www/velasquez
 

     Paso 6: Probar BASE

Para probar el funcionamiento de BASE debemos iniciar desde la terminal el SNORT: 

—-> snort -c /etc/snort/snort.conf -i eth2 –D

En mi caso la interfaz de red se llama eth2, así que esto es un parámetro que debe cambiar dependiendo de cómo se llame la interfaz. 

Esta línea se puede añadir al archivo /etc/rc.local si se quiere iniciar SNORT cada que se inicie la máquina. 

Para saber si el SNORT está corriendo se debe digitar en la terminal:
 

—-> ps aux | grep snort 

Y debe aparecer una línea que dice :

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

Ahora abrimos BASE en el navegador y nos fijamos en el número de alertas o entradas a la base de datos.


—-> nmap -sU localhost -T5
—-> nmap -PU localhost
—-> nmap -sT localhost
—-> nmap -PU localhost
—-> nmap -sO localhost
—-> nmap -sF localhost

   Si no se tiene nmap se puede instalar mediante:

—-> Apt-get install nmap  

Ahora volvemos a la página de BASE, digitando https://localhost/velasquez y se puede apreciar las detecciones de ataques. BASE ofrece una interfaz sencilla y completa para la visualización de estas alertas, ya sea en lista o una por una. Se pueden crear reglas personalizadas para la detección de ataques específicos, incluyéndolas en el archivo local.rules.
 

 

 

 

otra

otra2

otra3


 

   Con esto ha quedado configurado BASE !

 

 

 
Seguir

Get every new post delivered to your Inbox.