Squid, ¿cómo lo configuro?

Imagen de vilero
0 puntos

Me gustaría que alguien explicara el funcionamiento de squid 2.7 stable. Es decir la idea es instalarlo en un aula para controlar básicamente el acceso web de mis alumnos. Me he instalado el squid, pero el problema es configurarlo. Cuando busco información por internet me hablan de otras versiones que corresponden con el archivo de configuración squid.conf de la versión 2.7.

Gracias.

Imagen de Firecold
+1
0
-1

Amigo yo te recomendaría squid3 lo puedes instalar tipeando en la consola sudo apt-get install squid3, esta versión trae muchas mejoras y la mejor es delay pools, que nos sirve para darle una velocidad determinada a cada cliente te mostrare mi configuración para que te des una idea, lo primero que tienes que hacer es instalarlo, pero antes de eso debes de configurar tus interfaces de red, creo que podrás encontrar mucho de eso en la red, pero si nesecitas ayuda te puedo ayudar, ahi va:

# WELCOME TO SQUID 3.1.6
# -----------------------------------------------------------------------------
# ACCESS CONTROLS
# -----------------------------------------------------------------------------
# Recommended minimum configuration:
acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
# -----------------------------------------------------------------------------
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # 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 CONNECT method CONNECT
acl mired src "/etc/squid3/mired" # en esta parte haces un texto plano y escribes las ips que estaran en tu red
acl accesototal src "/etc/squid3/accesototal" # en esta tu ip para que no tenga limitaciones
acl webloqueadas url_regex -i "/etc/squid3/sitiosdenegados" # en esta sitios que quieras bloquear
#No queremos limitar las descargas en nuestra red local.
acl magic_words1 url_regex -i 192.168
#Queremos limitar la descarga de este tipo de archivos
acl magic_words2 url_regex -i ftp .exe .mp3 .zip .rar .avi .mpeg .mpe .mpg .raw .wav .mov .3gp .mov .flv .mp2 .mp5 .aac .wma .ogg .mka .asf .iff .amv
#----------------------------------------------------------------------
#----------------------------------------------------------------------
# Negar cache para archivos con extencion .asx e .asf |streaming|
#----------------------------------------------------------------------
acl asx url_regex -i \.asx$
cache deny asx
acl asf url_regex -i \.asf$
cache deny asf
#----------------------------------------------------------------------
# Bloquear archivos con sospecha de virus
#----------------------------------------------------------------------
acl vbs url_regex -i .*\.VBS$
http_access deny vbs
acl scr url_regex -i .*\.SCR$
http_access deny scr
acl cmd url_regex -i .*\.CMD$
http_access deny cmd
acl pif url_regex -i .*\.PIF$
http_access deny pif
#-----------------------------------------------------------------------------
# Recommended minimum Access Permission configuration:
# Only allow cachemgr access from localhost
http_access allow manager localhost
http_access deny manager
# Deny requests to certain unsafe ports
http_access deny !Safe_ports
# Deny CONNECT to other than secure SSL ports
http_access deny CONNECT !SSL_ports
# -----------------------------------------------------------------------------
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
# Example rule allowing access from your local networks.
# Adapt localnet in the ACL section to list your (internal) IP networks
# from where browsing should be allowed
#http_access allow localnet
http_access deny localhost
http_access allow accesototal
http_access allow mired !webloqueadas
# And finally deny all other access to this proxy
http_access deny all
# -----------------------------------------------------------------------------
# NETWORK OPTIONS
# -----------------------------------------------------------------------------
# Squid normally listens to port 3128
http_port 192.168.1.1:3128 transparent # yo lo tengo como transparente para que no se salten las restricciones
#------------------------------------------------------------------------------
# OPTIONS WHICH AFFECT THE NEIGHBOR SELECTION ALGORITHM
# -----------------------------------------------------------------------------
# We recommend you to use at least the following line.
# hierarchy_stoplist cgi-bin ?
# -----------------------------------------------------------------------------
# MEMORY CACHE OPTIONS
# -----------------------------------------------------------------------------
cache_mem 1024 MB
maximum_object_size_in_memory 50 MB
memory_replacement_policy heap GDSF
# -----------------------------------------------------------------------------
# DISK CACHE OPTIONS
# -----------------------------------------------------------------------------
cache_replacement_policy lru
# Uncomment and adjust the following to add a disk cache directory.
cache_dir aufs /var/spool/squid3 15000 16 256 # donde se almacenara el cache
minimum_object_size 0 KB
maximum_object_size 50 MB
cache_swap_low 98
cache_swap_high 99
# -----------------------------------------------------------------------------
# LOGFILE OPTIONS
# -----------------------------------------------------------------------------
access_log /var/log/squid3/access.log squid
client_netmask 255.255.255.0 # dependiendo de tu red
# -----------------------------------------------------------------------------
# OPTIONS FOR TROUBLESHOOTING
# -----------------------------------------------------------------------------
cache_log /var/log/squid3/cache.log
coredump_dir /var/spool/squid3
# -----------------------------------------------------------------------------
# OPTIONS FOR TUNING THE CACHE
# -----------------------------------------------------------------------------
# Add any of your own refresh_pattern entries above these.
# Debian
refresh_pattern -i \.deb$ 129600 100% 129600
refresh_pattern -i \.gz$ 129600 100% 129600
refresh_pattern -i \.bz2$ 129600 100% 129600
# Imagenes
refresh_pattern -i \.gif$ 14400 80% 43200
refresh_pattern -i \.tiff?$ 14400 80% 43200
refresh_pattern -i \.bmp$ 14400 80% 43200
refresh_pattern -i \.jpe?g$ 14400 80% 43200
refresh_pattern -i \.xbm$ 14400 80% 43200
refresh_pattern -i \.png$ 14400 80% 43200
refresh_pattern -i \.wrl$ 14400 80% 43200
refresh_pattern -i \.ico$ 14400 80% 43200
refresh_pattern -i \.pnm$ 14400 80% 43200
refresh_pattern -i \.pbm$ 14400 80% 43200
refresh_pattern -i \.pgm$ 14400 80% 43200
refresh_pattern -i \.ppm$ 14400 80% 43200
refresh_pattern -i \.rgb$ 14400 80% 43200
refresh_pattern -i \.ppm$ 14400 80% 43200
refresh_pattern -i \.rgb$ 14400 80% 43200
refresh_pattern -i \.xpm$ 14400 80% 43200
refresh_pattern -i \.xwd$ 14400 80% 43200
refresh_pattern -i \.pict?$ 14400 80% 43200
# Movies
refresh_pattern -i \.mov$ 14400 80% 43200
refresh_pattern -i \.mpe?g?$ 14400 80% 43200
refresh_pattern -i \.avi$ 14400 80% 43200
refresh_pattern -i \.qtm?$ 14400 80% 43200
refresh_pattern -i \.viv$ 14400 80% 43200
refresh_pattern -i \.swf$ 14400 80% 43200
# Sounds
refresh_pattern -i \.wav$ 14400 80% 43200
refresh_pattern -i \.aiff?$ 14400 80% 43200
refresh_pattern -i \.au$ 14400 80% 43200
refresh_pattern -i \.ram?$ 14400 80% 43200
refresh_pattern -i \.snd$ 14400 80% 43200
refresh_pattern -i \.mid$ 14400 80% 43200
refresh_pattern -i \.mp2$ 14400 80% 43200
refresh_pattern -i \.mp3$ 14400 80% 43200
# Archives
refresh_pattern -i \.sit$ 14400 80% 43200
refresh_pattern -i \.zip$ 14400 80% 43200
refresh_pattern -i \.hqx$ 14400 80% 43200
refresh_pattern -i \.exe$ 14400 80% 43200
refresh_pattern -i \.arj$ 14400 80% 43200
refresh_pattern -i \.lzh$ 14400 80% 43200
refresh_pattern -i \.lha$ 14400 80% 43200
refresh_pattern -i \.cab$ 14400 80% 43200
refresh_pattern -i \.rar$ 14400 80% 43200
refresh_pattern -i \.tar$ 14400 80% 43200
refresh_pattern -i \.gz$ 14400 80% 43200
refresh_pattern -i \.z$ 14400 80% 43200
refresh_pattern -i \.a[0-9][0-9]$ 14400 80% 43200
refresh_pattern -i \.r[0-9][0-9]$ 14400 80% 43200
# Data files
refresh_pattern -i \.txt$ 14400 80% 43200
refresh_pattern -i \.pdf$ 14400 80% 43200
refresh_pattern -i \.doc$ 14400 80% 43200
refresh_pattern -i \.rtf$ 14400 80% 43200
refresh_pattern -i \.tex$ 14400 80% 43200
refresh_pattern -i \.latex$ 14400 80% 43200
# Java-type objects
refresh_pattern -i \.class$ 14400 80% 43200
refresh_pattern -i \.js$ 14400 80% 43200
refresh_pattern -i \.class$ 14400 80% 43200
# Para evitar problemas con scripts .do
refresh_pattern -i \.do$ 0 0% 1440
refresh_pattern -i ^http://.*\.(css|htm|html|ico|js|jsp|xml)$ 1440 80% 999999
refresh_pattern -i ^http://.*\.(bmp|gif|jpeg|jpg|png)$ 1440 80% 999999 ignore-reload
#Fin
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
# -----------------------------------------------------------------------------
# TAG: quick_abort_min (KB)
# TAG: quick_abort_max (KB)
# TAG: quick_abort_pct (percent)
quick_abort_min 0 KB
quick_abort_max 0 KB
quick_abort_pct 100
read_ahead_gap 16384 KB
negative_ttl 0 seconds
positive_dns_ttl 86400 seconds
negative_dns_ttl 1 seconds
# HTTP OPTIONS
# -----------------------------------------------------------------------------
request_header_max_size 524288 KB
ie_refresh on
# -----------------------------------------------------------------------------
# TIMEOUTS
# -----------------------------------------------------------------------------
forward_timeout 240 seconds
connect_timeout 60 seconds
peer_connect_timeout 30 seconds
read_timeout 900 seconds
request_timeout 120 seconds
persistent_request_timeout 60 seconds
client_lifetime 7200 seconds
half_closed_clients off
pconn_timeout 60 seconds
shutdown_lifetime 20 seconds
# -----------------------------------------------------------------------------
# ADMINISTRATIVE PARAMETERS
# -----------------------------------------------------------------------------
# TAG: cache_mgr
cache_mgr Firecold # como tu le quieras poner
cache_effective_user servidor # el nombre de tu maquina
cache_effective_group servidor # el nombre de tu maquina
visible_hostname servidor # el nombre de tu maquina
#------------------------------------------------------------------------------
# OPTIONS FOR THE CACHE REGISTRATION SERVICE
# -----------------------------------------------------------------------------
# DELAY POOL PARAMETERS # esto sirve para limitar de los archivos descritos anteriormente
# -----------------------------------------------------------------------------
# TABLA DE EQUIVALENCIAS
#2048 B ==> 16 kb ==> 2KB
#4096 B ==> 32 kb ==> 4KB
#8192 B ==> 64 kb ==> 8KB
#16384 B ==> 128kb ==> 16KB
#32768 B ==> 256Kb ==> 32KB
#65536 B ==> 512Kb ==> 64KB
#131072 B ==> 1 Mb ==> 128KB
#196608 B ==> 1.5 Mb ==> 192KB
#262144 B ==> 2 Mb ==> 256KB

