• No se han encontrado resultados

SERVIDOR APACHE. Conexión remota con el servidor (putty)

N/A
N/A
Protected

Academic year: 2021

Share "SERVIDOR APACHE. Conexión remota con el servidor (putty)"

Copied!
8
0
0

Texto completo

(1)

S ERVIDOR APACHE

A lo largo de este módulo vamos a ir viendo los pasos para instalar el componente principal de nuestro servidor web.

Apache es uno los servidores http más extendidos actualmente para la implementación de servidores web.

Es un servidor de código abierto y multiplataforma, muy robusto y que destaca por su seguridad y rendimiento.

Será el encargado de procesar las peticiones de recursos (páginas, archivos, etc.) que hagan los clientes que visiten nuestro sitio web, gestionar si se entregan esos contenidos o no al cliente dependiendo de las políticas de seguridad.

Aparte del soporte para HTTP implícito, también nos ofrece soporte para la implementación de cifrados SSL y la configuración de conexiones seguras por medio de HTTPS.

Conexión remota con el servidor (putty)

Las instalaciones y configuraciones de nuestro servidor las realizaremos desde una terminal remota, utilizando el servicio SSH activado en FreeBSD por medio del programa putty que se describió en el módulo

‘software necesario’ el cual nos permite conectarnos al servidor de forma remota sin tener que actuar directamente con el ordenador donde está instalado el sistema.

Conectarnos al servidor:

Suponiendo que ya tenemos nuestro servidor (máquina virtual) en funcionamiento, seleccionándola en la ventana de VirtualBox y pulsando el botón Iniciar.

• Abrir el programa putty

• Introducir la IP del servidor en el recuadro ‘Host Name’.

• Asegurarnos de dejar marcada la opción SSH en ‘Connection type’.

• Introducir una descripción en el recuadro ‘Saved Sessions’ y pulsar el botón ‘Save’. De esta manera cada vez que deseemos conectarnos al servidor no tendremos que indicar la Ip, simplemente seleccionaremos de la lista el nombre y pulsaremos ‘Load’.

• Pulsar el botón ‘Open’ para iniciar la conexión con el servidor.

Grupo Isfe (c/ Blasco Ibáñez, 74 / 46100 / Burjassot / 963 643 447 / [email protected] / peam.es) Pág: 1/8

(2)

La primera vez que nos conectemos, se nos mostrará una ventana de advertencia de seguridad sobre las claves ssh por si deseamos almacenarlas en el registro de Windows para usos posteriores. Simplemente pulsaremos el botón ‘Sí’ para que las recuerde.

Se abrirá una ventana que hará las funciones de terminal, donde se nos solicitará el login y la clave del usuario con el que nos deseamos conectar.

En nuestro caso utilizaremos el usuario ‘super’ creado durante la instalación del sistema (ver ‘Instalar FreeBSD 10.1’).

Una vez logeados, ya estaremos preparados para trabajar con nuestro servidor.

(3)

Instalar el servidor APACHE

Como ya comentamos en el módulo anterior, para poder realizar las instalaciones de paquetes debemos tener privilegios de administrador, lo que nos obliga a convertirnos en administrador de forma temporal.

Ejecutamos el comando ‘su’ e introducimos la clave del administrador (root).

$ su Password:

root@srvweb_peam:/usr/home/super #

La instalación la realizaremos por medio de paquetes ya compilados del repositorio de FreeBSD por medio del comando pkg install apache24.

Este comando iniciará primero una comprobación del catálogo local de repositorios por si fuese necesaria su actualización y posteriormente nos mostrará el paquete que se tiene que instalar, sus dependencias y el espacio necesario para su instalación, esperando la confirmación del usuario.

Si en alguna de las instalaciones, se detecta que existen actualizaciones del programa pkg, primero nos preguntará si deseamos realizar su actualización antes de continuar con el paquete solicitado.

# pkg install apache24

Updating FreeBSD repository catalogue...

Fetching meta.txz: 100% 944 B 0.9kB/s 00:01

Fetching packagesite.txz: 100% 5 MiB 2.7MB/s 00:02 Processing entries: 100%

FreeBSD repository update completed. 23970 packages processed Updating database digests format: 100%

The following 9 packages will be affected (of 0 checked):

New packages to be INSTALLED:

apache24: 2.4.12 expat: 2.1.0_2 perl5: 5.18.4_11 pcre: 8.35_2 apr: 1.5.1.1.5.4 gdbm: 1.11_2 indexinfo: 0.2.2 gettext-runtime: 0.19.4 db5: 5.3.28_2

The process will require 0 GiB more space.

30 MiB to be downloaded.

Proceed with this action? [y/N]:y

Al confirmar esta acción, se iniciara la descarga del paquete, la instalación, la creación del usuario y grupo

‘www’ y al finalizar nos mostrará una serie de comentarios acerca de cómo activar el servicio durante el arranque del sistema y de cómo tenemos que tratar el uso de las DNS.

