20
TLS versión 3 en Linux CentOS Por: Carolina Guzmán Rodríguez Presentado a: Mauricio Ortiz Grupo: 38110 Administración de Redes de Cómputo SENA – CESGUE

How-To Tlsv3 Linux CentOS

Embed Size (px)

Citation preview

Page 1: How-To Tlsv3 Linux CentOS

TLS versión 3 en Linux CentOS

Por:

Carolina Guzmán Rodríguez

Presentado a:

Mauricio Ortiz

Grupo:

38110

Administración de Redes de Cómputo

SENA – CESGUE

Medellín – Colombia

Año 2011

Page 2: How-To Tlsv3 Linux CentOS

IMPLEMENTACIÓN DE SSL EN EL BROWSER DE CENTOS

En esta práctica demostraremos los pasos para crear una autoridad certificadora, también cómo crear solicitudes de certificados digitales de servidor y cliente, cómo firmar esos certificados y emitirlos, cómo configurar Apache como servidor seguro y la gestión de los certificados en los navegadores Web.

Algunas definiciones

SSL (Secure Sockets Layer -protocolo de capa de conexión segura): proporciona autenticación y privacidad de la información entre extremos sobre Internet mediante el uso de criptografía. Su sucesor es el TLS.

TLS (TransportLayer Security - Seguridad en la Capa de Transporte): Protocolo de comunicación de datos desarrollado para transmitir documentos privados a través del Internet. Es un protocolo criptográfico que proporciona un canal de comunicación seguro por una red, comúnmente Internet.

DNS (DomainNameSystem –sistemas de nombre de dominio):es un sistema de nombres que permite traducir de nombre de dominio a dirección IP y vice-versa.

Browser: (navegador web) es un programa que permite ver la información que contiene una página web, (ya se encuentre ésta alojada en un servidor dentro de la World Wide Web o en un servidor local).

FTP (File Transfer Protocol- Protocolo de Transferencia de Archivos): es un protocolo de red para la transferencia de archivos entre sistemas conectados a una red TCP, utilizando normalmente el puerto de red 20 y el 21.

CA (Autoridad de certificación, certificadora o certificante - AC o CA por sus siglas en inglés Certification Authority) es una entidad de confianza, responsable de emitir y revocar los certificados digitales o certificados, utilizados en la firma electrónica, para lo cual se emplea la criptografía de clave pública. Jurídicamente es un caso particular de Prestador de Servicios de Certificación.

¿Cómo creamos nuestro propio Browser Seguro?

Page 3: How-To Tlsv3 Linux CentOS

Creación del servidor DNS

Antes de crear la página web lo que hacemos es instalar y configurar nuestro servidor DNS para que este apunte a nuestra página web que en este caso se llamara www.carito.com, para instalar el servidor DNS en Linux CentOS, con el siguiente comando busquemos los paquetes disponibles

Luego los instalaremos como es debido utilizando el –y (yes)

Luego de la instalación procedemos a configurar las tarjetas de nuestra máquina, podemos configurarla por modo consola en la ruta /etc/sysconfig/network-scripts y editar la interfaz que vamos a utilizar, en este caso será la ifcfg-eth0y el editor de textos que utilizaremos será vim.

Allí lo que haremos es cambiar dhcppor none y asignar una dirección IP estática, mascara y puerta de enlace (Gateway)

Guardamos, salimos de la interfaz y reiniciamos las tarjetas de red, todo debe de dar OK

Luego vamos a verificar lo que si la configuración de la interfaz esta correcta utilizando el comando ifconfig

Luego especificamos nuestro Hostname en el siguiente fichero, en este caso nuestro host se llamara dns

Page 4: How-To Tlsv3 Linux CentOS

También cambiamos el nombre de nuestro host utilizando el siguiente comando y verificamos escribiendo solamente hostname y nos debe aparecer el nombre que le colocamos a nuestro host

Ahora configuraremos el archivo resolv.confque es necesario para poder resolver el nombre de nuestro dominio.

Aquí agregamos nuestro dominio carito.com y la dirección de nuestro servidor 192.168.150.10

Después vamos a ir al fichero en donde se especifican las zonas de nuestro servidor DNS y haremos una copia de seguridad de este archivo.

Procedemos a editar el archivo original, en donde especificaremos el tipo de zona que utilizaremos, el nombre de nuestra zona directa y el nombre de la zona inversa.