delay_pools 3
delay_class 1 2
delay_parameters 1 -1/-1 -1/-1
delay_access 1 allow accesototal # sin limitaciones para uno

delay_class 2 2
#-1/-1 significa que no hay límites.
delay_parameters 2 -1/-1 -1/-1
delay_access 2 allow magic_words1 # sin limitaciones para la vavegacion

delay_class 3 2
delay_parameters 3 50000/50000 50000/50000
delay_access 3 allow magic_words2 # limitaciones para ciertos archivos
# -----------------------------------------------------------------------------
# DNS OPTIONS
# -----------------------------------------------------------------------------
dns_nameservers 127.0.0.1 200.49.161.131 #aqui debes colocar tus dns
dns_retransmit_interval 5 seconds
dns_timeout 2 minutes
ipcache_size 10240
ipcache_low 98
ipcache_high 99
fqdncache_size 10240
# -----------------------------------------------------------------------------
# MISCELLANEOUS
# -----------------------------------------------------------------------------
memory_pools off
forwarded_for off
offline_mode on
# -----------------------------------------------------------------------------
FIN
# -----------------------------------------------------------------------------

Todas las configuraciones te las puedo explicar, si te interesa saber, te quisiera comentar que en las reglas acl tienes que crear un archivo en la carpeta de instalacion de squid3 o donde tu lo deses pero tienes que especificar donde, ejemplo: acl mired src "/etc/squid3/mired", donde acl mired src es el tipo de regla y "/etc/squid3/mired" es el lugar donde vas a colocar el texto plano donde escribiras las ips de tu red, para accedan a squid y por ende a internet porque las ips que no esten descritas aqui no tendran internet.

