Instalar y configurar Apache 2.2.3 en Debian Etch
Leyendo varios HOW TO y manuales de instalación y
configuración del servidor web más utilizado del planeta he conseguido
dejar a Apache, en su versión 2.2.3, como lo he deseado y para no
olvidarme de los pasos que seguí aqui dejo un "memo" que seguramente
les ayudará a uds también. Los pasos:
1) Instalar Apache y algunas utilidades que nos serán de ayuda
sudo apt-get install apache2 apache2-doc libapache2-mod-php5 libapache2-mod-vhost-hash-alias
Con esto ya tenemos funcionando de modo standard Apache
Para iniciar el servidor:
sudo apachectl -k start
Para detenerlo:
sudo apachectl -k stop
Ahora
hay que adentrarnos al archivo de configuración de Apache. En este caso
vamos a utilizar solo dos: apache2.conf ubicado en /etc/apache2 y el
archivo de hosts default ubicado en
/etc/apache2/sites-available.Comencemos:
a) Para que apache se inicie con el sistema pondremos, en el archivo /etc/default/apache2
# 0 = start on boot; 1 = don't start on boot
NO_START=0
y sino
NO_START=1.-
b) Para habilitar o deshabilitar modulos de Apache utilizaremos las herramientas respectivamente
sudo a2enmod nombre_del_modulo
sudo a2dismod nombre_del_modulo
por ejemplo si queremos habilitar ssl en nuestro servidor haremos
sudo a2enmod ssl
c) Configurando los hosts. En /etc/apache2/apache2.conf buscamos o agregamos las siguientes lineas:
#Nombre del servidor
ServerName localhost
ahora en /etc/apache2/sites-available/default
NameVirtualHost * <VirtualHost *> ServerName localhost DocumentRoot /var/www/domain ServerAdmin webmaster@localhost <Directory /> Options SymLinksIfOwnerMatch AllowOverride None </Directory> <Directory /var/www/> Options -Indexes -Includes -FollowSymLinks Multiviews AllowOverride None Order allow, deny Allow from all RedirectMatch ^/$ /mispaginas/ </Directory> CustomLog /var/log/apache2/access.domain.log combined ErrorLog /var/log/apache2/error.domain.log </VirtualHost> <VirtualHost *> ServerName www.otherdomain.com ServerAlias otherdomain.com *.otherdomain.com DocumentRoot /var/www/otherdomain ServerAdmin webmaster@otherdomain.com <Directory /> Options SymLinksIfOwnerMatch AllowOverride None </Directory> <Directory /var/www/otherdomain> Options -Indexes -Includes -FollowSymLinks Multiviews AllowOverride None Order allow, deny Allow from all </Directory>
CustomLog /var/log/apache2/access.otherdomain.log combined ErrorLog /var/log/apache2/error.otherdomain.log </VirtualHost>
Veamos que hacen algunas directivas de VirtualHost:
Nombre que el servidor utiliza para identificarse (debe figurar en el DNS). Si no tenemos un dominio
registrado usaremos localhost:
ServerName localhost
En caso de tenerlo:
ServerName www.domain.com
Directorio donde se alojan los sitios web, Apache busca por defecto en /var/www/apache2-default/
En este caso lo cambiaremos por "mispaginas":
sudo mkdir /var/www/mispaginas
sudo chmod a+rw -R /var/www/mispaginas
DocumentRoot /var/www/
RedirectMatch ^/$ /mispaginas/
Email del administrador que saldrá cuando haya errores Si no
tenemos un dominio registrado usaremos localhost:
ServerAdmin webmaster@localhost
caso contrario:
ServerAdmin webmaster@domain.com
Archivo donde se guardan los logs de acceso y formato (si pensamos servir varios dominios,
tendremos archivos de logs de acceso diferentes):
CustomLog /var/log/apache2/access.domain.log combined
Ubicación de los logs de error (si pensamos servir varios dominios, usaremos archivos
de logs de error diferentes:
ErrorLog /var/log/apache2/error.domain.log
Tipo de mensajes que se guardarán en los logs de error (de menos a más gravedad:
debug, info, notice, warn, error,
crit, alert y emerg):
LogLevel warn
Con la directiva Directory definimos opciones que se aplican al directorio indicado y sus
subdirectorios. Lo habitual es configurar unos permisos por defecto muy restrictivos:
<Directory />
Options SymLinksIfOwnerMatch
AllowOverride None
</Directory>
y posteriormente habilitar el acceso y permisos más amplios en directorios específicos.
Por ejemplo, para la raíz del árbol de documentos y sus subdirectorios:
<Directory /var/www/>
Options -Indexes -Includes -FollowSymLinks Multiviews
AllowOverride None
Order allow, deny
Allow from all
</Directory>
La opción SymLinksIfOwnerMatch sólo permite que puedan seguirse
los enlaces simbólicos si el propietario del link y el del archivo apuntado es el mismo.
La opción FollowSymLinks permite que puedan seguirse
los enlaces simbólicos. Por seguridad, esta opción la desactivamos.
Con la opción Indexes, si se solicita un directorio y no existe la
página especificada con DirectoryIndex (index.html,
index.htm, etc.), Apache mostrará el contenido del directorio.
Es preferible desactivar esta opción con -Indexes para no arriesgarnos
a que el usuario pueda acceder a archivos del directorio, Apache mostrará el error Forbidden - You don’t have permission.
c) Continuando con la seguridad. En el archivo apache2.conf editaremos o agregamos las siguientes líneas:
#Para mostrar el minimo de informacion acerca del sistema y del servidor
ServerTokens Prod
ServerSignature Off
Podemos indicar que página se mostrará cuando ocurra un error (por ejemplo: 404 Not Found) con
ErrorDocument 404 /mispaginas/missing.html
Seria
bueno engañar al intruso mostrando el mismo error cuando quiera
ingresar a un directorio que sí existe pero no tiene acceso al mismo
entonces:
ErrorDocument 403 /mispaginas/missing.html
d)
Redireccionando a directorios fuera del árbol de la raíz. Por ejemplo
si queremos ver archivos que estan en el directorio "documentos" del
home del usuario X debemos utilizar la directiva Alias en apache2.conf
buscaremos el bloque <IfModule alias_module> y dentro escribimos:
Alias /docs"/home/X/documentos"
<Directory "/home/X/documentos">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
con
esto al ingresar en la barra de direcciones del navegador
http://domain.com/docs se visualizará el contenido de ese directorio.-
Pues
bien sería bueno que ahora el directorio "documentos" del home del
usuario X requiera de contraseña para acceder, para ello podemos
utilizar la autenticación BASIC o DIGEST ambas hacen lo mismo pero
BASIC envía la contraseña sin encriptar por la red mientras que DIGEST
la encripta con MD5. Por ese motivo utilizaremos DIGEST.-
Habilitamos el modulo de digest
sudo a2enmod auth_digest
creamos a los usuarios con
sudo htdigest -c /etc/apache2/.passwd Private nombre_usuario
La opción -c es para crear el archivo .passwd en caso de que no exista. Nos pedirá una contraseña y su confirmación.-
Ahora en /etc/apache2/sites-available/default agregamos
<Directory /home/X/documentos/>
AuthType Digest
AuthName "Private"
AuthDigestProvider file
AuthUserFile /etc/apache2/passwd
Require valid-user
</Directory>
Ahora cada vez que quieras ingresar a ese directorio te deberás loguear.
Espero que haya servido este pequeño memo.-
fuente: www.larepaweb.com.ar
- Inicie sesión o regístrese para enviar comentarios


Buen aporte Luis, espero les sirva a todos.
- Inicie sesión o regístrese para enviar comentarios
Enviado por gaston el Mié, 19/03/2008 - 20:35.la verdad que esta bueno el aporte
- Inicie sesión o regístrese para enviar comentarios
Enviado por oaglp el Mié, 19/03/2008 - 23:34.Gracias de verdad que estaba buscando en google alguna info adicional de las directivas de apache y tu tuto me resulto bastante util habia un par de cositas q no manejaba aun, gracias y siempre para adelante
- Inicie sesión o regístrese para enviar comentarios
Enviado por Jose Tapia (no verificado) el Mar, 10/06/2008 - 19:20.