martes, 4 de noviembre de 2008

INSTALACION Y CONFIGURACION DE FIREWALL (IPTABLES)

El servicio de Iptables normalmente viene instalado en el sistema operativo, así que no requiere de instalación alguna.

Para configurar la protección de los puertos y los servicios se procede a crear un script que contenga las reglas de firewall. Para realizar esto se ejecuta lo siguiente:

# kwrite reglasfw // Abre el archivo para las reglas de FW

En este archivo se debe agregar lo siguiente:

iptables -F
iptables –A INPUT –s 200.3.144.5 –p tcp –-dport 80 –j ACCEPT
iptables –A INPUT –s 200.3.144.42 –p tcp –-dport 80 –j ACCEPT
iptables –A INPUT –s 10.44.8.95 –p tcp –-dport 80 –j ACCEPT
iptables –A INPUT –s 10.44.8.120 –p tcp –-dport 80 –j ACCEPT
iptables –A INPUT –s 127.0.0.1 –p tcp –-dport 80 –j ACCEPT

iptables –A INPUT –s 200.3.144.5 –p tcp –-dport 443 –j ACCEPT
iptables –A INPUT –s 200.3.144.42 –p tcp –-dport 443 –j ACCEPT
iptables –A INPUT –s 10.44.8.95 –p tcp –-dport 443 –j ACCEPT
iptables –A INPUT –s 10.44.8.120 –p tcp –-dport 443 –j ACCEPT
iptables –A INPUT –s 127.0.0.1 –p tcp –-dport 443 –j ACCEPT

iptables –A INPUT –s 127.0.0.1 –p tcp –-dport 23 –j ACCEPT
iptables –A INPUT –s 0/0 –p tcp –-dport 23 –j DROP
iptables –A INPUT –s 10.44.8.0/24 –p tcp –-dport 22 –j ACCEPT
iptables –A INPUT –s 10.44.0.0/16 –p tcp –-dport 20:21 –j ACCEPT
iptables -L

Luego de realizar esto se ejecuta el script en la terminal de la siguiente manera:

# bash reglasfw // Ejecuta las reglas contenidas en el archivo


Para comprobar que las reglas de firewall están buenas, se emplea nmap para verificar el estado de los puertos. Para realizar esto se ejecuta lo siguiente:

# nmap –sT 127.0.0.1

La salida de nmap debe ser la siguiente:

PORT STATE SERVICE

80/tcp open http
443/tcp open https
3306/tcp open mysql

domingo, 2 de noviembre de 2008

INSTALACION DEL SERVIDOR WEB CON CERTIFICADO DE SEGURIDAD

El servidor web a utilizar es Apache2. Para realizar la instalación se ejecuta lo siguiente:

# apt-get install apache2 libapache2-mod-php5 php5-gd \ php5-mysql
// Instalación del servidor apache, y módulos de integración con php


Luego de esto se debe configurar el acceso al portal de BASE por medio de una contraseña. Para realizar esto se ejecuta lo siguiente:

# kwrite /var/www/base/.htaccess // Crea y edita el fichero

Se le agregan las siguientes líneas:

AuthType Basic
AuthName “Solo usuarios autorizados”
AuthUserFile /var/www/base/claves
require valid-user


# cd /var/www/base // Se situa en el directorio que va contener las contraseñas de acceso

# htpasswd –c /var/www/base/claves


Al ejecutar esta última línea el sistema nos pide la contraseña que se va asignar para el usuario de BASE especificado. La opción -c crea el archivo de contraseñas “claves” si no existe, pero si ya existe lo sobrescribe.

Para crear el certificado de seguridad que va emplear el servidor web, se debe realizar lo siguiente:

o Creación de una entidad Certificadora:

Para realizar esto se debe crear una llave privada y un certificado asociado a ésta. El proceso es el siguiente:

# mkdir /etc/apache2/CA // Creación del directorio que va contener los datos de la entidad certificadora (CA)

# cd /etc/apache2/CA // Se sitúa en el directorio de la CA

# openssl genrsa -des3 -out CA.key 1024 // Creación de la llave privada de la CA

# openssl req -new -x509 -days 3650 -key CA.key -out CA.crt
// Creación del certificado de la CA


o Creación de la llave privada del servidor:


# mkdir /etc/apache2/certificado // Creación del directorio que va contener los datos del certificado

# cd /etc/apache2/certificado // Se sitúa en el directorio del certificado de seguridad

# openssl genrsa -des3 -out server.key 1024 // Creación de la llave privada del servidor


o Creación de la petición del servidor hacia la entidad certificadora:


# openssl req -new -key server.key -out server.csr


Luego de tener esto implementado se procede a crear el certificado de seguridad por parte de la entidad certificadora creada anteriormente:

# openssl x509 -req -in server.csr -out server.crt -sha1 -CA \ /etc/apache2/CA/CA.crt -CAkey /etc/apache2/CA/CA.key \
-CAcreateserial -days 365050


Cada vez que se inicia el servidor web, el sistema siempre nos pide la contraseña de acceso para la clave RSA creada anteriormente y ello requiere la interacción con el administrador para poder acceder al servicio, es por eso que resulta conveniente generar una clave sin Triple DES, la cual permite iniciar normalmente el servidor apache sin necesidad de una contraseña. Para realizar esto se ejecuta lo siguiente:

# openssl rsa -in server.key –out server.pem //Genera la clave

Después de tener el certificado de seguridad listo, se procede a configurar el archivo por defecto que viene en apache2 para agregar los sitios web válidos, el cual se encuentra en la siguiente ruta: /etc/apache2/sites-available/default:

# kwrite /etc/apache2/sites-available/default

En este archivo se deben editar unas líneas para poder activar la autenticación al portal BASE, la integración con los certificados de seguridad, y la configuración de los sitios virtuales. Para realizar esto se procede de la siguiente manera:





























Luego se procede a la integración del modulo ssl de la siguiente manera:


# a2enmod

Al realizar esto, el sistema nos pregunta por el modulo que se quiere integrar, y simplemente se digita ssl, el cual es el modulo que se quiere activar.

Después de tener la configuración bien hecha se procede a iniciar el servidor web, teniendo en cuenta que se debe recargar el modulo ssl que se activó anteriormente, para realizar esto se ejecuta lo siguiente:

# /etc/init.d/apache2 force-reload // Recarga los módulos de apache

# /etc/init.d/apache2 start // Inicia el servidor web


SISTEMA DE DETECCION DE INTRUSOS

Instalación y configuración de Snort:


Para instalar el programa de detección de intrusos, se debe realizar lo siguiente:

# apt-get install snort // Instalación de snort

Los directorios y archivos que se crean tras la instalación son los siguientes:


/etc/snort --> En este directorio se encuentra el archivo de configuración snort.conf, en el cual se configuran las opciones más generales de snort.

/etc/snort/rules --> Contiene los archivos con las reglas por defecto que vienen preinstaladas en snort.

/var/log/snort --> Contiene las alertas almacenadas en bitácoras. En este directorio se puede encontrar el archivo alert, el cual contiene las alertas generadas por snort.

Luego de tener esto en claro, se procede a editar el archivo de configuración /etc/snort/snort.conf:

# kwrite /etc/snort/snort.conf & // Edita el archivo con kwrite en segundo plano


Se deben editar las siguientes líneas:

- var RULE_PATH /etc/snort/rules
- output database:log,mysql, user=snort \ password=Contraseña_de_BBDD dbname=snort host=localhost


Al realizar esto se especifica el lugar que se debe buscar para usar las reglas de detección, y la salida de las alertas la cual se registran en una base de datos MySQL llamada snort con su respectiva contraseña.

Ya teniendo configurado snort, se procede a inic
iar el servicio:

# snort -i etho -c /etc/snort/snort.conf // Se inicia snort y se especifica la interface de entrada.




Instalación y configuración de MySQL:

Para instalar el servidor de base de datos se procede a realizar lo siguiente:


# apt-get install mysql-client-5.0 mysql-server-5.0 // Instalación de mysql



Para iniciar el servidor se ejecuta lo siguiente:

# /etc/init.d/mysqld start


Después de iniciar el servicio se procede a ingresar a la shell de MySQL de la siguiente manera:

# mysql



Luego se procede a crear la base de datos (BBDD) que snort utilizará:


mysql> CREATE DATABASE snort;


