jueves, 8 de febrero de 2018

SERVIDOR WEB SEGURO-FIRMA DIGITAL

SERVIDOR WEB SEGURO-FIRMA DIGITAL

Un servidor web decimos que es seguro en el momento que se garantiza la autenticación y confidencialidad de la transmisión o comunicación, en el caso que se va exponer HTTP hace uso de un mecanismo de seguridad que mediante algoritmos matemáticos cifra la comunicación con el protocolo SSL (Contiene librerías para realizar los cálculos matemáticos para cifrar la transmisión) entre servidor y cliente (Navegador web).

El protocolo SSL trabaja conjuntamente con el protocolo HTTP creando un protocolo de transmisión de hipertexto seguro llamado HTTPS

HTTPS se basa en dos tipos de criptografía:
Criptografía simétrica o de clave compartida
Criptografía asimétrica o de clave publica/privada

hace uso de ambos tipos de criptografía para poder aprovechar las ventajas de cada uno de los tipos y descartar las desventajas de los mismos.

La Criptografía asimétrica para poder realizar el proceso de Autenticación al ser el proceso mas lento en cambio la simétrica es mas rápida para el cifrado pero no recomendable para la gestión de claves.

EMPEZEMOS CON LA FIRMA DIGITAL

La firma digital permite la confidencialidad de los datos y la identidad del firmante




1- El emisor cifra los datos con su clave privada genera el algoritmo hash mediante cifrado asimétrico.
2- El emisor cifra el hash mediante la clave publica del receptor, creando la firma digital
3- El emisor envía al usuario receptor los datos, la firma y el certificado digital de origen.
4- El receptor aplica el algoritmo hash a los datos recibidos y genera un valor hash.
5- El usuario destino utiliza la clave publica del usuario emisor (origen) y el valor hash obtenido para comprobar la firma.

de esta forma aseguramos la confidencialidad de los datos y como no su integridad, también garantiza la identidad del firmante

El certificado digital (DSR)  es el conjunto de caracteres añadidos a un documento que verifica el autor del documento(Autenticación)  y que los datos no se han modificado en el transcurso de la transmisión (Integridad), este certificado contiene la clave publica del usuario y algunos datos como dni, nombre, apellidos, etc.... firmados digitalmente por la CA(Autoridad Certificadora), de esta forma ninguna de las parte en su correspondiente situación ninguna de las partes podrá negar que es quien dice ser.



jueves, 1 de febrero de 2018

AUTENTICACIÓN EN APACHE-DIRECTORIO PROTEGIDO

Antes que nada debemos de saber que el servidor apache cuando recibe la petición de una pagina web, verifica si dicho petición esta autorizada.
Es decir realiza las siguientes comprobaciones:

1- AUTENTICACIÓN: Comprueba la identidad del usuario, quiere decir, que busca responder a ¿Es realmente quien dice ser?, el usuario facilita sus credenciales (user y pass), esta información debe de coincidir con la información almacenada en la base de datos del servidor web.

Existen dos métodos de Autenticación HTTP

* Básico o simple: Se introduce en el cliente (Navegador) las credenciales y se transmiten sin ningún tipo de cifrado al servidor.

* Digest: Se introduce en el cliente (Navegador) las credenciales y se transmiten cifradas al servidor.

2- AUTORIZACIÓN: Solo tendrán acceso los usuarios registrados en el servidor, dispone de una lista de usuarios para permitir el acceso a los recursos que ofrece.
En apache2 la autorización se  gestiona mediante directivas <Directory> en el archivo de configuración o mediante .htaccess.

3- CONTROL DE ACCESO: Establece y controla las maquinas que tiene acceso a un recurso, independientemente del usuario que accede.
El control de acceso se gestiona mediante las directivas <Directory> , <Files> y <Location> o mediante el archivo ".htaccess" para controlar un directorio completo.

bueno asta aquí todo correcto?
Pues empecemos con la autenticación básica de apache2

Vamos activar el modulo "auth_basic" accediendo a Servidores--->Configure apache modules



en su interior aparece la lista de modulos, habilitamos "auth_basic".....




aa continuación configuramos el directoio protegido mediante atenticacion accediendo a Protección de directorios web "Protected web Directories" como se muestra a continuación......



y completamos lo campos del directorio que deseamos proteger y seleccionamos crear