Una vez realizada la instalación, editaremos el fichero /etc/rc.conf para que cargue el servidor durante el proceso de inicio del sistema.

Para ello nos vamos a servir del editor de textos ‘ee’ incluido en FreeBSD ya que es uno de los más sencillos y fáciles de aprender.

$ ee /etc/rc.conf

Añadiremos la línea apache24_enable = “YES”, guardaremos los cambios y saldremos del editor.

• Para guardar los cambios accederemos al menú pulsando la tecla ESC, seleccionaremos la opción ‘c) file operations’ y a continuación ‘c) save file’.

• Para salir del editor pulsaremos la tecla ESC y seleccionaremos la opción ‘a) leave editor’.

Reiniciaremos el servidor con el comando ‘reboot’.

Grupo Isfe (c/ Blasco Ibáñez, 74 / 46100 / Burjassot / 963 643 447 / [email protected] / peam.es) Pág: 3/8

(4)

Tras reiniciarse el servidor, vamos a comprobar que el servicio está en funcionamiento listando los procesos net con el comando netstat

$ netstat -a

Si nos muestra estas líneas el servicio estará preparado

tcp4 0 0 *.http *.* LISTEN tcp6 0 0 *.http *.* LISTEN

Comprobar desde otro pc el funcionamiento abriendo el navegador y escribiendo la ip de nuestro servidor, si funciona se mostrará el mensaje '

It works!

'.

Si obtenemos el siguiente mensaje de error cuando se esté iniciando el servidor:

Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message.

Añadiremos la siguiente línea en el fichero de configuración de Apache /usr/local/etc/apache24/httpd.conf

ServerName 127.0.0.1 ó ServerName localhost

Esto lo comentaremos en el siguiente apartado de forma más amplia.

(5)

Comando apachectl

Si deseamos realizar las operaciones de puesta en marcha, detener o comprobar el servidor web de forma manual tendremos que utilizar el comando apachectl situado en el directorio /usr/local/sbin/

Muestra la versión de apache (-v)

root@srvweb_peam:/usr/local/sbin # apachectl -v Server version: Apache/2.4.12 (FreeBSD)

Server built: Feb 4 2015 08:06:56

Realiza una comprobación del archivo de configuraciones (configtest)

# apachectl configtest

Performing sanity check on apache24 configuration:

Syntax OK

Inícia el servidor (start)

# apachectl start

Performing sanity check on apache24 configuration:

Syntax OK

Starting apache24.

Nos indica cual el identificador de proceso asociado al servidor y si se encuentra en funcionamiento

# apachectl

httpd (pid 690) already running

Detiene el servidor (stop)

# apachectl stop Stopping apache24.

Waiting for PIDS: 690.

Reiniciar el servidor (restart)

# apachectl restart

Performing sanity check on apache24 configuration:

Syntax OK

Stopping apache24.

Waiting for PIDS: 690.

Performing sanity check on apache24 configuration:

Syntax OK

Starting apache24.

Grupo Isfe (c/ Blasco Ibáñez, 74 / 46100 / Burjassot / 963 643 447 / [email protected] / peam.es) Pág: 5/8

(6)

Configuración básica de Apache

Ahora que ya tenemos instalado y funcionando el servidor Apache, vamos a comentar y realizar una serie de configuraciones básicas.

Para configurar el servidor modificaremos el fichero /usr/local/etc/apache24/httpd.conf que es donde guarda los parámetros y opciones de su funcionamiento.

Ejecutamos el comando su y luego editamos el fichero de configuración de apache

$ su Password:

root@srvweb_peam:/usr/home/super # ee /usr/local/etc/apache24/httpd.conf

Poner comentarios

Cuando necesitemos comentar alguna línea de este archivo simplemente pondremos al principio de la línea el carácter ‘#’.

# De esta manera establecemos comentarios en el archivo de configuración

Listen

El comando Listen identifica los puertos en los que el servidor Web aceptará las peticiones entrantes. Por defecto, el Servidor Apache HTTP está configurado para escuchar en el puerto 80 para comunicaciones Web no seguras y en el puerto 443 para comunicaciones seguras.

Listen 80

ServerAdmin

Esta variable (directriz) establece la dirección de correo del administrador del servidor web.Esta dirección de correo aparecerá en los mensajes de error en las páginas generadas por el servidor Web, de tal manera que los usuarios pueden comunicar errores enviando correo al administrador.

Una forma típica de configurar ServerAdmin es configurarlo en a [email protected].

ServerAdmin [email protected]

ServerName

Esta variable para configurar un nombre de servidor y un número de puerto (que coincida con la directriz

Listen) para el servidor. El ServerName no necesita coincidir con el nombre real de la máquina. Por ejemplo, el servidor Web puede ser www.example.com pero el nombre del servidor es en realidad

foo.example.com.

En nuestro caso como no tenemos configurado un nombre de dominio utilizaremos localhost o 127.0.0.1 que hacen referencia a nuestra máquina.

ServerName localhost:80

DocumentRoot

