Instalación y configuración de un PROXY con SQUID3
Este es mi primer tutorial grande, aquí veremos como instalar y configurar un proxy con squid3 en un sistema operativo linux que será el que va a hacer el papel de servidor.
En esta primera parte del tutorial, que iré añadiendo más temario, vamos a ver como configurar el squid3 para controlar el acceso a internet en los equipos de la red.
COMANDOS ÚTILES
- Poner en marcha, resetear y parar Squid
service squid3 start/reset/stop
- Validar configuración
squid3 -k reconfigure
Instalación:
sudo apt-get update && apt-get install squid3
Tener en cuenta que el equipo que hará de servidor proxy y los equipos deben tener ip fija.
Squid se instala en la carpeta “/etc” por lo que el archivo de configuración está en esa ubicación, abrimos el archivo squid.conf
sudo gedit /etc/squid3/squid.conf
El archivo de configuración es muy grande, y ya vienen configuradas por defecto muchas cosas, como por ejemplo el puerto por el que trabajará squid, por defecto el 3128.
Nuestras “reglas” o acl deben ir específicamente a partir de cierta línea en el archivo, si no nos dará problemas. Una vez abierto el archivo buscaremos ( con el mismo buscador de palabras del editor de texto) la línea que contenga “#INSERT YOUR OWN RULES HERE” (buscando INSERT bastara):
Una vez localizada la línea sería recomendable insertar otra, comentada con “#”, con algo que nos ayude para la próxima vez que la busques, por ejemplo “#mis reglas”
Hasta aquí ya tenemos instalado el Squid y la línea donde empezar a poner las reglas identificada, ahora toca ir creando las acl que queramos.
1-RESTRICCIONES DE ACCESO
En esta parte del tutorial aprenderemos a configurar Squid para:
- Permitir o denegar acceso a Internet
- Permitir o denegar acceso a paginas web en concreto.
- Restricciones de descarga de tipos de archivos ( restricciones por extensión de archivos).
1.1-ACCESO A INTERNET (HTTP_ACCESS)
CONFIGURACIÓN PARA ACCESO DE LOS EQUIPOS
Antes de nada debemos declarar una acl para toda la red, la sintaxis para declarar la red es la siguiente:
acl <NOMBRE_ACL> src <IP_red>/<MASCARA_RED>
Así que supongamos que nuestra red es 192.168.1.0 con mascara /24, nuestra acl sería la siguiente:
acl TODOS src 192.168.1.0/24
Y le damos acceso a toda la red
http_access allow TODOS
Esto es muy importante, el permitir a toda la red el acceso siempre será nuestra ultima linea de configuración para evitar problemas.
Una vez esto ya podemos ir creando las acl para los equipos de la red, para ello tenemos dos opciones, crear acl individuales para cada equipo o por “grupos”.
Para crear una acl para un equipo individual se crea de la siguiente forma:
acl <NOMBRE_ACL> src <IP_DEL_EQUIPO>
Ejemplo
acl PC1 src 192.168.1.117
En cambio, si optamos por crear un grupo donde van a haber una configuración en común para más de un equipo, Squid permite crear un archivo con una lista de ip’s de los equipos. Dicho archivo se debe ubicar en “/etc/squid3/”:
acl <NOMBRE_GRUPO_ACL> src “/etc/squid3/<NOMBRE ARCHIVO>”
Ejemplo
acl PORTATILES src “/etc/squid3/lista_portatiles.txt”
Ejemplo archivo:
Una vez creadas ya podemos controlar el acceso a internet del equipo o equipos configurados:
http_access <allow/deny> <NOMBRE_ACL>
Yo he creado el PC1 con ip 192.168.117 así que insertare las siguientes líneas:
declaro:
acl PC1 src 192.168.1.117
Y para probar le denegamos el permiso de acceso
http_access deny PC1
Guardamos el archivo de configuración, lo cerramos y validamos la configuración:
sudo squid3 -k reconfigure
Si no nos da ningún error probamos el equipo al que supuestamente le ha sido denegado el acceso a internet
Como vemos en la imagen nos dice que tenemos el acceso denegado por el Squid3
1.2-CONFIGURACIÓN ACCESO POR TIEMPO
Ahora que tenemos los equipos configurados, podemos controlar el acceso por periodos de tiempo, para declarar un periodo de tiempo se hace de la siguiente manera:
acl <NOMBRE> time <DIAS> hh:mm-hh:mm
DIAS:
M – Lunes
T – Martes
W – Miércoles
H – Jueves
F – Viernes
A – Sábado
S – Domingo
EJEMPLO:
acl LABORAL_MAÑANA time MTWHF 08:00-14:00
Para utilizar esta acl, no sirve por si sola, se debe usar junto a una acl de equipo
http_access <allow/deny> LABORAL_MAÑANA PC1
vemos un ejemplo:
Guardamos archivo, lo cerramos y validamos la instalación:
sudo squid3 -k reconfigure
Si no nos da ningún error probamos el equipo.
Ahora el equipo PC1 solo va a tener acceso a internet por las tardes.
1.3-CONFIGURACIÓN ACCESO A PÁGINAS
Squid nos permite controlar el acceso a páginas web que queramos, para ello, al igual que para configurar un grupo de equipos, se hace uso de un archivo que hace de lista, en ella pondremos las webs que vamos a querer controlar su acceso. La ubicación del archivo es la misma que la de los equipos en “/etc/squid3/”.
Ejemplo del archivo:
una vez creado el archivo, abrimos el de configuración de squid3 (/etc/squid3/squid.conf) y declaramos la acl:
acl <NOMBRE_acl> url_regex “/etc/squid3/<nombre_archivo>”
Ejemplo:
acl WEBS url_regex “/etc/squid3/webs”
Para utilizar esta acl, no sirve por si sola se debe usar junto a una acl de equipo
Ahora la utilizamos con nuestra configuración:
http_access <allow/deny> WEBS PC1
Vemos como lo utilizamos:
En este ejemplo vamos a denegar acceso a facebook y marca para el equipo PC1
Como siempre, guardamos, cerramos y validamos configuración:
sudo squid3 -k reconfigure
Si no nos da ningún error vamos al equipo PC1 y comprobamos que nos permite ir a la web de Google pero no nos dejará ir a Facebook o Marca
Vemos que nos permite acceder a la web de google, pero no nos permite acceder a facebook.
Ahora que conocemos todos estos métodos podemos combinar los 3 a la vez, por ejemplo si queremos restringir el acceso a las webs citadas anteriormente solo por la mañana sería:
http_access deny WEBS LABORAL_MAÑANA PC1
Ejemplo:
Hasta aquí toda la parte de configuración para controlar el acceso a internet, pronto pondré como configurar Squid para crear una caché muy útil para empresas o grandes centros con muchos equipos.
Espero que os guste y os sirva.
Te puede interesar:
Linux no muerde – Instalación Debian 2017
Script php para obtener los dominios que nos han atacado
https://www.sospedia.net/fail2ban-data-mining/
Fail2Ban Data Mining
Como activar el modo dios en Windows 10
https://www.sospedia.net/juego-assassins-creed-iii-gratis/
Juego Assassin’s Creed® III Gratis
Top 25 aplicaciones Windows 2016
https://www.sospedia.net/juego-de-carreras-para-pc-gratis/
Juego de carreras para PC gratis: Get GRID™ for free for a very limited time!
Feliz navidad: Recopilación de vídeos con tutoriales
Man in the Middle con Xerosploit
Crear un certificado SSL autofirmado e implementarlo en un servidor Apache en Debian 8
Crear un certificado SSL autofirmado e implementarlo en un servidor Apache en Debian 8
Confidencialidad y Privacidad en SO Linux: Cifra tus archivos.
Confidencialidad y Privacidad en SO Linux: Cifra tus archivos.
Programación SAP ABAP (V)
Instalando un sistema LAMP
Mailinator enhanced!
¡Nos estrenamos en Telegram!
Thunderbird: migrar datos correo electrónico
Como instalar Windows 8.1 sin cuenta de correo
¿Has sido hackeado alguna vez?
WhatsApp vs Facebook: El respeto a tu privacidad se encuentra codificado en nuestro ADN
WhatsApp vs Facebook: El respeto a tu privacidad se encuentra codificado en nuestro ADN
Feliz 25 aniversario Linux
Activar Shell Linux en Windows 10
Personalizar el gestor de arranque con Grub Customizer 2017
¡Qué no te asuste un .deb!
Lamentamos la interrupción, pero esto es importante
Programación SAP ABAP (IV)
Tengo una contraseña segura, ¿Y qué?
Programación SAP ABAP (III)
Programación SAP ABAP (II)
Quitar la protección de archivos PDF
Programación SAP ABAP (I)
Instalar Android x86 en cualquier pc
Activar ventanas emergentes en firefox
Proyectos PHP con Code Igniter y NetBeans
Servidor Web Apache
Rutas relativas y rutas absolutas
El Shell Bash de GNU/Linux 5.8 – Montaje de sistemas de ficheros
El Shell Bash de GNU/Linux 5.8 – Montaje de sistemas de ficheros
El Shell Bash de GNU/Linux 5.7 – Otros comandos útiles
Instalación de Alfresco Community Edition en MySQL/MariaDB
El Shell Bash de GNU/Linux 5.6 – Comandos para trabajar con archivos y carpetas
El Shell Bash de GNU/Linux 5.6 – Comandos para trabajar con archivos y carpetas
El Shell Bash de GNU/Linux 5.5 – Listar ficheros
El Shell Bash de GNU/Linux 5.4 – Permisos
El Shell Bash de GNU/Linux 5.3 – nombres, rutas absolutas y relativas
El Shell Bash de GNU/Linux 5.3 – nombres, rutas absolutas y relativas
El Shell Bash de GNU/Linux 5.2 – Tipos de ficheros
El Shell Bash de GNU/Linux 5.1 – El árbol de directorios estándar
El Shell Bash de GNU/Linux 5.1 – El árbol de directorios estándar
El Shell Bash de GNU/Linux 5 – Sistema de ficheros
El Shell Bash de GNU/Linux 4 – Expresiones regulares
Limitar los caracteres permitidos en un control de formulario con Javascript
Limitar los caracteres permitidos en un control de formulario
El Shell Bash de GNU/Linux 3 – Variables de entorno
El Shell Bash de GNU/Linux 2 – Tuberías y filtros
Pinchar el teclado en Javascript
Interaccionar con un grupo de radio buttons del formulario
El Shell Bash de GNU/Linux
Validación de fechas definitiva en Javascript?
Como securizar phpmyadmin
Cómo mantener los navegadores web actualizados
Script Linux de las Oposiciones 2015 al cuerpo FP SAI
Un tera son 931 gigas
Windows 10 cómo evitar que se cuele – editado Julio 2016
Instalación de Liferay Portal Community Edition 6.2.3 GA4
Instalación de Alfresco Community Edition en PostgreSQL
Instalar un IDE para PHP en GNU/Linux
Instalar un IDE para PHP en Windows
Instalación del Servicio NFS en Sistemas GNU/Linux
Las comillas en los script bash
Variable de entorno PATH
Scripts Linux Bash Segunda Entrega
Instalación de varios Sistemas Operativos en la misma máquina
Instalación de varios Sistemas Operativos en la misma máquina
Instalación desde Internet de openSUSE-13.2 – Network installation
Instalación desde Internet de openSUSE-13.2 – Network installation
Instalación de Kubuntu 14.04 LTS cómo segundo sistema operativo junto a Windows 8.1
Instalación de Kubuntu 14.04 LTS cómo segundo sistema operativo junto a Windows 8.1
Cómo instalar Microsoft Windows 8.1 Enterprise (Evaluation 90 days) en VirtualBox
Cómo instalar Microsoft Windows 8.1 Enterprise (Evaluation 90 days) en VirtualBox
Cómo particionar disco en 4 particiones primarias NTFS usando Software Libre
Cómo particionar disco en 4 particiones primarias NTFS usando Software Libre
Instalación Zurmo CRM en MySQL/MariaDB
Cómo instalar una distribución GNU/Linux en VirtualBox
Cómo instalar o actualizar Virtualbox en Debian Wheezy
Instalación y configuración de un PROXY con SQUID3
https://www.sospedia.net/nacimiento-de-sospedia/
Así nace el proyecto Sospedia.net
Control de versiones en Bitbucket
Recupera archivos borrados desde Linux
Sincronizar Mis documentos en la nube
Setup rápido servidor web Debian based
Guerra al SPAM
Scripts Linux
Excelente explicación, gracias por compartir
De nada, para eso estamos
Estoy dentro de una VPN un proveedor nos enlaza del lado de acá tengo un firewall (Vyos) con dos interfaz una para la LAM y otra contra la WAM
Ahora me falta un proxy y e instalado Squid3 pero me he apoyado del webmin para esta tarea mi preguntas
1. ¿Qué ip pongo la de la interfaz de red de la PC o la que tengo asignada para la INERNET por mi proveedor?
2. ¿Cómo se haría una configuración se Squid3 simple no trasparente pero con Webnin de manera que mis usuarios naveguen por una Ip de mi LAM y no por la de mi Wam ?
Le pido por favor me ayude le estará muy agradecido por ahora solo me interesa que mis usuarios naveguen y siempre se tengan que autentificar.
Ayúdeme cuanto antes por favor
Muy buen aporte amigo, agradeceria que nos explicara lo del cache para empresas y como podemos configurar con dhcp..
Muchas gracias a ti, me lo apunto para el próximo tutorial
Hola, muchas gracias por este tutorial ahora solo tengo una duda, puedo trabajar uno o diferentes grupos de usuarios para que tengan un permiso y velocidad específicos cada uno?
Hola Buenas Edd Net
Perdon por la tardanza pero he estado muy liado.
En cuanto a tus dudas, lo de los permisos si puedes hacer grupos y que tengas permisos diferentes, como muestro en el tutorial. si es algo muy especifico, plantealo por aquí y lo vemos.
Y a lo de limitar la velocidad si se puede, para explicarlo mejor necesitaría hacer una segunda parte del post, pero te digo rápidamente como hacerlo.
Se necesita el uso de delay_pools te dejo un ejemplo rápido de como limitar la velocidad a 2 pc
acl pc1 src 192.168.1.10/24 # pc1
acl pc2 src 192.168.2.20/24 # pc2
delay_pools 2 # creamos 2 delay pools
delay_class 1 1 # delay pool 1 es de clase 1
delay_class 2 1 # delay pool 2 es de clase 1
delay_access 1 allow pc1 # delay pool 1 para la red 1
delay_access 2 allow pc2 # delay pool 2 para la red 2
delay_parameters 1 1000000/1000000 # delay pool 1 con 1 Mb
delay_parameters 2 2000000/2000000 # delay pool 2 con 2 Mb
delay_parameteres se especifica en bits
Pingback: Bonus Pack 2018: Recopilación de artículos de sospedia.net – jblanco.org
Pingback: Bonus Pack 2018: Recopilación de artículos de sospedia.net – Jose Blanco Vega