Tabla de Contenidos

Instalación y configuración de Squid Proxy Server

¿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

Detenemos el servicio y volvemos a arrancarlo con /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

Parar e iniciar el servico squid3 con el comando "service"

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)

Backup del fichero de configuracion de Squid

cd /etc/squid3
cp squid.conf squid.conf.BKP
ls -l squid.conf*

Iniciando el proxy squid

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

configurar HPPT proxy

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

Configuracion de la etiqueta visible_hostname

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

Test visible_hostname

Vamos al navegador y escribimos www.colegiomontessori.com

ahora vemos que nos deniega el Colegio Montessori

Permitir el acceso

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)

Buscar la opcion permitir localnet

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"