Espero que te haya sido de ayuda. Saludos

+1
0
-1
Imagen de tonycr
+1
0
-1

Hola amigo he estado leyendo y analizando la solución que has propuesto y te soy honesto me gustaria si me lo puedes explicar más (profundizar), esto porque no entiendo como agregar un rango de ios de la intranet, ahora cual seria la solución aplicar para poder ver el dominio interno.
Te lo pregunto porque yo la estoy montando en una red internat con un web server y un dominio publico a consultar te agradecere la ayuda.

+1
0
-1

Jose Ant. Arce Flores

Imagen de Firecold
+1
0
-1

Cuando quieras lastimosamente no habia podido revisar el foro por trabajo claro pero tengo dos semanas para que si quieres te ayude, en lo que tu quieras-. Saludos

+1
0
-1
Imagen de darlingm16
+1
0
-1

Hola, por favor me puedes explicar como combinar las reglas para bloquear ciertas url a un grupo de ip determinado? he podido bloquear con éxito ciertas url a toda la red o bloquear todo el acceso a ciertas ip, pero aun no logro que me funcione la combinacion de ambas cosas con squid3, si me funcionaba con squid, de antemano muchas gracias!

+1
0
-1
Imagen de luistecnologico
+1
0
-1

Hola darlingm16, lo primero que tienes que hacer es declarar 2 ACL, una con las ip que quieras denegar y otras con las páginas que no quieras permitir.