DocumentRoot es el directorio que contiene la mayoría de los archivos HTML que se entregarán en respuesta a peticiones. El directorio predeterminado DocumentRoot para servidores web seguros y no seguros es /usr/local/www/apache24/data. Por ejemplo, el servidor puede recibir una petición para el siguiente documento:

(7)

El servidor busca por el archivo siguiente en el directorio por defecto:

/usr/local/www/apache24/data/cursos.html

Si deseamos establecer otra ubicación para la estructura de directorios visible desde la web, indicaremos la nueva ruta en esta directiva.

DocumentRoot "/mnt/webapps/www"

<Directory "/mnt/webapps/www">

Hemos cambiado la carpeta predeterminada donde se ubican los archivos de las webs a /mnt/webapps/www. También tendremos que cambiar el grupo principal de esta carpeta a www con el comando chgrp www /mnt/webapps/wwwy darle permisos de escritura con chmod 775 /mnt/webapps/www.

Para evitar que se muestren los listados de archivos en los directorios web que no dispongan de archivo index.html o index.php, incluiremos la directiva Options en la sección Directory de la siguiente manera.

<Directory "/mnt/webapps/www">

Options -Indexes

Con esta modificación evitaremos que cuando un usuario solicite una ruta a un directorio web, se le muestre un listado con el contenido del mismo.

Por ejemplo si disponemos de un directorio de nombre documentos en nuestro servidor y un usuario escribe en el navegador http://192.168.1.150/paginas y en este directorio no se encuentra un archivo de índice (index.html o index.php) el servidor web en lugar de mostrarle un listado del contenido del directorio le mostrará un mensaje indicando que no tiene permiso para acceder a este directorio.

Para comprobar que funciona este cambio vamos a crear una página básica html en este directorio con el editor ee que la guardaremos con el nombre index.html.

<html>

<head>

<title>PAGINA INICIO</title>

</head>

<body>

<h1>FUNCIONA</h1>

<p>Si consigues leer este texto estar&aacute;s en la nueva ubicaci&oacute;n de los documentos web de apache 24</p>

</body>

</html>

Ahora cuando escribamos la ip de nuestro servidor en el navegador, si funciona se mostrará lo siguiente:

Grupo Isfe (c/ Blasco Ibáñez, 74 / 46100 / Burjassot / 963 643 447 / [email protected] / peam.es) Pág: 7/8

(8)

Alias

La directiva Alias permite que los documentos se almacenen en un directorio del sistema de archivos local que no sea el especificado por DocumentRoot.

Si vamos a crear un alias en un directorio fuera del de DocumentRoot, puede que tengamos que permitir explícitamente el acceso al directorio de destino.

Por ejemplo podemos tener una web en desarrollo en el directorio /var/www/miweb que no es el especificado en la directiva DocumentRoot de Apache, por lo que no podemos acceder a su contenido. Por medio de Alias podemos mapear su dirección a una carpeta virtual como si se encontrara dentro de nuestro DocumentRoot.

Alias /miweb /var/www/miweb

<Directory /var/www/miweb >

AllowOverride none Require all granted

</Directory>

A partir de este momento podremos acceder al contenido de miweb desde nuestro navegador simplemente indicando la URL del servidor seguida del nombre del alias (http://192.168.1.150/miweb).

DirectoryIndex

DirectoryIndex es la página web por defecto que entrega el servidor cuando hay una petición de índice de un directorio especificado con una barra (/) al final del nombre del directorio.

<IfModule dir_module>

DirectoryIndex index.html

</IfModule>

Se pueden ir añadiendo distintos nombres de archivos separados por un espacio en blanco entre cada nombre de archivo.

Esta directiva la modificaremos más adelante cuando incluyamos los servicios php en nuestro servidor web.

Referencias

Documento similar

Se dice que la Administración no está obligada a seguir sus pre- cedentes y puede, por tanto, conculcar legítimamente los principios de igualdad, seguridad jurídica y buena fe,

El este ejemplo Arduino actúa también como servidor, pero esta vez queremos que el usuario pueda realizar acciones sobre Arduino a través de la página web que servimos. En este

El servidor busca en su base de datos la clave y el nombre de usuario que se acaban de introducir para confirmar que est´ a ini- ciando sesi´ on una persona autorizada, personal

 Cuando una solicitud HTTP llama a la página HTML (ver la etapa 1 de la siguiente figura), el servidor Web la devuelve al cliente para que esta pueda ser

saginata, se considera común en Europa del este (15), con una prevalencia mucho más baja en Europa occidental (del orden de 0.01%) (16).. Las infecciones humanas son endémicas

Con el anterior smb.conf conseguimos lo siguiente: Cuando un usuario intente acceder desde la red a nuestro servidor, samba comprobará si dicho usuario tiene creado un directorio

– Servidor (binder) en cada nodo: nombre de servicio → puerto – Impide migración del servidor. • Nombre de servicio con ámbito global (DCE,

– servidor: acepta peticiones de programas de usuario y de otros CUPS. ● Instalación: