Está en la página 1de 65

PRACTICAS

SEGURIDAD

INFORMATICA

TEMA 4 CRIPTOGRAFIA

SEBASTIAN RUBIO GONZALEZ

Índice

1. Práctica sobre SSH y Copia Segura

2. Práctica sobre GPG4WIN

3. Práctica sobre Tunel SSH MYSQL

4. Prácticas sobre SSL

PRACTICAS SOBRE SSH Y COPIA SEGURA

Sebastián Rubio

Primero procederemos a instalar el servicio ssh en nuestra maquina virtual Ubuntu con el comando apt-get install ssh. Como podremos ver ya lo teníamos instalado previamente.

Como podremos ver ya lo teníamos instalado previamente. Una vez hecho esto verificaremos que escuchamos por

Una vez hecho esto verificaremos que escuchamos por el puerto 22 y que el servicio está activo con el comando netstat –ntl.

que el servicio está activo con el comando netstat –ntl. Ahora nos vamos al ordenador que

Ahora nos vamos al ordenador que actua como cliente y mediante el programa putty nos conectamos al ordenador que actúa como servidor y será el Ubuntu y su dirección ip será la 10.0.3.1 que se corresponderá con la red interna del servidor.

servidor y será el Ubuntu y su dirección ip será la 10.0.3.1 que se corresponderá con

Una vez introducimos el login con usuario y contraseña del servidor veremos que tendremos acceso a él desde el ordenador cliente. Como vemos ya tenemos acceso al servidor.

ordenador cliente. Como vemos ya tenemos acceso al servidor. Ahora deberemos crear las claves para el

Ahora deberemos crear las claves para el sistema RSA que serán las claves tanto privada como pública y durante la creación de dichas claves nos pedirá que introduzcamos una clave ssh de desbloqueo denominada passphrase. En este caso la clave passhrase será sebas.

passphrase. En este caso la clave passhrase será sebas. Para poder compartir o distribuir la clave

Para poder compartir o distribuir la clave pública deberemos de ejecutar el siguiente comando ssh-copy-id sebas@10.0.3.1

Para poder compartir o distribuir la clave pública deberemos de ejecutar el siguiente comando ssh-copy-id sebas@10.0.3.1

Ejecutamos de nuevo el comando ssh sebas@10.0.3.1 y vemos que nos podemos conectar mediante ssh.

y vemos que nos podemos conectar mediante ssh. En todos los casos, el directorio .ssh en

En todos los casos, el directorio .ssh en el servidor debe existir y el fichero authorized_keys debería tener los permisos correctos que serán (600).

debería tener los permisos correctos que serán (600). A partir de ese momento se pueden utilizar

A partir de ese momento se pueden utilizar ssh y scp con esa máquina sin necesidad de

escribir la clave.

A continuación deberemos modificar el fichero de configuración /etc/ssh/sshd_config y

habilitar la función StrictModes y con esto conseguiremos los borrados o modificaciones accidentales.

conseguiremos los borrados o modificaciones accidentales. También en dicho fichero de configuración podremos cambiar

También en dicho fichero de configuración podremos cambiar ciertos valores como pueden ser:

Port nº puerto: será el puerto por el escucha y lo podremos modificar a nuestro gusto.

ListenAddress: Sera la dirección ip de la red interna por la que escucha y entonces bloquea

todas las conexiones desde el exterior salvo la ip que hayamos seleccionado.

PermitRootLogin: Con esta opción le permitiremos conectarse siendo el superusuario root

A l l o w U s e r s : Serán los usuarios que

AllowUsers: Serán los usuarios que tendrán permiso para conectarse a nuestro servidor y para ello deberemos escribir una línea al final del fichero con los usuarios permitidos separados por un espacio entre ellos.

sfUna vez modifiquemos este fichero de configuración /etc/ssh/sshd_config será necesario reiniciar el servicio de ssh con el comando service ssh restart.

el servicio de ssh con el comando service ssh restart. Para realizar la prueba de que

Para realizar la prueba de que no nos podemos conectar con el usuario root nos conectamos al servidor y cuando nos pide el login ponemos root y la contraseña y como podemos apreciar cuando hacemos varios intentos nos aparece un mensaje de error que hemos hecho muchos intentos fallidos con root.

apreciar cuando hacemos varios intentos nos aparece un mensaje de error que hemos hecho muchos intentos

COPIA SEGURA (SCP)

Creamos un archivo por ejemplo que contenga lo siguiente:

Creamos un archivo por ejemplo que contenga lo siguiente: Para realizar la copia segura de un
Creamos un archivo por ejemplo que contenga lo siguiente: Para realizar la copia segura de un

Para realizar la copia segura de un recurso de nuestro ordenador, un archivo o cualquier otro elemento del servidor al equipo local usaremos el comando:

Una vez hecho esto nos pide la contraseña del administrador y posteriormente la contraseña de la clave privada introducida anteriormente y una vez se produce todo esto apreciamos que hemos hecho la copia segura y que aparecen ambos archivos.

El protocolo seguro de transferencia de archivos (SFTP) permite una serie de operaciones sobre archivos

El protocolo seguro de transferencia de archivos (SFTP) permite una serie de operaciones sobre archivos remotos. SFTP intenta ser más independiente de la plataforma que SCP, por ejemplo, con el SCP encontramos la expansión de comodines especificados por el cliente hasta el servidor, mientras que el diseño SFTP evita este problema. Aunque SCP se aplica con más frecuencia en plataformas Unix, existen servidores SFTP en la mayoría de las plataformas.

