Documente Academic
Documente Profesional
Documente Cultură
En Centos
Por
Grupo:
38110
Instructor
Mauricio Ortiz
Administración de Redes
Sena
Medellín
2011
1
Introducción
Una infraestructura PKI (Infraestructura de clave pública) con certificados digitales me permite
confiar en una autoridad certificadora para la seguridad de un sitio web. La tecnología PKI
permite a los usuarios autenticarse frente a otros usuarios y usar la información de los
certificados de identidad (por ejemplo, las claves públicas de otros usuarios) para cifrar y
descifrar mensajes, firmar digitalmente información, garantizar el no repudio de un envío, y
otros usos.
Para la implementación de la infraestructura PKI vamos a utilizar como ejemplo un sitio web
seguro, vamos a mostrar como es el proceso para crear un CA (Entidad certificadora), crear
una petición desde el servidor web, la autofirmaciòn de la petición del realizada por el servidor
web desde nuestra CA y también se dará a conocer como una CA que no es la creada por
nosotros nos firma la petición del servidor web para que nos genere un certificado digital
firmado con la firma de la CA para que garantice que el sitio web seguro cuando sea visitado si
sea un sitio de confianza.
Este trabajo tiene como propósito afianzar conocimiento en nuestro proceso de formación y
dar a conocer cómo trabajar con una infraestructura PKI.
2
Instalación y configuración del servidor DNS.
Que es DNS?
Domain Name System o DNS (en español: sistema de nombres de dominio) es un sistema de
nomenclatura jerárquica para computadoras, servicios o cualquier recurso conectado a
Internet o a una red privada. Este sistema asocia información variada con nombres de
dominios asignado a cada uno de los participantes. Su función más importante, es traducir
(resolver) nombres inteligibles para los humanos en identificadores binarios asociados con los
equipos conectados a la red, esto con el propósito de poder localizar y direccionar estos
equipos mundialmente.
Instalación:
Para la instalación del servidor DNS en Centos ejecutamos el comando mostrado en la imagen
siguiente.
Ilustración 1
Ilustración 2
3
Ya dentro del archivo especificamos las zonas directa e inversa. En la imagen en un recuadro
azul se muestra como se hace.
Ilustración 3
Zona inversa: Las zonas de búsqueda inversa contienen información necesaria para realizar las
búsquedas inversas. La mayor parte de las consultas proporcionan un nombre y solicitan la
dirección IP que corresponde a ese nombre. Este tipo de consulta es el descrito en la zona de
resolución directa
Zona directa: Las zonas de búsqueda directa contienen la información necesaria para resolver
nombres en el dominio DNS. Deben incluir, al menos, registros SOA y NS, y pueden incluir
cualquier otro tipo de registros de recurso, excepto el registro de recursos PTR.
Ya configurada nuestras zonas, dentro del mismo directorio ingresamos al archivo que se
muestra en la imagen de la maneja que se muestra en el recuadro azul.
Ilustración 4
4
En dicho archivo configuramos en la opción listen-on port 53 que por defecto trae solo la
dirección de lookback, entonces tenemos que agregar la dirección IP estática de nuestra
interfaz de red.
Ilustración 5
Ilustración 6
Utilizamos el comando ls para listar lo que hay dentro del directorio y verificar que las copias
realizadas en el paso anterior se hicieron correctamente.
Ilustración 7
Los archivos directa e inversa se deben configurar para este caso como se muestra en la
imagen siguiente donde:
5
Server: nombre de la maquina.
Dominio: wilmer.tom
NS: El registro de recursos NS (Name Server) indica los servidores de nombres autorizados para
la zona. Cada zona debe contener registros indicando tanto los servidores principales como los
secundarios. Por tanto, cada zona debe contener, como mínimo, un registro NS.
CNAME: El registro de nombre canónico (CNAME, Canonical NAME) crea un alias (un sinónimo)
para el nombre de dominio especificado.
PTR: El registro de recursos PTR (PoinTeR) o puntero, realiza la acción contraria al registro de
tipo A, es decir, asigna un nombre de dominio completamente cualificado a una dirección IP.
Este tipo de recursos se utilizan en la denominada resolución inversa.
Utilizamos el comando cat mas los archivos directa e inversa para desplegar los archivos de
configuración de las zonas directa e inversa.
Ilustración 8
Ilustración 9
6
Ahora configuramos el archivo resolv.conf para especificar la dirección IP y el dominio con el
cual se está trabajando. Este archivo es necesario para que nuestro servidor DNS resuelva o
cumpla su función correctamente.
Ilustración 10
Ilustración 11
Ahora procedemos a realizar las pruebas del servicio DNS. Para verifiar que nuestro DNS esta
funcionando correctamente utilizamos el comando nslookup y el FQND o la dirección IP que
vamos a resolver.
Nslookup: Es un programa, utilizado para saber si el DNS está resolviendo correctamente los
nombres y las IP. Se utiliza con el comando nslookup, que funciona tanto en Windows como en
UNIX para obtener la dirección IP conociendo el nombre, y viceversa.
Ilustración 12
7
Creación de zonas forwarder
Las zonas forwarder se utilizan para resolver dominios no conocidos por nuestro servidor DNS.
Ilustración 13
Creamos la zona forwarder, en este caso es para el dominio leidy.lab. Se puede observar como
se crea el la siguiente imagen.
Ilustración 14
Luego de realizar las zonas forwarder ingresamos al archivo que se ve en la imagen siguiente.
Ilustración 15
8
Ingresamos el ID de la red o la superred a la cual vamos a resolver dominios no conocidos. Para
añadir el ID de la red se hace de la manera que no muestra la imagen. Por defecto viene solo
localhost, esto se hace en el parámetro matc-clients y match-destinations.
Ilustración 16
Ilustración 17
9
Procedemos a verificar la resolución del FQND de uno de los registros del dominio leidy.lab.
Utilizamos el comando nslookup mas el nombre a resolver.
Ilustración 18
Un servidor web o servidor HTTP es un programa que procesa cualquier aplicación del lado del
servidor realizando conexiones bidireccionales y/o unidireccionales y síncronas o asíncronas
con el cliente generando o cediendo una respuesta en cualquier lenguaje o Aplicación del lado
del cliente. El código recibido por el cliente suele ser compilado y ejecutado por un navegador
web. Para la transmisión de todos estos datos suele utilizarse algún protocolo. Generalmente
se utiliza el protocolo HTTP para estas comunicaciones, perteneciente a la capa de aplicación
del modelo OSI.
Ilustración 19
Luego nos dirigimos a la ruta /var/www/html para crear un sitio web con un editor de texto,
el archivo en este caso se llama index.html.
10
Ilustración 20
Ilustración 21
Ilustración 22
Nos dirigimos al navegador para entrar al sitio web. Como tenemos un registro en el servidor
DNS que apunta a www.wilmer.tom ingresamos a nuestro sitio web con dicho nombre.
Nota: Si tuviéramos mas de un sitio web se agrage después de www.wilmer.tom el nombre del
otro sitio. Por ejemplo http://www.wilmer.tom/prueba.
Ilustración 23
11
Entidad Certificadora
La creación de nuestra propia entidad certificadora nos va a servir para generar una petición
para un sitio web seguro. Vamos a generar dicha petición para utilizar un sitio web seguro y
confiable. Cuando generamos la petición esta incluye el certificado digital del servidor y la
clave publica del servidor, se la enviamos a la CA la cual con la clave privada nos firma la
petición y así nos genere un certificado digital que contiene la llave pública del servidor y la
firma digital de la CA, y por aparte nos envía en certificado digital de la CA para instalarlo en el
navegador.
Se dice firma digital a un esquema matemático que sirve para demostrar la autenticidad de un
mensaje digital o de un documento electrónico. Una firma digital da al destinatario seguridad
en que el mensaje fue creado por el remitente, y que no fue alterado durante la transmisión.
Las firmas digitales se utilizan comúnmente para la distribución de software, transacciones
financieras y en otras áreas donde es importante detectar la falsificación y la manipulación.
Nota: Si no queremos crear un CA propia si no que queremos que la petición la firme una CA ya
existente y que dicha CA sea un entidad certificadora raíz solo lo que tenemos que hacer es
solicitar una petición de certificado digital para un sitio web, pero esta solicitud ya se hace a
través de la pagina oficial de dicha CA. Existen muchas entidades certificadoras en el mundo,
en internet las pueden encontrar.
En esta ocasión yo creo mi propia CA por que era para practicas de estudio y quería aprender a
como crear un CA y como se firmaba una petición. Utilizamos la herramienta openssl para
crear la CA, crear la petición, firmar la petición e instalar en certificado digital de la CA que
firmo la petición.
Que es OpenSSL?
12
Consiste en un robusto paquete de herramientas de administración y bibliotecas relacionadas
con la criptografía, que suministran funciones criptográficas a otros paquetes como OpenSSH y
navegadores web (para acceso seguro a sitios HTTPS).
Estas herramientas ayudan al sistema a implementar el Secure Sockets Layer (SSL), así como
otros protocolos relacionados con la seguridad, como el Transport Layer Security (TLS). Este
paquete de software es importante para cualquiera que esté planeando usar cierto nivel de
seguridad en su máquina con un sistema operativo libre basado en GNU/Linux. OpenSSL
también permite crear certificados digitales que pueden aplicarse a un servidor, por ejemplo
Apache.
Por defecto en el sistema operativo centos el paquete de OpenSSL ya viene instalado, en caso
de que no este instalado ejecutamos el comando: yum install openssl
Ilustración 24
Ya dentro del script nos dirigimos el parámetro Making CA certifícate y debajo de dicho
parámetro aparecen otros dos que son: $REQ y $CA, a dichos parámetro le vamos a agregar el
siguiente enunciado: -extensions v3_ca. Este procedimiento se puede observar en la imagen
que se muestra a continuación y se puede también ver en donde o en que parte del parámetro
hay que agregarlo.
13
Ilustración 25
Luego de hacer los cambios en el script procedemos a ejecutarlo. Antes de ejecutar el script
utilizamos el comando ./CA – h para ver las opciones con las que se puede ejecutar el script o
para que deseamos ejecutar el script. Dicho procedimiento se puede ver claramente en la
imagen a continuación.
Ilustración 26
Presionamos enter para empezar a crear la CA y luego nos pide que digita una password para
generar la clave privada de la CA.
Ilustración 27
Cuando ya ingresemos el password el script nos empieza a preguntar por los parámetros con
que vamos a generar nuestra CA. Estos parámetros son: País, provincia o región, ciudad,
nombre de la organización, nombre un la unidad organizativa, nombre común de la CA (como
se va a llamar la CA), email. Cuando llenemos estos parámetros damos enter hasta donde nos
14
pide la clave que digitamos al principio en el script. Todo lo anterior se puede ver en la
siguiente imagen.
Ilustración 28
Aquí es donde no pide la clave que digitamos al principio del script para generar la clave
privada y el certificado digital con la llave publica. Cuando digitamos la clave el script nos
muestra los detalles del certificado digital que genero.
Ilustración 29
15
La entidad certificadora la genero en la ruta: /etc/pki/CA y dentro de ese directorio genero en
certificado digital con la llave publica que se llama cacert.pem y en la carpeta prívate genero la
llave privada que se llama cakey.pem.
Se preguntara por que los genero con ese nombre. Los genero con ese nombre por que en el
archivo de configuración del openssl esta por defecto que se creen con ese nombre y en dichos
directorios.
Ilustración 30
Vamos a generar una petición para nuestro sitio web, para ello vamos utilizar la herramienta
openssl.
Nos dirigimos a la ruta /etc/httpd, que es el directorio del servicio web. Utilizamos el
comando que se muestra en un recuadro azul de la imagen siguiente para generar la petición,
dentro del comando también generamos la llave privada del servidor.
Ilustración 31
Luego llenamos los campos o los parámetros para generar la petición de nuestro sitio web.
Estos parámetros son: País, provincia o región, ciudad, nombre de la organización, nombre un
la unidad organizativa, nombre común (nombre para común del sitio web), email. Cuando
16
llenemos estos parámetros damos enter hasta finalizar.Todo lo anterior se puede ver en la
siguiente imagen.
Ilustración 32
Verificamos que si se hallan generado tanto la petición como la llave privada del servidor con
el nombre que le especificamos en el comando que ejecutamos en el paso anterior.
Ilustración 33
Ilustración 34
17
En la sentencia dir modificamos después del igual (=) /etc/pki/CA para especificar la ruta
donde se encuentra la CA, por defecto esta así: ../../CA y hay que modificarlo como se ha
dicho al principio del enunciado. También un error que hay por defecto en este archivo es en la
sentencia prívate_key donde le agregan el comentario de lo que significa la sentencia, el signo
# esta pegado a la ruta donde se especifica la ruta donde esta la llave privada de la CA
entonces hay que hacer que el signo no este pegado a la ruta de la llave privada de la CA.
Ilustración 35
Luego de realizar los cambios del paso anterior procedemos a firmar la petición de nuestro
sitio web con nuestra CA. Nos dirigimos a la ruta donde se encuentra la petición /etc/httpd y
utilizamos el comando que se muestra en el recuadro azul de la imagen siguiente. Cuando
ejecutamos el comando nos pide que digitemos la clave con la que generamos la CA o con la
que se genero la llave privada de la CA y luego nos muestra el certificado digital a firmar y al
fina no va a aparecer una pregunta que dice que si realmente queremos firma dicho certificdo
y le decimos que si (y).
httpd-cert.pem: Nombre que se va a generar para en certificado digital del servidor con la
firmar de la CA cuando se firme.
18
Ilustración 36
Ilustración 37
Para utilizar el sitio web para sea un sitio seguro es necesario instalar el modulo de SSL.
Cuando se instala el modulo SSL vamos a configurar nuestro sitio web para que trabaje con el
certificado digital que solicitamos a nuestra CA.
Ilustración 38
19
Luego nos dirigimos a la ruta /etc/httpd/conf.d para observar el archivo de configuración de
SSL.
Ilustración 39
Ilustración 40
Ilustración 41
Ilustración 42
20
Instalación del certificado digital de la CA en el navegador
Nos dirigimos a la ruta: /etc/pki/CA y copiamos el certificado digital de la CA, que se llama
cacert.pem a la ruta /etc/httpd.
Nota: Cuando le enviamos una petición a una entidad certificadora raíz de confianza esto nos
va valer y cuando la CA a la cual vamos a confiar cuando nos firme la petición para nuestro sitio
web nos envía ya sea por correo u otro medio el certificado digital del sitio web firmado y el
certificado digital de CA para instalarlo en el navegador.
Ilustración 43
Ilustración 44
21
Nos dirigimos a la pestaña Avanzado y seleccionamos la pestaña pequeña que dice Cifrado y
damos clic en ver certificados.
Ilustración 45
Nos dirigimos a la pestaña Autoridades y se puede observar las entidades certificadoras raíces
que vienen por defecto. En dicha pestaña vamos a importar el certificado de la CA que firmo
en certificado digital para el sitio web. Damos clic en importar.
Ilustración 46
22
Buscamos la ruta donde esta el certificado de la CA, si se acuerdan nosotros hicimos una copia
del certificado de la CA en la ruta /etc/httpd en pasos anteriores. Entonces yo fui a buscar el
certificado en dicha ruta. Cuando encontré el certificado digital de la CA lo seleccione y di clic
en abrir.
Ilustración 47
Luego nos va a aparecer una ventana como la que se muestra en la imagen siguiente, donde
seleccionamos los propósitos en que queremos confiar con la autoridad certificadora que
vamos a instalar. Seleccionamos todos los propósitos de damos clic en aceptar.
Ilustración 48
23
Luego de confiar en la CA nos dirigimos a la pestaña Autoridades y buscamos la autoridad que
acabas de instalar. En la imagen siguiente se observa que se ha instalado correctamente.
Ilustración 49
Abrimos al navegador para ingresar al sitio web seguro y poder verificar que el sitio si tiene un
CA de confianza que dice que el sitio es un sitio seguro. Cuando estamos en el sitio web en la
parte inferior derecha aparece el nombre del sitio y un candado y cuando le damos doble clic
en el candado veremos el certificado digital de servidor y que CA firmo dicho certificado digital
y información del sitio web.
Ilustración 50
Cuando le damos doble clic en el candado que se vio en el paso anterior veremos una ventana
como la que se muestra a continuación y veremos información el sitio y si le damos clic en ver
24
certificado veremos el certificado digital del servidor. En el paso siguiente veremos que se ve
cuando damos clic en ver certificado.
Ilustración 51
Si damos clic en ver certificado del paso anterior veremos una ventana como se muestra a
continuación y veremos información del certificado, dicho información contiene: para quien se
emitió en certificado, quien emitió dicho certificado, fecha de validación, etc.
Ilustración 52
25
Certificado digital firmado por otra CA distinta a la mía.
Para hacer que un CA distinta a la de nosotros nos firme un certificado digital para nuestro
sitio web. Tenemos que generar una petición para enviársela a la CA que nos va a firmar y
crear un certificado digital para nuestro sitio web. La petición se hace igual que las
ilustraciones 31 y 32, cuando se genere la petición se la enviamos a la CA, en nuestro caso yo
se la envié a través de un ftp que tenia la CA. Luego de que la CA la investigué y la firme dicha
CA nos enviara el certificado digital firmado para el sitio web y el certificado digital de la CA
para instalarlo en el navegador, dicha CA me envió dichos certificados digitales a través de un
FTP que yo tenia. Luego lo que hice fue descargarlos y modificar el archivo ssl.conf que se
encuentra en la ruta /etc/httpd/conf.d para modificar el parámetro SSLCertificateFile y
colocar el certificado digital que me firma la CA, reinicie el servicio y procedí a instalar el
certificado de la CA en el navegador.
Luego de realizar lo anterior ingrese a nuestro sitio web seguro y le di doble clic en el candado
que aparece en la parte inferior derecha para ver los detalles del certificado digital del
sitio web.
Ilustración 53
Luego de dar clic en el candado veremos una ventana como la que se muestra a continuación y
damos clic en ver certificado.
Ilustración 54
26
Al darle clic en ver certificado veremos los detalles del certificado, y si observamos muy bien
podremos ver que la CA que nos firmo dicho certificado digital para el sitio web es distinta a la
de la ilustración 52.
27