viernes, 30 de mayo de 2008

Que es Ipsec

Es un conjunto de protocolos cuya funcion se aseguara las comunicaciones sobre el protocolo de internet(IP); ademas contiene autenticacion y cifrado de paquetes ip en flujo de datos.

MODOS
Ipesec trabaja con dos modos basico que son:

Modo Transporte:

solo carga
los datos que se transfieren del paquete IP y proporciona seguridad de punto a punto,ipsec puede aplicar diferentes directivas de modo transporte entre dos direcciones IP hasta de un unico puerto,ya el enrutamiento permanece intacto y no se modifica ni se cifra la cabecera ip; cuando se utiliza la cabecera de autenticacion(AH),tanto las direcciones IP no pueden ser traducidas,las capas de transporte y aplicacion estan siempre seguras por un hash. "el modo transporte se utiliza para comunicarse de ordenador a ordenador".

Modo tunel:

En el mo
do tunel todos el paquete IP (datos mas cabeceras del mensaje), el modo tunel se utiliza para comunicarse de red a red (tuneles seguros entre route para VPNs)o comunicarse de ordenador a red, o ordenador a ordenador sobre internet.
Esta variente de Ips
ec intercepta los paquetes IP, encripta y autentica, posteriormente se puede incorporar un encabezado ipsec y se encapsula el paquete resultante sobre IP, esta modalidad puede operar entre dos host,entre un host y un geteway.

Protocolos usados por ipsec


Authentication header(AH):

AH es
ta dirigido a garantizar integridad sin conexion de los datos de origen de los datagramas IP atraves de algun algoritmo de hash operando sobre una clave secreta.Este proceso restringe la posibilidad de emplear NAT que puede ser implementada con un NAT TRANSVERSAL.


Encapsulating Security Payload(ESP):
El protocolo ESP proporciona autenticidad del origen y proteccion y confidencialidad de un paquete, tambien soporta configuraciones de solo cifrado y solo autencidad; pero ademas utiliza cifrado sin autenticidad porque es inseguro.Al contrario con AH, las cabeceras IP no estan protegidas por ESP.
ESP trabaja directamente sobre IP, utilizando el protocolo IP numero 50.

AH: autentica-integridad
ESP: confidencialidad

Cuenta con algunos servicios que son:

Integridad

es la informacion que solo puede ser modificada por una persona autorizada y no por terceros

Confidencialidad:

la informacion solo debe ser legible para las personas autorizadas u administradores de la red.

Autenticacion:

es el acto de confirmación de alg como auténtico para saber si es esa persona que dice ser.

Anti-reply:

Asegura que los mensaje transmitido atraves de la res no se puede duplicar por que el mensaje puedes estar encryptado la cual no se puede repetir alguna clave porque es unica.

Control de acceso
:
Se puede aplicar reglas de seguridad que defina el nivel de seguridad que uno desea; para que las persona autorizadas puedan acceder sin ninguna dificultad.

IKE"intenet de intercambios de claves":

IKE se defino originalmente por RFC 2407; RFC 2408;RFC 2409, Ike utiliza un diffie-hellman para establecer una clave secreta compartida de las claves criotograficas la cula entre el emisor y el receptor se van a comunocar deben tener en cuenta que deben ser las misma claves.
IKE se basa en el protocolo Oakley, el protocolo IKE utiliza paquetes UDP en el puerto 500.

INFORMACION DE SEGURIAD DE IPSEC
antes de implementar ipsec debe tener encuenta las siguentes condicciones:
  • en que sistemas operativo va atrabajar
  • modo de autenticacion
  • filtrado de paquetes
  • trafico protegido (mediante AH, ESP)
  • trafico no protegido
  • que algoritmo cifrado va utilizar

martes, 27 de mayo de 2008

Certificado Digital y SSL

Los pasos siguientes es para hacer nuestro certificado digital y a la vez firmalo uno mismo. Los pasos son los siguientes.

QUES ES SSL
Secure Sockets Layer,es seguridad de la Capa de Transporte que proporcionan comunicaciones segura a internet ssl utiliza autenticacion y privacidad.

Instalar openssl
  • apt-get install openssl
Crear una CA
openssl req -x509"certificado CA" -newkey rsa:2048"algoritmo de encriptacion rsa de 2048 bytes" -keyout"el archivo de salida para la llave" cakey.pem"es la privada" -days 3650 "en cuantos dias o años axpira" -out"salida" cacert.pem "es la publica".

Generamos nuestra clave privada que sera nuestro certificado digital
openssl genrsa"genera la llave" -des3"algoritmo de cifrado para la clave" -out serv-priv.pem "se almacena en el fichero llave publica del certificado" --passout pass:
elpasword 2048 "el password de nuestra llave privada"

"nos pedira una contraseña la cual le pondremos la misma contraseña que le colocamos al paso anterior"

La peticion del certificado
openssl req -new"le indicamos la peticion de la llave privada" -key serv-priv.pem -out petic- certificado-serv.pem"y como salida le indicamos que genere el archivo petic-certificado-serv.pem"

Emitir el certificado
el archivo que se dispone a definir las caracteristicas de openssl es "openssl.cnf" pero es mejor crearlo en un editor de texto con las lineas siguientes

-basicConstraints = critical,CA:FALSE " para que se cumplan con el x509v3 y con la
RFC3280"
-extendedKeyUsage = serverAuth "lo que queremos certificar"

La configuracion del certificado
openssl x509"tipo de certificado que vamos a utilizar" -CA"autoridad certificadora" cacert.pem"la clave
publica" -CAkey cakey.pem"la clave privada" -req"solicitud de firma certificadora
CSR" -in petic-certificado-serv.pem"la peticion de certificado" -days 3650"la validez del certificado" -extfile config1.txt"es el editor de configuracion donde agregamos las linea que colocamos antes" -sha1"alagoritmo de cifrado" -CAcreateserial -out servidor-cert.pem

Crear nuestro propio certificado digital para que la identidad certificadora no la firme
openssl req -new -nodes -out peticion-guerra.pem -keyout llave-guerra.pem

Entoces se lo enviamos a la identidad certificadora por ssh o por usb
scp peticion-guerra.pem sena@ip???.??.??:/home/sena/Desktop

Ahora vamos a configurar el servidor aapache2 bajo SSL


Instalar apache2
apt-get install apache2
cd /etc/apache2 "que la ruta donde esta la configuracion del apache"

verificar que en editor de ports.conf que esta en apache2 se encuentra las siguientes lineas
"listen 80,listen 443"

Antes de configurar otro archivo de configuracion debes instalar el modulos para que apache2 pueda soportar ssl
apt-get install libapache-mod-ssl "para apache"
para apache2 libapache2-mod-log-sql-ssl "para apache2"

cuando ya este instalado el modulo actuaremos para cargar el modulo
a2enmod ssl "y te saldra esto Module ssl installed; run /etc/init.d/apache2 force-reload to enable." la cual ya esta arriba el modulo

Creamos nuestra pagina web
cd /etc/apache2

El archivo apache2.conf agregamos las siguientes lineas
DirectoryIndex index.html(bienvenidos a mi pagina web solo con ensayo)

La ruta donde esta el archivo. html esta /var/www

la cual seria index.html que se le desarrolla la pagina

Ahora vamos a configurar el fichero site-anables para que pueda hacer en forma segura por el puerto 443 pico default que esta en el archivo sites anables y agregamos lo siguiente
NameVirtualHost *:443

ServerAdmin eliguerra@misena.edu.co
DocumentRoot /var/www/
SSLEngine on
SSLCertificateFile /etc/ssl/servidor-cert.pem
SSLCertificateKeyFile /etc/ssl/serv-priv.pem
ServerName mipagina.midominio.com

Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all


y para que trabaje en forma insegura agregamos las sigientes lineas por el puerto 80

NameVirtualHost *:80
ServerAdmin eliguerra@misena.edu.co
DocumentRoot /var/www/
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all

asi es el archivo en forma segura y no segura
Ya que hemos configurado el editor haremos un vinculo simbolico para el fichero default
entonces le damos ls -s /sites-availables/default 000-default para hacer el vinculo

Ahora paramos el servicio de apache
/etc/init.d/apache2 stop

Ya que hemos parado el servicio lo volvemos y lo recargamos para que coga los cambios
/etc/init.d/apache2 start "y nos monstrara lo siguiente"
Restarting web server apache2
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName httpd (no pid file) not running apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
Apache/2.2.8 mod_ssl/2.2.8 (Pass Phrase Dialog)
Some of your private key files are encrypted for security reasons.
In order to read them you have to provide the pass phrases.
Server mipagina.midominio.com:443 (RSA)
Enter pass phrase:
OK: Pass Phrase Dialog successful.

ala cargar el servicio nos pedira la contraseña RSA que le colocamos en los pasos anterior y ademas genere un password para que cuando reinicie el servicio le proporcine la clave

el archivo seria asi
#!/bin/sh
echo mipassword "la que tu quieras ponerle"
le cambiamos los permisos
chmod 700 generadordeclave es el nombre del archivo. "le ponemos una clave para que cuando carge el servicio pida contraseña.

Al cargar servicio entramos a la pagina y nos muestra que esta firmado por una identidad certificadora

