PROYECTO A IMPLEMENTAR En este manual se va a implementar un Servidor Proxy con autenticación de usuarios de servicio de directorio. Los objetivos a cumplir son: Implementar Servidor proxy. Implementar políticas de acceso y restricción por URL, extensiones de archivo, mimetypes y por acceso de horarios. Implementar listas negras para control de acceso. Implementar autenticación con usuarios de un servicio de directorio. Implementar un analizador de tráfico para generar reportes estadísticos, con acceso seguro para la visualización de los reportes. Escenario: o Windows 2003 Server: Al menos un servidor windows 2003 con el Directorio Activo o debian Leny: Sistema operativo o squid-cache: Servidor proxy o squidGuard: Filtrado web o Sarg: Analizador de trafico o bind9: o apache2:
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
PROYECTO A IMPLEMENTAR
En este manual se va a implementar un Servidor Proxy con autenticación de usuarios de servicio de directorio.
Los objetivos a cumplir son: Implementar Servidor proxy. Implementar políticas de acceso y restricción por URL, extensiones de
archivo, mimetypes y por acceso de horarios.
Implementar listas negras para control de acceso. Implementar autenticación con usuarios de un servicio de directorio. Implementar un analizador de tráfico para generar reportes estadísticos,
con acceso seguro para la visualización de los reportes.
Escenario:
o Windows 2003 Server: Al menos un servidor windows 2003 con el Direc-torio Activo
o debian Leny: Sistema operativo
o squid-cache: Servidor proxy
o squidGuard: Filtrado web
o Sarg: Analizador de trafico
o bind9:
o apache2:
AUTENTIFICACION LDAP POR GRUPOS DE WINDOWS 2003
Lo primero que vamos a hacer es la autenticación, ya que después de agregar las líneas correspondiente para la autenticación resulta más fácil agregar las demás líneas que necesitemos según nuestras necesidades.
Empezamos:Primero en el active directory hay que crear una unidad organizativa UO, lo re-comendable es que la crees en la raíz, la llamaremos proxy; dentro de esta UO debes que crear los grupos que necesites para agrupar a tus usuarios según tus necesidades, en este manual usaremos los grupos:
AccesoTotal
AccesoLimitado
Los usuarios que pueden visitar casi todo el contenido de internet, que es este caso serán los administradores de la red, los haremos miembros del grupo Ac-cesototal.
Los usuarios que serán miembros del grupo Accesolimitado, tendrán acceso a casi todos los sitios web, pero no podrá hacer descargas, ver algunas extensio-nes de archivo o jugar; excepto en la hora de almuerzo, que es el horario en el que podrán visitar las páginas que en el resto de día no podrán ver como por ejemplo (www.facebook.com).
Si el usuario no está en cualquiera de estos grupos se le denegara el acceso a internet
INSTALACION DE SQUID
Vamos a empezar con la instalación de Squid.
#apt-get install squid #apt-get install winbind
Al instalar squid se instalara también squid-common
El squid que se utilizara en esta configuración es squid 2.7, y squid-common 2.7
Ahora entramos a squid para empezar la configuración de squid.conf
#cd /etc/squid#pico squid.conf
El squid.conf es un fichero bastante grande, en su gran mayoría por los comentarios y explicaciones que este contiene, se recomienda crear una copia del archivo squid.conf borrar el contenido del original y crear dentro de este la configuración desde cero adaptándolo a tus necesidades.
La configuración para la autenticación quedara así:
CONFIGURACION DE SQUID#configuración general
http_port 3128
> El puerto por el que va a correr el proxy.
icp_port 0
> El icp_port es para la comunicación con otro proxy, por defecto va icp_port 3130 pero lo pondremos icp_port 0 para indicar que esta des-activado.
forwarded_for off> Ocultamos la ip del cliente, para que en internet solo se muestre la ip del
> Ahora vamos con el otro "helper" este permite la utilización de grupos del ldap
external_acl_type ldap_group
o %LOGIN /usr/lib/squid/squid_ldap_group -R -b Aquí le indica-
mos donde se encuentra el "helper" del ldap-group
o "dc=proxy57,dc=com" -D El dominio del AD
o "cn=usuarioldap,ou=proxy,dc=proxy57,dc=com" -w "micontrase-
ña" -f El usuario para contactar con el AD y su contraseña
o "(&(objectclass=person) (sAMAccountName=%v) (memberof=cn=
%a,ou=proxy,dc=proxy57,dc=com))" -h 172.20.0.13Le inidca-mos en que unidad organizativa se encuentran los grupos de los usuario, recuerda que hemos creado los grupos "Accessototal" y "Accesolimitado" en la UO "proxy"
auth_param basic children 25auth_param basic realm Proxy57
> Todo lo que escribas después del realm, se muestra al usuario cuando se le pide la contraseña. Ej. "Proxy57"
auth_param basic credentialsttl 1 minutes
> El tiempo que squid mantiene las credenciales de las web externas, don-de el usuario se valida
CREAR LAS ACL'S
La acl (lista de control de acceso) implementar políticas de acceso y restricción por URL, extensiones de archivo mimetypes y por acceso de horarios
#acl's
acl CONNECT method CONNECTacl Safe_ports port 80 443 1024-65535
> Estos son los puertos "80 443" que squid permitirá conexiones. cualquier petición a un puerto que no esté en esta línea será rechazada. Si no sabes que puertos necesitan tus aplicaciones puedes utilizar una línea con todos los puertos altos y con los más usuales pero no es muy recomendable. Ej. "acl Safe_ports port 80 443 21 1024-65535"
> En estos archivo pondremos todos lo que consideramos que no debe ser accesibles para todos los usuarios. Vamos a implementar políticas de acceso y restricción por URL, extensiones de archivo mimetypes y por acceso de horarios
acl horario_almuerzo time MTWHF 12:00-13:00
> Solo vamos a usar una acl de tiempo, esta es para el horario de almuer-zo.
acl ldap-group proxy_auth REQUIRED
> Esta acl establece que todos los usuarios del ldap deben autenticarse.
offline_mode on
> Para cachear todo lo que pase por el proxy.
#Políticas
http_access deny !Safe_ports
> Denegamos el acceso a cualquier puerto diferente a los definidos en Safe_ports.
http_access allow horario_almuerzo all ldapLimitado url_deny
> Permitimos que todos los usuarios del grupo ldapLimitado en la hora del almuerzo pueda ver el contenido de la paginas denegadas dentro del archivo de la en la acl url_deny.
http_access allow ldapTotal all !cont_palabras
> Todos los usuarios del grupo ldapTotal tienen acceso a todo excepto pá-ginas que contengan las palabras definidas dentro del archivo de la acl cont_palabras.
http_access allow ldapLimitado all !archivos !mime_types !url_deny !cont_pal-abras
> Ningún usuario que pertenezca el grupo ldapLimitado puede accede al contenido establecido dentro de las acl’s archivos mime_types url_deny cont_palabras .
> Con esta línea le indicamos al squid donde guardar la cache
error_directory /usr/share/squid/errors/Spanish
> El idioma que utilizara squid
#fin
Hasta aquí todas las líneas del archivo de configuración del squid, ubicado en /etc/squid/squid.conf, asegúrate de hacer añadido los usuarios en los grupos correspondientes del Active Directory de windows, configurar el navegador de los usuarios con la dirección ip y el puerto del proxy.
Ahora antes de reiniciar el squid, tenemos que crear el directorio acl y creamos los archivos archivos mime_types url_deny cont_palabras
Creamos el directorio acl en el directorio de configuración del squid.
#mkdir /etc/squid/acl
#touch /etc/squid/acl/archivos
#touch /etc/squid/acl/mime_types
#touch /etc/squid/acl/url_deny
#touch /etc/squid/acl/cont_palabras
Concedemos permisos de escritura y lectura solo al usuario root
# chmod 600 /etc/squid/acl -R
Estos archivos contienen. Ejemplo
Usamos squid -z para refrescar la cache, con este comando también sabrás si
tienes algún error en la sintaxis.#squid -z
Reinicia el squid
# /etc/init.d/squid restart
LISTAS NEGRAS
Para complementar las denegaciones vamos a implementar listas negras para control de acceso.
Para esto usaremos squidguard 1.2.0-8.4
# apt-get install squidguard
A continuación editamos el fichero de configuración de Squid
#pico /etc/squid/squid.conf
CONFIGURACION DE SQUIDGUARD
Al final del archivo de configuración agregamos la línea
Esta línea es necesaria para conectar Squid con SquidGuard.
Bajamos el archivo que contiene la base de datos con miles de direcciones web cuyo contenido queremos bloquear. Ese archivo lo podemos encontrar en la siguiente dirección: http://urlblacklist.com/cgi-bin/commercialdownload.pl?type=download&file=bigblacklist
El archivo comprimido que descargues debes cp en la ruta /var/lib/squidguard/db/ #cp blacklists.tar.gz /var/lib/squidguard/db/Ve a la ruta /var/lib/squidguard/db/ #cd /var/lib/squidguard/db/
Y descomprimirlo en esa misma ruta.#tar xvzf blacklists.tar.gzTe quedara un archivo llamado blacklists que contiene las listas negras.
Editamos el fichero de configuración de SquidGuard#pico /etc/squid/squidGuard.conf
Borramos lo que aparece tras las líneas:dbhome /var/lib/squidguard/dblodgir /var/log/squid (Estas dos líneas las dejamos)
Al final del fichero escribimos lo siguiente:
Al final agregamos la línea redirect y escribimos una pagina a la cual se redireccionaran todos los dominios y ulr’s que se intenten abrir.
Cerramos el fichero guardando los cambios.
Ahora solo nos queda convertir estas blacklist en formato de base de datos para que su consulta sea mucho más rápida y efectiva.#squidGuard -C allRefrescamos la cache
#squid -z
Reinicia el squid
# /etc/init.d/squid restart
Utilizaremos un tail en el log del squidGuard, para asegurarnos que todo esté bien.
#tail -f /var/log/squid/squidGuard.log
Haremos una prueba, escribimos en el navegador una de las direcciones que aparecen en el fichero domains (por ejemplo, http://www.viendosexo.com/).
ANALIZADOR DE TRAFICO SARG
Y para finalizar implementamos un analizador de tráfico para generar reportes estadísticos, con acceso seguro para la visualización de los reportes.
Para esto usaremos SARG
Las estadísticas las veremos vía web, y para ello deben tener instalado un servidor web y un servidor de nombres.
La versión de sarg que usamos es la 2.2.5
En esta manual el SARG se instalo en la ruta donde se encuentra el squid.
Configura el apache2 para ver las estadísticas vía web.
Crea el registro en el DNS
Configura al Apache para poder leer las estadísticas de uso del servidor Proxy.
Entra a /etc/apache2/httpd.conf y agrega estas líneas
#pico /apache2/httpd.conf
Entra a tmp, allí ejecutaremos el comando para crearemos un archivos de contraseñas encriptadas para autorizar la entrada en Sarg.
#cd /
#cd tmp
debian:/tmp# htpasswd -c -m /etc/.htpasswdsquidreports administrador (administrador es el nombre para el usuario)
Reiniciamos todos los servicios.
debian:/tmp# /etc/init.d/apache2 restart
debian:/tmp# /etc/init.d/squid restart
PRUEBA
Abre tu navegador y veras que si todo está bien te debe pedir el usuario y contraseña.
La primera prueba la haremos con el usuarioldap, recuerda que este usuario no pertenece a ningún grupo, por lo tanto no tiene ningún permiso, no debe poder acceder a ninguna pagina.
Ahora haremos una prueba con un usuario que pertenezca al grupo de Accesototal.
Como ya podemos navegar, ahora vamos a probar la autenticación para los reportes de squid.
De esta manera el usuario administrador, (que es independiente de los usuarios registrados en el Active Directiry), puede ver los reportes generados por el squid.
Ahora puedes ver todas las estadísticas de los reportes.
Puedes ver que los días en que ingresa a internet cada usuario
Puedes ve las páginas que visita cada usuario, cuanto tiempo la visitaron, etc.
#para comunicar con el active directory de windowsauth_param basic program /usr/lib/squid/ldap_auth -R -b \"dc=proxy57,dc=com" -D "cn=usuarioldap,ou=proxy,dc=proxy57,dc=com" -w \"sena.2009" -f sAMAccountName=%s -h 172.20.0.13