Que es un proxyBueno yo no se lo voy a explicar muy chido que digamos, solo como lo se, un proxy seria como intermedario de red con en man in the middle, pero en estos casos checa las conexiones y las compara con las reglas que tiene predefinidas, otra cosa es que si tienes cache te carga mas rapido algunas webs :p
User pc -----proxy-----modem------proxy------servidor ispEn este caso el escenario de una pc seria asi, ya que los isp también traen configurada su proxy en nuestro caso la proxy squid seria la que sigue de user pc
Instalando squidSudo apt-get install squid
Ahora hacemos una copia de seguridad del archive de configuracion de squid
cp /etc/squid/squid.conf /etc/squid/squid.conf.default
Vamos a configurar squid
sudo gedit /etc/squid/squid.confBuscamos
cache_dir que es el tamaño de cache en el disco duro para squid para buscar en gedit usa
ctrl+f 
Una ves encontrado lo descomentamos
quitándole # Recuerden no dejar espacios en las líneas descomentadas

en este caso tengo espacio en cache_dir pues se lo quitare


Ahora buscamos acl y creamos un nuevo valor de regla para nuestra red en este caso…

Como puedes ver la regla que cree fue:
Acl red src 192.168.40.129/255.255.255.0Donde acl es para crear una regla de acceso red es el nombre de la regla src es para indicar a cual red le aplicaremos esta regla en este caso a la 192.168.40.129 esa es la ip y 255.255.255.0 es la mascara de red
Ahora para toda la red según yo seria de esta manera: 192.168.40.0/24 como en el nmap en el tutorial de man in the middle explique lo del rango de mascara de red:
255.255.255.0 0/24
255.255.0.0 seria 0/16
255.0.0.0 seria 0/8Ahora buscamos
http_access allowahi creamos una regla para activar la otra regla red, es decir, activamos la configuración de la maquina red permitiendo acceder

Ahora buscamos
http_port por defecto esta en 3128 lo cambiamos a uno que queramos en mi caso lo pondré en
8080 el http_port lo que hace es indicar un puerto por el cual estará configurado squid

Como ven comente la que estaba por defecto http_port 3128
Listo tenemos configurado el squid le damos save y salimos del gedit
Ahora reiniciamos el servicio
sudo /etc/init.d/squid restartvamos al firefox y configuramos el squidedit>preferences>network>settings>manual proxy configuration
le ponemos la ip 192.168.40.129<--- es la ip que configuramos en la regal ed
y puerto 8080 <--- es el que configuramos en http_port
le damos ok
por cierto socks host no lo pongan igual que yo ahi lo quite es que se me olvido pero al final lo quite para que funcionara je!Ahí tenemos configurado el proxy, pero no bloqueamos ninguna web ni habilitamos ninguna..
Les dejare un listado de reglas que pueden ser de utilidad:Acl hora time MTWHFS 16:40-23:00 En este caso le definimos unas horas en que se permiten o se deniegan según tu lo configures, una hora MTWHFS (todos los días en ingles S – Sunday, M – Monday, T – Tuesday, W – Wednesday, H – Thursday, F – Friday, A - Saturday) desde las 4:40am a las 11pm
Acl paginas dstdomain www.youtube.com www.backtrackfire.com www.underc0de.org www.foro.dhackers.com www.hackxcrack.es www.linuxerz.org Con esto habilitamos una regla para los dominios que ves con dstdomain
http_access allow paginasen este caso habilitaríamos la regla paginas, con lo que permitiríamos esos dominios que pusimos en esa regla
http_access deny paginasen este caso es alreves con esto denegamos el acceso a esas paginas
ahora vamos a ver como filtrar algunas paginas…. Como ejemplo
creamos un archivo de texto con algunas
paginas a bloquear… digamos que esta es una empresa que no nos agradaría que el usuario viera?
.facebook.com
.hotmail.com
Porno
Xxx
Sexo
Putas
En este caso bloqueariamos todo lo que tuviera que ver con las palabras porno,xxx,putas… y bloqueariamos las paginas facebook y hotmail, le pusimos . sin www para mejor filtrado ya que si le pones www pueden entrar tan fácil a facebook como poner es.facebook.com y listo no esta en las reglas

pero por eso se usa .facebook.com asi bloquea subdominios


Lo guarde en /etc/squid como prohibidos
Ahora buscamos acl y donde agregamos anteriormente la regla red creamos una nueva debajo…
acl sitiosprohibidos url_regex “/etc/squid/prohibidos”Con esta regla analizamos las url del archivo prohibidos

Ahora buscamos http_access allow
Y creamos una nueva regla
http_access deny sitiosprohibidostambién la configuramos asi:
http_access_allow red !sitiosprohibidoscon lo que prohibiríamos el acceso a los sitios que pusimos en el archivo

Ahora guardamos y salimos del gedit
Ponemos en la terminal
Sudo /etc/init.d/squid reload – para recargar las configuraciones
Sudo /etc/init.d/squid restart – para reiniciar el servicio
Ahora nos intentamos conectar al facebook…

O una palabra mala xxx, sexo, porno

Otra cosa es que puedes ver los logs con esto por ejemplo si eres un administrador puedes ver a que paginas ingresan los usuarios de la empresa para ello nos dirigimos…
/var/log/squid/access.log
Con esto muchos administradores pueden ver a que paginas entras y hasta bloquearte algunas

Bueno este es todo el tutorial…
Me base en el tutorial de punkkd de squid en Windows pero a mi manera y claro explicando algunos conceptos mas 
Espero les guste amigos