Es recomendable asignar una contraseña para entrar al servidor MySQL. Esto se hace de la siguiente manera suponiendo que el usuario de la base de datos es root:


mysql> SET PASSWORD FOR \ root@localhost=PASSWORD(‘Contraseña_de_la_BBDD’);
// Se asigna la contraseña para el ingreso a labase de datos


Luego de esto se le deben asignar los mismos permisos del usuario root al usuario snort para que tenga el acceso a la base de datos. Esto se realiza de la siguiente manera:

mysql> grant all privileges on snort.* to ‘snort’@’localhost’ \ identified by ‘Contraseña_de_la_BBDD’;
// Le asigna permisos de acceso a la BBDD al usuario snort

mysql> exit // Se sale de la shell



Ahora se procede a crear las tablas de la base de datos que snort utilizará para mostrar las alertas:

# cd /usr/src // Se Situa en el directorio donde se va a descargar el codigo fuente de snort

# wget http://www.snort.org/dl/snort-2.8.3.1.tar.gz // Descarga de archivos de Snort

# tar zxvf snort-2.8.3.1.tar.gz // Extrae los archivos

# mysql -u root -p < /usr/src/snort-2.8.3.1/schemas/create_mysql \ snort // Crea las tablas de la base de datos.

Al hacer esto se debe ingresar la contraseña que se creó anteriormente y luego comprobar que la base de datos ya esta preparada. Para realizar esto se ejecuta lo siguiente en la consola de MySQL:


mysql> use snort; // Usa la BBDD llamada snort
mysql> show tables; // Muestra las tablas de la BBDD seleccionada


La salida en la consola de ésta última orden debe ser:





















Instalación y configuración de BASE:



BASE es un sistema de auditoría que nos proporciona una interface web en PHP para ver las alertas generadas por snort. El proceso de descarga e instalación se realiza de la siguiente manera:

# cd /var/www/ // Se sitúa en el directorio donde se van a ubicar los archivos de descarga

# wget http://easynews.dl.sourceforge.net/sourceforge/secureideas/base-1.3.9.tar.gz
// Descarga de BASE

# tar zxvf base-1.3.9.tar.gz //Extrae los archivos de BASE

# mv base-1.3.9 base // Copia los archivos a la carpeta base

# rm base-1.3.9.tar.gz // Borra los archivos de descarga


Después de realizar la descarga se procede a editar el archivo de configuración base_conf.php el cual se debe renombrar de la siguiente manera:


# cp /var/www/base/base_conf.php.dist /var/www \ /base/base_conf.php
// Cambia el nombre del archivo de configuración


Luego en este archivo se deben editar las siguientes líneas:

$BASE_urlpath= '/base';
$DBlib_path = '/var/www/base/adodb/';
$alert_dbname = 'snort';
$alert_user = '';
$alert_password = '';



Instalación de ADODB:

ADODB es un intermediario entre BASE y MySQL. Para realizar la instalación se ejecuta lo siguiente:

# cd /var/www/base // Se sitúa en el directorio de descarga

# wget http://kent.dl.sourceforge.net/sourceforge/adodb\/adodb495a.tgz
// Descarga de ADODB

# tar zxvf adodb495a.tgz // Extrae los archivos por defecto una carpeta llamada adodb

# rm adodb495a.tgz // Borra los archivos de descarga



Instalación de PEAR:

PEAR es un FrameWork de PHP que nos permite a través de unos módulos usados por BASE, crear los gráficos de las alertas. La instalación se realiza de la siguiente manera:

# apt-get install php-pear // Instalación de pear
# pear install Image_Color // Instalación del modulo
# pear install Image_Canvas-alpha // Instalación del modulo
# pear install Image_Graph-alpha // Instalación del modulo

Ahora se procede a terminar la configuración vía web de BASE despues de haber iniciado el servidor web. Para ello se accede a la siguiente URL:

http://localhost/base_main.php

Después se ingresa el usuario y la contraseña:










Luego debe aparecer una imagen como esta:







Luego se le da clic en el link “Setup page” y en la siguiente pantalla en el botón “AG”.

Si todo va bien aparece una pantalla indicando que se ha terminado de crear la base de datos que snort utilizará para mostrar las alertas.

La pantalla es la siguiente:

















