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

martes, 6 de mayo de 2014

Squid - Detener Conexión desde el exterior

omaha-squid-web

En ocasiones puede suceder por una muy mala configuración sumado a una ip publica fija que se pueda utilizar nuestro servidor proxy desde internet. Es decir que podemos brindar navegación por proxy a nivel mundial sin saber. Si no me crees los Chinos tienen una linda base de datos con proxys: http://www.cybersyndrome.net/pld.html

Esto en Squid lo podemos solucionar fácilmente:

1) configurando squid (archivo squid.conf) para que solo acepte solicitudes desde la LAN filtrando por IP
2) filtrando por firewall el acceso desde la WAN al squid por el puerto que usa (por defecto 3128)

Si tines dudas, configura (desde una red externa) tu navegador con navegación por proxy ingresando la ip publica mas el puerto de squid, si logras navegar... sorpresa sorpresa :)

miércoles, 25 de diciembre de 2013

Squid: Restricción de acceso a Sitios de Internet


Configuración dcontrole Squid: Restricción de acceso a Sitios de Internet


Autor:dark Joel Barrios Dueñas
Correo electrónico: darkshram en gmail punto com
Sitio de Red: http://www.alcancelibre.org/
Jabber ID: darkshram@jabber.org
Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1
© 1999-2011 Joel Barrios Dueñas. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación, a través de cualquier medio, por entidades con fines de lucro). c) Si altera o transforma esta obra o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector, hace mal uso de éstos.

Introducción.


Denegar el acceso a ciertos Sitios de Red permite hacer un uso más racional del ancho de banda con el que se dispone. El funcionamiento es verdaderamente simple y consiste en denegar el acceso a nombres de dominio o direcciones de Internet que contengan patrones en común.

Este documento considera que se ha leído previamente, a detalle y en su totalidad el documento titulado «Configuración de Squid: Servidor Proxy,» y que ha configurado exitosamente Squid como servidor proxy.

Restricción por expresiones regulares.


Se debe crear un archivo donde se definirá la lista de expresiones regulares.








vim /etc/squid/listas/expreg-denegadas



Esta lista puede contener cualquier expresión regular que se considere sea usualmente utilizadas en las direcciones de ciertos sitios.








adult
celebri
mp3
otrositioindeseable.com
playstation
porn
sex
sitioindeseable.com
taringa
torrent
warez
wii



Esta lista, la cual deberá ser completada con todas las palabras (muchas de estás son palabras obscenas en distintos idiomas) y direcciones de Internet que el administrador considere pertinentes, la guardaremos como /etc/squid/listas/expreg-denegadas.

Edite el archivo /etc/squid/squid.conf:








vim /etc/squid/squid.conf



Añada una lista de control, denominada expreg-denegadas, de acceso tipo url_regex (expresiones regulares del URL), que defina al la lista en el archivo /etc/squid/listas/expreg-denegadas:








acl expreg-denegadas url_regex "/etc/squid/listas/expreg-denegadas"



Habiendo hecho lo anterior, deberemos tener en la sección de Listas de Control de Acceso algo similar a lo siguiente:








#
# Recommended minimum configuration:
acl all src 0.0.0.0/0
acl manager proto cache_object
acl localhost src 127.0.0.1/8
acl localnet src 192.168.1.0/24
acl password proxy_auth REQUIRED
acl expreg-denegadas url_regex "/etc/squid/listas/expreg-denegadas"



A continuación especificaremos modificaremos una Regla de Control de Acceso existente agregando con un símbolo de ! que se denegará el acceso a la Lista de Control de Acceso denominada expreg-denegadas:








http_access allow localnet !expreg-denegadas



La regla anterior permite el acceso a la Lista de Control de Acceso denominada localnet, pero le niega el acceso a todo lo que coincida con lo especificado en la Lista de Control de Acceso denominada expreg-denegadas.

Ejemplo aplicado a una Regla de Control de Acceso combinando el método de autenticación explicado en el documento Configuración de Squid: Acceso por Autenticación:







Reglas de control de acceso: denegación de sitios.

#
# INSERT YOUR OWN RULE(S) HERE TO allow ACCESS FROM YOUR CLIENTS
#
http_access allow localhost
http_access allow localnet password !expreg-denegadas
http_access deny all



Restricción por expresiones regulares.


Para restringir el acceso por dominios, se crea un archivo con lista con dominios.








vim /etc/squid/listas/dominios-denegados



Los nombres pueden ser nombres de dominio específicos:








www.facebook.com
www.twitter.com
plus.google.com



O bien puede definirse todo el dominio completo, incluyendo sub-dominios:








.facebook.com
.twitter.com













