Rápida HOWTO Web Access Control Con Squid
Rápida HOWTO Web Access Control Con Squid
Contenido
[ ocultar ]
1 Introduccin 2 Razones para crear un proxy Squid 3 razones para crear un proxy inverso calamar 4 Descargar e instalar el paquete de Squid 5 Inicio de Squid 6 Archivos de configuracin de Squid 7 Pautas para configuracin de Squid general 8 Configuracin de servidores proxy Squid
o o o o o
8.1 Listas de Control de Acceso 8.2 La restriccin de acceso Web por Hora 8.3 Restringir el acceso a sitios Web especficos 8.4 La restriccin de acceso Web por direccin IP 8.5 Uso de autenticacin de contrasea NCSA
9.1.1 Configuracin de Squid proxy transparente 9.1.2 Configuracin de iptables para apoyar el proxy Squid Transparente
9.2 Configuracin manual de los navegadores Web para utilizar su servidor Squid
o o
Introduccin
En una votacin, un proxy es una sola persona que representa los intereses de muchos otros y los votos en su favor. Por ejemplo, en los Estados Unidos, un solo voto de un senador representa a todos los votantes de su estado.
Squid es un proxy en un sentido diferente. Que los agregados de las solicitudes de los internautas que lo utilizan muchos en un nico flujo de solicitudes. Cuando los agregados de servidor Squid mltiples conexiones de salida, se le llama un proxy. Cuando se agrega mltiples conexiones de entrada que se llama un proxy inverso. Esto tambin se llama "modo de acelerador". Hay muchas razones para configurar Squid para funcionar en uno u otro rol. Algunos de ellos se discute a continuacin.
La web de almacenamiento en cach del servidor proxy Squid puede lograr estos con bastante facilidad. Los usuarios a configurar sus navegadores para usar el servidor proxy Squid en vez de ir a la web directamente. El servidor Squid se comprueba su cach de web para la informacin de la web solicitada por el usuario. Devolver la informacin correspondiente que se encuentra en su cach, y si no, va a ir a la web para encontrar el nombre del usuario. Una vez que encuentra la informacin, se llenar su cach con l y lo remitir al navegador del usuario. Como puede ver, esto reduce la cantidad de datos accesible desde la web. Otra ventaja es que usted puede configurar su firewall para que acepte slo el trfico web HTTP del servidor Squid, y nadie ms. Squid puede ser configurado para solicitar nombres de usuario y contraseas para cada usuario que los usuarios de sus servicios. Esto proporciona control de acceso sencillo a Internet.
En la configuracin de proxy inverso, Squid almacena la respuesta Apache en la memoria. Se responder con estos datos almacenados en lugar de consultar Apache siempre que sea posible. La combinacin de almacenamiento en cach y proxy inverso hace Squid un activo en la reduccin de la carga, y el aumento de la capacidad de respuesta del servidor Apache.
Inicio de Squid
Las metodologas varan dependiendo de la variante de Linux que est usando como veremos a continuacin. Fedora / CentOS / RedHat Con estos sabores de Linux se puede usar el comando chkconfig para obtener calamar configurado para iniciarse en el arranque: [Root @ tmp bigboy] squid # chkconfig en
Para iniciar, detener, reiniciar y calamar despus de iniciar el comando de servicio: [Root @ bigboy tmp] # service squid start [root @ tmp bigboy] # service squid parada [root @ tmp bigboy] # service squid reiniciar
Para determinar si se ejecuta el Squid puede ejecutar cualquiera de estos dos comandos. La primera dar un mensaje de estado. La segunda vuelta los nmeros de ID de proceso de los demonios de calamar. [Root @ tmp bigboy] # service squid estado [root @ tmp bigboy] # pgrep de spam
Nota: Recuerde que debe ejecutar el comando chkconfig al menos una vez para asegurarse de calamares se inicia automticamente en el siguiente reinicio.
Ubuntu / Debian Con estos sabores de Linux los comandos son diferentes. Trate de instalar los paquetes DEB sysvrc-conf y sysvinit-utils, ya que proporcionan los comandos que simplifican el proceso. Para obtener ayuda sobre cmo descargar e instalar los paquetes, consulte el Captulo 6, "Instalacin del software de Linux") Usted puede usar el comando sysv-rc-conf para conseguir squid configurado para iniciarse en el arranque.: user @ ubuntu: ~ $ sudo sysv-rc-conf calamares
Para iniciar, detener, reiniciar y calamar despus de iniciar el comando de servicio es el mismo: usuario @ ubuntu: ~ $ sudo servicio de calamar usuario iniciar @ ubuntu: ~ $ sudo servicio de usuario deje de calamar @ ubuntu: ~ $ sudo service squid reiniciar
Para determinar si se ejecuta el Squid puede ejecutar cualquiera de estos dos comandos. La primera dar un mensaje de estado. La segunda vuelta los nmeros de ID de proceso de los demonios de calamar. usuario @ ubuntu: ~ $ sudo servicio de estado del usuario squid @ ubuntu: ~ $ pgrep squid
Nota: Recuerde que debe ejecutar el comando sysv-rc-conf al menos una vez para asegurarse de calamares se inicia automticamente en el siguiente reinicio.
complejas donde los clusters de servidores Squid en comn sus recursos con el fin de lograr un objetivo comn de almacenamiento en cach. Archivo / etc / hosts debe ser configurado con el nombre de host de su servidor al final de la lnea de localhost. En este ejemplo el nombre del servidor "bigboy" se ha aadido correctamente. # Archivo: / etc / hosts 127.0.0.1 localhost localhost.localdomain bigboy
Si desea dar a su proceso de Squid un nombre que es diferente de su nombre, a continuacin, agregar la directiva visible_hostname a su archivo squid.conf. En este ejemplo, le damos el nombre de host del servidor de "cache-001". # Archivo: squid.conf cach-001 visible_hostname
Casos mal configurado Squid dar un error como este, cuando el nombre de host no est correctamente definido ADVERTENCIA: No se pudo determinar el nombre de host pblico mquinas. Por favor, configure una o un conjunto "visible_hostname.
Nota: La declaracin http_access ltimo en el archivo squid.conf deniega el acceso. Por lo tanto, hay que aadir sus estados de permiso especfico por encima de esta lnea. En los ejemplos del captulo, he sugerido que coloque sus estados de cuenta en la parte superior de la lista http_access por el bien de la capacidad de gestin, pero se puede poner en cualquier lugar en el epgrafe anterior, la ltima lnea. Squid tiene un mnimo conjunto de sentencias de la ACL en la seccin de ACCESS_CONTROL del archivo squid.conf. Lo mejor es poner las nuevas entradas de medida inmediatamente despus de esta lista para hacer el archivo ms fcil de leer.
O bien, puede permitir el acceso slo por la maana: # # Agregue esto a la parte inferior de la seccin de ligamento cruzado anterior de squid.conf # acl tiempo por la maana 08:00-12:00 # # Agregar esta en la parte superior de la seccin http_access de squid.conf # http_access allow maana
Estos pueden ser usados para bloquear los sitios de siempre restringido y permitir que los sitios permitidos durante las horas de trabajo. Esto se puede ilustrar mediante la ampliacin de nuestro ejemplo anterior ligeramente. # # Agregue esto a la parte inferior de la seccin de ligamento cruzado anterior de squid.conf # acl src 192.168.1.0/24 acl home_network business_hours tiempo MTWHF 9:00-17:00 acl GoodSites dstdomain "/ usr / local / etc / Sitios permitidos. calamar "acl BadSites dstdomain" / usr / local / etc / restringido sites.squid-"# # Aadir esta en la parte superior de la seccin http_access de squid.conf # http_access deny BadSites http_access allow home_network GoodSites business_hours
Tambin hay que aadir la correspondiente sentencia http_access que permite el trfico que coincide con la ACL: # # Agregar esta en la parte superior de la seccin http_access de squid.conf # http_access allow home_network
2) Utilice el programa htpasswd para agregar usuarios al archivo de contraseas. Usted puede agregar los usuarios en cualquier momento sin tener que reiniciar Squid. En este caso, se agrega un usuario llamado www: [Root @ bigboy tmp] # htpasswd / etc / squid / www squid_passwd contrasea nueva: Vuelva a escribir la nueva contrasea: contrasea Adicin de usuario www [root @ tmp bigboy] #
3) Busca el archivo ncsa_auth usando el comando locate. [Root @ bigboy tmp] # localizar ncsa_auth / usr / lib / squid / ncsa_auth [root @ tmp bigboy] #
4) Edicin squid.conf, en concreto, es necesario definir el programa de autenticacin en el squid.conf, que es en este caso ncsa_auth. A continuacin, cree un ncsa_users ACL llamada con la palabra clave REQUIERE que las fuerzas de Squid para utilizar el mtodo auth_param NCSA ha definido previamente.Finalmente, cree una entrada http_access que permite el trfico que coincide con la entrada ncsa_users ACL. He aqu un ejemplo de autenticacin de usuario sencilla, el orden de las declaraciones es importante: # # Agregue esto a la seccin de auth_param squid.conf # auth_param bsicos del programa / usr / lib / squid / ncsa_auth / etc / squid / squid_passwd # # Agregue esto a la parte inferior de la seccin de ligamento cruzado anterior de squid.conf # acl ncsa_users proxy_auth REQUIERE # # Agregar esta en la parte superior de la seccin http_access de squid.conf # http_access allow ncsa_users
5) Se requiere autenticacin de contrasea y permite el acceso slo en horario de oficina. Una vez ms, el orden de las declaraciones es importante: # # Agregue esto a la seccin de auth_param squid.conf # auth_param bsicos del programa / usr / lib / squid / ncsa_auth / etc / squid / squid_passwd # # Agregue esto a la parte inferior de la seccin de ligamento cruzado anterior de squid.conf # acl ncsa_users proxy_auth REQUIERE acl business_hours tiempo MTWHF 09:00-17:00 # # Agregar esta en la parte superior de la seccin http_access de squid.conf # http_access allow business_hours ncsa_users
Si est utilizando controles de acceso en Squid, es posible que tambin desee configurar su firewall para permitir el acceso a Internet slo HTTP slo al servidor Squid. Esto obliga a los usuarios navegar por la Web a travs del proxy Squid.
Versin 2.6 a 3.0: Estas versiones versiones de Squid simplemente requieren que usted agregue la palabra "transparente" a los valores de "http_port 3128" declaracin. En este ejemplo, Squid no slo escucha en el puerto TCP 3128 para las conexiones del poder, sino que tambin lo har de manera transparente. http_port 3128 transparente
La versin 3.1 +: Las nuevas versiones de Squid tambin aadir la "intercepcin" palabra clave para realizar la "http_port 3128" declaracin cuando el proxy transparente utiliza una redireccin HTTP. Si la redireccin no se est utilizando la "transparencia" palabra clave sigue siendo utilizado. Aqu est un ejemplo: http_port 3128 interceptar
Nota: Recuerde reiniciar Squid para que los cambios surtan efecto
Nota: Este ejemplo es especfico para el trfico HTTP. Usted no ser capaz de adaptar este ejemplo para apoyar la navegacin web HTTPS en el puerto TCP 443, como el protocolo especfico no permite la insercin de un "hombre en el medio" servidor por motivos de seguridad. Una solucin es aadir IP declaraciones hacindose pasar por el puerto 443, o de cualquier otro trfico importante, inmediatamente despus del fragmento de cdigo. Esto permitir que el trfico HTTP no para acceder a Internet sin ser cacheados por Squid. Squid Server y Firewall - Servidores Diferentes Si el servidor Squid y cortafuegos son servidores diferentes, los estados son diferentes. Es necesario configurar iptables para que todas las conexiones a la Web, que no sean originarios del
servidor Squid, se convierte en realidad en tres conexiones, una desde el cliente de explorador Web al servidor de seguridad y otro de los cortafuegos en el servidor Squid, que provoca la Squid servidor para hacer su propia conexin a la red para atender la solicitud. El servidor Squid se obtiene los datos y las respuestas del servidor de seguridad que a su vez transmite esta informacin al cliente de explorador Web. El programa iptables tiene todo esto con estas declaraciones NAT: iptables-t nat-A PREROUTING-i eth1-s! 192.168.1.100 \-p tcp - dport 80-j DNAT - to 192.168.1.100:3128 iptables-t nat-A POSTROUTING-o eth1-s 192.168.1.0/24 \-d 192.168.1.100-j SNAT - a 192.168.1.1 iptables-A FORWARD-s 192.168.1.0/24-d 192.168.1.100 \-i eth1-o eth1-m state - state NEW, ESTABLISHED, RELATED \-p tcp - dport 3128-j ACCEPT iptables -A FORWARD-d 192.168.1.0/24-s 192.168.1.100 \-i eth1-o eth1-m state - state ESTABLISHED, RELATED \-p tcp - sport 3128-j ACCEPT
En la primera sentencia que todo el trfico HTTP desde la red domstica, excepto desde el servidor Squid en la direccin IP 192.168.1.100 es remitido a un servidor Squid en el puerto 3128 con destino NAT. La segunda declaracin hace que este trfico redirigido tambin son objeto de fuente de NAT para que parezca como si viniera del propio cortafuegos. Las declaraciones sujetas se utilizan para asegurar el trfico se permite que llegue al servidor Squid despus del proceso de NAT es completa. La peculiaridad es que el NAT todo se lleva a cabo en una sola interfaz, la de la red local (eth1). Usted, adems, tendr que asegurarse de que su firewall tiene reglas para permitir que su servidor Squid para acceder a Internet en el puerto TCP 80 HTTP como se explica en el captulo 14, " Firewalls Linux Uso de iptables ".
De configuracin de Squid
Configuracin del proxy inverso calamar es fcil, pero no hacia adelante. Hay un montn de cosas a tener en cuenta y los vamos a discutir a continuacin. 1. El primer paso es usar la directiva http_port para definir algunos elementos clave de la configuracin. http_port 99.184.206.67:80 aceleracin ignore-cc = defaultsite www.mysite.com vhost
En primer lugar, definir la direccin IP (99.184.206.67) y el puerto (80) en el que el calamar debe estar en ejecucin. El protocolo de la PIC, que se ver ms adelante, utiliza encabezados CacheControl para la comunicacin entre cachs relacionados entre s. Esto no es necesario y la opcin de ignorar-cc desactiva esta funcin. Si un navegador web visita el servidor con una direccin IP, o el sitio web no se define ms adelante en el ligamento cruzado anterior our_sites, el sitio definido en la opcin defaultsite se mostrar. En este caso se trata de www.my-site.com. Como el servidor tambin acta como una mquina virtual, correr mltiples sitios web, tenemos que mencionar esto tambin con la opcin de host virtual. Por ltimo, el acelerador, o el modo de proxy inverso se define con la opcin de aceleracin. 2. Definir una ACL para todos los sitios alojados en su servidor con la opcin dstdomain, luego que los usuarios puedan acceder a ellos usando la directiva http_access acl our_sites dstdomain www.my-site.com mi-site.com www.my-otros-site.com mi-otro-site.com http_access allow our_sites
3. Utilice la directiva cache_peer para definir el servidor que se va a almacenar en cach el contenido. La sintaxis es la siguiente: #! NOTA! # # No utilizar esta lnea en su tipo cache_peer configuracin de host http-port-puerto icp [opciones]
Ahora vamos a revisar cada una de estas opciones de comando interruptores que ser necesario configurar el proxy inverso en el servidor. Este es un ejemplo real.
# Use esta lnea en la configuracin de su padre cache_peer 127.0.0.1 80 0 no-query = nombre originserver myAccel
En este caso el cache_peer es Squid se ejecuta en localhost. Las cachs pueden tener los padres y los nios. Cuando un nio no tiene contenido para servir, se referir a los padres como fuente de almacenamiento en cach de ltimo recurso mediante el protocolo ICP. En este ejemplo, slo hay una memoria cach, as que tenemos que definir localhost como el padre con la palabra clave padre. ICP tambin se desactiva con la palabra clave no-consulta. El puerto TCP en el que el servidor localhost Apache origen se escucha est escuchando el puerto 80. ICP es mayor con discapacidad mediante la definicin de lo que escucha en el puerto 0. Cuando un cach de los padres no pueden encontrar su contenido, que obtiene sus datos para llenar su cach con los nuevos contenidos de un servidor de origen, ste ser localhost tambin. El nombre myAccel se utilizar ms adelante para definir los sitios que se almacenan en cach en el servidor. 4. La directiva cache_peer_access ahora se utiliza para permitir que todos los sitios que figuran en la lista ACL our_sites para almacenar en cach y negar todos los dems. cache_peer_access myAccel permiten our_sites cache_peer_access myAccel negar todo
5. Cada peticin HTTP indica la direccin IP del cliente en el encabezado. Si la solicitud HTTP tambin es ir a travs de un servidor proxy, el servidor proxy van a crear otros X-Forwarded-For cabecera para que se agregue la direccin IP del cliente remoto, as como su propia. Este comando trunca la lista de todos los clientes remotos, de modo que slo una nica direccin IP est en la lista, el ltimo del servidor proxy pasado. forwarded_for truncar
Squid es un servidor proxy entonces agregar su propia direccin IP (127.0.0.1) a la lista de XForwarded-For. El registro de Apache tendr que ser modificado para truncar esta direccin IP. Esto se tratar ms adelante. Nota: Si los registros de Apache muestran dos direcciones IP o ms para los clientes al utilizar Squid, es probable que han dejado de lado este paso forward_for.
6. Aunque ya hemos desactivado ICP, Squid seguir enviando cabeceras HTTP cach relacionados a los clientes web. Esto tendr que ser desactivado. acl localnet src 99.184.206.64/27 a travs de reply_header_access XCache-Bsqueda negar! localnet reply_header_access X-Calamar-error negar! localnet reply_header_access X-Cache negar! localnet
Aqu se define la red local como 99.184.206.64/27 y luego desactivar los encabezados de los usuarios remotos. 7. No queremos almacenar en cach los resultados. Esto puede causar problemas con algn contenido esttico. Por ejemplo, si el primer acceso a su sitio web se produce cuando se est en mantenimiento, habr un "cerrado" de la pgina. Si esto se almacena en cach, esta pgina se mostrar siempre hasta que la cach expire. Deshabilitar el almacenamiento en cach elimina este problema. # No permita que las estructuras de memoria cach que se crea memory_pools off # Desactivar el cach de cach de negar todo
8. El paso de la configuracin ltima es buscar en el resto de su archivo squid.conf y comentar el comando http_port que se haya configurado previamente. Recuerde, Squid se han configurado para escuchar en su defecto TCP 3128 del puerto, este se estableci en el puerto TCP 80 antes. # Squid normalmente escucha en el puerto http_port 3128 # 3128
9. Por ltimo. Cierre de apache y reiniciar Squid. Tambin asegrese de que Squid se inicie automticamente al reiniciar el sistema. La siguiente fase ser necesario configurar Apache para trabajar con el demonio Squid recin activado.
De configuracin de Apache
Ahora tendr que configurar Apache, no slo para trabajar con calamar, sino tambin para escuchar en localhost en lugar de la interfaz de red. Estos son los pasos a seguir. 1. En el directorio de Apache conf.d agregar un archivo con los siguientes comandos. La primera seccin se Apache que escuche en la direccin localhost y no el de la interfaz de red. Tambin se asegura de sus hosts virtuales harn lo mismo.
La siguiente seccin define la forma de registro ser manejado en X-Forwarded-For entradas estn presentes. Cuenta de que slo se utilizar si la condicin se cumple combined_squid. Esta condicin se define ms adelante. La seccin final le dice a Apache cmo manejar cabeceras de Squid. Si no hay X-Forwarded-For cabecera (representado por la expresin regular ^ $), el registro se le asigna la variable normal_request. Si hay una X-Forwarded-For cabecera (representado por la expresin regular. +), El registro se le asigna la variable squid_request. # # Define IP escuchar direcciones # Listen 127.0.0.1:80 127.0.0.1:80 NameVirtualHost # # # Squid formato de registro LogFormat "% {XForwarded-For i} l%%% u t \"% r \ "%> b% s \ "% {Referer} i \" \ "% {User-Agent} i \" "combined_squid # # Establecer la forma de manejar cabeceras de cache Squid # SetEnvIf X-Forwarded-For" ^ $ "normal_request SetEnvIf X- Forwarded-For ". +" squid_request
2. Los pasos finales son para cambiar primero las entradas de host virtual para referirse a 127.0.0.1:80, entonces le decimos a Apache para que utilice el formato de combined_squid Squid si pasa los datos de registro de Apache con la cabecera X-Forwarded-For tal como se anunciaba en la variable squid_request se establece. <VirtualHost 127.0.0.1:80> CustomLog logs / access_log combined_squid env = squid_request CustomLog logs / access_log combinado env = normal_request </ VirtualHost>
Nota: Recuerde reiniciar Squid para que los cambios surtan efecto. Con este ltimo paso de su servidor estar listo para operar su sitio web. Debe ser mucho ms rpido y hacer que la experiencia de usuario ms agradable.
Squid registra dos mensajes informativos y de error a los archivos en el directorio / var / log / squid / directorio. Lo mejor es revisar estos archivos primero cada vez que tenga el archivo squid.out difficulties.The puede ser especialmente til, ya que contiene errores Calamares "del sistema. Otra fuente de error podra ser los estados no deseados en el archivo squid.conf que no causan errores, los errores en la configuracin de las horas de acceso y las redes permite que se olvidaron que se aade son slo dos posibilidades. Por defecto, Squid opera en el puerto 3128, por lo que si usted est teniendo problemas de conectividad, tendrs que seguir los pasos de solucin de problemas en el Captulo 4, " Solucin de problemas de red simple ", para ayudar a corregirlos. Nota: Algunas de las capacidades de Squid van ms all del alcance de este libro, pero usted debe ser consciente de ellos. Por ejemplo, por razones de rendimiento, es posible configurar servidores Squid nio en el que ciertos tipos de contenido son exclusivamente en cach. Tambin, puede restringir la cantidad de espacio en disco y ancho de banda utiliza Squid.
Conclusin
Herramientas como el calamar son populares entre los gerentes de muchas empresas. Al almacenar en cach las imgenes y archivos en un servidor compartido por todos, los gastos de ancho de banda de Internet puede ser reducido. Funcin de calamar contrasea de autenticacin es muy apreciado, ya que permite slo los usuarios autorizados para acceder a la Internet como medio de reducir las tarifas de uso y las distracciones en la oficina. Por desgracia, una contrasea de acceso a Internet no suele ser visto como un problema de seguridad importante por la mayora de los usuarios que estn dispuestos a compartirlo con sus colegas. A pesar de que est fuera del alcance de este libro, usted debe considerar la vinculacin automtica de la contrasea Squid para la contrasea del usuario de inicio de sesin regular. Esto los har pensar dos veces antes de dar sus contraseas de distancia. Acceso a Internet es una cosa, dejar que tus amigos tengan pleno acceso a su direccin de e-mail y archivos de computadora y otra muy distinta es.