existen servidores SFTP en la mayoría de las plataformas. Para copiar un archivo del servidor al

Para copiar un archivo del servidor al ordenador local la orden “get”:

archivo del servidor al ordenador local la orden “get”: Para copiar un archivo desde el equipo

Para copiar un archivo desde el equipo local al servidor remoto

del servidor al ordenador local la orden “get”: Para copiar un archivo desde el equipo local

WINSCP

WinSCP es una aplicación de Software libre. WinSCP es un cliente SFTP gráfico para Windows que emplea SSH. El anterior protocolo SCP también puede ser empleado. Su función principal es facilitar la transferencia segura de archivos entre dos sistemas informáticos, el local y uno remoto que ofrezca servicios SSHNewbie.

El código fuente de WinSCP y las descargas están hospedadas en SourceForge.

remoto que ofrezca servicios SSHNewbie. El código fuente de WinSCP y las descargas están hospedadas en
remoto que ofrezca servicios SSHNewbie. El código fuente de WinSCP y las descargas están hospedadas en

PRACTICA GPG4WIN

Es una aplicación de software libre que sirve para cifrar archivos y correos electrónicos con un sistema de llaves públicas y privadas.

El algoritmo de cifrado utilizado también es de libre distribución y se denomina GNU Privacy Guard, una alternativa de código abierto a los otros sistemas patentados.

Soporta los estándares de criptografía Open PGP y S/MIME.

Opera en los sistemas operativos Windows 2000, XP, Vista y Windows 7. Funciona en sistemas de 32 y 64 bits.

INSTALACION DE LA APLICACIÓN GPG4WIN

Primero lo que haremos será instalar la aplicación en la maquina virtual W7 y lo haremos de la siguiente manera:

Descargamos la ultima versión de la aplicación GPG4WIN desde la página oficial que será http://www.gpg4win.org, siendo está la versión 2.2.4.

de la aplicación GPG4WIN desde la página oficial que será http://www.gpg4win.org , siendo está la versión

A continuación comenzamos la instalación de la aplicación en nuestro equipo con W7.

la instalación de la aplicación en nuestro equipo con W7. Una vez comienza el proceso de

Una vez comienza el proceso de instalación nos pide permisos administativos para hacer cambios en nuestro equipo y haremos clic en Si para poder instalar la aplicación.

y haremos clic en Si para poder instalar la aplicación. Seleccionamos el lenguaje que deseamos para

Seleccionamos el lenguaje que deseamos para nuestra aplicación GPG4WIN.

clic en Si para poder instalar la aplicación. Seleccionamos el lenguaje que deseamos para nuestra aplicación

Comenzamos con el programa de instalación de GPG4WIN y nos muestra un mensaje de bienvenida a la Instalacion dándonos una información acerca de la aplicación, versión de la aplicación y su fecha de publicación y haremos clic en Siguiente.

y su fecha de publicación y haremos clic en Siguiente. A continuación nos aparece un mensaje

A continuación nos aparece un mensaje con el acuerdo de licencia y haremos clic en Siguiente.

haremos clic en Siguiente. A continuación nos aparece un mensaje con el acuerdo de licencia y

A continuación seleccionamos todos los componentes dentro de la aplicación salvo el Clows-Mail siendo

este opcional y haremos clic en Siguiente.

Clows-Mail siendo este opcional y haremos clic en Siguiente. A continuación nos solicita la ruta donde

A continuación nos solicita la ruta donde queremos guardar la aplicación y haremos clic en Siguiente.

clic en Siguiente. A continuación nos solicita la ruta donde queremos guardar la aplicación y haremos

A continuación seleccionaremos los Vinculos de Inicio y haremos clic en Siguiente.

los Vinculos de Inicio y haremos clic en Siguiente. A continuación seleccionaremos la carpeta dentro del

A continuación seleccionaremos la carpeta dentro del Menú de Inicio donde queremos que se guarde

nuestra aplicación y haremos clic en Instalar.

la carpeta dentro del Menú de Inicio donde queremos que se guarde nuestra aplicación y haremos

Una vez completada el proceso de la instalación haremos clic en Siguiente.

el proceso de la instalación haremos clic en Siguiente. Y por último para finalizar el asistente

Y por último para finalizar el asistente de Instalación haremos clic en Terminar.

haremos clic en Siguiente. Y por último para finalizar el asistente de Instalación haremos clic en

CONFIGURACION DE LA APLICACIÓN GPG4WIN

Para poder acceder a la aplicación GPG4WIN deberemos haremos clic en el botón del Menú de Inicio de Windows, seleccionaremos la opción Todos los programas, seleccionaremos la carpeta GPG4WIN y una vez allí haremos clic en GPA.

Una vez abierta la aplicación GPG4WIN por primera vez, nos aparece un mensaje en el que se nos advierte que no existe ninguna clave y nos pedirá si queremos generarla.

vez, nos aparece un mensaje en el que se nos advierte que no existe ninguna clave

Una vez hacemos clic en Generar clave ahora, nos aparece un asistente donde generaremos nuestra clave privada. El primer paso será introducir nuestro nombre completo, ya que nuestro nombre será parte de la clave privada y nos permitirá la identificación de nuestra clave y por último haremos clic en Adelante.

de nuestra clave y por último haremos clic en Adelante. A continuación nos pide que insertemos

A continuación nos pide que insertemos nuestra dirección de correo electrónico y haremos clic en Adelante.

en Adelante. A continuación nos pide que insertemos nuestra dirección de correo electrónico y haremos clic

A continuación nos aparece un mensaje donde nos recomiendan hacer una copia de seguridad de nuestra