*La captura


lunes, 26 de mayo de 2008

OPEN SSH

Openssh (Open Secure Shell) es un codigo abierto y un conjunto de aplicaciones que permite realizar comunicaciones cifradas a traves de una red privada, usando el protocolo ssh.

AUTENTICACION DE OPENSSH
El servidor Openssh se autentica con los usaurios usando
  • clave publica
  • conttraseña.
OpenSSH cifra todo el trafico incluyendo las contraseñas, ademas ofrece posibilidades para la creacion de tuneles seguros aparte de una variable de metodo de autenticacion como RSA o DSA
*Ahora vamos a installar openssh
apt-get install openssh

*Ya que esta instalado entramos al archivo de configuracion que esta en la ruta siguiente:/etc/ssh
lo cual nos muestra tanto la llave publica como la privada y archivos de configuracion.
ssh_host_rsa_key > esta es la llave privada de rsa

ssh_host_rsa_key.pub > esta es la llave publica de rsa

ssh_host_dsa_key > esta es la llave privada de dsa
ssh_host_dsa_key.pub > esta es la llave publica dsa

*Ahora procedemos a crear la llave para el cliente
ssh-keygen -t dsa o rsa "podes escoger cualquier algorutmo de autenticacion que quieras"

*Ahora que ya le creamos el par de llaves al cliente se lo enviamos al servidor por una usb o por scp, pero para enviarla hay en entrar a la ruta donde se guardo por defecto que es:/root/.shh/
ya que estamos dentro de ruta lo enviamos por scp la cual seria asi:
scp ip_dsa.pub root@10.3.9.?:/tmp

*Nos entramos a la ruta del temporar
  • cd /tmp "listamos entonces le damos"
  • cat id_dsa.pub >/root/.ssh/autorized_keys "creamos este archivo para guardar la llave del cliente"
*Ya que el cliente nos a enviado la llave publica en temporal nos vamos hasta ya y lo listamos para ver si el que tenemos es igual a la clave que tiene el cliente
testing-guerra:~/.ssh# cat autorized_keys
ssh-dssAAAAB3NzaC1kc3MAAACBALLFusrkCR41GfrtsOdrEZRCOrb2sxoVfxHNkZsuTI8+EN5m
7CYChbTS38nF9GH0nMYWj6fyCaqTFqNoT7eNfjgvhmTHby1v6pTCCOfJsgk4JG0f67DA3
IgEXkxhCMrrwOrkBoqvZPbfVPRskox1cOZ0FY8kSjR0Aznd22xE8TpBAAAAFQCF3q+iEAL
cKaYvsCSl/6scqDgrTQAAAIByPO9sHt4yX9gSWdqoRV7Gh9l2cIP+2L10LDdeKaOj958itK
Sr6cXQdl0AON61PMb3s2TJxMAT3FxryZqRc/bMZ46nKRaSA1HcmoYfdZkGvZpNm5BRH
LFqu2pQQ86StMN5IRPK4Vc6gTgeOHOChDytbDUzSwY9fh9G5au6smHG9QAAAIA5AjX
njj7aJ9KD0f3OdxmCrhmlFwa5KX7QM6K0FIDxOiZIw4JYloJpVXA4c9Sn5xtnr/x+f5VSGUq
oCOhyQKMNaaKmvDRctMXspbl6jyjkQDwMN19cHUJX6/4Yv5nvlj3+5zRwgqjjsgnrbAiWT
UfmTanNA635e4I5r0dcbHvWBA== root@localhost"

AHORA VAMOS A CONFIGURAR EL SERVIDOR

*entramos a la ruta de openssh
  • cd /etc/ssh
  • pico ssh_config
y descomentamos las siguientes lineas le quitamos el yes y le ponemos un no para activar la autenticacion sin pedir contraseña
PasswordAuthentication no

*Ya nos entramos al archivo sshd_config y comentamos las siguiente lineas
#AuthorizedKeysFile %h/.ssh/authorized_keys
#PasswordAuthentication no

*Ya guardamos el archivo y recargamos el servicio de ssh
/etc/init.d/ssh restart

*Ya que el servicio esta cargado el cliente puede conectarse por ssh asi
ssh 10.3.9.?
el cliente se puede conectar normalmente a la maquina remota

*Pero si decomentamos la siguente linea

PasswordAuthentication no; cargamos el servicio y el cliente se conecta y no lo deja conectar porque necesita la llave publica

*Ya que hemos comentado la linea anterios procedemos a descomentar la siguiente linea AuthorizedKeysFile %h/.ssh/authorized_key para que el cliente cuando se conecte y ahora esta utlizando la llave y puede conectarce a la maquina remota, cargamos el servicio para que coja los cambios.

