Issuu on Google+

Instalaci贸n Apache en Ubuntu Server

David Ferre Reche


Indice:

¿ ¿Qué es “Apache”?

2

A Alias. Alojamiento de nombres Autentificación .htaccess. Autentificación.

17 42 30 25

C Carpetas personales. Certificados. Comando ab

20 46 40

I Instalación de apache en nuestro Ubuntu server:

3

M Mod_info Mod_status

36 34

P Pagina inicial. Personalización de errores.

14 12

W Webalizer

1

38


¿Qué es “Apache”?

Apache es el Servidor Web más utilizado, líder con el mayor número de instalaciones a nivel mundial muy por delante de otras soluciones como el IIS (Internet Information Server) de Microsoft. Apache es un proyecto de código abierto y uso gratuito, multiplataforma (hay versiones para todos los sistemas operativos más importantes), muy robusto y que destaca por su seguridad y rendimiento.

¿Qué es lo que hace? Este cubre unas funcionalidades, como pueden ser: 

Atender de manera eficiente, ya que puede recibir un gran número de peticiones HTTP, incluyendo una ejecución multitarea ya que pueden darse peticiones simultáneas. Cualquier petición compleja (por ejemplo con acceso a base de datos) dejaría colapsado el servicio.

Restricciones de acceso a los ficheros que no se quieran ‘exponer’, gestión de autentificaciones de usuarios o filtrado de peticiones según el origen de éstas.

Manejar los errores por páginas no encontradas, informando al visitante y/o redirigiendo a páginas predeterminadas.

Gestión de la información a transmitir en función de su formato e informar adecuadamente al navegador que está solicitando dicho recurso.

Gestión de logs, es decir almacenar las peticiones recibidas, errores que se han producido y en general toda aquella información que puede ser registrada y analizada posteriormente para obtener las estadísticas de acceso al sitio web.

Además, Apache nos permite configurar un Hosting Virtual basado en IPs o en nombres, es decir, tener varios sitios web en un mismo equipo (por ejemplo: nombreweb1.com, nombreweb2.com,….) o como indicábamos, establecer distintos niveles de control de acceso a la información incluyendo el soporte cifrado SSL utilizando protocolo seguro HTTPS.

2


Instalación de apache en nuestro Ubuntu server:

1- El primer paso que vamos a realizar es la instalación del servidor apache en nuestro Ubuntu Server, para ello deberemos utilizar el comando “apt-get install apache2”.

2- A continuación comprobaremos que el proceso se ha iniciado, esto lo haremos escribiendo la siguiente línea de comandos “/etc/init.d/apache2 start”.

3- Ahora deberemos comprobar que nos ha creado los directorios correspondientes

3


4- Si miramos en el fichero de gestión de grupos y usuarios, veremos que se ha creado un grupo y usuario llamado “www-data”.

5- Podemos observar que el propietario es el root.

6- Vamos a observar el contenido del directorio apache realizando un ls en este. Este se encuentra dentro de “/etc”, para ello realizaremos un “cd /etc/apache2” para ir al directorio, para a continuación mostrar el contenido.

4


7- Veremos si el servicio del apache esta iniciado, para ello deberemos utilizar el comando “ps –ef | grep apache2”

8- Debemos comprobar si el puerto 80 está escuchando, utilizando el comando “netstat –ltn”

9- Entraremos en el fichero de configuración “/etc/apache2/ports.conf” y comprobaremos si están habilitados los servidores virtuales [Name Virtual Host *:80] en todas las direcciones IP que contengan (*) y en el puerto 80. Esto anulara el servidor principal en todas las direcciones IP.

5


10- Ahora deberemos comprobar que existe el fichero “default” dentro del directorio “sites-avaiable”, este fichero contiene la configuración del servidor virtual por defecto. Para ello usaremos el comando “cd /etc/apache2/sites-avaiable” para situarnos en el directorio correspondiente, y a continuación realizaremos un “ls”.

11- Toca comprobar si existe el fichero “00-default”, este se encuentra dentro del directorio “sites-enables”. Este directorio se encuentra dentro de “apache2”.

12- Vamos a dirigirnos al fichero “default” que se encuentra en “/etc/apache2/sitesaviables”, y comprobamos que el fichero raíz es “/var/www”.

13- Realizamos un ping al servidor para ver si este funciona correctamente.

6


14- Ahora, utilizaremos el navegador para ver si podemos conectarnos con el servidor.

