¿Qué es el servidor Squid Proxy?
Squid es un servidor proxy. Tiene una amplia variedad de usos, desde la aceleración de un servidor web mediante el almacenamiento en memoria caché de solicitudes repetidas; almacenamiento en caché de la web, DNS y otras búsquedas de red informática para un grupo de personas que comparten recursos de red; para ayudar a la seguridad al filtrar el tráfico.
Uso malicioso de Squid Proxy Server
Digamos que en el colegio, o trabajo no le permite ver sitios web como google, facebook y youtube.
Todo lo que hay que hacer es encontrar un servidor Squid Proxy en Internet o instalar uno en su casa. Luego, simplemente usar el cliente SOCKS en Firefox para enrutar todas sus solicitudes HTTP / HTTPS a través del servidor Squid Proxy, evitando así la ACL de la escuela o el trabajo.
Si se instala un servidor Squid Proxy en casa, tendremos que permitir y reenviar el puerto 3128 a la dirección interna correcta que apunta a su servidor que aloja Squid.
Requisito previo
Instalación de Ubuntu Desktop 12.04 LTS
Notas de la practica
En esta practica veremos cómo hacer lo siguiente:
Verificamos que tenemos conexión
ifconfig -a
si no tenemos conexion
dhclient -v /etc/init.d/networking restart
Actualización del indice de paquetes
apt-get update
buscamos el squid
apt-cache search "squid" | grep "^squid"
Instalamos los 2 paquetes que necesitamos
apt-get install squid squid-common
verificamos que el squid está corriendo
service squid3 status ps -eaf | grep -v grep | grep squid3
ps -eaf, muestra todos los procesos.
grep -v grep, filtra el proceso grep.
grep squid3, muestra solo el proceso squid.
Observamos si el script de squid se encuenta en init.d
ls -l /etc/init.d/squid3
cd /etc/init.d ./squid3 stop ps -eaf | grep -v grep | grep squid3
No devuelve nada, el servicio está parado
./squid3 start ps -eaf | grep -v grep | grep squid3
Ahora nos devuelve 1 linea porque el servicio está ejecutandose
service squid3 status
Nos muestra el numero de proceso o PID, en mis caso es 3167.
ps -eaf | grep -v grep | grep 3167
Tienes que reemplazar el PID por el tuyo
service squid3 stop
este comando parara el demonio
ps -eaf | grep -v grep | grep squid3
No muestra nada porque el proceso está detenido
service squid3 start
Iniciamos el servicio
ps -eaf | grep -v grep | egrep '(squid3|3196)'
ps -eaf, muestra todos los procesos. grep -v grep, filtra el comando grep egrep '(squid|3196)',busca cualquier proceso que tenga la cadena squid o 3410 (el PID)
Iniciamos el Firefox
Aplicaciones ----> Internet -----> Firefox
Nota: no tenemos que usar el Firefox, se puede usar cualquier navegador, por razones de simplicidad, uso el Firefox
Edit ----> preferencias
clic en Avanced Clic en network tercera solapa clic en setting
Click en manual proxy configuracion Http proxy ponemos nuestra ip Port : 3128 Click en SOCKSv5
cerramos
vamos al navegador y vamos a google y observamos que nos bloquea
observamos el log de acceso del Squid
grep -i denied /var/log/squid3/access.log
El squid deniega el acceso de google
Buscar e ir a ETIQUETA: número de línea visible_hostname
cd /etc/squid3/ grep -n "visible_hostname localhost" squid.conf
Esto producirá el número de línea que se usará en el siguiente paso. (En mi caso, número de línea: 3761)
nano +3761 squid.conf
descomentamos esa linea y escribimos
visible_hostname Colegio_Montessori
Guardamos, salimos y reseteamos el servicio
service squid3 restart
Vamos al navegador y escribimos www.colegiomontessori.com
ahora vemos que nos deniega el Colegio Montessori
Determinar la subsed
ifconfig | grep eth | awk '{print $1}'
nos mostrara solo el nombre de la interface que estamos usando
ifconfig eth0 | grep "inet addr:" | head -1
en mi caso la ip del Ubuntu es 192.168.153.47.
solo me muestra la linea donde pone mi ip y mi mascara de subred mi subred es 192.168.153.0 /24
Buscar posible red de internet
cd /etc/squid3/ grep -n "192.168.0" squid.conf
Porque pongo que me busque la subred 192.168.0 si yo estroy trabajando con la 192.168.153?, es muy sencillo por que el fichero squid.conf utiliza esa ip como regla por defecto a la hora de indicar ejemplos.
En mi caso numero de linea 703
nano +703 squid.conf
copio esa linea justo debajo, la descomento y pongo mi ip de red (^k, ^u)
cd /etc/squid3/ grep -n "http_access allow localnet" squid.conf
Estos dos comandos me dan un numero de linea, 842
nano +842 squid.conf
Descomento esa linea
Guardo, y reseteo el servicio
ya tengo internet
service squid3 restart
Denegar el servicio a ciertos sitios web
Para denegar el servicio a ciertos sitios web tengo que buscar la etiqueta http_access
cd /etc/squid3/ grep -n "TAG: http_access" squid.conf
linea 792
nano +792 squid.conf
agregamos las siguientes lineas
acl block_websites dstdomain .facebook.com .youtube.com http_access deny block_websites
Reseteamos el servicio, volvemos al navegador y escribimos facebook o youtube y vemos que no podemos acceser
si queremos dejar todo como al principio del ejercicio tenemosque ir a propiedades del navegador y seleccionar la opcion de no proxy
print de pantalla que hay que entregar
cd /var/log/squid3/ grep -i denied access.log | grep -i facebook grep -i denied access.log | grep -i youtube date echo "tu nombre"