EJ:.

acl estudiantes src 192.168.0.11, 192.168.0.13, 192.168.0.15, 192.168.0.17 # ip estudiantes
acl noperm url_regex “/etc/squid3/noperm” #/etc/squid3/noperm es donde va estar el archivo con todas lasdirecciones "prohibidas
.
.
.
en las http_access tendras que poner

http_access deny estudiantes noperm # esto lo que indica es que las ip que intenten acceder a una web de noperm serán rechazados.

Espero que te sirva.

+1
0
-1
Imagen de darlingm16
+1
0
-1

Hola, muchas gracias por responder, el caso es que he probado la solución que me das y funciona en un proxy de prueba, sin embargo en el servidor de la red no, aunque ambos tiene squid3, no se si tenga que ver con el hecho de que tambien está instalado en el mismo, shorewall y dansguardian. Extrañamente funciona si bloqueo ip's o si bloqueo url's pero no si lo que quiero es bloquear ciertas url's en un grupo de ip's específicos!!

+1
0
-1
Imagen de luistecnologico
+1
0
-1

Hola, las acl se comportan como filtros y te tendrían que funcionar cualquier tipo de acl, si has conseguido bloquear ip's y url's deberías poder hacer url's combinadas. La única cosa que se me ocurre es que por un despiste el http_access que te dije en el comentario anterior, no la hayas puesto la primera de todas las otras http_access, recuerda que postfix actua como un filtro, si cumple los requisitos de la primera http_access aplica el deny o el allow y si no pasa a la siguiente.

+1
0
-1
Imagen de Firecold
+1
0
-1

En el ejemplo que puse de mi configuracion esta bastante facil Ejemplo:

acl accesototal src "/etc/squid3/accesototal.txt" # Como lo dice sin limitaciones, escribir la ip en el archivo mencionado
acl mired src "/etc/squid3/mired.txt" # las ips que deseas que navegen, las que no esten en este archivo no podran navegar, los que no esten no podran navegar para mi esa es tu solucion.
acl webloqueadas url_regex -i "/etc/squid3/sitiosdenegados.txt" # las url que deseas bloquear

http_access allow accesototal
http_access allow mired !webloqueadas
http_access deny all # muy importante esta linea ya que denegara lo que no este relatado en la anterior configuracion, espero que te sea de utilidad y a mi parecer lo que hace dansguardian lo puedes hacer solo con squid solo nesecita un poquito de mas configuracion, perdon por la tardanza, pero hace ratos no me pasaba por el foro

+1
0
-1
Imagen de luistecnologico
+1
0
-1

hola Firecold, me parece raro que pueda ser por lo que me comentaste antes, pero aun así, vamos a hacer unas pruebas.

donde pones

acl webloqueadas url_regex -i "/etc/squid3/sitiosdenegados.txt"

prueba a poner

acl webloqueadas url_regex "/etc/squid3/sitiosdenegados.txt"

y donde pones

http_access allow accesototal
http_access allow mired !webloqueadas

pon

http_access deny mired webloqueadas
http_access allow accesototal

reinicio squid y mira si funciona.

+1
0
-1
Imagen de Firecold
+1
0
-1

Pues es muy facil, te lo voy a explicar de esta manera Ejemplo:

1. acl accesototal src "/etc/squid3/accesototal.txt" # creas el archivo con sudo gedit /etc/squid3/accesototal.txt y en el escribes las ips que no tengan restricciones.

2. acl mired src "/etc/squid3/mired.txt" # creas el archivo sudo gedit /etc/squid3/mired.txt y en el escribes las ips que desees que naveguen pero con restricciones y todas las ips que no esten en este archivo no podran navegar, mas adelante explico.