nos aseguramos que se ha creado la configuración del directorio en ".htaccess" con las siguientes líneas:

<Directory /var/www/Directorio a proteger/>
AllowOverride AuthConfig
</Directory>




a continuación permitiremos a un usuario el acceso al contenido protegido



rellenaremos los campos de configuración de usuario de la siguiente forma:



después de los cambios realizados aplicar


y comprobamos que la configuración se ha realizado correctamente accediendo en mi caso a la dirección servidor.aulaser.com/topsecret/ solictando la autenticación



introducimos las credenciales establecidas en los usuarios de Webmin


ya disponemos de un directorio protegido por Autenticación.

martes, 30 de enero de 2018

ACTIVAR SEGURIDAD EN APACHE

ACTIVAR SEGURIDAD EN APACHE
 
Para que el servidor pase a ser seguro debemos activar el modulo SSL accediendo al Servidores>Apache webserver>Configuración Global>Configuración de módulos apache
 
 
 
El archivo que almacena los puertos de escucha se ubica en /etc/apache2/ports.conf que comprueba la directiva <IfModule> que incluye la escucha del puerto TCP 443 si el modulo SSL se encuentra activado.
 
 
CREACION DE HOST VIRTUAL HTTPS
 
Accederemos a Apache Webserver y seleccionamos "Crear Host Virtual"
 
 
 
 
y creamos un archivo Index.html en el interior del directorio "/var/www/httpssl" en mi caso y si no disponemos de un directorio especifico para el protocolo SSL lo creamos.
 
 
 
 
 
En un caso real debemos de solicitar a la CA (Autoridad de certificación), en nuestro caso vamos generar nuestro certificado CA, para realizar las comprobaciones correspondientes.
 
USAREMOS TINYCA2
 
Primero rellenamos lo campos haciendo relación al servidor aulaser.com....
 
 
 
y extraemos el certificado de CA y las claves, las guardamos en sitio seguro y localizable para configurar a webmin para el uso de las claves para cifrar la comunicación.
claves CA en mi caso
Certificado de clave privada: webmaster@aulaser.com-cert.pem
Archivo de clave privada: webmaster@aulaser.com-key-pem
 
 
En webmin debemos de indicar la ubicación de las claves de publica y privada de CA como se muestra a continuación.
 
 
 
Vamos configuramos la lectura de claves del Autoridad de certificación, clicamos en la bola del mundo del nuevo host virtual
 

 
accedemos a "Opciones SSL".....
 
 
y indicamos la ubicación de las claves que va a utilizar para realzar la autenticación de sitio web y la confidencialidad de los datos.
 
 
 
y aplicar los cambios en webmin.
 
¡¡¡IMPORTANTE PARA QUE EL CLIENTE PUEDA VISUALIZAR LA PAGINA MEDIANTE PROTOCOLO SEGURO DEBE DE ACEPTAR EL CERTIFICADO DE AUTORIDAD QUE A SIDO ENVIADO POR EL SERVIDOR!!!
 
en mi caso ya se acepto realizando la comprobación
 
y asi poder visualizarlo
 
 
 
 
y comprobamos en el navegador el certificado de nuestro servidor. (Las los siguientes pasos son para el Navegador Mozilla Firefox, en otros navegadores es similar).
 
 
 
 
 
al final del apartado.....
 
 
 
 
y veremos como a guardado el fichero de la CA Autoridad de certificación.
 
 
 
 
y como se puede comprobar aparece el cadadito verde cuando se accede al servidor web medienate HTTPS haciendo uso de protocolo HTTP y SSL.
 
 
 
 
 
 
 


jueves, 25 de enero de 2018

CREACION DE HOST VIRTUAL EN WEBMIN


Configuración de un host virtual en apache para disponer de distintos sitios web en el mismo equipo,
basándose principalmente en la IP y seguidamente en el puerto, si en algún caso los sitios tiene la misma IP y PUERTO para decidir que sitio va a responder a la petición de la red utilizara el Cammon Name(CN) o www.aulaser.com, como veremos a continuación:

hay dos tipos de Hots Virtuales:
HOSTS VIRTUALES BASADOS EN NOMBRE
HOSTS VIRTUALES BASADOS EN IP

¡¡¡¡ IMPORTANTE SI EN ALGUNO DE LOS CASOS COINCIDEN LA IP Y EL PUERTO PARA DECIDIR DE QUE DIRECTORIO VA A CARGAR LA INFORMACION SE FIJARA EN EL NOMBRE DEL SERVIDOR O CNAME !!!!

host virtual con distinto contenido index.html, responde en el servidor web dependiendo como realicemos la llamada en el cliente o navegador web.
Crearemos una nueva carpeta llamada Linux en /var/www/ y descargaremos un index de cualquier pagina Linux, para descargarla en nuestro servidor con el comando "wget

Aquí tenemos un ejemplo de lo que sucede con los puertos:

https://www.ejemplolinux.com"  y continuación vamos a crear un nuevo host virtual que para comunicarse usara la misma IP pero el PUERTO será el 81.


 
rellenamos los campos "Puertos" y "Raiz para el documento"...crear ahora.

comprobamos con la dirección servidor.aulaser.com o lo que es igual 192.168.100.254 por el puerto 80:
en el que disponemos del indexado de directorios


en cambio si accedemos a servidor.aulaser.com o lo que es igual 192.168.100.254 por el puerto 81 aparecerá la nueva web que hemos cargado anteriormente y configurado como nuevo host virtual:




ya tenemos creado el host virtual, en el cual dentro de su directorio tenemos descargado el index.html de la pagina web linuxtotal.

a continuación modificaremos la ip haciendo uso de la dirección de la dirección ip y haciendo uso del mismo puerto:
en lugar de cargar el indexado de servidor web cargara la web descargada de Linux






en cambio si la ip y el puerto coinciden el servidor escogerá el que disponga de nombre de servidor y si el nombre de servidor coincide cargara los directorios por orden alfabetico.

jueves, 18 de enero de 2018

ACTIVACION DE MODULO USERDIR

ACTIVACION DE MODULO USERDIR


A continuación activaremos el modulo USERDIR para permitir a los usuarios del sistema puedan tener su espacio de contenidos web en su propio directorio /home. Para este modulo se pueda cargar es necesario habilitar userdir.load y userdir.conf contiene la configuración de dicho modulo.

una de las cosas buenas de las que dispone apache es que puede cargar dinamicamente al tratarse de
objetos compartidos dinamicos DSO, la extensión de apache es .so

Cuando se activa un modulo en apache se crea un enlace simbolico de los archivos correspondientes
del directorio mods-avaiable y mods-enabled, cada modulo tiene asociado un archivo de carga y otro de configuración NombreModulo.conf y NombreModulo.load.



Para activarlo debemos de acceder a "Configuración de Modulos de apache"


y activar modulo seleccionado.
 
Ahora debemos de añadir userdir.conf y userdir.load en mods-enabled desde mods-avaiable
Y a continuacion configuraremos el directorio que deseamos acceder detro del sistema de archivos del usuario.



el archivo userdir.load contiene la directiva de carga del modulo




y userdir.conf....



En este directorio es donde podremos introducir los trabajos realizados con html, php, etc ... es en el directorio "~/public_html" , cada directorio indexado con apache debe de tener un archivo index.html para que el servidor reconozca la entrada del sitio web.



la sección <Directory> indica que todos los home del sistema disponen de su espacio "~/Public_html" podrán ser listados sus contenidos.
Para configurar el modulo debemos de ir a "Opciones de documento" del servidor por defecto,

 







y comprobamos el acceso a la web...... indicando en la URL www.aulaser.com/~"usuario"/



el usuario alumno en este caso ya dispone de su directorio compartido con el servidor apache y poder trabajar desde su cuenta de usuario del sistema.
 si deseamos acceder sin el uso de "~" deberemos de configurar de la siguiente manera




-------------------------------------------------------------------------------------------------------------------------

jueves, 11 de enero de 2018

SERVICIO HTTP CON WEBMIN-LINUX

UN POCO SOBRE HTTP

HTTP  es un protocolo sin estado no recuerda nada reCliente /Servidor, cada cliente mediante su navegador introduce la URL o lo que es lo mismo la dirección de internet, que realiza la consulta con el servidor según su formato, en el caso de http hace uso de formatos como PHP, MySQL, java, HTML etc, y la estructura de la URL es de la siguiente manera:
[Protocolo]://[Nombre Servidor o Dirección]:[Puerto]:[Ruta de recurso]

