how-to tlsv3 linux centos
TRANSCRIPT
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
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?
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
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.
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
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
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)
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
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.
INSTALACIÓN DEL mod_ssl
Instalamos el modulo https
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.
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.
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.
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)
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
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
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.
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.