Diferencia entre revisiones de «Usuario:ManuelRomero/modulo APACHE»
De WikiEducator
(→Instalación) |
|||
(14 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 1: | Línea 1: | ||
+ | {{:Usuario:ManuelRomero/modulo_APACHE/nav}} | ||
+ | <br> | ||
+ | |||
{{#widget:Slides}} {{MiTitulo| Administración de servicios: DNS}} | {{#widget:Slides}} {{MiTitulo| Administración de servicios: DNS}} | ||
<div class="slides layout-regular template-default"><div class="slide"> | <div class="slides layout-regular template-default"><div class="slide"> | ||
Línea 8: | Línea 11: | ||
− | === | + | === Introducción === |
#Implementación del protocolo HTTP Servidor | #Implementación del protocolo HTTP Servidor | ||
#Sirve páginas web cuando estas son solicitadas | #Sirve páginas web cuando estas son solicitadas | ||
#Las páginas se visualizan usando un programa '''navegador''' escritas con HTML '''Lenguaje de Marcas de HiperTexto''' | #Las páginas se visualizan usando un programa '''navegador''' escritas con HTML '''Lenguaje de Marcas de HiperTexto''' | ||
+ | [[imagen:logoApache.png|200px]] | ||
</div> | </div> | ||
+ | ===Características de Apache=== | ||
+ | # Es uno de los servidores web mas utilizados a nivel mundial | ||
+ | # Es un sistema multiplataforma | ||
+ | # Posee gran cantidad de paquetes y módulos para poder adaptarlo a nuestras necesidades. | ||
+ | # Con los módulos y paquetes podemos trabajar con gran cantidad de lenguajes de programación web, así como intérpretes de SQL y otras funciones. | ||
+ | # Permite transacciones seguras mediante SSL (Secure Socket Layer) | ||
+ | # Contiene soporte para Hosts virtuales | ||
+ | ===Curiosidades=== | ||
+ | <br/> | ||
+ | {{Lectura|''Sabían que…'' | ||
+ | *El nombre Apache se debe a que su creador quería que la nominación tuviera una connotación firme y enérgica, pero no agresiva. | ||
+ | *Este pueblo originario de América del Norte fue el último en rendirse durante la colonización, y esa resistencia inspiró al autor de '''''Apache''''' para invocar su nombre.}} | ||
+ | ===Arquitectura de apache=== | ||
+ | #Estructurado en módulos. | ||
+ | ##Cada módulo contiene un conjunto de funciones relativas a un aspecto concreto del servidor. | ||
+ | ##El archivo binario httpd ''deminio http'' contiene un conjunto de módulos que han sido compilados. | ||
+ | ##La funcionalidad de estos módulos puede ser activada o desactivada al arrancar el servidor. | ||
+ | ===Tipos de módulos en Apache=== | ||
+ | *Los módulos de Apache se pueden clasificar en tres categorías: | ||
+ | ;Módulos base | ||
+ | :Se encargan de las funciones básicas. | ||
+ | ;Módulos multiproceso: | ||
+ | :Encargados de la unión de los puertos de la máquina, aceptando las peticiones y atendiéndolas. | ||
+ | ;Módulos adicionales | ||
+ | : se encargan de añadir funcionalidad al servidor. | ||
==Instalación== | ==Instalación== | ||
*acceder http://apache.org | *acceder http://apache.org | ||
Línea 27: | Línea 56: | ||
#lo descomprimitos y desempaquetamos (gzip y tar o solo tar) | #lo descomprimitos y desempaquetamos (gzip y tar o solo tar) | ||
#vamos a compilarlo e instalarlo | #vamos a compilarlo e instalarlo | ||
− | Verificar que tenemos instalado el paquete build-Essential (necesario para compilar) make (para invocar el shell de creación de la compilación | + | #Verificar que tenemos instalado el paquete build-Essential (necesario para compilar) make (para invocar el shell de creación de la compilación |
Preparando el fichero make ./configure | Preparando el fichero make ./configure | ||
+ | #Antes de instalar vemos los paquetes que tenems instalados y lo guardamos en un fichero | ||
+ | su find /|grep -v -e^/proc/ -e^/tmp/ -e^/dev/ > fichero1 | ||
+ | |||
Compilar $ make | Compilar $ make | ||
Instalar $ make install | Instalar $ make install | ||
+ | |||
+ | #Una vez que todo está instalado correctamente anotamos los paquetes que ahora tenemos instalados y lo comparemos | ||
+ | diff fichero1 fichero 2 | ||
+ | |||
+ | |||
Línea 56: | Línea 93: | ||
mv apr-1.4.6 httpd-2.4.3/srclib/apr | mv apr-1.4.6 httpd-2.4.3/srclib/apr | ||
mv apr-util-1.4.1 httpd-2.4.3/srclib/apr-util | mv apr-util-1.4.1 httpd-2.4.3/srclib/apr-util | ||
− | ;Ahora procedemos a la instalación | + | ;Ahora procedemos a la instalación realizando los tres pasos |
− | ./configure --with-included-apr --with-pcre make | + | #Paso 1:'''''ejecutar el shell configure'''' |
+ | ./configure --with-included-apr --with-pcre=/usr/local/pcre | ||
+ | #Paso 2 hacemos la '''''compilación''''' de los fuentes | ||
+ | make | ||
+ | #Paso e procedemos a la '''''instalación''''' | ||
make install | make install | ||
+ | |||
+ | ==Problemas con pcre== | ||
+ | Observamos que sale del la configuracion y da el siguiente error | ||
+ | configure: error: APR not found. Please read the documentation. | ||
+ | |||
+ | '''''pcre''''' viene de Perl Compatible Regualar Expresion | ||
+ | Debemos bajarnos el módulo y decirle donde está instalado | ||
+ | 0 down vote | ||
+ | |||
+ | |||
+ | 1、download pcre from http://pcre.org/ | ||
+ | |||
+ | 2、compile it with a prefix : | ||
+ | |||
+ | ./configure --prefix=/usr/local/pcre | ||
+ | |||
+ | 3、compile apache with | ||
+ | |||
+ | --with-pcre=/usr/local/pcre | ||
+ | |||
+ | *Como lo hacemos todo a mano seguimos | ||
+ | *En esta página se encuentra el paquete | ||
+ | ftp.csx.cam.ac.uk/pub/software/programming/pcre/ | ||
+ | *Lo bajamos con wget | ||
+ | *la versión actual mayor es la siguiente | ||
+ | File:pcre-8.20.tar.bz2 | ||
+ | File:pcre-8.20.tar.bz2.sig | ||
+ | File:pcre-8.20.tar.gz | ||
+ | File:pcre-8.20.tar.gz.sig | ||
+ | |||
+ | *Bajamos el pcre-8.20.tar.gz | ||
+ | *lo descomprimimos y desempaquetamos | ||
+ | *y volvemos a configurar | ||
+ | ===Autentificación=== | ||
+ | * Referencia en la web http://httpd.apache.org/docs/2.2/howto/auth.html | ||
+ | * Apache implementa varias formas de autentificarse: | ||
+ | Ldap, basic, digest, kerberos, pam, radius, mysql, y otras | ||
+ | *Vamos a analizar '''''basic y digest''''' | ||
+ | *La autentifiacón se puede especificar en el fichero de configuración o en un fichero aparte '''''.htaccess''''' | ||
+ | ====Autenticación basic==== | ||
+ | *Usamos un fichero para almacenar la información cifrada | ||
+ | *Cada usuario que demos de alta debemos de insertarlo en el fichero | ||
+ | *El módulo para gestionar esta funcionalidad viene instalado por defecto | ||
+ | *En el fichero de configuración debe haber las siguientes directivas | ||
+ | <!--# cat /var/www/prueba/.htaccess--> | ||
+ | |||
+ | AuthType basic #identifiación básica | ||
+ | AuthName “Identificacion necesaria” #mensaje que aparecerá para pedir la contraseña | ||
+ | AuthUserFile “/etc/apache2/auth_basic” ubicación del fichero de usuarios y contraseñas estará cifrado | ||
+ | Require valid-user #Cualquier usuario se puede conectar identificándose | ||
+ | *La ultima línea puede ser más restrictiva | ||
+ | Require user maria, lourdes, pedro #Solo permite identificarse a estos usuarios | ||
+ | <!-- | ||
+ | Si queremos combinar este tipo de acceso con el que vimos antes podemos añadirle la opción “Satisfy”. Esta puede tener dos valores all/any, para que se tengan que cumplir las dos restricciones utilizaremos “all”, para que con que se cumpla una nos baste “any”. | ||
+ | --> | ||
+ | ====Creando el fichero==== | ||
+ | *Para ello usaremos el comando '''''htpasswd''''' | ||
+ | htpasswd -c /etc/apache2/ficheroPass usuario | ||
+ | *opción -c ''create'', solo se usa la primera vez | ||
+ | |||
+ | <!-- | ||
+ | Autenticación digest. | ||
+ | La autenticación tipo digest soluciona el problema de la transferencia de contraseñas en claro sin necesidad de usar SSL. El procedimiento, como veréis, es muy similar al tipo básico pero cambiando algunas de las directivas y usando la utilidad “htdigest” en lugar de “htpassword” para crear el fichero de contraseñas. El módulo de autenticación necesario suele venir con Apache pero no habilitado por defecto. Para habilitarlo: | ||
+ | # a2enmod auth_digest | ||
+ | # /etc/init.d/apache2 restart | ||
+ | |||
+ | En este caso el fichero .htaccess nos quedaría así: | ||
+ | # cat /var/www/prueba/.htaccess | ||
+ | AuthType Digest | ||
+ | AuthName "grupo1" | ||
+ | AuthUserFile "/etc/apache2/auth_digest" | ||
+ | Require valid-user | ||
+ | |||
+ | En este caso en la primera opción ponemos digest en vez de basic. La directiva AuthName en este caso no especifica el mensaje que nos saldrá, si no el dominio al que pertenecen los usuarios. Este seria mas o menos algo parecido a un grupo. Las otras dos opciones no hace falta que las explique. | ||
+ | |||
+ | En este caso, como dije antes, no se utiliza el comando “htpasswd”. Esta vez los usuarios y dominios se agregan de la siguiente manera: | ||
+ | # htdigest -c /etc/apache2/auth_digest grupo1 juanlu | ||
+ | Adding password for juanlu in realm grupo1. | ||
+ | New password: | ||
+ | Re-type new password: | ||
+ | |||
+ | Si intentamos acceder a nuestra pagina nos saldrá un cartel parecido al anterior. | ||
+ | |||
+ | |||
+ | |||
+ | Cuando estéis comprobando tener cuidado con la cache de los navegadores, pueden hacer que te lleves un rato pensando porque no te pide autenticación. | ||
+ | |||
+ | Por ultimo decir que esto también se puede aplicar a archivos. Si intentamos descargar o ver ese archivo nos pedirá usuario y contraseña. El archivo .htaccess nos quedaría así: | ||
+ | # cat /var/www/prueba/.htaccess | ||
+ | <Files "prueba.txt"> | ||
+ | AuthType Digest | ||
+ | AuthName "grupo1" | ||
+ | AuthUserFile "/etc/apache2/auth_digest" | ||
+ | Require valid-user | ||
+ | </Files> | ||
+ | --> | ||
+ | ===Estructura de instalación de apache=== | ||
+ | *Puede cambiar de una distribución a otra | ||
+ | *Puede se modificada en diferentes versiones | ||
+ | *Incluso la forma de instalar la puede modificar (aptitude o compilando) | ||
+ | *Pero siempre tiene que estar todo | ||
+ | ;Ficheros ejecutables de apache 2 | ||
+ | :/bin/apache2 | ||
+ | ;Ubicación de los demonios que levantan/paran/bajan el servicio | ||
+ | : /etc/init.d/apache2 | ||
+ | ;Ficheros de error Importantísima durante la configuración para ver posibles errores o fallos | ||
+ | : /var/logs/apache2: | ||
+ | ;Ubicación de ficheros que queremos servir | ||
+ | : /srv/www/htdocs: | ||
+ | ;Ficheros de ayuda y manuales de nuestra versión | ||
+ | ; /bin/apache2/manual: | ||
+ | ;Fichero de configuración | ||
+ | : /etc/httpd/httpd.conf: | ||
+ | ===Fichero de configuración=== | ||
+ | *Puede ser httpd.cong o apache2.conf | ||
+ | *En él encontraremos directivas de configuración | ||
+ | *Son palabras reservas para paremetrizar diferentes valores | ||
+ | Tenemos entre otras | ||
+ | #Directivas de funcionamiento | ||
+ | #Directivas de acceso y de seguridad | ||
+ | #Parámetros de gestión de recursos | ||
+ | #Gestión de Hosts Virtuales | ||
+ | #Diretivas para la seguridad | ||
+ | #Restricciones de acceso | ||
+ | ... |
Última revisión de 03:47 18 nov 2012