miércoles, 10 de agosto de 2011

Squid + Directorio Activo de windows

Como instalar squid en debian con autentificación por grupos del directorio activo de widows


Propósito de este manual:
Configurar un pc como proxy-cache y utilizar los grupos del Active Directory de windows 2003 server para la gestión de usuarios del proxy

Escenario:
• Windows 2003 Server: Al menos un servidor windows 2003 con el Directorio Activo
• fedora 8: Sistema operativo
• squid-cache: Servidor proxy

Tres tipos de usuario:
• Acceso "total"
• Acceso limitado
• Acceso restringido
Empezamos:
Primero en el active directory hay que crear una unidad organizativa UO, te recomiendo que la crees en la raíz, la llamaremos Internet, ahora dentro de esta UO tienes que crear tantos grupos como necesites para agrupar a tus usuarios por necesidades, en este manual usaremos los grupos:
• AccesoTotal
• AccesoLimitado
En el grupo AccesoTotal añadiremos a todos los usuarios que puedan visitar casi todo el contenido de internet.
En el grupo AccesoLimitado añadiremos a todos los usuarios que puedan visitar los websites que permita la empresa tales como bancos, servidores locales, web de la propia empresa, y cualquier otro sitio que se considere.
Si el usuario no esta en cualquiera de estos grupos se le denegara el acceso a internet.

Esto es todo lo que tenemos que hacer en windows. Pasamos al servidor fedora 8, primero instalamos el squid, utilizamos yum para instalar la ultima versión, este manual esta escrito para squid (2.6.5-6)
proxy:~# yum install squid* winbind* (el * es para que instale todos los paquetes relacionados con lo que queremos instalar.

Ahora solo tenemos que configurar el squid, se muestra linea a linea el archivo de configuración que se utiliza en este manual, pero recuerda que el archivo de configuración original consta de más de 4000 lineas entre comentarios y parámetros, utiliza esta configuración de base. Al final de este documentos podrás encontrar una copia sin comentar y lista para usar en tu squid.

vi /etc/squid/squid.conf

Utilizamos el editor de textos vi para modificar squid.conf
http_port 3128
http_port 8080
Puerto para el servidor proxy (Defecto 3128, se puede cambiar al 8080 a agregar los 2)

icp_port 0

no usamos icp
forwarded_for off
Ocultamos la ip del cliente, para que en internet solo se muestre la ip del router

hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY

Aquí puedes incluir todo aquello que squid no debe guardar en chache Ej. cgi-bin
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache

Para los servidores que permiten resumir la sesión cuando se cancela una descarga de un archivo
access_log /var/log/squid/access.log squid

Esta linea se explica por si misma, donde guardamos el log de acceso
emulate_httpd_log on

Para emular el formato de log del apache, esto nos sirve para utilizar los analizadores de logs de apache
hosts_file /etc/hosts

¿Donde esta el fichero hosts?
cache_dir aufs /var/spool/squid/ 2000 16 256

Esta linea define el tipo de cache que utilizara squid, su ubicación, su tamaño, la cantidad de directorios y de subdirectorios respectivamente.
cache_dir
Aqui el archivo de configurancion completo
 #Archivo de Configuracion Creado por jparedes

http_port ip:3128
http_port ip:8080
icp_port 0

forwarded_for off

hierarchy_stoplist cgi-bin ?

acl QUERY urlpath_regex cgi-bin \?

cache deny QUERY

acl apache rep_header Server ^Apache

broken_vary_encoding allow apache

access_log /var/log/squid/access.log squid

emulate_httpd_log on

hosts_file /etc/hosts

visible_hostname SQUID

cache_dir aufs /var/spool/squid/ 2000 16 256
cache_mem 128 MB

auth_param basic program /usr/lib/squid/squid_ldap_auth -R -b "dc=xxx,dc=com" -D "cn=squid,ou=Internet,dc=xxx,dc=com" -w "passwd" -f sAMAccountName=%s -h x.x.x.x (ip servidor AD)

auth_param basic children 20
auth_param basic realm SQUID
auth_param basic credentialsttl 5 minutes

external_acl_type LDAP_group %LOGIN /usr/lib/squid/squid_ldap_group -R -b "dc=xxx,dc=com" -D "cn=squid,ou=Internet,dc=xxx,dc=com" -w "passwd" -f "(&(objectclass=person) (sAMAccountName=%v) (memberof=cn=%a,ou=Internet,dc=xxx,dc=com))" -h x.x.x.x

acl LDAP_group proxy_auth REQUIRED

acl ldapLimitado external LDAP_group InternetLimitado
acl ldapTotal external LDAP_group InternetTotal
acl dstcomun dstdomain "/etc/squid/acl/comun.acl"
acl horario time MTWHF 07:00-16:00

acl CONNECT method CONNECT
acl Safe_ports port 22 25 80 8080 110 443
acl SSL_ports port 443
acl all src  0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl purge method PURGE

offline_mode on

http_access allow ldapTotal
http_access allow ldaplimitado !dstcomun horario
http_access deny  !ldapLimitado dstcomun !horario
http_access deny  !ldapTotal
http_access allow manager localhost
http_access allow purge localhost
http_access allow localhost


http_reply_access allow all

http_access deny purge
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

icp_access deny all

header_access X-Forwarder-For deny all
header_access Via deny all
header_access Accept-Language deny all

refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320


coredump_dir /var/spool/squid

error_directory /usr/share/squid/errors/Spanish

http_access deny all
cache_mgr usuario@xxx.com.ve

 Ya podemos reiniciar nuestro nuevo proxy-cache squid proxy:~# /etc/init.d/squid restart

El Blog: Telefónica y Vodafone aumentanla velocidad de Internet móvil

El Blog: Telefónica y Vodafone aumentanla velocidad de Internet móvil