clave una vez que la hayamos generado, seleccionamos Crear una copia de seguridad y haremos clic en Adelante.

Crear una copia de seguridad y haremos clic en Adelante. Una vez se genera nuestra clave

Una vez se genera nuestra clave nos solicita que introduzcamos una contraseña fuerte siguiendo los standarts de seguridad que son aquellos que deben de cumplir las siguientes condiciones:

No deberá contener menos de ocho caracteres la contraseña.

1 carácter al menos debe ser una letra Mayúscula.

1 carácter al menos debe ser una letra minúscula.

1 carácter al menos debe ser un número

1 carácter al menos debe ser un carácter especial.

 1 carácter al menos debe ser un carácter especial. A continuación nos pide que confirmemos

A continuación nos pide que confirmemos la contraseña introducida de nuevo.

al menos debe ser un carácter especial. A continuación nos pide que confirmemos la contraseña introducida

Una vez confirmada la contraseña, nos aparece una ventana donde nos pide que seleccionemos la ruta

donde queremos que se guarde la clave privada generada en mi caso la guardare en la carpeta Documents

y haremos clic en Guardar.

guardare en la carpeta Documents y haremos clic en Guardar. A continuación nos aparece un mensaje
guardare en la carpeta Documents y haremos clic en Guardar. A continuación nos aparece un mensaje

A continuación nos aparece un mensaje que se va a crear una copia de seguridad de nuestra clave en el

siguiente archivo y que debemos de guardarla bien para una correcta compartición con otras personas y

hacemos clic en Cerrar.

archivo y que debemos de guardarla bien para una correcta compartición con otras personas y hacemos

Una vez guardada la clave, nos aparece una ventana con la clave creada y nos da información acerca de ella como podemos comprobar en la siguiente imagen.

una ventana con la clave creada y nos da información acerca de ella como podemos comprobar

PROCEDIMIENTO PARA EXPORTAR LA LLAVE PÚBLICA

Para exportar la llave pública lo que debemos de hacer haremos clic en el botón Exportar.

lo que debemos de hacer haremos clic en el botón Exportar. A continuación se nos abrirá

A continuación se nos abrirá una ventana para seleccionar la carpeta de destino como el nombre del archivo con el que se quiere guardar esta llave. Una vez hemos terminado haremos clic en Guardar.

como el nombre del archivo con el que se quiere guardar esta llave. Una vez hemos

A continuación nos aparecerá una ventana indicándonos que la llave se exporto correctamente y

mostrándonos la ruta donde se almaceno y por último haremos clic en Cerrar

ruta donde se almaceno y por último haremos clic en Cerrar Y por último para finalizar

Y por último para finalizar el procedimiento de exportación lo que haremos será enviar al cliente la llave

pública por email pero nunca enviaremos la llave privada.

de exportación lo que haremos será enviar al cliente la llave pública por email pero nunca

PROCEDIMIENTO PARA IMPORTAR LA LLAVE PÚBLICA

Para importar la llave pública lo que debemos de hacer es incluir las llaves públicas que se nos envían, y permiten que podamos desencriptar los archivos cifrados.

Para importar una llave pública lo que debemos de hacer es haremos clic en el botón de Importar.

debemos de hacer es haremos clic en el botón de Importar . A continuación se abre

A continuación se abre la ventana de importación, en donde podremos seleccionar el archivo de llave pública que se quiere importar. Para este ejemplo hemos recibido por correo electrónico una clave pública y por último haremos clic en Abrir.

importar. Para este ejemplo hemos recibido por correo electrónico una clave pública y por último haremos

Una vez abierta, se puede observar el siguiente mensaje de confirmación y haremos clic en el botón Cerrar.

mensaje de confirmación y haremos clic en el botón Cerrar. Y por último como podemos apreciar

Y por último como podemos apreciar tenemos en la siguiente ventana la llave importada y lista para su uso.

botón Cerrar. Y por último como podemos apreciar tenemos en la siguiente ventana la llave importada

PRACTICAS TUNEL SSH CON ACCESO REMOTO A MYSQL

Instalar en Linux Ubuntu el servidor de bases de datos MySQL ( mysql -serve r) con el comando sudo apt-get i nst all mysql-serve r.

r ) con el comando sudo apt-get i nst all mysql-serve r . A continuación nos

A continuación nos pide que introduzcamos la contraseña para el usuario root de Mysql, en

mi caso pondré la contraseña sebas y haremos clic en Aceptar.

caso pondré la contraseña sebas y haremos clic en Aceptar. A continuación nos pide que confirmemos

A continuación nos pide que confirmemos la contraseña para el usuario root de Mysql y

haremos clic en Aceptar.

Aceptar. A continuación nos pide que confirmemos la contraseña para el usuario root de Mysql y

Una vez instalado, crear alguna tabla e insertar algunas filas.

Una vez instalado, crear alguna tabla e insertar algunas filas.
Una vez instalado, crear alguna tabla e insertar algunas filas.

Posteriormente, acceder desde Windows o Linux a dicho servidor introduciendo desde la línea de comandos (consola MsDos o Shell de Linux) la siguiente orden:

o Linux a dicho servidor introduciendo desde la línea de comandos (consola MsDos o Shell de
o Linux a dicho servidor introduciendo desde la línea de comandos (consola MsDos o Shell de

Si queremos ver que, efectivamente, el servidor de BD se está ejecutando podemos ejecutar el comando netstat -natu o también nmap localhost. Como por ejemplo,

de BD se está ejecutando podemos ejecutar el comando netstat -natu o también nmap localhost .
de BD se está ejecutando podemos ejecutar el comando netstat -natu o también nmap localhost .

Para crear un túnel SSH de forma más segura entre el cliente Windows y el servidor de Base de Datos MySQL de Linux. Además, de esta manera no hay que tocar nada en la configuración del servidor MySQL.

Linux. Además, de esta manera no hay que tocar nada en la configuración del servidor MySQL

Pulsamos el botón Add.

Linux. Además, de esta manera no hay que tocar nada en la configuración del servidor MySQL

Ahora realizamos una conexión SSH al servidor de Base de Datos y una vez creada dicha conexión, ya podemos acceder al servidor remoto de BD como si lo hiciéramos localmente. Simplemente desde un cliente Windows ejecutamos el comando, asegurándonos de que escucha por el puerto nº 5000: mysql -u root p - -port=5000.

Windows ejecutamos el comando, asegurándonos de que escucha por el puerto nº 5000: mysql -u root

PRACTICAS SOBRE SSL CON HTTP

INSTALACION DEL SERVIDOR WEB APACHE

Lo primero que debemos de hacer es instalar el servidor web Apache para ello debemos ejecutar el siguiente comando apt-get install apache2-utils.

el siguiente comando apt-get install apache2-utils. Comprobaremos desde el servidor que hay un servicio

Comprobaremos desde el servidor que hay un servicio escuchando por el puerto TCP/80 ejecutando el comando netstat –natp.

desde el servidor que hay un servicio escuchando por el puerto TCP/80 ejecutando el comando netstat

Comprobaremos que el proceso correspondiente se está ejecutando con el comando ps –ef | grep apache.

se está ejecutando con el comando ps –ef | grep apache. Comprobaremos que la instalación del

Comprobaremos que la instalación del servidor apache se ha realizado correctamente conectándote desde el anfitrión con el navegador a la IP del Servidor Ubuntu y veremos la página predefinida del servidor Apache.

Ubuntu y veremos la página predefinida del servidor Apache. En la versión 14.04 utilizada por nuestro

En la versión 14.04 utilizada por nuestro servidor Ubuntu necesitamos comprobar que se ha creado un directorio llamado /var/www/html, cuyo propietario es root y es el directorio raíz del servidor virtual por defecto. Este directorio contendrá el fichero index.html.

es root y es el directorio raíz del servidor virtual por defecto. Este directorio contendrá el

Aquí tenemos una captura de los archivos que tendremos en el directorio de configuración del servicio apache2 que serán importantes durante nuestra instalación.

apache2 que serán importantes durante nuestra instalación. Primeramente usaremos el fichero de configuración

Primeramente usaremos el fichero de configuración apache2.conf El fichero de configuración del servicio es /etc/apache2/apache2.conf donde se encuentran una serie de directivas muy importantes como pueden ser las siguientes:

ServerRoot

se encuentran una serie de directivas muy importantes como pueden ser las siguientes: ServerRoot User y

User y Group

se encuentran una serie de directivas muy importantes como pueden ser las siguientes: ServerRoot User y

Timeout.

se encuentran una serie de directivas muy importantes como pueden ser las siguientes: ServerRoot User y

En la versión 14.04 de Ubuntu la directiva contenedora del directorio que se utiliza para determinar como el servidor Apache sirve el contenido del directorio /var/www viene contenido en este fichero de configuración /etc/apache2/apache2.conf y será como la captura abajo reseñada.

Directory

y será como la captura abajo reseñada. Directory En el fichero de log de errores se

En el fichero de log de errores se ubica en /var/log/apache2/error.log.

de log de errores se ubica en /var/log/apache2/error.log. También consultaremos el fichero de configuración

También consultaremos el fichero de configuración contenido en /etc/apache2/ports.conf y comprobaremos que el puerto por el que escucha las peticiones Apache HTTP es el puerto 80, mientras que el puerto que escucha las peticiones HTTPS es el 443 siempre y cuando se habilite el modulo ssl_module.

443 siempre y cuando se habilite el modulo ssl_module . En la versión de Ubuntu 14.04

En la versión de Ubuntu 14.04 también consultaremos el fichero de configuración /etc/apache2/sites-available/000-default.conf y podremos comprobar como dentro de <VirtualHost> </VirtualHost> se define el comportamiento del servidor virtual por defecto.

Aspectos importantes a destacar dentro de este fichero de configuración son los siguientes:

DocumentRoot: será el valor de la directiva del directorio principal que contiene la estructura de directorios visible desde la web y en este caso será /var/www/html.

Errorlog: será la ubicación del fichero en el que se almacenan los mensajes de error.

CONFIGURACION DE AUTENTICACION DEL SERVIDOR WEB APACHE HTTP

1. Autenticación HTTP Basic

Comprobaremos consultando el directorio /etc/apache2/mods-enabled que dentro de los módulos habilitados se encuentra el módulo auth_basic.load.

habilitados se encuentra el módulo auth_basic.load. Para usar la autenticación basic hay que crear un fichero

Para usar la autenticación basic hay que crear un fichero accesible por el servidor Apache en el que se guardaran los usuarios y sus contraseñas. Para crear este fichero utilizaremos el comando htpasswd –c /etc/apache2/passwd <y el usuario a crear>, donde la opción –c se utiliza para crear dicho fichero de contraseñas. A continuación crearemos dos usuarios llamados asir1 y asir2.

continuación crearemos dos usuarios llamados asir1 y asir2. Como vemos en la captura anterior al crear

Como vemos en la captura anterior al crear el primer usuario use la opción –c porque no estaba creado el fichero mientras que para el segundo usuario no use dicha opción ya que estaba creado dicho fichero passwd.

En la siguiente imagen como queda dicho fichero passwd con los dos usuarios creados y sus contraseñas encriptadas.

con los dos usuarios creados y sus contraseñas encriptadas. En la versión de Ubuntu 14.04 crearemos

En la versión de Ubuntu 14.04 crearemos el directorio /var/www/html/profesor con un archivo index.html con un contenido que queramos introducir.

index.html con un contenido que queramos introducir. El contenido del archivo index.html será el siguiente: A

El contenido del archivo index.html será el siguiente:

El contenido del archivo index.html será el siguiente: A continuación lo que haremos será editar el

A continuación lo que haremos será editar el fichero de configuración /etc/apache2/sites-available/000-default.conf y permitiremos el acceso al directorio /var/www/html/profesor a los usuarios asir1 y asir2 incluyendo las siguientes líneas en dicho fichero.

al directorio /var/www/html/profesor a los usuarios asir1 y asir2 incluyendo las siguientes líneas en dicho fichero.

A continuación reiniciaremos el servidor para que los cambios tengan efecto.

el servidor para que los cambios tengan efecto. Prueba desde otra máquina accede a

Prueba desde otra máquina accede a http://ip_dirección_servidor/profesor con el usuario asir1 o asir2.

Prueba realizada desde la máquina de Windows 7 con el usuario asir1.

CASO 1: Usuario asir1 creado anteriormente. Como podemos apreciar cuando tratamos de entrar en la dirección IP del servidor web Apache en la

máquina Ubuntu vemos que nos aparece una alerta de seguridad de Windows donde nos pide un usuario

y contraseña, introducimos dichas credenciales y haremos clic en Aceptar.

introducimos dichas credenciales y haremos clic en Aceptar. Una vez hemos aceptado vemos que nos aparece

Una vez hemos aceptado vemos que nos aparece el mensaje de bienvenida que creamos dentro del archivo index.html del directorio del profesor.

dentro del archivo index.html del directorio del profesor. Con respecto a la pregunta de si es

Con respecto a la pregunta de si es posible acceder realizada en la práctica la respuesta es sí como hemos visto anteriormente.

CASO 2: Usuario sebas uso no permitido. Cuando intentamos entrar con un usuario no permitido en el servidor nos aparece una alerta de seguridad donde intentamos introducir el usuario sebas y su contraseña 3 veces.

introducir el usuario sebas y su contraseña 3 veces. Y vemos que recibimos un mensaje de

Y vemos que recibimos un mensaje de fallo al intentar entrar en el directorio profesor del servidor web Apache como podemos apreciar en la siguiente imagen.

fallo al intentar entrar en el directorio profesor del servidor web Apache como podemos apreciar en

CONFIGURACION DE AUTENTICACION DEL SERVIDOR WEB APACHE HTTP DIGEST

2. Autenticación HTTP Digest

En la versión de Ubuntu 14.04 crearemos el directorio /var/www/html/departamento con un archivo departamento.html con un contenido que queramos introducir.

departamento.html con un contenido que queramos introducir. Habilitaremos el módulo auth_digest y para ello
departamento.html con un contenido que queramos introducir. Habilitaremos el módulo auth_digest y para ello

Habilitaremos el módulo auth_digest y para ello ejecutaremos el siguiente comando a2enmod auth_digest. Como vemos en la imagen nos pide que reiniciemos el servicio para que los cambios tengan efecto.

a2enmod auth_digest. Como vemos en la imagen nos pide que reiniciemos el servicio para que los
a2enmod auth_digest. Como vemos en la imagen nos pide que reiniciemos el servicio para que los

Como veremos en esta imagen vemos que ya tenemos habilitado el módulo auth_digest.load.

vemos que ya tenemos habilitado el módulo auth_digest.load. Una vez reiniciado el servicio para usar la

Una vez reiniciado el servicio para usar la autenticación digest hay que crear un fichero accesible por el servidor web Apache en el que se guardarán los usuarios y sus contraseñas asociados a un dominio (realm). Para crear este fichero se utilizará el comando htdigest.

Crea el fichero y añade el usuario admin1 al dominio informática (la opción –c es para crear el fichero) con el comando htdigest –c /etc/apache2/digest informática admin1.

Crearemos también el usuario admin2 al dominio de informática (en este caso no será necesario la opción –c para crear dicho fichero ya que esta creado) y lo haremos con el comando htdigest /etc/apache2/digest informática admin2.

crear dicho fichero ya que esta creado) y lo haremos con el comando htdigest /etc/apache2/digest informática

A continuación lo que haremos será editar el fichero de configuración /etc/apache2/sites-available/000-default.conf y permitiremos el acceso al directorio /var/www/html/departamento a los usuarios admin1 y admin2 incluyendo las siguientes líneas en dicho fichero.

/var/www/html/departamento a los usuarios admin1 y admin2 incluyendo las siguientes líneas en dicho fichero.

Prueba desde otra máquina accede a http://ip_dirección_servidor/profesor con el usuario admin1 o

admin2.

Prueba realizada desde la máquina de Windows 7 con el usuario asir1.

CASO 1: Usuario admin1 creado anteriormente. Como podemos apreciar cuando tratamos de entrar en la dirección IP del servidor web Apache en la máquina Ubuntu vemos que nos aparece una alerta de seguridad de Windows donde nos pide un usuario y contraseña, introducimos dichas credenciales y haremos clic en Aceptar.

introducimos dichas credenciales y haremos clic en Aceptar. Una vez hemos aceptado vemos que nos aparece

Una vez hemos aceptado vemos que nos aparece el mensaje con el index.html del departamento y que en dicho index aparece un archivo llamado departamento.html.

en dicho index aparece un archivo llamado departamento.html. Una vez pinchamos sobre dicho archivo vemos que

Una vez pinchamos sobre dicho archivo vemos que nos aparece el contenido de dicho archivo creado anteriormente en el servidor web Apache y su resultado es el siguiente:

en el servidor web Apache y su resultado es el siguiente: Con respecto a la pregunta

Con respecto a la pregunta de si es posible acceder realizada en la práctica la respuesta es sí como hemos visto anteriormente.

CASO 2: Usuario sebas uso no permitido. Cuando intentamos entrar con un usuario no permitido en el servidor nos aparece una alerta de seguridad donde intentamos introducir el usuario sebas y su contraseña 3 veces.

introducir el usuario sebas y su contraseña 3 veces. Y vemos que recibimos un mensaje de

Y vemos que recibimos un mensaje de fallo al intentar entrar en el directorio profesor del servidor web Apache como podemos apreciar en la siguiente imagen.

fallo al intentar entrar en el directorio profesor del servidor web Apache como podemos apreciar en

CONFIGURACION DE SERVIDOR VIRTUAL HTTPS POR DEFECTO EN LINUX

Primeramente lo que haremos será iniciar una sesión con un usuario con permisos de administración.

A continuación habilitaremos el servidor virtual por defecto de Apache con el siguiente comando a2ensite

000-default.conf.

Apache con el siguiente comando a2ensite 000-default.conf. A continuación verificaremos que dentro del directorio

A continuación verificaremos que dentro del directorio /etc/apache2/sites-enabled se ha creado un enlace

000-default.conf que actualmente se encuentra habilitado.

000-default.conf que actualmente se encuentra habilitado. A continuación nos pedirá que reiniciemos el servicio para

A continuación nos pedirá que reiniciemos el servicio para que los cambios tengan efecto.

reiniciemos el servicio para que los cambios tengan efecto. A continuación habilitaremos el módulo modssl que

A continuación habilitaremos el módulo modssl que permite usar https con el siguiente comando

a2enmod ssl.

que permite usar https con el siguiente comando a2enmod ssl. Reinicia el servidor para que los

Reinicia el servidor para que los cambios tengan efecto.

que permite usar https con el siguiente comando a2enmod ssl. Reinicia el servidor para que los

A continuación consultaremos el fichero /etc/apache2/ports.conf y observa que al habilitar el modulo ssl el servidor escuchará en el puerto 443.

el modulo ssl el servidor escuchará en el puerto 443 . Verifica que el servidor escucha

Verifica que el servidor escucha en los puertos 80/TCP y 443/TCP con el comando netstat –ltn.

los puertos 80/TCP y 443/TCP con el comando netstat –ltn. Accede al directorio /etc/apache2/sites-availables y

Accede al directorio /etc/apache2/sites-availables y observa que existe un fichero denominado default-ssl.conf que contiene la configuración por defecto de un servidor HTTPS.

que existe un fichero denominado default-ssl.conf que contiene la configuración por defecto de un servidor HTTPS.

Habilitaremos el servidor virtual ssl defecto (default-ssl) de Apache con el comando a2ensite default-ssl y a continuacion reiniciaremos el servidor para que los cambios tengan efecto.

el servidor para que los cambios tengan efecto . Consulta el fichero

Consulta el fichero /etc/apache2/sites-availables/default-ssl y observa su configuración. Fíjate en las directivas que habilitan SSL y que definen la ruta del certificado digital que usará el servidor.

El servidor utiliza por defecto un certificado digital autofirmado que se ha creado al instalar Apache. Un certificado autofirmado no está firmado por una autoridad de certificación (tercera parte de confianza) y, por tanto, no existen mecanismos automáticos que garanticen su autenticidad. Por eso los navegadores nos pedirán confirmación cuando el servidor se lo envíe.

En las siguientes imagines podremos ver las imagenes capturadas del fichero

/etc/apache2/sites-availables/default-ssl.conf.

En la version 14.04 de Ubuntu el DocumentRoot sera /var/www/html.

fichero /etc/apache2/sites-availables/default-ssl.conf. En la version 14.04 de Ubuntu el DocumentRoot sera /var/www/html.

Desde otra máquina abre el navegador y establece una conexión a http://IP_ServidorWEB. ¿Funciona? En este caso utilizaremos una maquina Windows 7 para hacer esta parte de la práctica y cómo podemos ver apreciamos que al ejecutar http://10.0.3.1 que es la dirección de nuestro servidor web funciona perfectamente.

dirección de nuestro servidor web funciona perfectamente. Repite el ejercicio anterior pero con

Repite el ejercicio anterior pero con https://IP_ServidorWEB. ¿Qué ocurre? En este caso utilizaremos una maquina Windows 7 para hacer esta parte de la práctica y cómo podemos ver apreciamos que al ejecutar https://10.0.3.1 que es la dirección de nuestro servidor web de forma segura, vemos que nos da un aviso de que existe un problema con el certificado de seguridad con este sitio web y si pinchamos en Vaya a este sitio web, cosa que no se recomienda, se nos carga perfectamente la página web que queríamos ver.

en Vaya a este sitio web, cosa que no se recomienda, se nos carga perfectamente la
en Vaya a este sitio web, cosa que no se recomienda, se nos carga perfectamente la

CONFIGURACION DE SERVIDOR VIRTUAL HTTPS EN APACHE/LINUX

Primeramente iniciaremos una sesión en el Servidor Web Linux con un usuario con privilegios de administración.

A continuación crearemos el directorio /var/www/html/seguro

continuación crearemos el directorio /var/www/html/seguro Creamos el fichero de texto /var/www/seguro/index.html con

Creamos el fichero de texto /var/www/seguro/index.html con el contenido que quieras.

/var/www/seguro/index.html con el contenido que quieras. Crearemos un certificado digital autofirmado usando openssl

Crearemos un certificado digital autofirmado usando openssl y para ello haremos las siguientes cosas:

Nos situaremos en el directorio home del usuario con el que has iniciado sesion y crearemos una clave privada RSA de 2048 bits con el comando openssl genrsa -out seguro.key 2048.

has iniciado sesion y crearemos una clave privada RSA de 2048 bits con el comando openssl

Generaremos una solicitud de certificado (CSR, Certificate Signing Request) e introduce los datos del certificado que piden con el comando openssl req -new -key seguro.key -out seguro.csr.

comando openssl req -new -key seguro.key -out seguro.csr. Esta solicitud de certificado se la podríamos enviar

Esta solicitud de certificado se la podríamos enviar a una autoridad de certificación para que generase el certificado (CRT). En este caso lo vamos a firmar nosotros mismos. Vamos a crear un certificado autofirmado.

Crea el certificado digital autofirmado usando la clave privada con el siguiente comando openssl x509 -req -days 365 -in seguro.csr -signkey seguro.key -out seguro.crt.

365 -in seguro.csr -signkey seguro.key -out seguro.crt. A continuación copiaremos la clave y el certificado en

A continuación copiaremos la clave y el certificado en los directorios que utiliza Apache y configuraremos los permisos adecuados ejecutando estos comandos:

sudo mv seguro.key /etc/ssl/private/ sudo mv seguro.crt /etc/ssl/certs/ sudo chown root:ssl-cert /etc/ssl/private/seguro.key sudo chmod 640 /etc/ssl/private/seguro.key sudo chown root:root /etc/ssl/certs/seguro.crt

/etc/ssl/private/seguro.key sudo chmod 640 /etc/ssl/private/seguro.key sudo chown root:root /etc/ssl/certs/seguro.crt
Creamos el fichero /etc/apache2/sites-available/seguro.conf con las siguientes directivas: Para ello, lo mejor sería

Creamos el fichero /etc/apache2/sites-available/seguro.conf con las siguientes directivas:

Para ello, lo mejor sería realizar una copia del ya existente archivo default-ssl, eliminar todas las líneas sobrantes y modificar otras hasta dejarlo así:

A continuación mostraremos una imagen de cómo quedará nuestro fichero de configuración del servidor seguro

:

nuestro fichero de configuración del servidor seguro : A continuación deshabilitaremos el servidor ssl por defecto

A continuación deshabilitaremos el servidor ssl por defecto con el comando sudo a2dissite default-ssl.

servidor seguro : A continuación deshabilitaremos el servidor ssl por defecto con el comando sudo a2dissite

A continuación habilitaremos el servidor virtual seguro con el comando sudo a2ensite seguro.conf y por último reiniciaremos el servicio con el comando service apache2 restart.

el servicio con el comando service apache2 restart . A continuación verificaremos que dentro del directorio
el servicio con el comando service apache2 restart . A continuación verificaremos que dentro del directorio

A

continuación verificaremos que dentro del directorio /etc/apache2/sites-enabled se ha creado el enlace

al

servidor virtual seguro.

se ha creado el enlace al servidor virtual seguro. A continuación reinicia el servidor para que

A continuación reinicia el servidor para que los cambios tengan efecto.

reinicia el servidor para que los cambios tengan efecto. Desde otro equipo abre el navegador y

Desde otro equipo abre el navegador y establece una conexión a https://IP_ServidorWeb. Verifica que ya hay certificado y observa sus detalles.

el navegador y establece una conexión a https://IP_ServidorWeb . Verifica que ya hay certificado y observa

ATAQUE MAN IN THE MIDDLE CON SSLSTRIP

Dado que es prácticamente imposible descifrar un mensaje cifrado con SSL se va a intentar suplantar la entidad del emisor de dicho mensaje. Una de las técnicas de suplantación es mediante ARP- Spoofing. Este ataque modifica la tabla arp de un host para hacer que resuelva una IP a una MAC que no es la que le corresponde. Esto es lo que hace posible el ‘Man in the middle’.

Esto es lo que hace posible el ‘Man in the middle’. Este es un ataque en

Este es un ataque en el que la víctima no detectaría nada raro, de ahí la dificultad de hacer frente a un ataque de este tipo.

Este ataque nos permite monitorizar el tráfico que deseemos de una red, tanto de un host hacia el router, como del router hacia un host.

Abre una terminal de comandos e instala el siguiente software:.

sudo apt-get update sudo apt-get install dsniff sudo apt-get install sslstrip

comandos e instala el siguiente software:. sudo apt-get update sudo apt-get install dsniff sudo apt-get install

Conéctate como root y haz que la máquina atacante pueda encaminar paquetes

su echo 1 > /proc/sys/net/ipv4/ip_forward exit

paquetes su echo 1 > /proc/sys/net/ipv4/ip_forward exit Redirigir todos los paquetes con destino a HTTP (puerto

Redirigir todos los paquetes con destino a HTTP (puerto 80) a otro puerto. Por ejemplo al 8081 sudo iptables –t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8081

Aquí se utiliza iptables, interfaz de comandos nativa en Linux para crear un cortafuegos. En este caso, cuando un paquete con destino al puerto 80 llega al host atacante (que ahora es un encaminador), justo antes de sacarlo por la interfaz de salida (tarea de PREROUTING) lo REDIRECCIONA al puerto 8081.

salida (tarea de PREROUTING) lo REDIRECCIONA al puerto 8081. En este puerto (8081) estará puesto a

En este puerto (8081) estará puesto a la escucha el programa sslstrip.

Realizar el envenenamiento ARP de alguna víctima. Aquí se utilizará la herramienta ettercap cuyo uso es el siguiente:

Realizar el envenenamiento ARP de alguna víctima. Aquí se utilizará la herramienta ettercap cuyo uso es

Partimos del siguiente escenario:

IP router:

IP atacante: 10.0.3.1

IP victima:

10.0.3.3

10.0.3.2

sudo ettercap -Tq -i eth1 -M arp:remote /10.0.3.2/10.0.3.3/

atacante:  10.0.3.1 IP victima:  10.0.3.3  10.0.3.2 sudo ettercap -Tq -i eth1 -M arp:remote

A continuación lanzamos el programa sslstrip y abrimos otro terminal de comandos y ejecutamos el siguiente comando sudo sslstrip –w hacking.txt -l 8081

el siguiente comando sudo sslstrip –w hacking.txt -l 8081 Todo lo que capture ssltrip por el

Todo lo que capture ssltrip por el puerto de escucha ( -l hacking.txt

8081 ) se guardará en el archivo

escucha ( -l hacking.txt 8081 ) se guardará en el archivo hacking.txt En el equipo víctima

hacking.txt

En el equipo víctima que será la máquina Windows 7 abriremos un navegador web y accederemos a alguna página en la que haya que introducir credenciales como por ejemplo http://www.gmail.com.

Ejecutando el comando arp -a en una consola de comandos del equipo victima se ve

Ejecutando el comando arp -a en una consola de comandos del equipo victima se ve claramente la duplicidad de direcciones MAC con el debían router

la duplicidad de direcciones MAC con el debían router Con el comando Y a pesar de

Con el comando

Y a pesar de entrar en una página HTTPS segura, ettercap recupera una página HTTP y con toda la información, password incluida, en texto claro.

Accediendo al archivo hacking.txt de sslstrip, también se recupera información similar.

Observación: Ejecutando el comando arp -a en una consola de comandos del equipo victima se ve claramente la duplicidad de direcciones MAC con la máquina del debían router.

de direcciones MAC con la máquina del debían router. Recomendaciones :  Utilizar tablas ARP estáticas.

Recomendaciones:

Utilizar tablas ARP estáticas.

En el caso de utilizar el navegador Firefox añadirle el complemento HTTPS Everywhere y/o SSL Blacklist.

Utilizar seguridad de puertos en el switch, si es que esto es posible.

Fomentar el uso de VLANs.

A continuación instalaremos la herramienta grafica de ettercap con el siguiente comando sudo apt-get install ettercap-graphical.

instalaremos la herramienta grafica de ettercap con el siguiente comando sudo apt-get install ettercap-graphical.

Con el comando sudo ettercap –G lanzaremos el programa en su interfaz gráfica.

–G lanzaremos el programa en su interfaz gráfica. A continuación lo que debemos de hacer es

A continuación lo que debemos de hacer es en el Menú de la herramienta seleccionamos la opción Sniff y dentro de su menú contextual seleccionamos Unified Sniffing.

de su menú contextual seleccionamos Unified Sniffing. A continuación seleccionamos la interfaz que queremos

A continuación seleccionamos la interfaz que queremos snifar en mi caso será eth1.

seleccionamos Unified Sniffing. A continuación seleccionamos la interfaz que queremos snifar en mi caso será eth1.

En la siguiente imagen lo que podemos ver es que se produce el sniffing de la interfaz seleccionada.

es que se produce el sniffing de la interfaz seleccionada. A continuación seleccionaremos Hosts/Scan for hosts

A continuación seleccionaremos Hosts/Scan for hosts para escanear los equipos que estan en la interfaz eth1.y una vez terminado sacaremos la lista de dichos Host /Host List.

para escanear los equipos que estan en la interfaz eth1.y una vez terminado sacaremos la lista
para escanear los equipos que estan en la interfaz eth1.y una vez terminado sacaremos la lista

Una vez terminado el escaneo sacaremos la lista de dichos con la opción Host /Host List.

la lista de dichos con la opción Host /Host List. A continuación seleccionamos un host y

A continuación seleccionamos un host y seleccionamos en el menú de la herramienta ettercap la opción MITM y a continuación ARP Poisoning.

un host y seleccionamos en el menú de la herramienta ettercap la opción MITM y a

En la ventana que nos aparece seleccionamos Sniff remote connections y pulsamos Aceptar.

Sniff remote connections y pulsamos Aceptar. A continuación vamos a la opción de la herramienta

A continuación vamos a la opción de la herramienta ettercap Start y seleccionamos Start Sniffing.

pulsamos Aceptar. A continuación vamos a la opción de la herramienta ettercap Start y seleccionamos Start

En otro terminal ejecutar sslstrip con el comando sslstrip –w hacking.txt -l 8081

ejecutar sslstrip con el comando sslstrip –w hacking.txt -l 8081 Desde el ordenador victima acceder a

Desde el ordenador victima acceder a www.gmail.com

ejecutar sslstrip con el comando sslstrip –w hacking.txt -l 8081 Desde el ordenador victima acceder a