RSS

HTTP y HTTPS en Apache : Instalación y configuración de varios sitios web con varios interfaces y puertos. Autentificaciones basica e implicita

10 Ene

El servidor Apache es un servidor web multiplataforma de código abierto que usar el protocolo HTTP para publica paginas web

Instalación y configuración de un servidor Apache en Ubuntu 14.04

Configurar la interfaces de red de la máquina virtual

Dos interfaz de red, un adaptador solo anfitrión y el otro adaptador puente para acceder a internet y conecta a segunda red (LAN)

Encendemos el servidor e inicio conexión por ssh

Comprobar las direcciones IP de las interfaces de red

Ifconfig -a

ifconfig -a

Instala apache2 (la version actual)

 sudo apt-get update && sudo apt-get updgrade

 sudo apt-get install apache2

instala apache2

Espera que se instala todo los paquetes necesarios y comprobarlo

Comprobar la instalación del servidor apache

Comprobar si la instalación es correcta y esta funcionado el servidor apache con

 netstat -natup | grep apache

comprobar la instlacion de servidor apache

La instalación es correcta si está escuchando las peticiones del puerto 80
Ahora comprobar con un navegador web poniendo la dirección IP del servidor apache, la interface controlado esta en adaptador solo anfitrión con IP 192.168.56.10 y te mostrar la página por defecto que dice, ya funciona

image009

Así, ya tenemos apache instalado y listo para configuraciones personalizadas.

Crear de dos sitios web con distintas interfaz, mismo puerto

Situado dentro del directorio /etc/apach2/sites-avialable ,deshabilitar el sitio por defecto con el comando

a2dissite 000-default

image010

Mover el fichero del sitio por defecto para crear el fichero de configuración para nuestro sitio1

 mv 000-default.conf  sitio1.conf

image011

Clonamos este fichero para crear fichero de nuestro sitio2 que luego nos modificaremos con las directivas que necesitamos

image012

Crear los propios directorios para los dos sitios webs en /var/www/html

image013

Crear las índex.html para los sitios copiando el original y luego borrarla /etc/apache2/sites-avialable/sitioX tanto /var/www/html/sitioX/index.html para que tengan las directivas que necesitamos.

 nano /etc/apache2/sites-avialable/sitio1.conf

 

sitios

2

Habilitar los sitios recién creados con el comando

# a2ensite sitio1

a2ensite sitio2

Recarga los cambios apache con el comando

service apache2 reload

image016

Ahora comprobar desde la maquina real poniendo las distintas direcciones IP

image017

image018

 

Creación de dos sitios web con misma interfaz, distintos puerto

Añadimos el puerto deseado en el fichero /etc/apache2/ports.conf y modificar las directivas del ficheros en /etc/apache2/sites-enable asi usaremos el puerto 8080
Nota: Este puerto personalizada debe ser mayor que 1024 y esta habilitado en el servidor donde esta instalado apache.

image019

Remplazamos el puerto por defecto por nuestro puerto personalizada en el fichero /etc/apache2/sites-available/sitio2

image020

Reinicia apache con service apache2 restart

image021

Nota: Si te encuentras con el error , No te preocupes
* Restarting web server apache2
AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using
127.0.1.1 Set ‘ServerName’ directive globally to suppress this message.

Solucion: agregar la line ServerName localhost en final del fichero /etc/apache2/apache2.conf

image022

Trata de reinicia el servicio

image023

Comparobar las dos vitualhost en misma interfaz con distintos puertos poniendo la dirección y dos puntos con numero de puerto

image024

Configuración de dos sitios con mismo interfaz, mismo puerto y distinto nombre: http://www.sitio1.es y http://www.sitio2.es

Modificamos el anterior para que las directivas de sitio dos se escucha en las misma interfaz y puerto con sitio uno

image025

Añade las alias de los distintos sitios en su archivo de configuración en /etc/apache/sites-enable/ dentro de la etiqueta VirtulaHost

ServerName http://www.sitio1.es

ServerName http://www.sitio2.es

luego , añadimos este registro en resolv host para solucionar esta perticion directas ya que nuestro sitio web no esta publicado a internet para los servidores dns publico.

En linux /etc/hosts
En window c:\windows\system32\drivers\etc\hosts

hosts config

Ahora comprobamos poniendo la url completa de los sitios.

image027Creación de un sitio https usando el modulo seguro ssl

Para este tipo de configuración, visita la punblicacion aqui

Configura el sitio1.es para que contenga un directorio “privado” al que sólo puedan acceder usuarios autorizados usando el tipo de autenticación básica, realizarlo usando el archivo htaccess para configurar las directivas de seguridad y crear un archivo de usuarios/contraseñas.

Directorio restringido con autenticación básica

1: Instala apache3 utils
#  sudo apt-get install apache2-utils

image060

2: Crear el directorio privado

image061

3: Creer un subdirectorio que vamos a visualizar a final cuando comprobaremos con el navegador

image062

4: Crear el primer usuario apache que tendrán acceso a esta carpeta de la manera siguiente

sudo htpasswd –c /var/www/usuarios.apache “nombre_usuario”

Cada vez que creemos un usuario, htpasswd nos preguntará qué contraseña queremos asignarle. el -c es para que no crear el fichero.

image063

Sería bueno que el fichero de claves esté fuera de los directorios públicos del servidor web. De este modo, eliminamos la posibilidad de que sea descargado.

5: Seguridad: por otra parte, limitaremos los permisos en el sistema para que el fichero usuarios.apache sólo pueda ser leído por el usuario www- data (creado para el servidor web)

 sudo chmod 600 /etc/usuarios.apache

 sudo chown www-data:www-data /etc/usuarios.apache

image064

6: Crear un grupo apache llamado “grupo_privado_sitio1.apache” sobre un archivo donde se guarda los nombres de los usuarios quien tendrán acceso al directorio /var/www/html/sitio1/privado/

 sudo nano /var/www/grupo_privado_sitio1.apache

image065

En este archivo, declaremos el nombre como “grupo” y “dos puntos” a continuación, metemos el nombre previamente creados para usuarios al directorio privado del sitio1 separándoles con un espacio.
grupo: [nombre_usuario]

image066

Igual que en el anterior por seguridad, damos permiso a www-data por este fichero

 sudo chmod 600 /etc/grupo_privado_sitio1.apache

 sudo chown www-data:www-data /etc/ grupo_privado_sitio1.apache

image067

7: Crear el archivo .htaccess dentro del directorio a proteger /var/www/html/sitio1/privado con las directivas correspondiente

 sudo nano /var/www/html/sitio1/.htaccess

image068

AuthType Basic
AuthName “Solo Usurios Autorizados!”
AuthUserFile /etc/usuarios.apache
AuthGroupFile /etc/grupo_privado_sitio1.apache
Require group grupo

image069

8: Luego añade las siguientes directivas en el fichero sitio1.conf para que se aplica las directivas de .htaccess al directorio apropiada.

var/www/html/sitio1/privado>
             AllowOverride AuthConfig
</Directory>

image070

9: Habilitar el módulo de autentificación en grupos . si hubieramos creado usuarios solos, deberiamos habilar los de los usurios

 sudo a2enmod authz_groufile

image071

10: Reiniciamos el servicio apache2

image072

11: Comprobamos poniendo la IP/ [nombre de carpeta privado] en el navegador
En este caso será 192.168.56.10/privado y continuación ingreso el usuario creado previamente e la contraseña del usuario.

image073

Y tenemos acceso al directorio privado con autentificación adecuada.

image074


Nota:

Tenga en cuenta que la autenticación básica utiliza codificación base64 sin cifrar mientras que la autentificación implícita (Digest) comunica credenciales en forma encriptada mediante la aplicación de una función hash para el nombre de usuario, la contraseña, el servidor suministrado valor “nonce”, el método HTTP y el URI solicitado.

Ej: Con wireshark, capturar el tráfico mediante una conexión http con autentificación Basic

sireshark

Esto significa que es fácil de roba la contraseña de usuario por se tranporta solo codificado, no encriptado.

Por lo tanto la autentificación básica sólo debe utilizarse en general, donde se proporciona la seguridad de capa de transporte como https. si no, utilice la autentificacion Implícita (Digest)

A continuación nos veremos como se configuración la autentificcion implícita

Anuncios
 

Etiquetas: , , , ,

4 Respuestas a “HTTP y HTTPS en Apache : Instalación y configuración de varios sitios web con varios interfaces y puertos. Autentificaciones basica e implicita

  1. Altair Antonio

    3 mayo, 2016 at 20:58

    AMIGO QUISIERA QUE CADA SITIO WEB SEA ACCESADO POR UN USUARIO DIFERENTE, QUE ES LO QUE TENDRIA QUE HACER???

    Me gusta

     
    • Rolando Nguba

      3 mayo, 2016 at 21:26

      Crear grupos de usuarios y asigna ese grupo a cada sitio determinado. asi, si crear un usuario perteneciendo a un grupo, ese usuario puede acceder a solo el sitio del grupo.

      Me gusta

       

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: