Luis Eduardo Peralta Molina 2010-2940 Sistemas Operativos III Instructor: José Doñe Como crear un Servidor Web Apache Que el Servidor Apache? El Servidor Apache HTTP es un servidor Web de tecnología Open Source sólido y para uso comercial desarrollado por la Apache Software Foundation (http://www.apache.org). Red Hat Enterprise Linux incluye el Servidor Apache HTTP versión 2.0 así como también una serie de módulos de servidor diseñados para mejorar su funcionalidad. El archivo de configuración predetermhainado instalado en el Servidor Apache HTTP funciona sin necesidad de modificarlo, en la mayor parte de los casos. Este capítulo da una idea general de las diharectrices dentro de este archivo de configuración (/etc/httpd/conf/httpd.conf) para ayudar a aquellos que requieren una configuración personalizada o necesitan convertir un archivo de configuración del formato más antiguo del Servidor Apache HTTP 1.3. Ahora como configurar Apache en ClearOS.... Luego de iniciar sesion en nuestro servidor ClearOS, lo que haremos es activar el Servicio Web, realizando los siguientes pasos: 1- Clic sobre el menú Server. A la izquierda nos saldran los submenus de Server. 1 Luis Eduardo Peralta Molina 2010-2940 Sistemas Operativos III Instructor: José Doñe Nos dirigimos hacia abajo en entre los submenus hasta llegar a Servidor Web. Y pulsamos Clic sobre este. Luego nos saldra la siguiente ventana. 2 Luis Eduardo Peralta Molina 2010-2940 Sistemas Operativos III Instructor: José Doñe Como vemos en esta ventana es una breve informacion acerca de apache.Y mas abajo tenemos los botones con el Estado del Servicio y su estado en Boot (en el arranque del sistema), que como vemos estan en DETENIDO y la de Boot en Manual es decir que el servicio solo iniciara cuando lo arranquemos manualmente luego de que el sistema haya sido iniciado. Lo que haremos es arrancar el servicio. Pulsando Empezar yde inmediato el estado del servicio cambiara a Ejecutando. Tambien cambiaremos el estado del Boot de Manual a Automatico pulsando Al Auto. Mas abajo tenemos dos campos que podemos configurar desde este ambiente Web en ClearOS que son el nombre del Servidor Web y el estado de SSL (Secure Socket Layer (SSL). El protocolo SSL es un sistema diseñado y propuesto por Netscape Communications Corporation. Se encuentra en la pila OSI entre los niveles de TCP/IP y de los protocolos HTTP, FTP, SMTP, etc. Proporciona sus servicios de seguridad cifrando los datos intercambiados entre el servidor y el cliente con un algoritmo de cifrado simétrico, típicamente el RC4 o IDEA, y cifrando la clave de sesión de RC4 o IDEA mediante un algoritmo de cifrado de clave pública, típicamente el RSA. La clave de sesión es la que se utiliza para cifrar los datos que vienen del y van al servidor seguro. Se genera una clave de sesión distinta para cada transacción, lo cual permite que aunque sea reventada por un atacante en una transacción dada, no sirva para descifrar futuras transacciones. MD5 se usa como algoritmo de hash. Si realizamos algun cambio en alguna de estas opciones solo debemos pulsar Actualizar para que estos se apliquen y listo. Y en el ultimo de abajo tenemos la configuracion de host virtuales. Como vemos en esta imagen podemos apreciar que posee tres campos: 3 Luis Eduardo Peralta Molina 2010-2940 Sistemas Operativos III Instructor: José Doñe Sitio Web: En este campo se listan los nombres de los dominios virtuales que vamos agregando, como vemos aquí tengo tres dominios. Donde el primero que vemos que dice (por defecto)este no podremos elimarlo y este viene creado con el servicio. Mas adelante veremos por la linea de comandos profundamente estos dominios en el servidor. Subir via: Se nos muestran las distintas vias por las cuales podemos colocar nuestro sitio web en el dominio apache. Aqui nos muestra dos opciones FTP y Archivo. Donde FTP nos permitiria subir los archivos a traves de FTP (File Transfer Protocol) o archivo que seria creando la pagina en el propio servidor. Acceso de subida: Nos muestra los usuarios que poseen permisos de subida al servidor Web. En este campo se nos permite agregar un nuevo dominio web al servidor Apache. Pero veamos las opciones que se nos muestran al pulsar editar en uno de los dominios que ya poseemos. Como lo es el dominio clearos.server.lan. Como vemos en la imagen inferior tenemos los campos: Sitio Web (refiere al campo donde estara el nombre del sitio web), Alias de Servidores (es otro nombre que podemos asignarle al sitio web y OJO el nombre que tenga el alias sera el nombre que usara el cliente para acceder a la pagina). Documento Raiz (/var/www/html) este es el directorio por defecto donde se alojan los Sitios Web (Nota: este directorio no aloja los directorios virtuales, sino la pagina principal), en el caso de los directorios virtuales estos se almacenan en (/var/www/virtual). Con este detalle podremos movernos por la terminal de ClearOS para poder manejar este servicio. 4 Luis Eduardo Peralta Molina 2010-2940 Sistemas Operativos III Instructor: José Doñe Pero, Como abrimos una terminal en ClearOS? ClearOS, es un sistema de ambiente Web el cual no posee opciones para abrir el terminal directamente a traves de él; sino que se necesita de otro equipo Linux para poder acceder al Terminal o Shell de manera Remota mediante el protocolo SSH. Por qué un equipo Linux y no Windows? Porque la consola de Windows no maneja el protocolo SSH, ya que esta solo maneja TELNET y como ClearOS es una mas de las muchas distribuciones de Linux estas no manejan TELNET ya que Linux por su caracteristica de seguridad emplea el protocolo Seguro (SSH), y esta seguridad de debe a que la informacion que se transmite mediante este protocolo viaja encriptada a diferencia de TELNET. Ahora vamos a mostrarles como acceder desde otra distribucion de Linux (Ubuntu en este caso) mediante la consola usando el protocolo SSH. 5 Luis Eduardo Peralta Molina 2010-2940 Sistemas Operativos III Instructor: José Doñe Abrimos la Terminal en Ubuntu de la siguiente manera: O usando la combinacion de teclas CTRL+ALT+DEL/SUPR. Y veremos la siguiente ventana correspondiente a la terminal de Ubuntu. Ahora lo que haremos es conectarnos a el servidor ClearOS para poder tener acceso al shell de ClearOS. Esto lo haremos usando la siguiente sintaxis de comandos: luis@ubuntu:-$ ssh “usuario con privilegios en el server recomendable (root)”@ “ip del servidor” Ejemplo: ssh root@10.0.0.2 Ahora procedemos a realizarlo en la terminal de Ubuntu. 6 Luis Eduardo Peralta Molina 2010-2940 Sistemas Operativos III Instructor: José Doñe Nota: Para que el cliente Ubuntu logre acceder por SSH al servidor ClearOS ambos deben estar en la misma Red. Para comprobar esto abriremos otra terminal y probaremos dando ping al la direccion 10.0.0.2 (Servidor ClearOS). Como vemos todos los paquetes icmp (paquetes emitidos por el ping) se han enviado exitosamente. Esto quiere decir que ahi conexión entre ambos equipos. Para mostrar que ambos comparten la misma red daremos un ifconfig para ver la ip de este equipo. 7 Luis Eduardo Peralta Molina 2010-2940 Sistemas Operativos III Instructor: José Doñe OK ahora continuaresmos donde estabamos anteriormente. Pulsamos ENTER, cargara por un momento no se desesperen. Luego nos pedira la contraseña del usuario que hemos indicado en este caso root. OJO esa contraseña que pide se refiere a la contraseña de root pero del servidor. La colocamos correctamente como se muestra en el recuadro inferior y luego pulsamos ENTER y como vemos en la parte marcada con amarillo estaremos logueados en el servidor como root. 8 Luis Eduardo Peralta Molina 2010-2940 Sistemas Operativos III Instructor: José Doñe Ahora lo que haremos es dirigirnos a los directorios designados para alojar las paginas web en el servidor Apache en ClearOS. /var/www/html /var/www/virtual Directorio Principal o Dominio Directorio para los Subdominios Como podemos ver en la imagen superior estamos en el directorio /var/www y hemos escrito el comando ls (listar), para ver el contenido de /var/www. Aqui podemos ver las carpetas o directorios que asigna el Servidor Apache para el dominio web principal y los subdominios. Ahora entraremos en el directorio html. Como vemos tenemos dos archivos (index.html y logo.png). El primero de ellos corresponde a una pagina web y la imagen es una componente de la pagina correpondiente al archivo index.html. Si abrimos el archivo index.html con el editor de texto vi, veremos el codigo de esta pagina web. 9 Luis Eduardo Peralta Molina 2010-2940 Sistemas Operativos III Instructor: José Doñe Como ya les mencione en un principio lo que les estoy mostrando son los archivos correspondientes a las paginas que aparecen en la ventana de Servidor Web en ClearOS. Y este codigo corresponde a la pagina clearos.server.lan, el cual he modificado del que originalmente crea ClearOS. Al igual que ustedes tambien pueden hacerlo mediante vi (Solo deben buscarse algun manual sencillo de html). Algunos de los comandos basico para trabajar en el editor de texto vi son: Estando en modo root: vi “Nombre del archivo a editar” - Para abrir con vi i – Indica insercion de texto Esc -Sale del modo de insercion :q – Salir sin guardar :wq -Guardar y Salir Lo que haremos ahora es ir a nuestro cliente Windows logueados con el usuario al que le hemos dado permisos de acceso al Servidor Web en nuestro caso “pedro”. OJO: Antes de hacer esto debemos arrancar el servicio ya que si no esta corriendo no ahi manera de que el cliente acceda a este. Esto lo haremos pulsando los botones al principio mostrados y mencionados. 10 Luis Eduardo Peralta Molina 2010-2940 Sistemas Operativos III Instructor: José Doñe Ahora iremos al archivos host en el cliente Windows ubicado en el directorio C:/Windows/System32/drivers/etc. Abrimos con notepad. Y luego agregamos la IP del Servidor Web y la direccion de el dominio como vemos en la imagen. Guardamos CTRL+G. Y Cerramos. 11 Luis Eduardo Peralta Molina 2010-2940 Sistemas Operativos III Instructor: José Doñe Hacemos un ping a la pagina para verificar. El ping ha sido satisfactorio. Ahora probamos en el navegador y como vemos nos ha funcionado nuestro dominio web. 12 Luis Eduardo Peralta Molina 2010-2940 Sistemas Operativos III Instructor: José Doñe Lo siguiente que haremos ahora sera trabajar con los subdominios. Que es un Subdominio? Un subdominio es como un subnombre para tu dominio, es decir si tu dominio es asi www.tudominio.com tu subdominio seria subdominio.tudominio.com, con ello puedes separar apartados de tu web etc.... ejemplo: dominio: www.elmundo.es subdominios: actualidad.elmundo.es imagenes.elmundo.es automoviles.elmundo.es OJO: no debemos confundir un Subdominio con una seccion de un dominio, sino que un subdominio es una pagina casi totalmente independiente solo que comparten una misma direccion IP y el subdominio esta obligado a llevar el nombre del dominio como parte de su direccion web,como podemos apreciar en el ejemplo anterior. No es lo mismo una subpagina: Que un subdominio: www.elmundo.es/actualidad www.actualidad.elmundo.es Ahora procedemos a explicaremos como se manejan los subdominios en el Servidor Apache a traves de ClearOS. Como podemos ver en la imagen inferior, tenemos los subdominios ya existentes a excepcion de clearos.lan que como vemos dice por defecto lo que quiere decir que este es el dominio principal o el primero que se creo y como ya sabemos sus archivos se encuentran alojados en el directorio /var/www/html. Apache posee un pequeño detalle que lo hace ser muy interesante y es que podemos crear subdominios con un nombre URL totalmente diferente al dominio real. 13 Luis Eduardo Peralta Molina 2010-2940 Sistemas Operativos III Instructor: José Doñe Ahora lo primero que haremos es mostrarles un pequeño error que se produce en esta version de Apache que debemos modificar para que nuestros clientes puedan acceder a los subdominios. Para corregir este error debemos ir al archivo de configuracion de Apache ubicado en el directorio /etc/httpd. Recuerden que accederemos a trave.s de nuestro cliente Ubuntu. Como vemos en el contenido del directorio httpd tenemos los directorios conf, conf.d, logs, modules, y run. Conf : En este directorio esta alojado el archivo de configuracion del apache llamado httpd.conf. Conf.d: Se alojan los archivos de configuracion de los subdominios. logs: Se muestran los eventos ocurridos con el servidor Apache. Antes de mostrarles el archivo de configuracion del Apache veremos los archivos de configuracion de los subdominios. Abrimos el directorio conf.d. 14 Luis Eduardo Peralta Molina 2010-2940 Sistemas Operativos III Instructor: José Doñe Por defecto el servidor Apache solo lee para mostrar a los clientes las paginas o dominios con extension .conf; pero el problema que se produce es que nuestro servidor solo crea los archivos de configuracion de los subdominios con extension .vhost. Para resolver este problema tenemos dos soluciones: 1Ir cambiando manualmente la extension de los archivos .vhost a .conf. Pero este metodo nos resultaria algo tedioso al momento de tener que modificar muchas paginas en conjunto. 2- El otro metodo es agregar en el archivo de configuracion del servidor Apache la entrada que veremos a continuacion para que este tambien comprenda los subdominios con extension .vhost. Como hemos estado analizando nos resultaria mas sencilla utilizar la opcion 2. Ahora iremos al directorio de configuracion de Apache localizado en /etc/httpd. Como vemos en la imagen inferior el servidor apache posee varios directorios dentro de si mismo, solo que en lo que nos enfocaremos es en los directorios que estan listados mas abajo: Conf: Almacena las configuracion del Servidor Apache perse. Conf.d: Almacena los archivos de configuracione de los distintos sitios web (subdominios) alojados en el Servidor. 15 Luis Eduardo Peralta Molina 2010-2940 Sistemas Operativos III Instructor: José Doñe Volviendo al problema ya mencionado con apache lo primero que haremos es mostrarles el directorio donde se almacenan los archivos de configuracion de los sitios web; para que asi verifiquen la extension con la que se crean los subdominios, que se crean con la extension .vhost Como vemos en este directorio tenemos archivos con extension .conf y .vhost, como les habia dicho antes ya habia creado algunos sitios de prueba “prueba1.server.lan.vhost...”, y el problema que ocurria es que los clientes no encontraban el sitio al momento de buscarlo. Para resolver este problema podia usar una de las dos maneras antes mencionadas, pero como nuestro servidor nos creara archivos .vhost cada vez que agreguemos un nuevo sitio nos convendria modificar el archivo de configuracion de apache indicandole que lea los archivos con extension .vhost. Ahora nos vamos al directorio de configuracion de Apache /etc/httpd/conf. Y procedemos a editar con vi. 16 Luis Eduardo Peralta Molina 2010-2940 Sistemas Operativos III Instructor: José Doñe Pulsamos ENTER para desplazarnos hacia abajo en el documento. Hasta llegar a la parte mostrada en la imagen inferior. La parte resaltada con amarillo no formaba parte del archivo por defecto, sino que la hemos agregado para que el servidor apache pueda leer los archivos de extension .vhots; que son los archivos que esta creando nuestro servidor apache para los subdominios. Asi que si probamos luego de agregar esta linea y guardar la configuracion hecha a traves de vi, pulsando :wq. 17 Luis Eduardo Peralta Molina 2010-2940 Sistemas Operativos III Instructor: José Doñe Ahora probaremos tratando de acceder a cualquiera de los sitios web (subdominios), que estan creados, por ejemplo el prueba1.server.lan. 18 Luis Eduardo Peralta Molina 2010-2940 Sistemas Operativos III Instructor: José Doñe Escribimos el nombre del subdominio al que queremos acceder. Como podemos ver nos ha redirigido satisfactoriamente. Por ultimo crearemos un sitio nuevo en nuestro servidor Apache. Basandonos en lo mismo que hemos visto anteriormente. NOTA: Una particularidad importante del servidor Apache es que podemos crear Subdominios con nombres totalmente diferentes al Dominio original. 19 Luis Eduardo Peralta Molina 2010-2940 Sistemas Operativos III Instructor: José Doñe Estando en ClearOS nos vamos al menu Server, luego a Servidor Web Para agregar el nuevo Sitio Web, escribimos el nombre de este en el campo que vemos en la imagen superior debajo de prueba3.server.lan. En este ejemplo le daremos el nombre de linuxteca.com Pulsamos Agregar. 20 Luis Eduardo Peralta Molina 2010-2940 Sistemas Operativos III Instructor: José Doñe Como vemos luego de pulsar Agregar nos sale esta ventana que sera la de edicion del Sitio. Como vemos en el campo Alias de Servidores se nos permite agregar un alias a este sitio pero es a eleccion de nosotros como usuarios decidir si le creamos o no un alias a nuestro servidor. Yo en este caso lo dejare como lo he creado ya que ese es el nombre que deseo para mi servidor. Quitando asi en (*.) que aparecen al principio del Alias. Ya los demas campos los hemos visto anteriormente en este tutorial. Lo que hare es permitir las subidas FTP y de Archivos al Servidor. Y le permitiremos acceso de suida al grupo Domain-Admins. Pulsamos Actualizar. 21 Luis Eduardo Peralta Molina 2010-2940 Sistemas Operativos III Instructor: José Doñe Ahora nos vamos a nuestro cliente Windows y procedemos a subir la pagina Web al directorio de alojamiento designado para subdominios /var/www/virtual. Pulsamos ENTER. Y procedemos a editar el archivo host añadiendo el nuevo subdominio creado “linuxteca.com”, y la IP del servidor web que la aloja. Guardamos la configuracion pulsando CTRL+G. Ahora procederemos a dar ping a la direccion URL del subdominio. 22 Luis Eduardo Peralta Molina 2010-2940 Sistemas Operativos III Instructor: José Doñe Como vemos el ping ha sido satisfactorio. Lo siguiente que debemos hacer es crear nuestro Sitio Web. Para esto nos dirigiremos a nuestro cliente Ubuntu para crear el ejemplo de Sitio Web a traves del editor de textos vi. Ahora procedemos a ejectar el comando vi index.html para crear el archivo de la nueva pagina Web del subdominio linuxteca.com. O tambien podemos crear nuestra pagina un poco mas especializada desde uno de nuestros clientes y subirla a traves de FTP. Lo que hare sera subir una que ya he creado y luego de subirla abrirla con vi para mostrarles el codigo html. Esta es la que he hecho en mi cliente Ubuntu. 23 Luis Eduardo Peralta Molina 2010-2940 Sistemas Operativos III Instructor: José Doñe Para subirla abriremos una terminal CTRL+ALT+T, allí escribiremos ftp 10.0.0.2, esto nos redirigira a nuestro servidor FTP. Pulsamos Enter y nos saldra: Como vemos he escrito el nombre del usuario FTP “pedro” y procedemos a pulsar ENTER. 24 Luis Eduardo Peralta Molina 2010-2940 Sistemas Operativos III Instructor: José Doñe Colocamos la Password del usuario FTP y pulsamos ENTER nuevamente. Y como vemos ya nos hemos logueado con el usuario pedro. Ahora escribiremos el comando lcd para ver donde debemos colocar los archivos en nuestro cliente para poder subirlos al FTP . Como vemos el directorio es /home/luis, ya sabemos que ahi es donde debemos colocar los archivos de nuestro sitio Web. Estos dos archivos que son lo que componen nuestra pagina Web. Los moveremos al directorio /home/luis. 25 Luis Eduardo Peralta Molina 2010-2940 Sistemas Operativos III Instructor: José Doñe Ahora volvemos a nuestra terminal con ftp. Aqui escribiremos el comando mput “el-seibo.jpg” “index.html” Con el comando mput se nos permite subir multiples archivos especificandolos como podemos ver aquí debajo en el comando. Pulsamos ENTER Ahora comprobamos que se han subido correctamente con el comando ls Como podemos ver ahi estan nuestros archivos. Pulsamos bye para salir de ftp. Y nos conectamos nuevamente por ssh al servidor. ssh root@10.0.0.2 Ahora lo que haremos es moverlos hacia su respectivos directorios en el servidor Apache. 26 Luis Eduardo Peralta Molina 2010-2940 Sistemas Operativos III Instructor: José Doñe /var/www/virtual/linuxteca.com Para esto nos movemos al directorio donde estan los archivos que hemos subido. Y damos ls para verificar nuevamente que estan ahí. Ahora para moverlos escribiremos: mv “index.html” “el-seibo.html” /var/www/virtual/linuxteca.com Estas preguntas de sobreescribir me han salido porque estaba realizando una prueba anteriormente, pero, de seguro que a ustedes no le saldra y se movera normalmente. Para verificar que se ha movido satisfactoriamente escribimos el comando: ls /var/www/virtual/linuxteca.com Y como vemos ahi estan movidos al directorio correspondiente al sitio linuxteca.com Ahora nos moveremos a ese directorio con cd /var/www/virtual/linuxteca.com Ahora vamos a mostrarles el codigo html del archivo index.html. Escribiendo vi index.html. 27 Luis Eduardo Peralta Molina 2010-2940 Sistemas Operativos III Instructor: José Doñe Ahora salimos sin editar pulsando :q! Y procedemos a probar nuestra pagina Web a traves de nuestro cliente Windows. Abrimos el navegador. 28 Luis Eduardo Peralta Molina 2010-2940 Sistemas Operativos III Instructor: José Doñe Escribimos la direccion de nuestro nuevo sitio Web linuxteca.com. Pulsamos ENTER Como vemos nos ha redirigido satisfactoriamente. Ya esta completada nuestra practica de como crear y manejar nuestro servidor Apache en ClearOS. 29