En este tutorial enseñaremos a configurar un Squid de forma transparente
Paquetes necesarios
- Squid
Instalación Para instalar los paquetes nombrados anteriormente, abriremos el terminal y ejecutaremos el siguiente comando:
Mostrar/Ocultar código bash
Configuración
Para poder configurar correctamente el Proxy squid y el registro de navegación mysar, seguiremos los siguientes pasos.
Para empezar tenemos que crear los siguientes ficheros:
-Webs_permitidas, en este fichero introduciremos las url 's de las webs de las que permítame su navegación.
-Paraules_permitidas, en este fichero introduciremos las palabras que permítame su navegación.
-Palabras_deny, en este fichero introduciremos las palabras que no permítame su navegación.
-Web_nopermitidas, en este fichero introduciremos las webs que no permítame que se navegue.
-Ip_permitidas, en este fichero introduciremos la lista de ip de que permítame que navegue.
Una vez tenemos los ficheros necesarios creados, editamos el fichero de configuración:
Mostrar/Ocultar código bash
nano/etc/squid/squid.conf
Una vez hemos editado el fichero de configuración añadiremos las siguientes líneas tras las ACLs que vienen por defecto en el fichero de configuración del squid.conf
Mostrar/Ocultar código bash
# Aceptamos lista webs
acl webs_permitidas url_regex/etc/squid/webs_permitidas '
# Aceptamos lista palabras
acl palabras_permitidas url_regex/etc/squid/palabras_permitidas '
# Denegar lista palabras
acl palabras_deny url_regex/etc/squid/palabras_deny '
# Denegar lista webs
acl web_nopermitidas dstdomain/etc/squid/web_nopermitidas '
# Aceptamos ip s
acl ip_permitidas src /etc/squid/ip_permitidas '
Después de las acl s introducidas por nosotros, afedirem las estas líneas:
Mostrar/Ocultar código bash
http_access allow manager localhost
http_access allow manager
En el apartado: INSERT YOUR OWN RULE (S) HERE TO Allow ACCESS FROM YOUR CLIENTES Añadiremos nuestras http_access:
Mostrar/Ocultar código bash
http_access deny web_nopermitidas
http_access allow palabras_permitidas
http_access deny palabras_deny
http_access allow webs_permitidas
http_access allow ip_permitidas
http_access deny localnet
Y justo después añadiremos la siguiente línea: visible_hostname Thicobank En la línea que esta comentada que se refiere al puerto transparente, añadiremos las siguientes líneas:
Mostrar/Ocultar código bash
http_port 3128 transparent
http_port 8080
Y dejamos descomentades las siguientes que a continuación de las sentencias anteriores:
Mostrar/Ocultar código bash
cache_dir ufs/var/spool/squid 700 16 256
cache_mem 16 MB
Una vez se han instalados los paquetes httpd, mysql-severo y phpmyadmin, lo que tenemos que hacer ahora, es poner en marcha los servicios.
Mostrar/Ocultar código bash
/etc/init.d/httpd start
/etc/init.d/mysql start
Ya tenemos Squid funcionando correctamente. Ojo con el orden de los acl y los http_access, puede ser muy puñetero y no funcionar correctamente.
Ahora para hacerlo transparente tenemos que ejecutar los siguientes comandos para que el iptables redireccione todo el tráfico del puerto 80 al puerto transparente del squid, el 3128:
Mostrar/Ocultar código bash
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -s 192.168.1.0 -d 192.168.1.1 -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
wlan0: Por donde sale a internet
eth0: La red por la que vienen las peticiones
192.168.1.0: La red de donde vienen las peticiones
192.168.1.1: La ip del servidor
Para que un servidor pueda actuar como puerta de enlace (que es el que tendrá el squid transparente), necesitamos ejecutar la siguiente linea:
Mostrar/Ocultar código bash
echo 1 > /proc/sys/net/ipv4/ip_forward
Para ver las estadísticas que genera Squid podemos seguir este manual:
Configuración Mysar