miércoles, 18 de marzo de 2009

FIREWALL en Linux

Firewall es una combinación de hardware y de software para la protección de una red LAN evitando los accesos no autorizados a dicha red. Este es uno de los métodos mas utilizados para la protección en cuanto a recursos.

DIAGRAMA DE CONEXION



El FIREWALL en Linux esta incluido dentro del kernel a partir de su versión 2.4, el cual para su control utiliza iptables. Las acciones que podemos hacer en un firewall son tres;
ACCETP el cual permite la acción o regla, REJECT que niega la conexión enviando un mensaje al cliente, y DROP el cual niega la conexión sin ningún tipo de aviso en el cliente la conexión termina cuando espire el tiempo de vida del paquete.
INPUT y OUTPUT los utilizaremos cuando una petición de conexión tenga como destino un servicio dentro de nuestro firewall, si el destino es una red diferente al origen usamos FORWARD.

Para a clarar y practicar un poco daré algunos ejemplos de código y su respectiva funcionalidad. Pues empecemos!!!!

Es recomendable trabajar todo desde un archivo que crearemos y luego ejecutaremos cada vez que hagamos una modificación a las políticas del firewall.

Para crear el archivo: # touch firewall
Para definir una nueva regla sólo tenemos que decirle a iptables si tiene que insertar la nueva regla en alguna posición (-I numero) o bien simplemente añadirla al final (-A) y la descripción de la regla.

#!/bin/bash > firewall.
echo –n un mensaje para indicar que se a ejecutado el archivo

##para borrar las tablas actuales y evitar cualquier conflicto.
iptables -F
iptables -X
iptables -Z

## Establecemos politica por defecto
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT

Con este bloque de instrucciones nuestro firewall esta listo y esta aceptando cualquier conexión asía él podemos ver como queda nuestra tabla con el comando desde la consola:
# iptables -L

ahora solo permitiremos conexiones salientes desde nuestro firewall asía el puerto 80.

#!/bin/bash > firewall.
echo –n un mensaje para indicar que se a ejecutado el archivo

##para borrar las tablas actuales y evitar cualquier conflicto.
iptables -F
iptables -X
iptables -Z

## Establecemos politica por defecto
iptables -P INPUT DROP
iptables -P OUTPUT DROP

## Establecer las politicas de conexión.
iptables -A INPUT -p tcp --sport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT

Se aceptan cohttp://www.blogger.com/img/blank.gifnexiones de entrada que tengan como puerto origen 80 (servicio WEB)y de salida co puerto de destino 80, hay que tener cuidado al crear una regra ya que si se hace una de entrada se debe hacer otra de salida. Ahora explicare un poco mas el comando; -A quire decir que adicionaremos una nueva regla en este caso INPUT o OUTPUT, el -p (minuscula) indica que protocolo se va a manejar en la regla tcp, udp o icmp, --sport indica el puesto de origen, --dport puesto destino y el -j indica que accion se va a tomar ACCEPT, REJECT o DROP.

NOTA:si se va a trabajar con DNS para realizar la conexión al servicio WEB tambien debemos permitir la entrada y salida del DNS. la configuracion es similar a la anterior.

Para continuar mostrare un archivo en el cual se recreara el siguiente escenario

Hay una red LAN con unservidor web el cual quiero que visiten pero que no puedan asceder desde internet pero de una forma segura para mi red, para esto mi cuento con una ip publica 200.13.215.12 asignada a mi eht0, y dentro de mi LAN una direccion 192.168.1.1 asignada mi tarjeta de red eth1, además la direccion de mi servidor web es 192.168.1.2.

#!/bin/bash

##FLUSH de reglas
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
iptables -t nat -X
iptables -t nat -Z

## Establecemos politica por defecto
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT

#empesaremos a filtrar
#ahora redigiremos todo lo que venga del exterior y valla hacia el puerto 80
#hacia una nuestra red interna
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.1.2:80

# Ahora hacemos enmascaramiento de la red local
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

# Aceptamos que nuestra interna vayan a puertos 80
iptables -A FORWARD -s 0.0.0.0/0 -d 10.5.3.0/24 -p tcp --sport 80 -j ACCEPT
iptables -A FORWARD -s 10.5.3.0/24 -d 0.0.0.0/0 -p tcp --dport 80 -j ACCEPT

