Apache 2

Para instalar el Apache2

Para arrancar el apache

Para recargar la configuración del apache

Para ver el estado del servidor apache

Los archivos de configuración se encuentran en /etc/apache2/

Restricción de acceso

Podremos restringir el acceso de dos maneras: Por usuario y por IP

Para restringir por usuario, añadimos lo siguiente a la configuración del apache De esa manera cerramos el acceso a http://IP/url y todo lo que haya por debajo. El /ruta/fichero.pass es un fichero donde estarán los usuarios válidos. Lo podemos crear manual o con una pequeña herramienta que trae apache, el htpasswd.

Para hacerlo a mano, sólo hay que tener en cuenta que el formato que sigue el fichero es nombreusuario:contraseña. La contraseña se puede obtener usando mkpasswd

Con el htpasswd, bastaría con htpasswd -mb /ruta/fichero.pass usuario contraseña

Para restringir por IPs, usaremos 3 directivas: Order, Deny y Allow. Por ejemplo, para cerrar el acceso a todos y que sólo entren los de la subred 10.1.2.0/24, añadiríamos Tanto las restricciones por IP como las de usuarios tienen que ir dentro de un <Location>, <Directory> o en un fichero .htaccess

Usar conexiones seguras con SSL

Habilitamos el módulo ssl:

Ejecutamos un script para crear nuestro certificado de seguridad para el servidor (estará autofirmado).

Nos hará una serie de preguntas…

Dependiendo de nuestra configuración podemos hacer que la comunicación de nuestro sitio sea por defecto bajo SSL o crear otro sitio

Si lo queremos por defecto la configuración sería de la siguiente forma:

Puesto que se va a usar para una aplicación, lo mejor (tanto lo más seguro como lo más cómodo) es forzar a que todas las conexiones vayan por https. Así, además, nos ahorramos tener dos configuraciones de lo mismo (una para http y otra para https). Para hacer que la configuración actual vaya por https, tocaremos el sites-available/default

Pondremos la línea NameVirtualHost *:443 al principio

Dejamos la linea de VirtualHost como <VirtualHost *:443>

Añadimos las siguientes líneas, por ejemplo debajo de Serversignature on

Si no lo queremos por defecto, crearemos la configuración de “el sitio” para el servidor seguro basándonos en la que lleva por defecto:

/etc/apache2/sites-enabled/ssl tiene que empezar de la siguiente manera:

En /etc/apache2/sites-enabled/default también hay que configurarlo de la misma forma:

Por último, sólo basta añadir dentro del fichero “/etc/apache2/sites-enabled/ssl” en cualquier lugar (por ejemplo justo debajo de “ServerSignature On”):

Después hay que indicarle al apache que escuche peticiones por https y use ese certificado.

Para ello añadir al fichero /etc/apache2/ports.conf la línea:

Hay que asegurarse también de que el módulo para SSL está cargado. Para ello, miramos en el directorio /etc/apache2/mods-enabled si existen los ficheros ssl.conf y ssl.load. Si no están, ejecutamos

Y por último, reiniciamos apache2:

Configuración por directorios con .htaccess

Podemos colocar la configuración a los dentro del propio directorio, a través de los ficheros .htaccess.

Primero hay que colocar un AllowOverride en el <Directory> donde queremos poder cambiar su configuración con los .htaccess. El .htaccess se aplicará además a todos los subdirectorios.

El AllowOverride define qué parámetros de configuración se pueden modificar desde los .htaccess. Lo más habitual será ponerle un All para poder cambiar cualquier cosa o un None para que no se pueda cambiar nada. Dentro de los .htaccess podremos poner casi cualquier directiva que se puede poner en un <Directory>. En la documentación de las directivas siempre aparece una pequeña cabecera con cierta información de cada directiva, y hay una («Context») que dice si esa directiva puede ir en un .htaccess o no.

Referencias

Blog de jHernandez http://jhernandez.gpltarragona.org/blog/?p=239