Mostrando entradas con la etiqueta Squid. Mostrar todas las entradas
Mostrando entradas con la etiqueta Squid. Mostrar todas las entradas

lunes, 19 de enero de 2015

Ver fecha de acceso en access.log del Squid



Por ejemplo si queremos ver el acceso de los usuario al squid a las 8:15 del día Lunes 19 de Enero del año actual:

# cat /var/log/squid/access.log | perl -pe 's/(\d+)/localtime($1)/e' | grep "Mon Jan 19 08:15"

domingo, 2 de marzo de 2014

Autenticando Squid en Active Directory



Requerimientos: Squid >= 2.5 (con LDAP helpers)

Versión de Squid utilizada:


root@squid-testing:~# squid -v
Squid Cache: Version 2.7.STABLE9


LDAP Helpers (ldap_auth y squid_ldap_group):


root@squid-testing:~# locate ldap_auth
/usr/lib/squid/ldap_auth
/usr/share/doc/squid/README.auth_module.ldap_auth.gz

root@squid-testing:~# locate squid_ldap_group
/usr/lib/squid/squid_ldap_group
/usr/share/man/man8/squid_ldap_group.8.gz


Antes de modificar la configuración del squid testeamos por la línea de comandos:


/usr/lib/squid/ldap_auth -R -D usuario@mi.dominio.net -w 'password_de_usuario' -b "dc=mi,dc=dominio,dc=net" -f "sAMAccountName=%s" -h ip_del_AD


Ejemplo:

root@squid-testing:~# /usr/lib/squid/ldap_auth -R -D morsa@redes.seguridad.net -w 'Mi-P2ssbuor' -b "dc=global,dc=company,dc=domain" -f "sAMAccountName=%s" -h 192.168.0.1


Luego de ejecutar el comando previo, queda esperando que ingresemos usuario y password separado por un espacio, en mi caso:

morsa Mi-P2ssbuor
OK

Si obtenemos OK es que la autenticación funciona correctamente.


Editamos la configuración del Squid:

root@squid-testing:~# vi /etc/squid/squid.conf

Reemplazamos el auth_param basic program por el comando ejecutado anteriormente y unos parametros más como el realm y las TTLs de las credenciales:

auth_param basic program  /usr/lib/squid/ldap_auth -R -D morsa@redes.seguridad.net -w 'Mi-P2ssbuor' -b "dc=redes,dc=seguridad,dc=net" -f "sAMAccountName=%s" -h 192.168.0.1
auth_param basic children 5
auth_param basic realm Tupperware
auth_param basic credentialsttl 5 minutes

La siguiente acl nos permite el que al abrir el explorardor nos pida credenciales:

acl password proxy_auth REQUIRED

Agregamos una lista de acceso externa llamada GrupoInternet utilizando squid_ldap_group:

external_acl_type GrupoInternet %LOGIN /usr/lib/squid/squid_ldap_group -R -b "dc=redes,dc=seguridad,dc=net" -D morsa@redes.seguridad.net -w Mi-P2ssbuor -f "(&(objectclass=person)(sAMAccountName=%v)(memberof=cn=%a,ou=Groups,ou=Contenedor1,ou=Contenedor2,dc=redes,dc=seguridad,dc=net))" -h 192.168.0.1

Agregamos otra lista de acceso llamada Internet utilizando la previa acl (GrupoInternet) y utilizará un grupo en Active Directory llamado GrupoSquidAD donde este grupo estará dentro del contenedor (ou=Groups,ou=Contenedor1,ou=Contenedor2,dc=redes,dc=seguridad,dc=net):

acl Internet external GrupoInternet GrupoSquidAD

Permitimos acceso a la acl previa con el siguiente linea:


http_access allow Internet 


Reiniciamos el squid:

root@squid-testing:~# /etc/init.d/squid start
Starting Squid HTTP proxy: squid.
root@squid-testing:~# !ps
ps -efa | grep squid
root      3901     1  0 20:14 ?        00:00:00 /usr/sbin/squid -D -YC
proxy     3906  3901 99 20:14 ?        00:00:02 (squid) -D -YC
root      3932 31579  0 20:14 pts/2    00:00:00 grep squid
root@squid-testing:~#


IMPORTANTE: Recordar agregar los usuarios que queremos permitir el acceso a internet deben estar dentro del grupo GrupoSquidAD del Active Directory.


También les dejo una configuración completa del squid para que quede más claro:

root@squid-testing:~# cat /etc/squid/squid.conf
##############################################################        Auth
#############################################################
auth_param basic program /usr/lib/squid/ldap_auth -R -D morsa@redes.seguridad.net -w 'Mi-P2ssbuor -b "dc=redes,dc=seguridad,dc=net" -f "sAMAccountName=%s" -h 192.168.0.1
auth_param basic children 5
auth_param basic realm Redes.Seguridad
auth_param basic credentialsttl 5 minutes

##############################################################       ACL's
#############################################################
acl http proto http

acl port_80 port 80
acl port_443 port 443
acl SSL_ports port 443          # https
acl SSL_ports port 563          # snews
acl SSL_ports port 873          # rsync
acl Safe_ports port 80          # http
acl Safe_ports port 21 20       # ftp
acl Safe_ports port 443         # https
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl Safe_ports port 631         # cups
acl Safe_ports port 873         # rsync
acl Safe_ports port 901         # SWAT
acl purge method PURGE
acl CONNECT method CONNECT

acl all src all

#Agregado por morsa para bloqueo de youtube
acl no_domains dstdomain "/etc/squid/sitios_denegados.txt"

acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32

acl password proxy_auth REQUIRED

external_acl_type GrupoInternet %LOGIN /usr/lib/squid/squid_ldap_group -R -b "dc=redes,dc=seguridad,dc=net" -D morsa@redes.seguridad.net -w Mi-P2ssbuor -f "(&(objectclass=person)(sAMAccountName=%v)(memberof=cn=%a,ou=groups,ou=Contenedor1,ou=Contenedor2,dc=redes,dc=seguridad,dc=net))" -h 192.168.0.1

acl Internet external GrupoInternet ARG1-InternetSquid

##############################################################ACCESOS
#############################################################
http_access deny no_domains

http_access allow Internet
http_access allow password

http_access deny all

http_access allow manager localhost
http_access deny manager

http_access allow purge localhost
http_access deny purge

http_access deny !Safe_ports

http_access deny CONNECT !SSL_ports

http_access allow localhost

http_access deny all

icp_access deny all

http_port 3128

hierarchy_stoplist cgi-bin ?

cache_mem 100 MB

cache_dir aufs /var/spool/squid 20000 16 256

maximum_object_size 4096 KB

cache_swap_low 95
cache_swap_high 100

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

cache_log /var/log/squid/cache.log

pid_filename /var/run/squid.pid

refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern (Release|Packages(.gz)*)$       0       20%     2880
refresh_pattern .               0       20%     4320

acl permitidos src "/etc/squid/permitidos"
http_access allow permitidos

acl shoutcast rep_header X-HTTP09-First-Line ^ICY.[0-9]
upgrade_http0.9 deny shoutcast

acl apache rep_header Server ^Apache
broken_vary_encoding allow apache

extension_methods REPORT MERGE MKACTIVITY CHECKOUT

cache_effective_user proxy

cache_effective_group proxy

visible_hostname squid-testing

icon_directory /usr/share/squid/icons

error_directory /usr/share/squid/errors/es-ar

hosts_file /etc/hosts

coredump_dir /var/spool/squid
root@squid-testing:~#

jueves, 11 de julio de 2013

Allow Firefox Installer on Squid Proxy

Ya fué explicado en este link como agregar una WhiteList:
http://www.redes-seguridad.com.ar/2013/06/whitelist-squid-without-authentication.html

Ahora para que el squid nos permita descargar e instalar el Mozilla Firefox tendremos que editar el archivo: /etc/squid/sites.whitelist.txt y colocar las siguientes web's dentro:

# vim /etc/squid/sites.whitelist.txt
download.mozilla.org
download.cdn.mozilla.net
download-stats.mozilla.org

Chequeamos la config del squid:

# squid -k check

Reiniciamos el squid si no obtuvimos errores en el comando previo:

# /etc/init.d/squid reload


jueves, 6 de junio de 2013

Whitelist squid without authentication


Editamos la configuración del squid (squid.conf) y agregamos el archivo donde pondremos las webs de las lista blanca:


# vim /etc/squid/squid.conf
acl whitelist dstdomain "/etc/squid/sites.whitelist.txt"
acl all src all
acl password proxy_auth REQUIRED
http_access allow whitelist
http_access allow password http_access deny all

Editamos el archivo de listas sin autenticacion de proxy:

# vim /etc/squid/sites.whitelist.txt
www.redes-seguridad.com.ar

Chequeamos la config del squid:

# squid -k check

Si no tenemos ningun error reiniciamos el squid:

# /etc/init.d/squid reload

Por ejemplo si queremos activar office sin que autentique:

# vim /etc/squid/sites.whitelist.txt
#Activacion de Office:
go.microsoft.com
activation.sls.microsoft.com