CÓMO CONFIGURAR APACHE PARA CREAR UN SITIO WEB

CÓMO CONFIGURAR APACHE PARA CREAR UN SITIO WEB
El servidor HTTP Apache es un servidor web HTTTP de código libre abierto para
plataformas Unix (GNU/Linux, BSD, etc), Microsoft Windows, Macintosh y otras,
que implementa el protocolo HTTP/1.1 y la noción de sitio virtual.
Cuando comenzó su desarrollo en 1995 se basó inicialmente en código del
popular NCSA HTTPd 1.3, pero más tarde fue reescrito por completo. Su nombre
se debe a que Behelendorf quería que tuviese la connotación de algo que es firme
y enérgico pero no agresivo, y la tribu Apache fue la última en rendirse al que
pronto se convertiría en gobierno de EEUU, y en esos momentos la preocupación
de su grupo era que llegasen las empresas y "civilizasen" el paisaje que habían
creado los primeros ingenieros de internet.
Publicando una página web con Apache
Lo primero que tenemos que hacer obviamente es instalar Apache. Algunas
versiones (si no todas) vienen con él deshabilitado por defecto, para ver si la
nuestra lo tiene podemos usar el comando slackpkg search httpd. Si no lo
tenemos lo descargamos de algún sitio web de confianza, como por ejemplo:
http://slackfind.net/
http://distrowatch.com/table.php?distribution=slackware
NOTA IMPORTANTE: asegúrese de instalar justamente la versión de Apache
correspondiente a su versión de Slackware.
Lo primero que debemos hacer es ejecutar el comando “pkgtool” para ver si
poseemos el servicio de apache.
Luego vamos a View>Nombre del paquete.
Luego para que este servidor Web trabaje correctamente, necesitamos darle los
respectivos permisos al daemon de Apache.
A continuación vamos a ver lo que contiene el archivo de configuración de Apache
(httpd) y vamos a hacerle algunos ajustes. Para ello le damos los permisos y
usamos el comando vim /etc/httpd/httpd.conf.
En este archivo podemos agregar nuestro email para recibir cualquier error que un
usuario pueda tener al intentar ingresar nuestro website.
Luego, ponemos el nombre y el puerto con el cual nuestro sitio web se identifica.
Si el host no tiene registrado el nombre de DNS, introduzca su dirección IP.
También lo podemos establecer como localhost como en el ejemplo siguiente:
Luego, agregamos lo siguiente para que nuestro servidor Web trabaje con los
siguientesformatos:
También descomentamos la siguiente línea quitándole el signo de número para
que se habilite el sitio web que Apache trae creado por defecto.
Luego, para ver si Apache ha sido instalado correctamente entramos a la página
que Apache trae por defecto abriendo nuestro browser preferido. Podemos
acceder a esta poniendo 127.0.0.1 (la ip del servidor con la cual apache se instaló)
o simplemente escribiendo localhost.
Creando un directorio de datos para descargar archivos desde un
sitio web
Ahora para poder descargar ficheros de nuestro servidor editamos el archivo html
que tenemos por defecto. Para ello nos dirigimos a la siguiente ruta señalada:
Con un poco de html lo editamos de la siguiente forma:
Al editar este fichero tenemos que tener pendiente la creación de la carpeta de
donde se van a descargar los archivos, en este caso se llamara “download” y
estará ubicada en /var/www/htdocs y será publicada en el sitio web bajo el link
“Archivos Disponibles para descargar” gracias al atributo “HREF”.
En las siguientes imágenes se muestra la creación de la carpeta download.
Ahora creamos dos archivos dentro de esta carpeta que estarán disponibles para
descargar desde el website.
Ahora vamos al navegador, tecleamos la ip de nuestro servidor y veremos la
fachada de nuestra página que editamos en html en el index.html, le damos al link
“Archivos Disponibles para descargar” y veremos los archivos a descargar.
Creando dominios virtuales de Hosts en Apache.
Un host virtual, o VirtualHost, en Apache nos permite mantener múltiples nombres
de host en nuestro servidor, es decir, nos permite tener más de un servidor web
con la misma IP a través de varias traducciones de DNS para tener más de una
página web en la misma máquina.
Ahora nos dirigiremos otra vez al archivo de configuración de Apache.
Esto hará que se incluyan los hosts virtuales que creemos en el archivo httpdvhosts.conf. Cómo configurar Apache para crear un sitio Web
Las configuraciones de los Hosts virtuales las podemos realizar tanto en el archivo
httpd.conf como en httpd-vhosts.conf.
Alli crearemos dos hosts virtuales para 2 websites diferentes usando la misma ip
(la de nuestro servidor).
Y editamos más o menos de esta manera:
Ahora editamos el archivo etc/hosts para agregar el nombre de las nuevas
páginas que acabamos de crear, esto tendrá efecto solo en su uso local. En caso
de tener un servidor DNS no necesitamos hacer esto.
Ahora para que todo lo anterior tenga efecto tenemos que agregar los directorios
que señalamos para cada host virtual en el archivo httpd.conf. De la siguiente
manera podemos hacerlo:
Los directorios de CustomLog y ErrorLog que señalamos en httpd.conf vienen
creados por defecto asi que no tenemos que crearlos, estos tendrán el nombre
que especificamos en este archivo.
Tambien tenemos que crear los archivos en html de cada virtual host y ubicarlos
en el directorio “public_html” correspondiente. En resumidas formas esto lo
hacemos de la siguiente forma:
Por último reiniciamos el servicio de Apache con el comando /etc/rc.d/rc.httpd
restart. Luego abrimos el web browser de nuestra preferencia y escribimos los
nombres de los websites para probarlo:
Controlando el acceso a archivos y directorios y archivos de un
sitio web.
Cuando un servidor apache recibe una petición de una página web, antes de
devolver el resultado, lleva a cabo varias acciones para verificar que la petición
está autorizada.
Las distintas acciones que lleva a cabo para verificar la validez de la aplicación, se
pueden agrupar en tres tipos: Autentificación, Autorización y control de acceso.
La autentificación es el proceso por el cual se verifica la identidad de una persona.
De una forma simple, este proceso se puede llevar a cabo mediante un nombre de
usuario y una contraseña, pero se pueden llegar a utilizar otros
Métodos para validar la identidad de una persona, como mediante el uso de
certificados, tarjetas, etc.
El control de acceso es el proceso por el cual se verifica que la máquina desde la
que se ha hecho la petición, tiene acceso al recurso. Los controles de acceso se
utilizan para limitar y controlar las máquinas que tienen acceso a un recurso
independientemente del usuario que accede, ya que estos controles se llevan a
cabo antes de que se realice el proceso de autentificación.
En apache, el control de acceso se puede llevar a cabo mediante las directivas
<directory> <files>y <location>, o a través del fichero de configuración .htaccess
para controlar una carpeta especifica.
En todo caso y para poder llevar a cabo la configuración de las tres características
aquí enumeradas, autentificación, autorización y control de acceso, es necesario
tener la directiva AllowOverride con el valor AuthConfig, para así permitir el uso de
las distintas directivas de autentificación.
Para controlar el acceso de usuarios primero vamos al archivo httpd.conf y
agregamos lo siguiente
Al website que queremos controlar (website1 en este caso):
Las líneas que nos indican seguridad son AllowOverride y AuthConfig.
AuthConfig nos indica que tenemos una configuración de autenticación para esta
parte de la pagina “/srv/httpd/htdocs/website1”.
Lo que haremos a continuación será crear 2 archivos indispensables para la
seguridad en los sitios web, .htpasswords y .htaccess: En .htaccess se establece
el tipo de permiso necesario y qué usuarios pueden acceder a qué
archivos, mientras que en .htpasswords se guardan el nombre de usuario y
contraseña de cada uno de ellos.
Para guardar los nombres de usuario y sus contraseñas en el archivo
.htpasswords hacemos lo siguiente:
Ahora crearemos y editaremos el archivo .htaccess. Este archivo lo colocaremos
en la carpeta que queremos proteger:
Alli escribimos lo siguiente:
Definiendo cada línea:




Authtype ; Indica que el tipo de autentificación es básico.
Authname ; Muestra el nombre del sitio. Al intentar entrar al website te
aparecerá una ventana de dialogo con un formulario de acceso por nombre
de usuario y contraseña con un mensaje similar a “Está intentando entrar a
Restricted Access, debe especificar un nombre de usuario y contraseña”.
AuthUserFile ; Le tenemos que indicar la ruta absoluta hacia nuestro
archivo .htpasswords, lo normal es poner el archivo de contraseñas fuera
del alcance de la web, es decir, fuera de la carpeta public_html o similar.
Require user ; Indica que el único usuario que puede entrar es root,
cualquier otro -aunque la contraseña sea correcta- no será válido. Podemos
agregar tantos usuarios como deseemos.
Aunque no lo haremos en este tutorial, pero podríamos incluso proteger un archivo
del website en particular agregando lo siguiente a .htaccess:
<Files "nombre_del_archivo">
Require user root
</Files>
O en vez de poner Require user root podríamos poner Require valid-user para
que pueda entrar cualquier usuario que se encuentre en el archivo .htpasswords.
De vuelta con las configuraciones, Ahora tenemos que asignarle una clave de
acceso al usuario que hemos nombrado en el archivo “.htaccess” (root en este
caso), para ello usamos el comando:
htpasswd –c ; es el comando para crear una contraseña de httpd a un usuario. El
directorio que especificamos es el que almacenara la contraseña (encriptada en
MD5) de este usuario, como se ve en la siguiente imagen:
Por ultimo reiniciamos el servidor apache con el comando /etc/rc.d/rc.httpd
restart:
Para probarlo vamos al web browser e ingresamos el nombre o la ip del website
que configuramos para protegerlo, al intentar ingresar debería aparecer el
siguiente cuadro pidiéndonos que ingresemos la cuenta y la contraseña httpd de
un usuario con permiso para acceder.
Tras ingresarla deberíamos de ser capaces de ver el sitio tal como lo vemos
en la siguiente imagen.