15- A continuación nos dirigiremos al fichero “index.html” que se encuentra en “/var/www” y comprobaremos que contiene lo que se nos mostró en la ventana del navegador.

16- A continuación vamos a proceder a la creación de un nuevo fichero en el directorio “/var/www”, a este fichero lo llamaremos “red.html”.

7


17- Vamos a situarnos en el cliente y acceder a la página que hemos creado.

18- Ahora vamos a crear el directorio datos dentro de “/var/www”.

8


19- Dentro del directorio “datos”, vamos a crear “datos.html”.

20- Vamos a comprobar que podemos acceder a “datos.html” desde nuestro navegador.

9


21- Vamos a continuar comprobando los ficheros de configuración de Apache, para ello deberemos ir al directorio “/etc/apache2” y ver la configuración del fichero “apache2.conf”.

22- Podremos comprobar en el mismo fichero que el máximo número de clientes por defecto, viene establecido en 150.

23- Dentro del mismo fichero buscaremos la directiva “ServerRoot”. A continuación buscaremos las directivas de “User y Group”.

10


24- Vamos a consultar el contenido del fichero “envvars”, que se encuentra dentro del directorio en el que nos encontramos en este momento, para realizar dicha acción, ejecutaremos el comando “cat envvars”.

11


Personalización de errores. 1- Para personalizar los errores, localizaremos los archivos “*.html” correspondientes a las páginas de los respectivos errores, dentro del directorio “/var/www”.

2- Ahora deberemos dirigirnos dentro del directorio “conf.d” que se encuentra dentro de “apache2”, para ello utilizaremos el comando “cd /etc/apache2/conf.d”, en el deberemos localizar el archivo “localized-error-pages”.

3- A continuación, modificaremos el archivo “localized-error-pages” colocando en las líneas correspondientes la ruta que corresponde a cada error, partiendo de que la raíz está en “/var/www”.

12


4- A continuaci贸n, comprobaremos que funciona correctamente, para ello probaremos el error 404.

13


Página inicial. 1- Lo primero que vamos a hacer en esta práctica es comprobar que nuestro servidor funciona correctamente, para ello utilizaremos el navegador web del cliente, introduciremos la IP de nuestro servidor y a continuación “index.html”, quedando más o menos de esta manera “192.168.1.136/index.html”.

2- A continuación renombraremos el fichero “index.html” llamándolo “índice.html”, este fichero se encuentra dentro de “var/www”.

14


3- Ahora podemos comprobar que el fichero “index.html” no existe, esto lo haremos poniendo la dirección anteriormente utilizada en nuestro navegador nuevamente.

4- Ahora editaremos el fichero “default”, este se encuentra en el directorio “/etc/apache2/sites-aviables”. Lo que debemos hacer es fijar como página principal “red.html”.

5- A continuación, vamos a acceder a “datos” desde nuestro navegador, esto lo haremos con la IP de nuestro servidor más la carpeta a la que queremos acceder. Al realizar esta acción, podemos observar que se nos muestra un listado con el contenido de la carpeta datos.

15


6- Para evitar esta situación, será necesaria la creación de una nueva directiva dentro de “default”. Para ello fijaremos en “DirectoryIndex” colocaremos una página que no exista, y borraremos “Indixes” de la segunda línea de la directiva.

7- Al realizar esta acción e intentar el acceso a esa página nos saltara el error 403, no dejándonos acceder a la página.

16


Alias. Apache permite mediante la directiva alias asignar cualquier tipo de ruta en el sistema de ficheros para que sea accesible desde la web. Se deben revisar estas reglas para verificar que no existan directorios asociados al servicio web que puedan ser mostrados.

1- En primer lugar, vamos a crear dos directorios dentro de “/home/usuario”, estos dos directorios serán llamados “Wiki y Blog”.

2- A continuación, crearemos una página html en cada uno de los directorios que hemos creado.

3- Ahora procederemos a crear las directivas en el fichero “default”, esto lo realizaremos de la siguiente manera:

17


4- Una vez realizadas las directivas, crearemos un enlace simbólico en “var/www/log”, este debe apuntar a “/home/david/blog”, para ello escribiremos la siguente línea de comandos “sudo ln –s /home/david/blog /var/www/log”.

5- Ahora de las páginas que hemos creado.

18


19


Carpetas personales.

1- En primer lugar vamos a comprobar los módulos estático que se han cargado al compilar el servidor, pare ello deberemos ejecutar el siguiente comando “apachectl –l”.

2- Ahora, comprobaremos que los módulos han sido cargados dinámicamente al servidor, para ello nos dirigiremos al directorio “/etc/apache2/mods-eneable”.

3- Si observamos, nos podemos dar cuenta de que los ficheros anteriormente mostrados, son enlace simbólicos a los que se encuentran en “/etc/apache2/modsaviable”.

20


4- Vamos a observar el contenido de uno de los ficheros “*.load”, vamos a utilizar “alias.load”.

5- Vamos a realizar lo mismo con uno de los ficheros “*.conf”, utilizaremos como ejemplo “alias.conf”.

6- Ahora, nos dirigiremos al directorio “/usr/lib/apache2/modules”, de esta forma podremos consultar los módulos que tenemos disponibles para cargar.

21


7- Vamos a mostrar los paquetes disponibles en los repositorios de Ubuntu que nos permitirán instalar módulos adicionales en Apache, para elle ejecutaremos el comando “apt-cache search libapache2-mod”.

8- Ahora, comprobaremos que el modulo “userdir” no está habilitado, para ello nos dirigiremos a “/etc/apache2/mods-eneable”, observaremos un hueco donde este debería estar.

9- Ahora, habilitaremos el modulo, para ello utilizaremos el comando “a2enmod userdir”. Para que los cambias tengan efecto, deberemos reiniciar Apache.

22


10- Ahora podremos comprobar que estos módulos han sido habilitados, para ello regresaremos a “/etc/apache2/mods-eneable”, y haremos un listado de los módulos activos.

11- Observaremos el contenido de ambos ficheros, si observamos detenidamente, podemos evidenciar que “userdir.conf” habilita el uso de los directorios personales para todos los usuarios excepto root y que “public_html” es el subdirectorio que pueden crear (no se crea con habilitar el módulo, ha de ser manualmente) para compartir sus páginas.

12- Ahora comprobaremos lo citado anteriormente, para ello crearemos el directorio “public_html” dentro de nuestra “home”, y dentro de este insertaremos un nuevo documento html, llamado “personal.html”.

23


13- A continuación, utilizando el navegador del cliente, probaremos si tenemos acceso al usuario creado, para ello deberemos añadir “~” delante del usuario del “home”.

24


Autentificación. 1- Lo primero que vamos a hacer, es crear el directorio “privado” dentro “/var/www”, y dentro de este, “privado.html”.

2- Accederemos a la página creada, para probar que esta es accesible en estos momentos.

25


3- Vamos a evitar que esto ocurra, para ello vamos a editar las directivas de este directorio, acudiremos a “/etc/apache2/sites-aviables”, y editaremos el fichero “default”, añadiendo para ello una nueva directiva. Solo permitiremos el acceso a la página desde el servidor local y el equipo que estamos utilizando en este momento.

4- Comprobaremos que si probamos a acceder a la página desde otro equipo que no tenga la IP que hemos establecido, no será posible acceder.

26


5- A continuación vamos a comprobar que el modulo “auth_basic.load” está activado en el directorio “/etc/apache/mods-enabled”, este módulo está relacionado con la autentificación.

6- Ahora utilizaremos el comando “htpasswd” para crear dos usuarios, “mortadelo” utilizando “htpasswd –c” y “filemon” solo con “htpasswd”.

7- A continuación, permitiremos el acceso al archivo a “mortadelo”, pero no a “filemon”, para ello editaremos el fichero de configuración “/etc/apache2/sitesavailable/default”.

27


8- Al intentar acceder a la página, se nos pedirá un usuario y contraseña.

9- En caso de identificarse correctamente accederemos a la página.

28


10- En caso contrario nos aparecerá el error 401.

11- Si intentamos acceder con “filemon” no será posible, ya que aun habiendo sido creado, no lo hemos dado permiso con las directivas correspondientes.

29


Autentificación .htaccess. 1- Lo primero que debemos hacer, es editar el fichero “etc/apache2/sitesaviables/default” para habilitar el uso de ficheros “.htaccess”, permitiendo de este modo ignorar las directivas del directorio existentes, y teniendo efecto las que se establezcan en “.htaccess”, creado en “/home/david/wiki”.

2- Ahora comprobaremos que el fichero de configuración de directivas de los directorios son “.htaccess” por defecto, esto lo podremos ver en “/etc/apache2/apache2.conf”.

30


3- A continuación vamos a crear el fichero “.htaccess”, este lo crearemos dentro del directorio “wiki” en “/home/david/wiki”. Debemos tener en cuenta que una vez creado el fichero no podremos verlo con un comando “ls” normal, ya que este se trata de un archivo oculto, sino que necesitaremos un “ls –la”.

4- Ahora, vamos a acceder a “wiki” desde nuestro navegador. Veremos que en estos momentos nos dejara acceder sin ningún tipo de problema. Nos mostrara el directorio, ya que hemos fijado “index.html” como página de inicio y esta no existe.

31


5- Ahora vamos a crear el fichero “.htpasswd” dentro de “wiki”, y añadiremos el usuario “wiki”.

6- A continuación editaremos el fichero “.htaccess” para que pida la autentificación del usuario para poder acceder a “wiki”.

7- Ahora al reiniciar el servidor e intentar acceder de nuevo, podremos ver que nos pide la autentificación.

32


8- Si nos identificamos con el usuario al que le hemos dado permiso de acceso, podremos acceder al “wiki� sin restricciones.

33


Mod_status Este es un módulo de estado que nos va a permitir si todo esta correcto en nuestro servidor, este nos va a dar información sobre el estado del servidor. Este nos muestra en una página HTML de forma fácilmente entendible, las estadísticas del servidor actual.

1- Lo primero que debemos hacer, es comprobar que el modulo se encuentra habilitado, esto lo averiguaremos realizando un “ls” en “/etc/apache2/modsenabled”.

2- A continuación, deberemos editar el fichero “httpd.conf” para que solo se puede acceder al módulo desde nuestro navegador cliente, este fichero se encuentra en “/etc/apache2”.

34


3- Solo nos queda probar en nuestro navegador cliente si este funciona.

35


Mod_info Esto nos ofrecerá un panorama completo de la configuración del servidor.

1- Lo primero que debemos hacer, es comprobar que el modulo se encuentra habilitado, esto lo averiguaremos realizando un “ls” en “/etc/apache2/modsenabled”, veremos que no está habilitado.

2- A pesar de que el modulo no está activo en ese momento, podemos ver que si está instalado. Esto lo veremos en “/etc/apache2/mods-avaiable”.

3- Ahora deberemos activarlo, esto lo realizaremos con la sentencia “a2enmod info”, y nos dirá que reiniciemos el servidor para que los cambios sean activos.

36


4- Tras reiniciar el servidor podemos ver que los módulos ya están activados.

5- Ahora, solo nos queda modificar los parámetros en el fichero “httpd.conf” que se encuentra en “/etc/apache2” para poder acceder a este solo desde nuestro navegador cliente.

6- Ahora podremos acceder a este desde nuestro navegador.

37


Webalizer 1- Lo primero que debemos hacer es instalarlo en nuestro servidor, para ello escribimos la línea de comandos “apt-get install webalizer”.

2- A continuación, deberemos instalar el fichero “apache2.conf” que se encuentra en “/etc/apache2” y activaremos la variable “HostNamesLookups” pasándola de “OFF” a “ON”.

3- Ahora deberemos modificar el “webalizer.conf”, este se encuentra en “/etc/webalizer”, en el cambiaremos los parámetros mostrados a continuación.

Por:

38


Y comprobaremos la ruta del directorio.

4- Ahora comprobaremos que la herramienta funciona desde el mismo servidor, para ello utilizamos la línea de comandos “webalizer – c /etc/webalizer.conf –d”.

5- Solo nos queda probarlo desde nuestro navegador.

39


Comando ab 1- Lo primero que debemos hacer e instalar el paquete “apache2-utils�.

2- Ahora observaremos las posibilidades que nos ofrece este comando.

3- Ahora, vamos a probarlo ejecutando un comando con los parĂĄmetros que nosotros veamos pertinentes.

40


41


Alojamiento de nombres 1- El primer paso a realizar es comprobar que disponemos de una tarjeta de red y que tenemos asignada una dirección.

2- Ahora deberemos comprobar que solo tenemos un “NameVirtualHost”, esto es muy importante. La comprobación la haremos con “/etc/init.d/apache2 reload”.

3- Después de las comprobaciones, vamos a crear los directorios “aula1” y “aula2” con sus respectivos html en “/var/www”.

4- Ahora procederemos a crear los “sitios”, estos son ficheros alojados en “/etc/apache2/sites-aviable”.

42


5- Una vez creados los sitios, debemos activarlos, para ello utilizaremos la sentencia “a2ensite”.

6- Para evitar posibles errores desactivaremos el sitio “default”, para ello utilizaremos la sentencia “a2dissite”.

43


7- A continuación comprobaremos que los sitios han sido activados, esto lo podremos hacer en “/etc/apache2/sites-enabled”.

8- Ahora deberemos modificar el fichero “ports.conf” que se encuentra dentro de “/etc/apache2”, sustituyendo en “NameVirtualHost” el “*” pro la dirección IP de nuestro servidor.

9- Para realizar la comprobación, deberemos configurar el archivo “host” de nuestro cliente Windows, este se encuentra el “C:\Windows\System32\Drivers\etc”.

44


10- Ahora, solo nos queda comprobar que estas funcionan correctamente, para ello debemos poner la direcci贸n en el navegador como de detalla en la imagen.

45


Certificados. 1- En primer lugar observaremos si tenemos los módulos disponibles, esto lo haremos en “/etc/apache2/mods-avaiable”.

2- A continuación activaremos el modulo con “a2enmod ssl” y reiniciaremos el servicio para que los cambios tengan efecto.

3- Ahora, podremos observar en el directorio de sitios disponibles “/etc/apache2/sites-avaiable” que se encuentra “default.ssl”. A continuación, activaremos el sitio y haremos un “reload” del servicio.

46


4- Vamos a ver si ha sido activado, para ello acudiremos al directorio “/etc/apache2/sites-enabled”.

5- Observamos el contenido del fichero “default-ssl”.

6- A continuación vamos a comprobar la configuración realizada en nuestro navegador cliente.

47


7- A continuación desactivaremos el sitio “default-ssl” y reiniciaremos el servicio apache para continuar con la configuración.

8- Ahora, crearemos un certificado digital auto firmado con openssl para el dominio “seguro.david”. Lo primero que debemos hacer es instalar “openssl”.

9- Para tener una mejor organización de lo que vamos a realizar a continuación, crearemos un directorio llamado “ssl” dentro de “/etc/apache2” desde donde realizaremos las siguientes operaciones. 10- A continuación, nos dispondremos a generar la llave y con esta los certificados. Vamos a crear la llave en primer lugar, para ello introducimos el comando de la imagen, esto nos pedirá que introduzcamos la clave.

48


11- Ahora, generaremos el certificado digital. Este será firmado con la llave generada en el paso anterior, para ello introduciremos la siguiente sentencia.

12- A continuación, firmaremos la petición solicitada en el paso anterior con la siguiente sentencia.

13- Ahora, vamos a crear el directorio “seguro” con su correspondiente “html” dentro de “/var/www”.

49


14- Para no manipular el fichero “default”, vamos a realizar una copia de este llamado “seg-default”.

15- A continuación, editaremos el fichero “seg-default”.

16- Deberemos activar ahora el sitio recientemente configurado “seg-default”.

50


17- Ahora, añadiremos las líneas para leer los certificados en el fichero “seg-default”.

18- A continuación, vamos a para e iniciar el servicio de apache, al iniciar el servicio, este nos pedirá la contraseña.

19- Antes de continuar, añadiremos los “NameVirtulHost” modificando el archivo “/etc/apache2/ports.conf”.

51


20- Ahora pararemos e iniciaremos de nuevo el servicio.

21- Ahora vamos a proceder al acceso seguro a travĂŠs del certificado utilizando nuestro navegador.

52


53


22- Ahora vamos a volver a editar el fichero “seg-default” de forma que eliminemos el “Indexes” para que no muestre el contenido del directorio en el caso de que no

encuentre “seguro.html”.

23- En la parte inferior de “seg-default” editaremos tres directivas más, “ErrorLog, CustonLog y ErrorDocument”.

24- Crearemos el fichero “noseguro.html” dentro de “/var/www/seguro”, los otros dos quedaran vacíos. El directorio “seguro” quedaría de la siguiente manera.

54


25- Observamos el contenido del directorio “/var/log/apache2”.

26- Ahora para hacer una prueba, vamos a reiniciar el servidor y errar la contraseña para ver que nos deja iniciarlo.

27- Ahora vamos a comprobar que todo funcione correctamente. Primero iniciaremos la conexión segura.

55


28- Y ahora provocaremos el error.

56


Apache