3. acl webloqueadas url_regex -i "/etc/squid3/sitiosdenegados.txt" # creas el archivo sudo gedit /etc/squid3/sitiosdenegados.txt y escribes todas las urls que quieras denegar, NOTA: Observamos como al incluir "-i" estamos indicando que no haga distinción entre mayúsculas y minúsculas.

1.1 http_access allow accesototal # con esto permites que las ips que se encuentren en accesototal puedan navegar.

2.1 http_access allow mired !webloqueadas # con esto permites navegar a todas las ips que esten en mired 3.1 pero negando por eso el ! que es de negacion todas las urls que esten en sitiosdenegados.txt, NOTA: las ips que no se encuentren relatadas en mired no podran acceder a internet.

4. http_access deny all # como dije anteriormente es muy importante ya que denegara todo lo que no este descrito en la anterior configuracion, te puedo dar fe que funciona por que es la configuracion que uso en mi red del trabajo. Espero haber aclarado todo, si se te ofrece otra pregunta, dispare compañero.

Hola, por favor me puedes explicar como combinar las reglas para bloquear ciertas url a un grupo de ip determinado? he podido bloquear con éxito ciertas url a toda la red o bloquear todo el acceso a ciertas ip, pero aun no logro que me funcione la combinacion de ambas cosas con squid3, si me funcionaba con squid, de antemano muchas gracias!

+1
0
-1
Imagen de luistecnologico
+1
0
-1

Hola Firecold, perdon por la confusión, he confundido tu nick con el de darlingm16 que es el que estaba teniendo problemas,, antes he dicho que cambiaras lo de tus acl pensado que eras darlingm16 y que te seguia sin salir, mil dispulpas, aun así, cuando yo pongo :

http_access deny mired webloqueadas

lo que estoy indicando es que si uno de esa "mired" esta viendo una página bloqueda se le bloquerá, se me ha olvidado decir que después de esta tendrias que poner un
http_access allow mired

quedando así
http_access allow accesototal
http_access deny mired webloqueadas
http_access allow mired
http_access deny all

esto lo que hara será que si eres de las ip de accesototal, ninguna pagina estará chapada, y si eres de mi red y estas viendo paginas prohibidas, te chapara y si estas viendo paginas normales no. y si ninguna de las anteriores reglas se cumple no tendrás acceso no???

Aun así lo siento mucho por haberme equivocado de esta manera al confundirte Firecold.

Supongo que de esta manera a darlingm16 ya le debería funcionar no??

+1
0
-1
Imagen de Firecold
+1
0
-1

no te preocupes que lo importante es que tanto darlingm16, vos y yo aprendimos algo hoy y con lo de tu configuracion reducirias mas tu configuracion si dejas http_access allow mired !webloqueadas, y a la larga mas simple, pero es tu desicion, que tengas buen dia. Saludos

+1
0
-1
Imagen de luistecnologico
+1
0
-1

es verdad, bien mirado tu configuración es más corta, espero que a darlingm16 se le solucione el problema

+1
0
-1
Imagen de darlingm16
+1
0
-1

Gracias a los dos! he estado haciendo varias pruebas y hasta el momento no me ha funcionado pero voy a seguir intentando, si logro resultados positivos les informo!! me parece haber intentado de las dos formas pero por si las dudas voy a revisar con calma y probar de nuevo no sea que se me halla pasado algo por alto! de nuevo muchas gracias!

+1
0
-1
Imagen de Firecold
+1
0
-1

darlingm16, no estaria nada mal que postees tu squid.conf para ayudarte un poco mas en tu configuracion y ver se resuelve tu problema mas rapido. Saludos

+1
0
-1
Imagen de skyark
+1
0
-1

En especifico que quieres controlar?
Quieres que solo entren a paginas que tu autorices o solo paginas riesgosas pornograficas etc, o solo que controlar con proxy transparente?

+1
0
-1

..::by_skyark::..

Imagen de arnette
+1
0
-1

Y como puedo hacer para bloquear paginas seguras https como las de Facebook, pero no bloquear la de los correos

+1
0
-1
Imagen de luistecnologico
+1
0
-1

Hola arnette, lo que yo haría seria crear una ACL con las paginas de correo permitidas (gmail, hotmail ...) y después haría otra ACL que bloque el puerto 443 (el puerto 443 es para las conexiones https)

Espero que te sirva.

+1
0
-1
Imagen de greg1259
+1
0
-1

**/Moderado/**

Las preguntas en su propio hilo por favor. Gracias.

+1
0
-1
Imagen de juliobrenis
+1
0
-1

**/Moderado/**

Las preguntas en su propio, textos largos en un pastebin. Gracias.

+1
0
-1