Los servidores proxy hacen una serie de tareas diferentes, hay dos tipos de servidores proxy, un proxy de reenvío y proxy inverso . Un proxy de reenvío se utiliza para apoyar el acceso a Internet para un número de clientes a través de un único servidor de seguridad, el almacenamiento en caché o el filtrado . Un proxy inverso se usa para redirigir las peticiones de un sitio Web a una serie de servidores para un cliente.
Un servidor proxy de reenvío proporciona acceso a Internet para cualquier número de clientes a través de un único servidor. Veremos como configurar el servidor Apache para llevar a cabo estas tareas.
El proxy forward o de reenvio actúa como puerta o gateway de acceso a internet, por ejemplo, el que hay que indicar en el navegador para poder acceder a través de él, y que entre otras cosas sirve para compartir una conexión a internet o como filtro para web indeseadas.
Descargar el Apache
Lo primero es descargar el Apache de la propia web. En este caso se ha usado la última versión, 2.4 para Unix o Linux, disponible aquí :
wget http://httpd.apache.org/download.cgi#apache24
Lo que se descarga es el código fuente, el cual será necesario compilar a continuación desde la terminal, indicándole que queremos activar la opción de Proxy
Vamos a compilar e instalar el servidor Apache
./configure --prefix=/usr/local/apache --enable-proxy
con la opción --prefix le decimos al compilador donde queremos INSTALAR los ejecutables
Una vez completado este proceso, utilizamos los comandos make y make install para compilar e instalar:
make make install
Con lo que ya tendremos instalado el servidor en el directorio /usr/local/apache
Configuración del Proxy
Si ahora ejecutamos el servicio de Apache, éste actuará como servidor web normal y corriente, así que debemos añadir las siguientes líneas a fichero de configuración /conf/httpd.conf del directorio donde hayamos instalado el servidor :
# Configuración del proxy ProxyRequests On ***** Deny,Allow Deny from all Allow from 192.168.100.0/255.255.255.0 #Bloquear web indeseadas!! ProxyBlock dominio1.com dominio2.net
Explicación de lo que configuramos
ProxyRequests On => Activa el Proxy, si se pone en Off se desactivaría
=> Lo que sigue a esto afecta a todas las peticiones ya que usamos el asterisco. Podríamos tener distintas configuraciones según lo que necesitemos
Deny from all => Por defecto, se prohíbe el paso a todas las IPs que quieran acceder al proxy
Allow from 192.168.100.0/255.255.255.0 => Permitimos el uso sólo a esta subred
ProxyBlock dominio1.com palabra1 palabra2 => Filtramos todas las peticiones a las URLs que contengan esas cadenas, dominio o palabras.
Añadir cabeceras HTTP a las request del proxy
A veces puede ser necesario añadir alguna cabecera extra a las peticiones que pasan por el Proxy, o modificar las que vienen del navegador, por ejemplo para saber que han pasado por dicho Proxy o por cualquier otra razón.
Para ello, además de instalar el módulo Proxy, como se ha descrito anteriormente, hay que añadir el módulo Headers al compilar.
Compilar con soporte para Headers
./configure --prefix=/usr/local/apache --enable-proxy --enable-headers make make install
Y además de la parte del Proxy debemos añadir :
# Añadir Headers necesarios a las requests RequestHeader append MiCabecera "Esta request ha pasado por mi Proxy"