You are on page 1of 14

1.

Instalacion de servidor Web y seguridad con SSL

• Instalar Apache con php con soporte a MySQL

Escribimos apt-get update para actualizar el sistema operativo.

Instalamos apache, php con sus librerias.


apt-get install apache2 libapache2-mod-php5 php5-mysql

Instalamos el servidor de mysql.


apt-get install mysql-server

En la opcion del servidor de MySQL debe decirdir si colocar contrasena o no.


En esta parte no utilizaremos contrasena para el servidor de MySQL.

Copie la carpeta del sitio web a direccion /var/www.


cp -r (nombre directorio origen) (destino)

En este ejemplo utilizaremos el gestor de contenidos de drupal para crear nuestro


sitio web local. Despues de copiar la carpeta de drupal al directorio /var/www,
hacemos los pasos de instalacion en cual nos piden que organicemos el archivo
settings.php, para hacer esto hacemos lo siguiente:

Copiamos el archivo default.settings.php a sites/default/.


cp sites/default/default.settings.php sites/deault/settings.php

Luego damos los permisos de escrita sobre el archivo y la carpeta.

chmod o+w sites/default/settings.php


chmod o+w sities/default

Agregamos el password al administrador de la base de datos.


Mysqladmin -u root password (nuevopassword)

Creamos la base de datos dentro del administrador y entramos al gestor de bd para


darle a drupal los permisos necesarios dentro de la base de datos.

Mysqladmin -u (nombre usuario) -p create (nombre BD)


Entrar el password de MySQL.

Luego entramos a la base de datos con:


mysql -u (nombre usuario) -p
Entrar el password de MySQL.

Luego escribimos dentro de MySQL los permisos de la siguiente manera:
GRANT   SELECT,   INSERT,   UPDATE,   DELETE,   CREATE,   DROP,   INDEX,  
ALTER ON (nombre BD).* TO (nombre de usuario)@localhost IDENTIFIED BY 
(Password)
Luego de hacer todo lo requerido empezamos con la instalaciond de drupal.
En la direccion http://localhost/drupal-6.16/index.php
drupal-6.16 – es la version de drupal la cual puede variar en el tiempo.

Seguimos las indicaciones dentro de la interface con los datos que poseemos de
la base de datos.

Luego tenemos por seguridad del gestor de contenido tenemos que quitar los
derechos de escritura en el archivo settings.php y la carpeta que lo contiene.

Chmod o-w var/www/drupal-6.16/sites/default


Chmod o-w var/www/drupal-6.16/sites/default/settings.php

Instalamos la GD library de php que es necesario para drupal.


Con sudo apt-get install php5-gd.
Hay que anotar que en este ejemplo estamos utilizando la version 5 de php, la cual
puede cambiar en el tiempo.

Reiniciamos el apache.
Sudo /etc/init.d/apache2 restart

Listo ahora el gestor de contenido esta listo para usarse y ser gestionado.

• Instalacion del certificado SSL

Primero vamos a crear las siguientes carpetas donde guardaremos los archivos:
/root/certificados
/root/certificados/CA
/root/certificados/Personal
Primero vamos a crear la entidad certicadora en cargada de validar que la llave de
nuestro sitio web es quien dice ser. Vamos al directorio /root/certificados/CA y
creamos una llave privada para la entidad certificadora con los siguientes datos.

Algoritmo: 3des
Nombre de la llave (Archivo de salida): ca.key
Tamano: 2048
Contrasena:(******)

cd /root/certificados/CA
openssl genrsa -desc3 -out ca.key 2048
cat ca.key

A partir de la llave privada generada, vamos a generar el certificado de la entidad


certificadoran con los siguientes datos:

Datos del certificado (Ejemplo):


Pais: CO
Estado: Antioquia
Localizaci'on (Ciudad): Medellin
Nombre de la organización: Certicamara S.A.
Unidad Organizacional: Unidad Certificadora
Nombre Comun: Certicamara
Correo: contacto@ccc.org.co

Tipo: x509
Duracion: 120 dias.
Nombre del certificado: ca.crt
openssl req -new -x509 -days 120 -key ca.key -out ca.crt
cat ca.crt

Creamos una version de texto del certificado creado en el archivo anterior

openssl x509 -in ca.crt -text -out ca.txt


cat ca.txt
Observamos el certificado con los datos suministrados
cat ca.txt |grep Subject

Despues de crear el certificado de la empresa certificadora empezaremos a crear


el certificado personal de la pagina web la cual hara referencia al certificado de la
entidad certificadora en este caso Certicamara. En el directorio
/root/certificados/Personal crearemos la llave personal con los siguientes datos:

Algoritmo: 3des
Nombre de la llave: personal.key
Tamano: 1024
Contrasena: (****)

openssl genrsa -des3 -out personal.key 1024


cat personal.key &

Ahora crearemos una peticion de certificador a partir de la llave creada en el paso


anterior.

Nombre del archivo: personal.crs


Tamano: 1024
Datos del certificado (Ejemplo):
Pais: CO
Estado: Antioquia
Localizaci'on (Ciudad): Medellin
Nombre de la organización: Information Security Server S.A.
Unidad Organizacional: Seguridad Informatica
Nombre comun: ISS
Correo: info.security.server@gmail.com
Atributos Extra:
Challange Password: (Vacio)
Nombre opcional; (Vacio)

openssl req -new -key personal.key -out personal.crs


cat personal.crs

Ahora creamos un certificado digital a partir de la peticion creada en el paso


anterior y utilizando la llave ca.key creada en el primer paso. Esto es crear un
certificado digital firmado por la entidad certificadora creada.

Tipo: x509
Peticion del certificado: personal.crs
Nombre del certificado (Archivo de salida): personal.crt
Llave de la entidad certificadora: ../CA/ca.key
Certificado de la entidad certificadora: ../CA/ca.crt
Vigencia: 60 dias

openssl x509 -req -in personal.crs -out personal.crt -sha1 -CA ../CA/ca.crt -Cakey
../CA/ca.key -CAcreateserial -days 60

Ahora crearemos un texto del certificado creado.


Openssl x509 -in personal.crt -out personal.txt -text
cat personal.txt &
Para ver informacion mas especifica usamos.

Datos del certificado a personal:


Cat personal.txt | grep Subject

Datos del certificado de la entidad certificadora:


Cat personal.txt | grep Issuer

Provamos si nuestro servicio ssl esta en buen funcionamiento.


openssl s_server -cert personal.crt -www -key personal.key

Escribimos en el browser https://localhost:4433. Siendo el puerto 4433 el puerto


por defecto de la HTTP Secure. Ahora cerramos el servicio dentro de la terminal
con Ctrl-C.

Con nuestro certificado personal subiremos el servicio ssl para que lo pueda
usar nuestro sitio web. Para esto primero necesitaremos originar un archivo .pem
de nuestro pesonal key, el cual sera utilizado por el virtual host que crearemos
para nuestro sitio web.

Openssl rsa -in personal.key -out personal.pem

Habilitamos el modulo ssl en apache.


A2enmod ssl

Ahora creamos la configuracion del sitio para el servidor seguro basandonos en la


que lleva por defecto:

cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl
ln -s /etc/apache2/sites-available/ssl /etc/apache2/sites-enabled/ssl

Dentro del archivo /etc/apache2/sites-enabled/ssl tiene que empezar de la


siguiente manera:
Esto nos creara el virtual host que utilizaremos para el http Secure.
Siendo:

NameVirtualHost *:443. Nombre del host virtual con su ip(*) y con el puerto por
defecto para ssl. En algunas plataformas funciona mejor con ip = _default_

NameVirtualHost _default_:443

<VirtualHost *:443>. El directorio virtual que utilizaremos para nuestro sitio


web con su ip(*) y con el puerto por defecto para ssl. En algunas plataformas funciona
mejor con ip = _default_.

<VirtualHost _default_:443>

DocumentRoot y <Diretory> la direccion de archivo donde estara ubicado


drupal.

ServerName el nombre que utilizaremos para llamar al main page del sitio web.
!!Es opcional!!

SSLEngine on, activar el ssl.


SSLCertificateFile (Ruta del certificado personal).
SSLCertificateKeyFile (El archivo pem que hace referencia a nuestra personal
pem file).

En /etc/apache2/sites-enabled/000-default o /etc/apache2/sites-enabled/default
una manera similar:
Anadimos en el fichero /etc/apache2/ports.conf dentro de IfModule
NameVitualHost *:443 o NameVitualHost _default_:443
Listen 443

(Opcional)Tambien en ciertas versiones de apache tambien hay que configurar el


/etc/apache2/sites-available/default-ssl de la misma manera que configuramos el
/etc/apache2/sites-enabled/ssl. Ademas de ingresar en el archivo
/etc/apache2/httpd.conf

Include /etc/apache2/sites-available/default-ssl

Por ultimo reiniciamos apache 2:


/etc/init.d/apache2 force-reload

o mediante el siguiente comando ya que aveces el apache no reinicia bien.


/etc/init.d/apache2 stop
/etc/init.d/apache2 start
Y escribimos en el browser https:// y no http:// de la siguiente manera:
https://www.drupal.com o si lo configuramos sin ServerName solo seria
https://localhost/index.php. Nos mostrara el browser el siguiente mensaje:

Permitimos que el browser entre a la pagina mediante – I unserstand the risks, y


nos mostrara el gestor de contenidos con https secure (https).

You might also like