Para acceder remotamente a la interface web de BASE e interactuar con el IDS se utiliza la siguiente sintaxis URL:

http://direccion_IP/base_main.php

donde la dirección IP es la del servidor IDS, aunque si el acceso es local la dirección IP corresponde a la dirección local 127.0.0.1.


Es importante destacar que en el momento de acceder al portal de BASE, se debe confirmar la excepción de seguridad que el navegador web ofrece para poder instalar el certificado de seguridad en éste, y poder así tener acceso al servidor web seguro.

El portal BASE ya configurado se ve de la siguiente manera:



PESQUISA BIBLIOGRAFICA

INSTALACIÓN Y CONFIGURACIÓN DE FIREWALL (IPTABLES):

Titulo del artículo: IPTABLES Manual Práctico
Autor: Pello Xabier Altadill Izura
Fecha de Consulta: 13 de Octubre de 2008
Resumen del artículo: Es un manual que describe el uso de iptables desde configuraciones simples a las más complejas. Su contenido comprende la definición del concepto de firewall y los diferentes esquemas de red que se pueden tener en las diferentes implementaciones con los ejemplos respectivos de las reglas de iptables pertinentes para cada configuración. En general el artículo es muy completo.
URL: http://www.pello.info/filez/firewall/iptables.html#34


INSTALACIÓN Y CONFIGURACIÓN DEL SERVIDOR WEB:

Titulo del artículo: Servidor Web Apache en linux
Autor: N.A
Fecha de Consulta: 13 de Octubre de 2008
Resumen del artículo: Este artículo describe la instalación en linux del servidor web Apache 2, y una descripción muy detallada de cada uno de los parámetros que se deben tener en cuenta en los archivos de configuración, como la creación de hosts virtuales, entre otros. En general el artículo es muy completo.
URL: http://www.estrellateyarde.es/discover/servidor-http-en-linux





INSTALACIÓN Y CONFIGURACIÓN DEL SERVICIO DE DETECCIÓN DE INTRUSOS (SNORT):


Titulo del artículo: Intrusion Detection: Snort, Base, MySQL, and Apache2 On Ubuntu 7.10
Autor: Gutsy Gibbon
Fecha de Consulta: 13 de Octubre de 2008
Resumen del artículo: Este artículo presenta de una manera muy global el proceso de instalación de Snort, así como su configuración para la integración con BASE, MySQL y Apache 2, a la hora de implementar un sistema de detección de intrusos. En general el artículo es muy bueno aunque no contiene ejemplos que permitan describir de una manera más específica la implementacion de Snort.
URL: http://www.howtoforge.com/intrusion-detection-with-snort-mysql-apache2-on-ubuntu-7.10-updated



Titulo del artículo: Guía Snort + MySQL + ACID + PHP + Apache en Slackware 10.1
Autor: Daniel Medianero García
Fecha de Consulta: 13 de Octubre de 2008
Resumen del artículo: Este artículo describe el proceso de instalación de Snort y su respectiva configuración para la integración con ACID, MySQL y Apache 2. En general el artículo es muy bueno ya que contiene ejemplos e implementaciones de Snort configurado para guardar las alertas en una base de datos accesible desde una pagina web. Es importante destacar que se va utilizar BASE en vez de ACID para la interfaz web de auditoría.
URL: http://www.espaciolinux.com/tallerlinux-articulo-57.html




INSTALACIÓN Y CONFIGURACIÓN DEL SERVIDOR DE BASE DE DATOS MYSQL:

Titulo del artículo: Cómo Configurar MySQL
Autor: Joel Barrios Dueñas
Fecha de Consulta: 13 de Octubre de 2008
Resumen del artículo: Este artículo describe el proceso de instalación y configuración del servidor de base de datos MySQL, con ejemplos muy prácticos que exponen su uso más común. En general el artículo es muy bueno
URL: http://www.linuxparatodos.net/portal/staticpages/index.php?page=como-mysql-quickstart




INSTALACIÓN Y CONFIGURACIÓN DE INTERFAZ DE AUDITORÍA DE DETECCIÓN DE INTRUSOS (BASE)

URL: http://www.howtoforge.com/intrusion-detection-with-snort-mysql-apache2-on-ubuntu-7.10-updated (Artículo descrito anteriormente)