iptables -A FORWARD -s 0.0.0.0/0 -d 10.5.3.0/24 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -s 10.5.3.0/24 -d 0.0.0.0/0 -p tcp --sport 80 -j ACCEPT

iptables -A FORWARD -s 0.0.0.0/0 -d 10.5.3.0/24 -p udp --sport 53 -j ACCEPT
iptables -A FORWARD -s 10.5.3.0/24 -d 0.0.0.0/0 -p udp --dport 53 -j ACCEPT

en este punto habremos notado algunos elementos nuevos como son NAT que cambiara en la cabecera la direccion IP de destino por la del Firewall (a este proceso lo llamos enmascaramineto).


NOTA: para la ejecucion del archivo que hemos creado en la consola donde esta el archivo y le concederemos permisos chmod 755 nombre_archivo y luego digitamos ./nombre_archivo, donde nombre_archivo es el archivo creado.

jueves, 26 de febrero de 2009

GnuPG

GPG

GPG o GNU Privacy Guard es una herramienta para cifrado y firmas digitales.
GPG cifra los mensajes usando pares de claves individuales asimetricas generadas por los usuarios. Las claves publicas pueden ser compartidas con otros usuarios de muchas maneras, un ejemplo de ello es depositándolas en los servidores de claves.
GPG usa una serie de algoritmos no patentados como Elgmal, CAST5, 3DES, ASD yBlowfish. También es posible usar IDEA en GPG descargando un plugin extra, sin embargo este puede requerir una licencia para usuarios de algunos países en donde esté patentada IDEA.
GPG es un software de cifrado híbrido que usa una combinación convencional de criptografía de claves simetrica para la rapidez y criptografía de claves públicas para el fácil compartimiento de claves seguras, típicamente usando recipientes de claves públicas para cifrar una sesión de clave que es usada una vez. Este modo de operación es parte del estándar OpenPGP.



Infraestrutura de clave publica – PKI

Significado de la PKI - "Infraestructura de Clave Pública", es una política para el establecimiento de un sistema de gestión de seguridad método que utiliza una clave privada o pública para autenticar la identidad de las personas y organizaciones a los efectos de intercambio seguro de mensajes electrónicos en un sistema público como Internet.

Nota 1: Espero plublicar pronto un paso a paso de como montar GnuPG con sus funciones basicas.

lunes, 23 de febrero de 2009

Conceptos de seguridad informática.

En la seguridad
Seguridad informática: Un conjunto de sistemas, métodos y herramientas destinados a proteger la información, proceso en el cual participan además personas.

Normas de seguridad: Se entiende por Norma a una regla a la que se debe ajustar la puesta en marcha de una operación. También se puede definir como una guía de actuación por seguir o como un patrón de referencia.

Políticas de seguridad: métodos o acciones que se van a implementar para los mecanismos de seguridad.

Activo: Recurso del sistema de información o relacionado con éste, necesario para que la organización funcione correctamente.

Amenaza: Es un evento que pueden desencadenar un incidente en la organización, produciendo daños materiales o pérdidas inmateriales en sus activos.

Riesgo: Posibilidad de que se produzca un impacto determinado en un activo o en toda la Organización.

Vulnerabilidad: Posibilidad de ocurrencia de la materialización de una amenaza sobre un activo.

Ataque: Evento, exitoso o no, que atenta sobre el buen funcionamiento del sistema.

Contingencia: Posibilidad de que algo suceda o no suceda. Riesgo

Integridad: La palabra integridad viene de la misma raíz latina que entero. Asegurar que la información sea exacta y completa.

Confidencialidad: Característica de la información por la que la misma sólo puede ser revelada a los usuarios autorizados. Se refiere a la capacidad de mantener un documento electrónico inaccesible a todos, excepto a una lista determinada de personas.

Disponibilidad: Asegurar que los usuarios autorizados para acceder a la información ya los activos asociados, puedan hacerlo en el momento que lo requieran.

No repudio: La condición en la que quien envía el mensaje no puede negar la validez del resultado del proceso que se utilizó para autenticar la información.

Datos personales

solo quiero compartir algo