Page 5: How-To Tlsv3 Linux CentOS

Vamos a la siguiente ruta en donde vamos a crear y configurar nuestra zona directa y zona inversa, para ello realizamos una copia.

Después de realizar la copia procedemos a ingresar a los archivos para configurarlos de acuerdo a los parámetros que le estableceremos a nuestro DNS.

En la zona directa indicaremos el registro SOA “Start of Authority”, registro NS “Name Server” y el registro A “Adress” asocian nombres de host a direcciones IP.

# vim directa

Después de configurar la zona directa seguimos con la zona inversa en donde estableceremos los registros SOA, NS y PTR asocia direcciones IP a nombres de host.

#vim inversa

Page 6: How-To Tlsv3 Linux CentOS

Luego vamos a cambiar el usuario propietario y grupo propietario de nuestros dos archivos creados, ya que estos por defecto tienen como usuario y grupo el root estos deben de quedar como usuario y grupo (named)

Verificamos el usuario y grupo con el comando ll o también con el ls -l

Después de realizar esto vamos a configurar el archivo named.caching-nameserver.conf, que es uno de los archivos de servidor de nombres cache, en este archivo indicamos la dirección IP por donde va a escuchar el servidor, le agregamos nuestra dirección.

Luego más abajo encontramos en el archivo otro parámetro que nos especifica la forma en que permite la consulta

Reiniciamos el servicio DNS y el demonio es named

Y procedemos a realizar las pruebas con el comando nslookup

Page 7: How-To Tlsv3 Linux CentOS

Ahora agregarmos los forwarders en el archivo en donde especificamos la zona directa e inversa.

Este se encuentra en la ruta /var/nemed/chroot/etc/

Configuración de la página web

Debemos configurar el archivo host en donde espeficicamos la dirección de nuestro hosts y el FQDN (nombre de dominio totalmente cualificado)

Page 8: How-To Tlsv3 Linux CentOS

Vamos a la siguiente ruta para crear el archivo index.html es que lo que va a contener nuestra pagina web

Este va a ser el contenido de nuestra página web

Luego nos dirigimos a la zona directa del nuestro DNS en donde vamos a agregar un alias (CNAME) para www.carito.com

Luego reiniciamos servicio DNS, para así poder tomar los nuevos cambios realizados, lo probamos resolviendo para www.carito.com y efectivamente nos resuelve.

Después ingresamos al browser y probamos que si nos dé editando en la URL http://www.carito.com

INSTALAMOS LOS PAQUETES PARA EL FTP

Page 9: How-To Tlsv3 Linux CentOS

Procedemos con la configuración del FTP enjaulado, entramos primero al archivo de configuración vsftpd.conf

Le decimos que NO queremos entrar anónimamente al FTP

Seguimos bajando por el archivo y des-comentamos las siguientes líneas

Después debemos crear el archivo chroot_list quien se debe encontrar en la ruta que especificamos anteriormente, en /etc/vsftpd/chroot_list , dentro de este archivo vamos a agregar al usuario que queramos autenticar para entrar al ftp, en este caso se llamara carolina.

Después de guardar el nombre en este archivo lo que vamos a hacer es crear el usuario en nuestra maquina con el comando #useradd carolina y su respectivo password #password carolina

Luego vamos a crear el alias para ftp.carito.com, luego reiniciamos el servicio DNS (named) el servicio FTP (vsftpd) y lo probamos con nslookup.

Cuando nos de lo que debemos hacer es abrir el browser y editar en la URL ftp://ftp.carito.com este automáticamente nos debe de mostrar una ventana para poder loguearnos al ftp en donde el usuario es carolina y la contraseña la que le pusimos en un principio.

Page 10: How-To Tlsv3 Linux CentOS

INSTALACIÓN DEL mod_ssl

Instalamos el modulo https

Page 11: How-To Tlsv3 Linux CentOS

Entramos en la siguiente ruta y eliminamos la CA existente (por defecto) #cd /etc/pki/

Luego vamos a configurar el archivo openssl.cnf en donde se especifica la las rutas de la CA, le llave publica, el certificado entre otros.

En este archivo agregaremos la ubicación de la CA que se ubicara en /etc/pki/CA

Después editamos el siguiente archivo en el cual se encuentran los scripts de ejecución para la creación de la entidad certificadora.

Page 12: How-To Tlsv3 Linux CentOS

Agregamos las siguientes líneas para que la CA cuando le emitan las peticiones estas den por verdaderas

Aquí creamos la CA utilizando el comando ./CA –newca en este proceso de la creación de la CA se pedirán datos obligatorios para la identificación de la autoridad certificadora que estamos creando

Algunas identificaciones que nos piden son país, departamento, cuidad, compañía, sección, nombre de la CA que estamos creando, una dirección de correo electrónico, entre otras.

Page 13: How-To Tlsv3 Linux CentOS

Al final nos muestran un resumen de la CA creada

Creación de la petición de certificado para el web

Ahora creamos la petición para nuestra página web, en este proceso también nos pedirán unos datos para el certificado de sitio web en donde especificamos en (hostname), el nombre de nuestra pagina web.

Page 14: How-To Tlsv3 Linux CentOS

Firmamos la petición de certificado web

Firmaremos con la llave privada de la CA la petición generada para la página web para ello utilizamos el siguiente comando, en donde especificamos la ruta en donde va a quedar el certificado

Después de esto hacemos una copia de la cacert.pem a la ruta /etc/httpd en donde se encuentra nuestra página web, debemos estar parados en /etc/pki/CA editamos el siguiente comando

# cp cacert.pem /etc/httpd/ -R

-R lo utilizamos en este caso para que copie este archivo con todo su contenido al directorio /etc/httpd/

Después nos paramos en el directorio /etc/httpd/ para asi agregarle los permisos a certificado de la petición web, al certificado de la CA que acabamos de agregar y a la llave de este mismo, para ello utilizamos los siguientes comandos

# chmod 644 httpd-cert.pem (certificado de la pagina web)

# chmod 644 cacert.pem (certificado de la CA)

# chmod 400 httpd-key.pem (la llave que se genero al momento de mandar la petición a la CA)

Page 15: How-To Tlsv3 Linux CentOS

Vamos a editar el archivo ssl.conf que es el modulo que le instalamos para crear el https (seguro), este archivo se encuentra en /etc/httpd/conf.d/

# vim ssl.conf

En este archivo vamos a especificar las rutas de la SSLCertificateFile y la SSLCertificateKey

Ahora vamos a importar en el browser el certificado de la CA, para ello abrimos el navegador web, vamos a Editar, Preferencias, Avanzado, Cifrado, Ver certificados y le damos en Importar, allí buscamos la ruta en donde esta la CA, que en este caso se encuentra en la ruta /etc/httpd/cacert.pem.

Luego vamos a chulear unas opciones que nos aparecen, Aceptamos y cerramos. Cerramos el navegador y luego lo abrimos, entramos normal a la página web utilizando http

Y luego entramos de forma segura implementando el https

Page 16: How-To Tlsv3 Linux CentOS

Creación de una solicitud de certificado digital para el cliente

Necesitamos aumentar la seguridad a la hora de acceder a los sitios web, para ello implementaremos un certificado digital para que los clientes puedan acceder al sitio seguro.

Primero crearemos una carpeta en /etc/httpd/ llamada CertClientConf

En el proceso de creación de la solicitud se pedirá datos de identificación del certificado de cliente.

Aquí le decimos a la CA que nos firme la petición para el cliente

Page 17: How-To Tlsv3 Linux CentOS

Luego hacemos una copia del cacert de la CA a la carpeta CertClientConf que creamos para el cliente.

Nos paramos en la carpeta CertClientConf y le damos los permisos a cada archivo

Conversión a formato pkcs12

Para lograr que los navegadores clientes puedan importar el certificado de cliente y poder acceder al sitio seguro debemos convertir el certificado a un formato pkcs12.

Para ello nos paramos en la carpeta CertClientConf y editamos el siguiente comando para crear al certificado en formato p12, cuando ejecutamos el comando, nos pide una contraseña que utilizara el cliente para instalar el certificado.

Page 18: How-To Tlsv3 Linux CentOS

Ahora vamos a subir el certificado en nuestro FTP para que desde el cliente pueda importarlo, para ello entramos por modo consola el FTP con el usuario y contraseña que nosotros le creamos, para subir el certificado utilizamos el comando put, permite transferir un archivo desde la maquina local hasta la maquina remota.

ftp> put httpdClient-cert.p12

Luego desde el cliente entrando al FTP descargamos el certificado y luego lo importamos en el navegador web, ya que es importante que este contenga nuestro certificado para validar así nuestra sitio web creado.