miércoles, 14 de mayo de 2008

Como crear nuetras par de llaves GPG

Claves publicas:rsa,rsa-e,elg-e,dsa
claves privadas
:3des,cast5,blowfish,aes,aes192,aes252

Crear llave publica y privada

  • apt-get install gnupg "ya que hemos instalado el programa creamos las llaves"
  • gpg --gen-key "genera la llave"
Nos preguntas esto que algoritmo deseamos utilizar. elegiremos la (1) DSA y ElGamal (por defecto) ya que se trata de un algoritmo libre.

"Por favor seleccione tipo de clave deseado:

(1) DSA y ElGamal (por defecto)
(2) DSA (sólo firmar)
(4) ElGamal (firmar y cifrar)
(5) RSA (sign only)

¿Su elección?: 1 "


Aqui nos pregunta el tamaño, podemos escojer el que querramos, con algunos 1024 esta bueno, pero el que se sugiere poner es 2048

"El par de claves DSA tendra 1024 bits
listo para generar un nuevo para de claves ELG-E
el tamaño minimo de 768 bits
el tamaño por defecto es 1024 bits
el tamaño maximo recomendado es 2048 bits

El par de claves DSA tendrá 1024 bits.
las claves ELG-E pueden tener entre 1024 y 4096 bits de longitud.

¿De qué tamaño quiere la clave? (2048) 2048 0 1024"

Ahora nos toca elegir el tiempo de validez de nuetra llave "eso es depende del usuario el tiempo que desea utilizar"
"Por favor, especifique el período de validez de la clave.
0 = la clave nunca caduca
= la clave caduca en n días
w = la clave caduca en n semanas
m = la clave caduca en n meses
y = la clave caduca en n años

¿Validez de la clave (0)? 0 ( 1 m, y w) "

Despues necesita un identificador del usuario para identificar su clave
"Nombre y apellidos: elizabeth
Dirección de correo electrónico:????????@misena.edu.co
Comentario: lo que tu quieras poner
Ha seleccionado este ID de usuario:
Blogspot (Blogspot)"

Luego de esto nos pide una contraseña que es la que estaremos utilizando para manipular nuestra gpg para proteger la clave privada "te sugiero que sea larga"
Introduzca frase contraseña: "misena"

Luego empezara a crear nuestra clave
Es necesario generar muchos bytes aleatorios. Es una buena idea realizar alguna otra tarea (trabajar en otra ventana/consola, mover el ratón, usar la red y los discos) durante la generación de números primos. Esto da al generador de números aleatorios mayor oportunidad de recoger suficiente entropía.
+++++++++++++++.+++++++++++++++++++++++++++++++++++.+++++++++++++++++++++++++... ..+++++.+++++.+++++++++++++++.+++++...+++++++++++++++++++++++++>+++++.....>+++++ ........................+++++^^^
gpg: clave AACEEBD4 marcada como de confianza absoluta
claves pública y secreta creadas y firmadas.

gpg: comprobando base de datos de confianza
gpg: 3 dudosa(s) necesarias, 1 completa(s) necesarias,
modelo de confianza PGP
gpg: nivel: 0 validez: 2 firmada: 0 confianza: 0-, 0q, 0n, 0m, 0f, 2u
gpg: siguiente comprobación de base de datos de confianza el: 2009-06-23
pub 1024D/AACEEBD4 2007-06-25
Huella de clave = 731A 4A29 0511 6F7F 5BFC B268 86ED F5B5 AACE EBD4
uid Blogspot (Blogspot)
sub 1024g/7E41FC7C 2007-06-25






lunes, 12 de mayo de 2008

Algoritmos de Hash

Es un metodo para generar claves o llaves que representen de manera unica un documento un archivo o un registro.

Su funcion es resumir o identificar probablemente un gran conjunto de informacion dando como resultado un conjunto de imagenen infinito.Varian los conjuntos tanto de partida como de llegada de las claves.
  • SHA-1: es un algoritmo de hash seguro, lo que genera un hash es de 160 bits
  • MD2 Y MD4: algoritmos de hash que generan un valor de 128 bits
  • MD5: es un algoritmo de hash que genera un valor de 128 bits muy utilizados para la autenticion cifrada ejemplo: si un usuario demuestra que conoce una contraseña sin necesidad de eviarsela a traves de la red
  • RIPE-MD: es una variable de MD4 para aumentar su seguridad contra terceros y genera un valor de 128 bits
  • CHECKSUM"suma de verificacion" : es una medida mas simple para proteger la integridad de los datos que han sido enviados por un cana abierto.