Nota.
Si define .dominio.com, es innecesario definir www.dominio.com o mail.dominio.com o ftp.dominio.com, etc., pues todos son subdominios de .dominio.com:


O bien se pueden definir dominios de nivel superior genéricos o geográficos.








.co.jp
.com.cn
.im
.tv
.xxx



O bien una combinación de todo lo anterior.








.co.jp
.com.cn
.facebook.com
plus.gogle.com
.tv
.twitter.com.im
.xxx



Edite el archivo /etc/squid/squid.conf.








vim /etc/squid/squid.conf



Añada una lista de control, denominada dominios-denegados, de acceso tipo dstdomain (dominios de destino), que defina al la lista en el archivo /etc/squid/listas/dominios-denegados.








acl dominios-denegados dstdomain "/etc/squid/listas/dominios-denegados"



Añada una regla de control de acceso que deniegue el acceso a sitios que estén incluidos en la lista de dominios.








http_access allow localnet !expreg-denegadas !dominios-denegados



Permitiendo acceso a sitios inocentes incidentalmente bloqueados.


Si por ejemplo, el incluir una expresión regular en particular, en la lista de expresiones regulares denegadas, afecta incidentalmente el acceso a un sitio de Internet en particular, también puede generarse una lista de dominios que serán excluidos de las restricciones.

Utilice el editor de texto para crear el archivo /etc/squid/dominios-inocentes.








vim /etc/squid/dominios-inocentes



El contenido puede ser una lista de dominios o bien dominios de nivel superior, que se considere deban ser accedidos por la red local en cualqueir momento y sin restricciones.








.alcancelibre.org
.edu
.edu.mx
.eluniversal.com.mx
.gob.mx
.gov
.milenio.com
.org
.org.mx
.unam.mx
www.google.com
www.google.com.mx



Este archivo será definido en una Lista de Control de Acceso del mismo modo en que se hizo anteriormente con el archivo que contiene dominios y palabras denegadas.








acl dominios-inocentes dstdomain "/etc/squid/dominios-inocentes"



Para hacer uso de el archivo, sólo bastará utilizar la expresión ! en la misma línea utilizada para la Regla de Control de Acceso establecida para denegar el mismo.








http_access allow all dominios-inocentes



La regla anterior especifica que se permitirá el libre acceso, en todo momento, a los dominios incluidos en la lista de control de acceso denominada dominios-inocentes.

Finalizando procedimiento.


Finalmente, sólo bastará recargar la configuración de Squid para que tomen efecto los cambios y se puedan realizar pruebas.








service squid reload







http://www.alcancelibre.org/staticpages/index.php/19-2-como-squid-restriccion-web

jueves, 30 de mayo de 2013

Squid - Disco Duro Completo / Squid no inicia


Introducción


En mi trabajo, la red se encuentra dividida en tres subredes, en todas ellas se controla el acceso a internet mediante el proxy Squid con dos servidores distintos:


Uno proporciona el servicio de proxy para la red 192.168.2.x y el otro servidor controla las redes 192.168.1.x y 192.168.3.x


Cabe destacar que la principal y más importante es la 1.x


Todo está configurado y no hay mucha necesidad de “meter mano”, solo cuando se desea habilitar un contenido o web específica o crear una cuenta de usuario para el proxy.


Sin embargo, una mañana simple y tranquila me informan textualmente que no hay “internet”


Los síntomas


Como buena persona trabajadora en mi área procedí a chequear el pc afectado, grande fue mi sorpresa al percatarme que:




  1. El cable de red no estaba desconectado

  2. Existía respuesta “ping” del equipo al servidor.

  3. Otras personas empezaron a decirme que tampoco tenían internet


Luego de eso y chequeando la red 2.x me percate que si tenían salida a internet. Todo funcionaba bien.


El problema fue al ingresar al terminar del servidor y al darle al comando # /etc/init.d/squid restart este no detenía el servicio de squid mostrando un lindo mensaje de [FAILED] pero posteriormente mostraba burlescamente el mensaje de [OK]. Digo burlescamente porque si bien mostraba el mensaje que el servicio de squid fue iniciado este no levantaba y la red seguía caída.


Bitmap_VS_SVG.svg

El diagnostico


Ya me comencé a preocupar. El día anterior todo funcionaba bien, no había modificado nada en los servidores y sin embargo el problema estaba allí, no había acceso a internet desde una parte de la red.

Con la ayuda de mi amigo RC5 (experto en Linux) mire los registros en /var/log/squid/squid.out el cual me ayudo a percatarme del problema:

[caption id="attachment_1000" align="aligncenter" width="519"]02 squid: ERROR: Could not send signal 0 to process ...
FATAL: Failed to make swap squid: ERROR: Could not send signal[/caption]

Así es, el disco duro estaba lleno y basto un df- h para corroborar la dramática situación
03

La solución


Esta vendría siendo la primera solución la cual debería funcionar sin problema alguno, también les dejo un sitio donde hay un script bach que hace la limpieza.




  • Borrar todo en /var/log/squid


Sin embargo esto no me soluciono nada por lo que decidí inspeccionar el servidor físicamente y chequear el disco duro, con lo que me lleve una gran sorpresa:




  • En el directorio /var/www/sarg existían carpetas de cache de squid con mas de 2 años de antigüedad, las cuales contenían obviamente archivos que ocupaban todo la capacidad del disco duro.


Consejo:


Este directorio deberia ser borrado automaticamente cada 3 meses, si no es así se deberá hacer manual hasta configurar squid.conf

Anexo - Limpiar caché del servicio SQUID en GNU/Linux CentOS 5.6


Publicado por lsilva en http://www.centosni.net/limpiar-cache-del-servicio-squid-en-gnulinux-centos-5-6/
 

jueves, 4 de abril de 2013

Entrar mediante usuario y contraseña en Squid

Algo que veo realmente indispensable en un filtro es la opción de entrar mediante un usuario y una contraseña para poder navegar.

Podríamos, de manera muy básica (hay programas dedicados para ello) crear un tipo de hotspot que deniegue todo el tráfico pero que mediante el uso de cuentas de usuario permita la navegación.

Squid permite ésta opción, y es que, por muy básica que sea, se ajusta perfectamente a las necesidades.

Seguir leyendo 'Entrar mediante usuario y contraseña en Squid'

Puesta en escena

Imaginemos que tenemos montado un hotspot y queremos que cuando alguien entre en el pida un usuario y contraseña para poder navegar.

En squid, podríamos crear usuarios y contraseñas y habilitarlos y de ésta forma, controlar un poco más el tráfico que realizan nuestros clientes y dar una capa más de seguridad a nuestro proxy.

Puesta en marcha

Haremos uso de regla tipo password para habilitar el acceso mediante cuentas de usuario en squid.

Lo primero que vamos a hacer es crear el archivo de configuración en el que iremos guardando los usuarios.

Como realizaremos todo el trabajo desde la carpeta de squid nos movemos a esa ruta y creamos el fichero:
   cd /etc/squid

   touch usuarios

Ahora, cambiamos los permisos del archivo (como adminstador) para que solamente el pueda modificar los usuarios.
   chmod 600 usuarios

Una vez hecho ésto, ya podemos crear los usuarios. Ésto lo haremos mediante el programa htpasswd, que podremos instalar mediante la órden (en ubuntu):
   sudo apt-get install htpasswd

y creamos nuestro primer usuario:
   htpasswd usuarios usuario1

Nos fijamos en que el usuario que hemos creado se llama usuario1 y se ha añadido a nuestro fichero de usuarios. Si todo ha ido bien, tras haber lanzado ésta orden el sistema habrá pedido que introduzcamos una contraseña.

Una vez creado el usuario, podremos configurar nuestro servidor proxy para que pida contraseña cada vez que alguien entre a navegar.

La siguiente regla la añadimos debajo de la configuración básica de squid en el archivo /etc/squid/squid.conf
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/usuarios

para que use el archivo usuarios para comprobar los usuarios y contraseñas.

Ahora pasamos a crear el acl que indique que se requiere de contraseña:
acl password proxy_auth REQUIRED

Lo único que nos falta ahora es decirle a squid a quíen debe pedir contraseña. Para poner un ejemplo, tengo configurado dos acl's:

   acl all 0.0.0.0/0.0.0.0

   acl red 192.168.10.0/255.255.255.0

y a red le permito navegar y a all no (para que no se metan intrusos desde otra red).
   http_access allow red

http_access deny all

Ahora, si queremos que red tenga acceso pero mediante el uso de contraseña, dejamos la línea de ésta forma:

http_access allow red password

Listo, reiniciamos nuestro servidor squid y ya podremos acceder mediante usuario y contraseña.

Abajo os dejo mi configuración de squid para que véis como ha quedado la configuración de squid mediante usuario y contraseña.
http_port 3128

auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/usuarios


#Definir acceso:

acl all src 0.0.0.0/0.0.0.0

acl red src 192.168.10.0/255.255.255.0

acl password proxy_auth REQUIRED


#Permitir o bloquear:

http_access allow red password

http_access deny all
emerge © , All Rights Reserved. BLOG DESIGN BY Sadaf F K.