Lo que quiere decir que los cliente o usuarios pueden acceder a la ubicación indicada en su navegador por que esta siendo decodificado por el programa de navegación, Internet Explorer, Mozilla Firefox, Opera, Safari, Google Chrome, etc...

El cliente establece una conexión SOKET con el servidor. y solicita la pagina mensaje REQUEST el servidor responde si no existe la dirección responde con un código de error, si la DIRECCION es CORRECTA el servidor responde enviando la información del contenido de la pagina para que se pueda visualizar en el cliente siendo interpretado .

Comprobamos el estado de servicio http




La instalación del software apache es sencilla, podemos realizarla desde el gestor de aplicaciones del Sistema Operativo buscamos la aplicación Apache2 o bien ejecutando en el terminal:

* sudo apt-get install apache2

Iniciar Apache:
/etc/init.d/apache2 start

Parar Apache:
/etc/init.d/apache2 stop

Reiniciar Apache:
/etc/init.d/apache2 restart

 Nos dirigiremos a la ubicación "/var/www/ de apache donde se encuentra el archivo Index.htm por defecto de apache, lo podemos modificar a nuestro gusto en lenguaje HTML.







Para resolver las situaciones de "falta de memoria" del protocolo, además de  recordar la información de la sesión actual(que se pierde al cerrar el navegador) hace uso de los coockies. Las operaciones que se pueden solicitar al servidor son las siguientes:

GET: Pide una representación del recurso especificado. Por seguridad no debería ser usado por aplicaciones que causen efectos ya que transmite información a través de la URI agregando parámetros a la URL. La petición puede ser simple, es decir en una línea o compuesta de la manera que muestra el ejemplo. Ejemplo:
GET /images/logo.png HTTP/1.1 obtiene un recurso llamado logo.pngEjemplo con parámetros:
/index.php?page=main&lang=es

POST: Envía los datos para que sean procesados por el recurso identificado. Los datos se incluirán en el cuerpo de la petición. Esto puede resultar en la creación de un nuevo recurso o de las actualizaciones de los recursos existentes o ambas cosas.

READ: Pide una respuesta idéntica a la que correspondería a una petición GET, pero en la respuesta no se devuelve el cuerpo. Esto es útil para poder recuperar los metadatos de los encabezados de respuesta, sin tener que transportar todo el contenido.

Los MIME (Extensiones multipropósito de correo de Internet) son una forma abierta o extensible  sirven para representar el contenido de los datos, son de gran importancia, se aseguraran de que ninguno de los datos distintos no tendrán el mismo nombre.
*Controlado por la  IANA (Autoridad de asignación de numero en internet).

El archivo de configuración principal es /etc/Apache2/Apache2.conf

A continuación accederemos al servidor webmin......


 


accedemos a Configuración Global" :



disponemos de ...
  • Redes y Directorios: Se configura la red a la que se da servicio y el puerto de escucha.

  • Tipos MIME: Muestra la lista de extensiones compatibles con apache, como por ejemplo poder reproducir imágenes, videos , etc...

  • Usuarios y Grupos: Se determina quien es el usuario por defecto de apache y al grupo al que pertenece. por defecto son www-data/www-data.

  • Varios: Permite configurar algunos detalles como la información que se visualiza en la cabecera http de servidor, nombre y ruta del archivo de bloqueo del mismo, el archivo que almacena el PID, etc ...

  • Archivo de Opciones Por-Directorio: el usuario puede crear archivos con opciones especificas para un determinado directorio. el archivo se suele llamar ".htaccess" estas directivas se aplican a todos los archivos y subdirectorios de ese directorio a menos que se indicque lo contrario en otro archivos de opciones

  • Configuración de Modulos: Muestra el listado de modulos disponibles de apache.

  • Opciones de edición: Desde que podemos modificar los archivos de de configuración de apache como "apache2.conf", en el se muestran la el las líneas de configuración relacionadas con Opciones por-directorio(.htaccess)

 ya tenemos la configuración principal realizada


SERVIDOR WEB POR DEFECTO FUNCIONANDO Y PREPARADO

SERVIDOR WEB SEGURO-FIRMA DIGITAL

SERVIDOR WEB SEGURO-FIRMA DIGITAL Un servidor web decimos que es seguro en el momento que se garantiza la autenticación y confidencialida...